Open vaneath opened 2 months ago
Verification is the process of determining whether the products of a given phase of the software development process fulfill the requirements established at the start of that phase Note: Verification checks whether we are building the right product.
Validation is the process of evaluating software at the end of the software development to ensure compliance with intended usage i.e. software meets its requirement. Note: Validation checks whether we are building the product right.
Static Testing refers to a method of testing where the software isn't executed. Instead, this form of testing involves the examination of the software's code, documentation, and design documents to find errors. Static testing is generally done in the earlier stages of the development lifecycle.
Dynamic Testing is the process of determining whether the products of a given phase of the software development.
Unit testing involves testing individual components or modules (unit) of a software.
Integration testing checks the interaction between integrated units/modules to detect interface defects after unit testing.
Stubs and Drivers are the dummy programs in Integration testing used to facilitate the software testing activity. These programs act as a substitute for the missing models in the testing.
Acceptance testing, often the final phase is used to determine whether the system meets the business requirements.
Shopping Cart Module & Catalog Module: The Shopping Cart queries the Catalog Module for product information like availability, price, and descriptions. The Catalog Module responds with the requested data to calculate the cart total and display product details.
Shopping Cart Module & Inventory Module: Upon checkout, the Shopping Cart Module transmits the order details (including purchased items) to the Inventory Module. The Inventory Module deducts the purchased quantities from the stock and updates the Catalog Module accordingly.
Payment Module & Shopping Cart Module: During checkout, the Shopping Cart Module sends order information (total amount) to the Payment Module. The Payment Module interacts with the payment gateway to process the transaction. Upon successful payment, the Payment Module sends confirmation back to the Shopping Cart Module.
Order Management Module & Inventory Module: The Order Management Module receives order information from the Shopping Cart Module. It then interacts with the Inventory Module to verify stock availability for ordered items.
Inventory Update Failure: Scenario: The Inventory Module fails to update the Catalog Module about a recently sold-out book. Impact: A customer might add an out-of-stock item to their cart and proceed to checkout, only to encounter an error later due to unavailable stock. Solution: Implement real-time inventory updates or frequent synchronization between Inventory and Catalog Modules. Unit tests can verify the inventory update script's functionality, while integration tests can simulate purchases and confirm stock updates in the Catalog Module.
Payment Timeout/Failure: Scenario: During payment processing, the Payment Module encounters a timeout or failure due to network issues or payment gateway problems. Impact: The customer's order might not be confirmed, leading to confusion and frustration. Solution: Implement a robust retry mechanism for payment failures. The system should clearly communicate the issue to the customer and allow them to retry payment or choose an alternative method. Integration tests can simulate payment timeouts and failures, verifying the system's behavior and error handling messages.
Inventory Update Script: Unit tests can be designed to check if the script correctly updates the stock levels in the Inventory Module upon a simulated purchase. Integration tests can verify if the Catalog Module reflects the updated stock after the Inventory Module is modified.
Inventory Calculations: Integration tests can simulate order processing and verify if the Inventory Module accurately deducts purchased quantities from the stock and updates the Catalog Module accordingly.
Payment Processing System: Integration tests can be set up to simulate successful and failed payment transactions. These tests can verify if the Shopping Cart Module receives the appropriate confirmation or error message based on the payment outcome.
Fund Availability Check: The Payment Module can be integrated with a service that verifies sufficient funds before processing the transaction. This can be tested through integration tests that simulate payments with insufficient balance and verify if the system rejects the transaction appropriately.
The Tester starts by executing test scenarios. The Developer waits for any issues the Tester reports and discusses potential fixes or explains behaviors. The Project Manager monitors the testing progress and addresses resource needs or scheduling issues. The Quality Assurance Analyst reviews the testing methods and outcomes to ensure all specs are tested and met. The Customer Support Representative role-plays potential customer interactions, such as querying about a failed transaction or navigating the product returns process.
Error human action that produces an incorrect result. Failure identify by end-user while using the system is called a failure. Bug/Defect deviation from the expected behavior to the actual behavior of the system.