🛠️

Introduction to Use Case Testing

Aug 22, 2024

Use Case Testing Tutorial Notes

Introduction

  • Tutorial on Use Case Testing within Chapter 3 of ISTQB.
  • Covers basic fundamentals, focusing on transactional scenarios.

Basics of Use Case Testing

  • Use Case Testing: Emulates intended use of a component/system.
    • Represents interaction between the actor (user/hardware) and the system.
  • Helps identify defects in interaction interfaces between system modules.
  • Applicable for integration, system, and acceptance testing.

Use Case Example: Easy Travel Card

  • Scenario: Loading an amount onto an Easy Travel card (similar to a metro/bus card).
  • Use Case ID: 2-0-1 (Add to Easy Travel Balance).
  • Actors: User and System.

Main Scenario

  1. User places card on the reading plate.
  2. System presents options: Query card balance, Add to balance, etc.
    • Note: Only relevant options included in the specific use case.
  3. User selects Add to Balance.
  4. System asks for the amount and payment method (cash or credit card).
  5. User selects Credit Card.
  6. User inserts credit card and confirms the amount.
  7. Card is removed, and the system returns to the main menu.

Exception Handling

  • Two exceptions noted:
    • E1: User can remove the card at any point until step 8.
    • E2: User may cancel the transaction if they do not accept the charged amount.

Test Case Coverage

  • To achieve minimum coverage for the use case:
    • Total Test Cases: 6
      • 1 Positive Test Case (successful transaction).
      • 5 Negative Test Cases (related to exceptions):
        • E1 scenarios (removing card).
        • E2 scenario (cancel transaction).

Conclusion

  • Each use case is identified by a unique ID and requires separate test cases.
  • Encouragement to ask questions for further clarification.
  • Encouragement to continue learning about use case testing.

Key Takeaways

  • Use case testing is crucial for understanding user interactions with systems.
  • Proper identification of test cases ensures thorough testing of functionalities and exceptions.