Bird
Raised Fist0
Testing Fundamentalstesting~5 mins

Contract testing basics in Testing Fundamentals - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is contract testing in software development?
Contract testing is a method to ensure that two separate software components (like a client and a server) agree on how they communicate. It checks that the 'contract' or agreement between them is followed correctly.
Click to reveal answer
beginner
Why is contract testing important?
It helps catch problems early by verifying that each part of a system meets the agreed communication rules. This reduces bugs when different teams work on different parts and helps avoid integration issues.
Click to reveal answer
beginner
What are the two main sides in contract testing?
The two main sides are the provider (the service that offers data or functionality) and the consumer (the client that uses the service). Contract testing checks their interaction.
Click to reveal answer
intermediate
How does contract testing differ from end-to-end testing?
Contract testing focuses only on the communication between two parts, not the whole system. End-to-end testing checks the entire flow from start to finish, which is slower and more complex.
Click to reveal answer
beginner
What is a common tool used for contract testing?
One popular tool is Pact. It helps create and verify contracts between consumers and providers automatically.
Click to reveal answer
What does contract testing primarily verify?
AThe user interface design
BThe performance speed of the application
CThe agreement between two software components on data exchange
DThe database schema structure
Who are the two main participants in contract testing?
AProvider and Consumer
BFrontend and Backend
CClient and Database
DDeveloper and Tester
Which testing type is faster and more focused: contract testing or end-to-end testing?
AContract testing
BEnd-to-end testing
CBoth are equally fast
DNeither is focused
What problem does contract testing help prevent?
ASyntax errors in code
BIntegration issues between services
CSlow application loading
DUser interface bugs
Which tool is commonly used for contract testing?
ASelenium
BJMeter
CPostman
DPact
Explain in your own words what contract testing is and why it matters.
Think about how two friends agree on rules before playing a game.
You got /3 concepts.
    Describe the roles of provider and consumer in contract testing and how they interact.
    Imagine one person offers a service and another uses it.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of contract testing in software development?
      easy
      A. To ensure two systems agree on the format and data of their communication
      B. To test the user interface for visual bugs
      C. To check the performance speed of an application
      D. To verify database schema changes

      Solution

      1. Step 1: Understand contract testing definition

        Contract testing focuses on the agreement between two systems on how they communicate, including request and response formats.
      2. Step 2: Compare options with contract testing purpose

        Only To ensure two systems agree on the format and data of their communication describes this agreement on communication format and data, which is the core of contract testing.
      3. Final Answer:

        To ensure two systems agree on the format and data of their communication -> Option A
      4. Quick Check:

        Contract testing = communication agreement [OK]
      Hint: Contract testing checks communication agreements between systems [OK]
      Common Mistakes:
      • Confusing contract testing with UI testing
      • Thinking contract testing measures performance
      • Assuming contract testing checks database structure
      2. Which of the following is the correct way to describe a contract in contract testing?
      easy
      A. A set of UI elements and their styles
      B. A list of database tables and columns
      C. A defined request and expected response between services
      D. A performance benchmark for API calls

      Solution

      1. Step 1: Identify what a contract defines

        A contract in contract testing defines the request sent and the expected response received between two services.
      2. Step 2: Match options to contract definition

        A defined request and expected response between services correctly describes this request-response definition, while others describe unrelated concepts.
      3. Final Answer:

        A defined request and expected response between services -> Option C
      4. Quick Check:

        Contract = request + expected response [OK]
      Hint: Contracts define requests and expected responses [OK]
      Common Mistakes:
      • Mixing contracts with UI or database details
      • Thinking contracts are about performance
      • Confusing contracts with test cases
      3. Given a contract test that expects a JSON response with a field status equal to "success", what will happen if the actual response is {"status": "fail"}?
      medium
      A. The test will pass because the response is JSON
      B. The test will fail because the status value does not match
      C. The test will pass because the field status exists
      D. The test will fail due to a syntax error in the response

      Solution

      1. Step 1: Understand the contract expectation

        The contract expects the status field to have the value "success" exactly.
      2. Step 2: Compare actual response to expected

        The actual response has "status": "fail", which does not match the expected value, causing the test to fail.
      3. Final Answer:

        The test will fail because the status value does not match -> Option B
      4. Quick Check:

        Expected value mismatch = test fail [OK]
      Hint: Exact value mismatch causes contract test failure [OK]
      Common Mistakes:
      • Assuming presence of field is enough to pass
      • Ignoring value differences in contract tests
      • Confusing syntax errors with value mismatches
      4. You wrote a contract test but it always passes even when the provider sends incorrect data. What is the most likely mistake?
      medium
      A. The contract test has syntax errors and does not run
      B. The contract test is missing the request URL
      C. The contract test is running on the wrong environment
      D. The contract test is not validating the response content properly

      Solution

      1. Step 1: Analyze why test passes despite incorrect data

        If the test passes even with wrong data, it likely means the test is not checking the response content correctly.
      2. Step 2: Evaluate other options

        Missing URL or wrong environment would cause errors or failures, and syntax errors prevent running, so these are less likely.
      3. Final Answer:

        The contract test is not validating the response content properly -> Option D
      4. Quick Check:

        Incorrect validation = false pass [OK]
      Hint: Check if test actually validates response content [OK]
      Common Mistakes:
      • Ignoring validation logic in tests
      • Assuming environment issues cause false passes
      • Confusing syntax errors with test logic errors
      5. You have two microservices: Service A (consumer) and Service B (provider). Service A expects Service B to return a JSON with a userId as a number and active as a boolean. Which contract test scenario best ensures compatibility?
      hard
      A. Test that Service B returns {"userId": 123, "active": true} and reject if types differ
      B. Test that Service B returns any JSON object with keys userId and active regardless of types
      C. Test that Service B returns a string containing userId and active anywhere
      D. Test that Service B returns a JSON with userId as string and active as number

      Solution

      1. Step 1: Identify expected data types in contract

        Service A expects userId as a number and active as a boolean, so the contract must enforce these types.
      2. Step 2: Evaluate options for strictness and correctness

        Test that Service B returns {"userId": 123, "active": true} and reject if types differ tests exact types and values, ensuring compatibility. Options A, B, and C ignore or mismatch types, risking integration errors.
      3. Final Answer:

        Test that Service B returns {"userId": 123, "active": true} and reject if types differ -> Option A
      4. Quick Check:

        Strict type check = compatibility ensured [OK]
      Hint: Contract tests must check exact data types and values [OK]
      Common Mistakes:
      • Ignoring data types in contract tests
      • Accepting any JSON structure without validation
      • Confusing string and number types in contracts
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard