V Model In Details: We are going to know about the V model and Testing Phases. Before that, let us understand a few other things like What is SDLC, STLC & waterfall model. So that we can get to know why this v model comes into the SDLC model and what are the benefits of after introducing in SDLC model.
What is SDLC?
SDLC is a Software development life cycle. During the life cycle, some sequence of activities is carried by the developers to design and develop a high-quality product that met the client requirement. As we mentioned that develop a word that doesn’t mean that the developers do the only coding task, but also you can see other team members contribution during the cycle those are testers and stakeholders. When developers are engaged, theme-selfs in developing the product, testers engage in wring test cases for the product.
What is STLC?
STLC is a Software testing life cycle. During the testing life cycle, some series of activities carried by testers to test the software product. During the testing life cycle, not only testers other teams also involved like developers as well. During the testing life cycle, testers are executed the test cases which testers have written during the software development life cycle.
What is a Waterfall model?
When the customer requirement is clear, then the waterfall model is taken as the SDLC process. In the waterfall model, the development activities are divided into different phases, and each phase is performing a specific activity. In a waterfall, model testing starts when the product is developed.
So the main drawback of the waterfall model is that defects are found in later stages of the development process, so it’s become very challenging and costly to fix the defects. So to overcome this problem, a new model is introduced, and that called the “V Model.”
because testing started in the early stages of the development V model is widely used in the software development process.
Before starting the actual testing, the testing team has to work on various activities like preparation of Test Strategy, Test Planning, Creation of Test cases & Test Scripts, which is work parallel with the development activity, which helps to get the test deliverable on time.
What is the V Model?
In the v model, the process is executed in v-shape. In the V-model, each development phase is directly associated with the respective test phase. Because of this next phase is started only after completion of the previous phase. This V model is also known as the verification and validation model. so for better understanding of v model, let’s get some idea about
What is Verification?
The process of evaluating the document/ work product of a drug development phase is called verification. the verification is also called static testing because, during the verification of the software application, the real application is not executed or used. But we have verified the documents, and the codes find the defects on it.
The different methods of verification are present to verify the documents or the codes of the application. That is:
Various Phases Of Verification
Requirement analysis: During this phase, all the requirements and expectations details are collected from the customer. This phase is called requirement gathering.
In this stage, the client sends the BRS. After receiving the BRS, developers translate that BRS to SRS and testers involved in review the BRS and try to find out the missing or wrong requirements and write an acceptance test plan and test cases.
System Design /High-Level Design: during this phase, a high-level design is built, and also the team will discuss how those requirements can be implemented. the team will also come with what can be created, what can be the dependencies, and what software and hardware required to develop the product.
Architectural design: during this phase, the System design is divided into different functionalities. How the data will transfer between other internal modules and other systems is clearly understand.
In this phase, the development team will start preparing the Low-level design (LLD) of the product and the test team will involve in reviewing the high-level design (HLD) and start preparing the integration test plan and test cases.
Module Design: During this phase, the functionalities are again divided into small modules. In this phase, methods, classes, interfaces, and data types all are finalized.
In the next phase development team, start writing coding for the product, and the test team will review the low-level design (LLD) and write functional or unit test plan and test cases.
What Is Validation?
The process of evaluating a software application during the development or at the end of the development phase is called validation. the validation is also dynamic testing. During the validation, we are using the real application to find out the defect in it.
During the validation process, we try to find out that the developed software product (development completed) weather met the customer’s expectations and requirements. To find out the defects of the application we are using different techniques or methods, that are:
- Functional testing
- Non-functional testing
Because of this nature in the v model, all verification phases found on one side, and another side, you can see all validation phases. By joining both the phases, it will look like v-share. That’s why it called the V Model.
This V model starts with the business requirement in one hand, and the other side ends with the user acceptance testing.
Various Phases Of Validation
Unit Testing: testers are executed the unit test plan and test cases, which is developed by the testers in the module design phase to find out the bugs in the unit or code level.
Integration Testing: during this phase, testers are executed integration test plans or test cases after the completion of unit testing. During the testing, testers concentrate more on the communication data between modules.
System Testing: during the system testing, testers test the complete application with functionality, interdependency, and communication. During this phase, testers test the functional and non-functional requirements of the developed application.
User acceptance testing (UAT): this testing is performed on the user environment that means in the production environment. In UAT testing, we verify that the developed product is met the user requirement, and that is ready to use in the real environment too.
When To Use V Model?
If you follow the V model, then it is tough to back to the previous page once it is completed. If you are a software project that needs some flexibility, then it’s very rigid. But if you are more focused on quality is an essential aspect of the delivery, then this model can be a critical and also and suitable model for you.
so as compared to the Waterfall model, you can use this be model on such a project where the requirements are not changing, for example:
- The customer has a precise documented requirements
- Military projects
- Embedded systems
- Such projects where the requirement is well defined and clear
Advantages of the V Model
- In the V-Model, both development and testing happen in a very organized and systematic manner.
- It is suitable for smaller and medium-sized projects.
- Testing is started from the beginning, so if there are any defects, then it can find in the early stage only.
- It’s easy to manage, and each phase has defined objectives and goals.
The Disadvantage of the V Model
- It is not suitable for big or complex projects.
- It is not suitable for those project whose requirement is not clear and not consistent because whenever we expect some change there, the same process needs to carry out so need more documentation for that.
- the user will not be able to get any software in the intermediate stage.
- Investment for the project will increase because of the testing team involvement from the beginning.
Difference Between Software Verification and Validation
|Are we building the system right?||Are we building the right system?|
|It is the process of evaluating products of a development phase to find out whether they meet the specified requirements.||It is the process of evaluating software at the end of the development process to determine whether the software meets customer expectations and requirements.|
|The objective of Verification is to make sure that the product being developed is as per requirements and design specifications.||The objective of Validation is to make sure that the product meets up the user’s requirements, and check whether the specifications were correct in the first place.|
|The following activities are involved in Verification: Reviews, Meetings, and Inspections.||The following activities are involved in Validation: Testing like black-box testing, white box testing, grey box testing, etc.|
|It is carried out by the QA team to check whether implementation software is as per specification document or not.||It is carried out by the testing team.|
|Execution of the code does not come under Verification.||Execution of code comes under Validation.|
|It process explains whether the outputs are according to inputs or not.||It process describes whether the user accepts the software or not.|
|It is carried out before the Validation.||Its activity is carried out just after the Verification.|
|Following items are evaluated during Verification: Plans, Requirement Specifications, Design Specifications, Code, Test Cases, etc.,||The following item is evaluated during Validation: Actual product or Software under test.|
|The cost of errors caught in Verification is less than errors found in Validation.||The cost of errors caught in Validation is more than errors found in Verification.|
|It is manually checking the documents and files like requirement specifications etc.||It is checking the developed program based on the requirement specifications documents & files|
- Both Verification and Validation are essential and balance to each other.
- Each of them provides different error filters.
- Both are used to finds a defect in a different way, Verification is used to identify the errors in requirement specifications & validation is used to find the defects in the implemented Software application.
Please write comments if you find anything incorrect, or you want to share more information about this topic discussed above, then you can use our contact us page.