ISTQB - Testing Throughout the Software Development Lifecycle
Software Development Models:
-
Waterfall is a step-by-step model that moves in one direction.
-
V-Model focuses on testing after every development step.
-
Iterative builds the software in small versions and improves it over time.
-
Agile is fast, flexible, and breaks development into short, repeatable cycles.
Testing in Different Lifecycle Phases
Requirements Analysis Phase
- What happens here
- Testing activity
- Why it matters
- This is the phase where the team gathers and understands what the software should do. ie: The requirements.
- During this phase, testers review the requirements to ensure they are clear, complete, and testable. This is called requirements review. Testers also start planning what to test and how to test it based on the requirements.
- If the requirements are unclear or incorrect, the entire project can be affected, so it’s important to catch any issues early.
Design Phase
- What happens here
- Testing activity
- Why it matters
- This is where the team creates a plan for how the software will be built. ie: The design. They decide how the software will be structured and how different components will interact.
- Testers review the design documents to make sure the software design is logical and complete. This is called design review. Testers also start preparing test cases based on the design. ie: Specific scenarios they will check when the software is built.
- Catching design flaws at this stage prevents bigger problems during development.
Coding (Development) Phase
- What happens here
- Testing activity
- Why it matters
- Developers write the actual code based on the design.
This is where actual execution-based testing happens. Testers run tests to check if the software works correctly:
Unit testing: Tests small parts of the code (individual functions).
Integration testing: Tests how different parts of the code work together.
System testing: Tests the entire software system to see if it works as a whole.
- Early testing helps find and fix bugs as soon as possible, saving time and effort.
Maintenance Phase
- What happens here
- Testing activity
- Why it matters
- After the software is released, it enters the maintenance phase where it’s updated, fixed, or improved over time.
- Every time a bug is fixed or a new feature is added, testing needs to be done to ensure the changes don’t break anything. This is called regression testing. ie: Checking that old features still work after changes. Bug fixes are also tested to make sure the issues are truly resolved.
- Testing during maintenance ensures that the software remains stable and functional even after updates.
Test Levels
Component (Unit) Testing
- What it is
- Example
- Analogy
- Testing individual parts or units of code in isolation. A "unit" could be a function, method, or small piece of software that does one thing.
- You write a function to calculate the total cost of items in a shopping cart. Unit testing would involve checking that this specific function works correctly, without involving the rest of the system.
- Think of it like testing one Lego block to make sure it’s solid before using it to build something bigger.
Integration Testing
- What it is
- Example
- Analogy
- Testing how different components or units work together. Once individual units have passed unit tests, integration testing checks if they communicate and function properly when combined.
- After testing the shopping cart total function, you might check if it works well with the payment processing system and item inventory.
- After testing individual Lego blocks, you check if the pieces fit together as expected to build a small part of the structure.
System Testing
- What it is
- Example
- Analogy
- Testing the entire application or system as a whole. This ensures that all components and integrations work together correctly in a complete environment.
- You’d test the full shopping website, from browsing products to adding items to the cart, completing the purchase, and sending confirmation emails.
- You’ve built the entire Lego structure, and now you’re checking that it looks and functions as a complete model.
Acceptance Testing
- What it is
- Example
- Analogy
- Testing whether the system meets the business requirements and whether users will accept the system as functional. This is often the final step before releasing the product to users.
- The client tests the shopping website to ensure it works according to their specifications, and the checkout process is smooth for real users.
- You present the finished Lego model to the customer to see if it matches their expectations and is ready to display.
Summary
-
Each level checks the system at different stages to catch bugs and ensure quality throughout development.
-
Unit Testing: Test the smallest part (One Lego block).
-
Integration Testing: Test how small parts work together (Few Lego blocks).
-
System Testing: Test: the entire product (Full Lego model).
-
Acceptance Testing: Ensure the system meets customer needs (Is the model what they wanted?).
-