What is Waterfall Model, Spiral Model and VV Model/Verification Validation Model/V Model in SDLC
The waterfall approach was the first SDLC Model used in software development to ensure the successful and efficient outcome of the project. In the waterfall model, the outcome of one phase acts as the input for the next phase sequentially.
Advantages of waterfall model:
- Quality of the product will be good.
- Requirement changes are not allowed, chances of finding bugs will be less.
- Initial investment is less since the testers are hired at the later stages.
- Preferred for small projects where requirements are frozen.
Disadvantages of waterfall model:
- Requirement changes are not allowed.
- If there is a defect in the requirement that will be continued in later phases.
- Total investment is more because of time taking rework on the defect.
- Testing will start only after the development.
The spiral model is an iterative model, which overcomes the drawbacks of the waterfall model.
In this model, the software is released in multiple versions. So it is also called the version control model.
NOTE: we follow the spiral model whenever there is a dependency on the modules, wherein every cycle, the new software is released to the customer.
Advantages of Spiral Model:
- Testing is done in every module or cycle before going to another cycle.
- Customer no need to wait for total process completion.
- Customers can use the software for every module in different versions.
- Requirement changes are not allowed after the completion of the entire cycle or before going to the next cycle.
Disadvantages of Spiral Model:
- Requirement changes are not allowed in the middle of the cycle.
- Every cycle in the spiral model looks like a waterfall model.
- There is no testing in the requirement and design phases.
A module is a part of the software, the entire software is divided into multiple parts. Each part is called a module.
Example: Gmail is an application where user login to Gmail is one module, inbox, compose, sent are considered as modules
The prototype is nothing but a blueprint of the software and we will take initial requirements from the customer then we prepare the prototype of the software, if the customer is satisfied with that blueprint or prototype then we will go for design, coding, and testing phases.
NOTE: VV Model is very important to know the step-by-step process which covers the overall Manual testing.
V-model is also one of the software development process models, where one part comes under verification and another part is validation. Testing is carried out in every phase with the document verification and validation involves the actual testing of the test cases.
- Verification checks whether we are building the right product are not.
- Focus on Documentation.
- Static Testing will be done in Verification.
- Once the software is ready then the validation process starts.
- Validation checks whether the building product is right are not.
The first phase in the software development process is collecting the requirement from the customer, so for that, we have the Documents called “BRS, CRS, URS”.
BRS: Business Requirement Specification(or)
CRS: Customer Requirement Specification(or)
URS: User’s Requirement Specification.
This document contains the business requirements or customer requirements this document is prepared by the team called the business unit and those people interact with customers and collect the requirements and prepare the documentation.
By using this document we will do testing called User acceptance testing or UAT.
Based on this documentation one more document is prepared called SRS Document.
SRS: Software Requirement Specification is the documentation for developers and testers to understand the requirements and this document is prepared by the product manager or project manager.
Based on this SRS Document the developers will prepare HLD and LLD’S.
HLD: High-Level Design Document, In HLD we have main modules.
LLD: Low-Level Design Document, In LLD we have submodules.
coding will be started by using this HLD and LLD.
Unit testing, Integration testing, System testing, User Acceptance Testing come under the validation part.
Explanation about the validation:
Once the coding is completed then unit testing will be conducted.
Testing the single module (or)single component in the software is known as unit testing.It is conducted by the Developers.
Once the unit testing is completed then all the modules are tested again which is called integration testing.It is conducted by the Developers.
Note: UNIT TESTING and INTEGRATION TESTING comes under “White box Testing Techniques”, These testings will not be conducted by the testers, So developers themselves do this white box testing.
System Testing is the actual testing that was conducted by the testers, whether the software is working correctly as per user requirements are not. This System Testing will be conducted by testers after the testing is completed by the developers.
User Acceptance Testing:
User Acceptance Testing will be done along with testers and users, whether all the requirements are working properly are not tested by the “Client or User”.
Note: SYSTEM TESTING and USER ACCEPTANCE TESTING comes under “Black box Testing Techniques”
The advantage in V-Model:
- Testing involves every face.
The disadvantage in V-Model:
- Cost is high at the initial stage.
- Documentation is more.