ISTQB - International Software Testing Qualifications Board Testing Throughout the Lifecycle Questions and Answers — Questions and Answers
Question 1: In the context of a sequential software development lifecycle model, such as the V-model, when should test analysis and design for a specific test level ideally begin?
- After the code for that level has been fully developed and passed to the test team.
- During the execution phase of the previous test level.
- As soon as the development activities for the corresponding level are underway. (Correct answer)
- Once the entire system has been built and is ready for system testing.
Correct answer: As soon as the development activities for the corresponding level are underway.
A fundamental principle of testing throughout the lifecycle is that for every development activity, there is a corresponding testing activity. Test analysis and design for a given test level should begin during the corresponding development activity, not after it is complete. For example, acceptance test design should start during the requirements definition phase.
Question 2: A project team is developing a large, complex system with stringent safety requirements. The development model is highly structured, with distinct phases for requirements, high-level design, detailed design, and coding. Which testing level corresponds directly to the high-level design (architectural design) phase in a V-model?
- Acceptance Testing
- Component Testing
- System Testing (Correct answer)
- Integration Testing
Correct answer: System Testing
In the V-model, System Testing is designed to verify the behavior of the whole system against the high-level design and requirements specification. Acceptance testing corresponds to the business requirements, integration testing to the detailed design, and component testing to the individual code units.
Question 3: Which of the following is a primary objective of Maintenance Testing?
- To test a new system from scratch before its initial deployment.
- To verify that new functionality has been added as per the initial project plan.
- To confirm that a new developer understands the existing system architecture.
- To verify that modifications in an operational system have not introduced adverse side effects. (Correct answer)
Correct answer: To verify that modifications in an operational system have not introduced adverse side effects.
Maintenance testing is performed on an existing operational system when it is modified. A key objective is to perform regression testing to ensure that changes (like fixes or enhancements) have not negatively impacted unchanged parts of the system.
Question 4: The 'shift left' approach to testing primarily aims to:
- Move all testing activities to be the sole responsibility of the development team.
- Initiate testing activities earlier in the software development lifecycle. (Correct answer)
- Focus exclusively on end-to-end testing after the system is fully integrated.
- Delay testing until the final stages to have a more stable system to test.
Correct answer: Initiate testing activities earlier in the software development lifecycle.
The 'shift left' approach advocates for performing testing activities earlier (or 'left' on a typical project timeline) in the lifecycle. This involves practices like static testing of requirements and design, and developers performing more unit testing, to find defects when they are cheaper and easier to fix.
Question 5: A team is developing a mobile application using an iterative lifecycle model. A new feature has been added in the latest iteration. In addition to testing the new feature itself, what other crucial testing activity must be performed?
- Usability testing with a focus group of new users only.
- Performance testing on the oldest supported device.
- Regression testing of existing application features. (Correct answer)
- A full security audit of the entire codebase.
Correct answer: Regression testing of existing application features.
In iterative models, where the software changes frequently, regression testing is crucial to ensure that new features or changes have not broken previously working functionality. While other testing types are valuable, regression testing is essential to maintain the integrity of the existing product with each iteration.
Question 6: In any software development lifecycle model, which of the following is considered a characteristic of good testing?
- Testers are only involved after the coding phase is complete to ensure their independence.
- For every development activity, there is a corresponding testing activity. (Correct answer)
- Test level objectives are kept generic to allow for flexibility across the project.
- Test analysis and design are postponed until a stable build is available for execution.
Correct answer: For every development activity, there is a corresponding testing activity.
A key principle of 'Testing Throughout the Lifecycle' is that testing is not a single phase but a set of activities that run in parallel with development. For every development activity (e.g., gathering requirements, creating a design), there should be a corresponding test activity (e.g., reviewing requirements for testability, designing acceptance tests).
In the context of a sequential software development lifecycle model, such as the V-model, when should test analysis and design for a specific test level ideally begin?