Release and Acceptance Testing Flashcards
(26 cards)
What is the main purpose of release testing in software engineering?
Release testing checks if the complete, integrated system meets all specifications (including non-functional) and is ready to be shown to the client, with the goal of sign-off for acceptance testing.
Who typically performs release testing, and why?
Release testing is performed by a separate team not involved in development, to provide an independent check that the system meets specifications and is suitable for external use.
How does release testing differ from integration testing?
Integration testing focuses on finding bugs in how components interact, often by the development team, while release testing validates that the whole system meets specifications and is ready for client delivery, typically by an independent team. Release testing is validation testing rather than defect testing.
What are the three main strategies for release testing?
Performance-driven tests (e.g., stress and load testing)
High-level specification-driven tests (testing against specific requirements)
Scenario-driven tests (testing real-world user scenarios)
Why is use case-based testing effective in release testing?
Because it focuses on testing interactions between different components, revealing emergent behaviors that only appear when the system is fully integrated.
What is the primary goal of release testing?
To convince the company that the software is good enough to give to the customer, ensuring all specifications are met and the system does not fail during normal use.
What is emergent behavior in the context of release testing?
Emergent behavior refers to system functionalities or issues that only become apparent when all components are combined and tested together, not visible in isolated or unit testing.
Why does the cost of fixing problems increase in later testing phases?
Because issues found late often require more rework, coordination, and changes across the integrated system, making them more expensive to resolve.
What is the role of acceptance testing?
Acceptance testing is the final formal test by the customer to determine if the system meets their requirements and is ready for active use, often using real client data.
What are the typical steps in the acceptance testing process?
Define acceptance criteria
Plan acceptance testing
Derive acceptance tests
Run acceptance tests
Negotiate test results
Accept or reject the system
Why is it important to define acceptance criteria early?
Early definition ensures both the developer and client agree on what the system must do for acceptance and payment, reducing disputes later.
What happens if the system fails some acceptance tests?
The client and developer negotiate whether the issues are acceptable or if further development is needed; acceptance testing may be repeated after fixes.
When does acceptance testing end?
When both the system developer and client agree that the delivered system is an acceptable implementation of the requirements.
Why does acceptance testing sometimes reveal requirements problems?
Because it uses real data and real user scenarios, which may expose gaps or misunderstandings in the original requirements.
Why should acceptance testing not be left only to the very end of a project?
Because issues found late are harder and more costly to fix; acceptance activities and criteria should be considered throughout the project lifecycle.
What is the significance of documenting requirements for acceptance testing?
Clear documentation of agreed requirements ensures there is a shared understanding of what is to be tested and accepted by the client.
What is scenario-driven testing?
Scenario-driven testing involves testing the system by acting out real-world user scenarios, including both correct and incorrect actions, to ensure the system behaves as expected.
What is the difference between release testing and acceptance testing?
Release testing is performed internally to ensure readiness for client delivery, while acceptance testing is performed by or with the client to formally approve the system for use and payment.
What is the outcome if acceptance testing is successful?
The client accepts the system, and typically, payment is made and the system is deployed for active use.
What is the implication if acceptance testing is not successful?
The system is not accepted, further development and testing are required, and the acceptance testing cycle repeats until the client is satisfied.
What is performance driven strategy (release testing)
Once the system is complete and integrated, some things can now be tested
Non-functional things like performance and stress testing
Useful for distributed systems
What is high-level spec-driven strategy (release testing)?
Develop a series of tests that relate to different specifications
What is scenario-driven strategy (release testing)?
Show that the scenarios you have modelled can be satisfied
Make deliberate mistakes and the right actions
What are the two types of user testing?
Alpha and beta