EP83: Explaining 9 Types of API Testing

EP83: Explaining 9 Types of API Testing

This week’s system design interview: Python Vs C++ Vs Java! (Youtube video) Explaining 9 types of API testing API Vs SDK! System Design for Everyone! Explain the Top 6 Use Cases of Object Stores How to Build Your Engineering Metrics Program (Guide) (Sponsored)  ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌
Forwarded this email? Subscribe here for more

This week’s system design interview:

  • Python Vs C++ Vs Java! (Youtube video)

  • Explaining 9 types of API testing

  • API Vs SDK!

  • System Design for Everyone!

  • Explain the Top 6 Use Cases of Object Stores


How to Build Your Engineering Metrics Program (Guide) (Sponsored)

While sales and marketing have clear, well understood dashboards, engineering insight often feels just out of reach. 

Structuring and correlating engineering data with a metrics program provides holistic visibility into engineering health, fosters delivery predictability, improves dev experience, and helps you communicate with the rest of the business in a common language.

Use this free guide to start your metrics program–inside you’ll learn to:

  • Identify leading and lagging indicators of engineering health

  • Benchmark metrics and define “good” for your team

  • Surface risk indicators and improvement opportunities

  • Build an improvement strategy with automation and goal setting

Get The Guide


Python Vs C++ Vs Java!


Explaining 9 types of API testing

No alternative text description for this image
  • Smoke Testing
    This is done after API development is complete. Simply validate if the APIs are working and nothing breaks.

  • Functional Testing
    This creates a test plan based on the functional requirements and compares the results with the expected results.

  • Integration Testing
    This test combines several API calls to perform end-to-end tests. The intra-service communications and data transmissions are tested.

  • Regression Testing
    This test ensures that bug fixes or new features shouldn’t break the existing behaviors of APIs.

  • Load Testing
    This tests applications’ performance by simulating different loads. Then we can calculate the capacity of the application.

  • Stress Testing
    We deliberately create high loads to the APIs and test if the APIs are able to function normally.

  • Security Testing
    This tests the APIs against all possible external threats.

  • UI Testing
    This tests the UI interactions with the APIs to make sure the data can be displayed properly.

  • Fuzz Testing
    This injects invalid or unexpected input data into the API and tries to crash the API. In this way, it identifies the API vulnerabilities.


Latest articles

If you’re not a subscriber, here’s what you missed this month.

  1. A Crash Course in Kubernetes

  2. Redis Can Do More Than Caching

  3. The 6 Most Impactful Ways Redis is Used in Production Systems

  4. The Tech Promotion Algorithm: A Structured Guide to Moving Up

  5. A Crash Course in DNS

To receive all the full articles and support ByteByteGo, consider subscribing:


API Vs SDK!

API (Application Programming Interface) and SDK (Software Development Kit) are essential tools in the software development world, but they serve distinct purposes:

API:
An API is a set of rules and protocols that allows different software applications and services to communicate with each other.

  1. It defines how software components should interact.

  2. Facilitates data exchange and functionality access between software components.

  3. Typically consists of endpoints, requests, and responses.

SDK:
An SDK is a comprehensive package of tools, libraries, sample code, and documentation that assists developers in building applications for a particular platform, framework, or hardware.

  1. Offers higher-level abstractions, simplifying development for a specific platform.

  2. Tailored to specific platforms or frameworks, ensuring compatibility and optimal performance on that platform.

  3. Offer access to advanced features and capabilities specific to the platform, which might be otherwise challenging to implement from scratch.

The choice between APIs and SDKs depends on the development goals and requirements of the project.

Over to you:
Which do you find yourself gravitating towards – APIs or SDKs – Every implementation has a unique story to tell. What's yours?


System Design for Everyone!

We've open-sourced the 'System Design 101' GitHub repo last week, which has just reached 35,000 stars.

No alt text provided for this image

Thanks to everyone who has starred, forked, or contributed to the repository. We got our 1st GitHub badge!

We are actively working on improving it and have merged 15 pull requests last week. Everyone is welcome to contribute.

What's included in the GitHub repository:

  • 100 byte-sized system concepts with visuals.

  • Real-world case studies.

  • Tips on how to prepare for system design interviews.

Topics included (and many many more):

  • SOAP vs. REST vs. GraphQL vs. RPC

  • HTTP 1.0 -> HTTP 1.1 -> HTTP 2.0 -> HTTP 3.0 (QUIC)

  • CI/CD Pipeline Explained in Simple Terms

  • 8 Data Structures That Power Your Databases

  • Top caching strategies

  • What does a typical microservice architecture look like?

Start exploring the repository here.


Explain the Top 6 Use Cases of Object Stores

  • What is an object store?
    Object store uses objects to store data. Compared with file storage which uses a hierarchical structure to store files, or block storage which divides files into equal block sizes, object storage stores metadata together with the objects. Typical products include AWS S3, Google Cloud Storage, and Azure Blob Storage.

    An object store provides flexibility in formats and scales easily.

  • Case 1: Data Archiving
    With the ever-growing amounts of business data, we cannot store all the data in core storage systems. We need to have layers of storage plan. An object store can be used to archive old data that exists for auditing or client statements. This is a cost-effective approach.

  • Case 2: Unstructured Data Storage
    We often need to deal with unstructured data or semi-structured data. In the past, they were usually stored as blobs in the relational database, which was quite inefficient. An object store is a good match for music, video files, and text documents. Companies like Spotify or Netflix uses object store to persist their media files.

  • Case 3: Cloud Native Storage
    For cloud-native applications, we need the data storage system to be flexible and scalable. Major public cloud providers have easy API access to their object store products and can be used for economical storage choices.

  • Case 4: Data Lake
    There are many types of data in a distributed system. An object store-backed data lake provides a good place for different business lines to dump their data for later analytics or machine learning. The efficient reads and writes of the object store facilitate more steps down the data processing pipeline, including ETL(Extract-Transform-Load) or constructing a data warehouse.

  • Case 5: Internet of Things (IoT)
    IoT sensors produce all kinds of data. An object store can store this type of time series and later run analytics or AI algorithms on them. Major public cloud providers provide pipelines to ingest raw IoT data into the object store.

  • Case 6: Backup and Recovery
    An object store can be used to store database or file system backups. Later, the backups can be loaded for fast recovery. This improves the system’s availability.

Over to you: What did you use object store for?

 
Like
Comment
Restack
 

© 2023 ByteByteGo
548 Market Street PMB 72296, San Francisco, CA 94104
Unsubscribe

Get the appStart writing


by "ByteByteGo" <bytebytego@substack.com> - 11:36 - 28 Oct 2023