V-Model is software development model and V-model is also known as Verification and Validation model. It is basically extension of waterfall model but unlike water fall model here in V-model, testing is done simultaneously with the development phase. The main disadvantage of water fall model i.e. the Testing Starts after Development ends. But in V-model the testing start early in life cycle.
The left arm is known as verification and Right arm is known as validation and the whole diagram is looks like V shape so it is called as V-Model. The V-Model phases are as per follows.
It is also called as Left arm is static and right arm is dynamic arm.
Business Requirement Specification (BRS) :
- This is the first phase in the development cycle where the product requirements are understood from the customer perspective.
- This phase involves detailed communication with the customer to understand his expectations and exact requirement.
- This is a very important activity and need to be managed well, as most of the customers are not sure about what exactly they need.
- The acceptance test design planning is done at this stage as business requirements can be used as an input for acceptance testing.
Software Requirement Specification (SRS) :
- A Software requirement specification is a document that capture complete description about how the system is expected to perform.
- And it is a detailed requirement of the application.
- This is also a very important part because most of the bugs in software is due to incomplete or inaccurate functional requirements.
- The software code does not matter how well it’s written, can’t do anything if there are ambiguities in requirements.
- The team studies and investigates on how the requirements could be implemented.
- The System test design planning is done at this stage as Software requirement can be used as an input for System testing.
- Once you have the clear and detailed product requirements, it’s time to design the complete system.
- This Phase focuses on system architecture and design.
- It provide overview of solution, platform, system, product and service/process. An integration test plan is created in this phase as well in order to test the pieces of the software systems ability to work together.
- With this phase integration test planning is done.
Low Level Design (LLD) :
- Phase is where the actual software components are designed. It defines the actual logic for each and every component of the system. Class diagram with all the methods and relation between classes comes under LLD. Component tests are created in this phase as well.
- Simultaneously unit test design planning is done.
- Till this phase all the planning has been done. Here the developer start building the application according to requirements.
Unit testing :
- This unit testing is performed by the developer.
- Here developer test their program code, functions, classes, procedures, to verify that they are all are working as expected.
- The unit test cases which are created during the low level design is executed.
- These tests are executed by the developer to validate the functions developed by him.
- And to locate a bug developer uses a debugging technique.
- Bug fixing is less costly and easy in this phase.
- If developer eliminates or do unit testing in a proper way then there is a less chances of bug in his developed module.
- If testing team found a bug in lateral stage then the bug fixing would be more costly time consuming so this thing can be avoidable if developer do unit testing properly.
Integration testing :
- The module, component tested alone should be also work when they connected together.
- Sometime the module work fine when tested alone but when we integrate it, its shows error so we need to ensure that the module when integrates together should also work fine.
- Basically we need to test the data transfer between the several modules. To ensure that the data transfer between this modules is happening in proper way.
There four type of integration testing.
- Bottom up Integration testing.
- Top down Integration testing.
- Critical Part First.
- Big Bang.
System Testing :
- The actual and full fledge testing of the application takes place here in system testing –
- In system testing the behavior of whole system/product is tested and find out whether system is working as expected or not.
- In this phase all the system test cases, functional test cases and nonfunctional test cases are executed.
- System testing is carried out by specialist’s testers or independent testers.
- System testing is most often the final test to verify that the system to be delivered meets the specification and its purpose.
- The system testing comes under black box software testing. So, the knowledge of internal design or structure or code is not required for this type of software testing’.
There are different testing techniques are used in the System testing :
- Functional testing.
- GUI testing/Usability testing.
- Security testing.
- Performance testing.
User Acceptance Testing :
- UAT testing is performed after the system testing and UAT testing happens before releasing the software in a real environment.
- User acceptance is a type of testing performed by the Client to check if the system is built to match the business requirements of the organization.
- UAT testing is important Because, Developer read the Requirement Document and based on his own understanding developer develop the software which may not actually be what the client needs from the software.
- UAT testing happens before releasing the software in a real environment.
- There are two types of UAT testing - Alpha Testing and Beta Testing.