WATERFALL MODEL
- Advantages of Waterfall Model:
- Good Product Quality: The step-by-step process ensures a high-quality end product.
- Fewer Bugs: Not allowing changes in requirements reduces the chance of finding bugs later.
- Lower Initial Costs: Hiring testers later on means lower starting costs.
- Ideal for Small Projects: Best for small projects with fixed requirements.
- Disadvantages of Waterfall Model:
- No Changes Allowed: Once requirements are set, they can't be changed.
- Continued Defects: If there's a problem in the requirements, it carries through to later stages.
- Higher Overall Costs: Fixing defects takes time, making the overall cost higher.
- Testing Starts Late: Testing begins only after the coding is done.
SPIRAL MODEL
- Key Points:
- Iterative Approach: The Spiral Model works in cycles, allowing us to revisit and improve things as we go along.
- Improving on Waterfall: It's designed to fix the issues of the Waterfall Model by being more flexible and allowing changes during the development process.
- Module Dependency: We use the Spiral Model when different parts of the software depend on each other.
- Continuous Releases: At the end of each cycle, a new version of the software is given to the customer. It's like giving them a taste of the cake at each stage of baking.
- Version Control: Because we release different versions, it's also known as a version control model.
- Advantages of Spiral Model:
- Continuous Testing: We test the software in each cycle, making sure it's working well before moving on.
- Customer Involvement: The customer gets to use the software at various stages, giving them a hands-on experience.
- Flexible Requirements: Changes in requirements are allowed after each cycle, giving room for adjustments.
- Disadvantages of Spiral Model:
- No Mid-Cycle Changes: Once a cycle starts, you can't make changes until it's finished.
- Looks Like Waterfall: Each cycle might seem like the Waterfall Model, which can limit its flexibility.
- No Testing Early On: Testing happens later in the process, not during the requirement and design phases.
V-MODEL
- Advantages of V-Model:
- Easy to Understand: The V-Model is straightforward. It's like climbing a staircase – each step corresponds to a development or testing phase, making it easy to grasp.
- Early Testing: Testing is planned right from the beginning, ensuring that any issues are identified early in the process.
- Clear Correspondence: Each development stage has a corresponding testing phase, which makes it clear what needs to be tested at each step.
- Reduced Uncertainty: Because testing is aligned with development phases, there's less uncertainty about what to test and when.
- Disadvantages of V-Model:
- Rigid and Sequential: Just like a staircase, you can't easily go back once you've moved to the next step. This can be a problem if changes are needed later on.
- Late Feedback: Testing happens after development, so if there are issues, they might be discovered late in the process.
- Not Agile-Friendly: It's not very adaptable to changes. If there are alterations in requirements, it might be challenging to adjust.
- Limited Client Interaction: Unlike some other models, there's not much interaction with the client until later stages, which can be a disadvantage if their input is crucial early on.
Verification Vs Validation
- Verification checks whether we are building the right product.
- Focus on Documentation
- Verification typically involves.
- Reviews
- Walkthroughs
- Inspections
- Validation checks whether we are building the product right.
- Takes place after verifications are completed.
- Focus on Software
- Validation typically involves actual testing.
- Unit testing, integration, system testing, UAT testing
Static V/S Dynamic Testing
- Static testing is an approach to test project documents in the form of Reviews, Walkthroughs and Inspections.
- Dynamic testing is an approach to test the actual software by giving inputs and observing results.