In the field of Software testing we use different types of Software Testing Methodologies. In today’s Software Testing Class, we will see what all Software Testing Methodologies & software testing technique is used in the day today software testing life cycle.
In the Software Development Process different software development approaches are used. A software development process also known as a Software Development Life Cycle (SDLC).
Each process model has its own advantages & disadvantages, the choosing of model is based on the requirement & need of your project to do the success in process of software development.
Here are the few commonly used Software Development Life Cycle used in actual testing:
- Waterfall model
- V model
- Agile model
- Spiral model
1) Waterfall Model
The Waterfall Model approach is most basic life cycle model, which is the first Process Model begins and used broadly in Software Development to make sure project success. This model is developed by Winston Royce in the early 1970. Waterfall model is software development process sequential process, as flowing progressively downwards like waterfall via multiple phases & these simple sequence of phases has its own defines activities and goals. The Waterfall model is divided into following separate phases:
- Requirement Gathering & Analysis phase,
- Software Design,
- Implementation and Testing
All these phases are the sequential phases & next step is totally depends on the previous step, so that second phase is begins as only if the defined set of objectives and goals are completed first.
The stages of “The Waterfall Model” are:
Requirement Gathering & Analysis:
This is the starting phase of the SDLC in which all possible system requirements are captured & analyzed. Software requirements specification includes the complete information about how actual end users are expecting from the system. This document covers all the necessary requirements for the development of project. Finally after completion of requirement gathering & analysis (validation of requirement against the user needs), a Requirement Specification document is created which give out as a input to the next phase of SDLC. In this model once we moved to the next phase then it won’t possible to add or update the requirements.
System & Software Design: Prior to start actual coding, it is mandatory to be aware of what all features we are going to implement & how it would look like? The requirement specifications document created in the first phase is used as the input to this phase & based on this the system design specifications would be prepared. In which all hardware & system requirements would be specified. The system design specifications document prepared in this phase is used as input for the Implementation & Testing phase model.
Implementation & Unit Testing: Upon getting the system design specifications document the actual coding would be started. Before starting the actual coding requirements are divided into the models/units. In the actual coding the initially develop the small programs called units. After implementing all units the integration would be started in the next phase. The developed unit’s model functionality is tested separately in this phase to check whether the unit models are meets the specified requirements & this individual model testing is called as Unit Testing.
Integration & System Testing: In the previous model the system requirements are divided into models & each model is developed & tested separately. In this phase all units are integrated & done the system testing to check whether the all models/units are integrated properly or not & the system as whole doing as mention as per the system requirement document, so we call this phase as the Integration & System Testing. Upon complete testing of software is done then actual Software is successfully send to customer.
Operations & Maintenance: This phase is the never ending phase of the Waterfall Model. The problems are comes in picture after Implementation & Unit Testing phase. The issues found after the implementation phase i.e. not found in the period of the development life cycle. Some of the issues are not catch after testing cycle done so those are implemented in the maintenance phase, so this phase is called as Operations & Maintenance phase.
Advantages and Disadvantages of Waterfall Model:
Advantages of Waterfall Model:
- This is linear simple model to implement & easy to maintain.
- In the SDLC initial phase spent time on reviewing requirements and design which saves the time later.
- Required resources are minimum in this model as compare to other.
- After every phase of the model a document in created which help & simpler to understand & design the system.
- Upon completion of coding, is done to check for implemented code or correctness of system.
- For each stage deadlines can be set which will help to develop the system on decided time frame.
Disadvantages of Waterfall Model:
- The biggest disadvantages of such system is it won’t allow to go back. If the problems in the design phase which creates complication in the implementation phase.
- This model is rigid model. Not flexible & make changes is not possible in the development of system.
- Unable to start the next phase before completing the previous phase so time consuming.
- In the deployment phase all requirements are not covered or all requirements are not cover so adding such requirements may create unsuitable system.
- To make it customer happy such new requirement need to be implemented in new version of system which leads to added cost to system development.