Software testing is the process used to assess the quality of computer software.
Testing is a process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies specified requirements.
Software testing is divided into two parts :
1) Functional testing
2) Non Functional testing
Software Development Life Cycle Stages (SDLC) :
Software development is also known as information system development, SDLC is a systematic approach to problem solving .
It has multiple steps
* Business Requirement gathering
* Feasibility Analysis
* Functional Requirement Gathering and Analysis
* Release & Maintenance
Software Development Models:
- a) Water fall Model:
The above water fall model is also called as linear _sequential life cycle model, this model is followed only when all the requirement are clear.
In this model each phase must be completed in its entirety before the next phase begin.
Advantages of waterfall model:
* This model is simple and easy to understand and use.
* It is easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process.
* Waterfall model works well for smaller projects where requirements are very well understood.
Disadvantages of waterfall model:
* Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage.
* High amounts of risk and uncertainty.
* Not suitable for the projects where requirements are at a moderate to high risk of changing.
The Prototype model serves to clarify the requirements ,which are not clear , hence reduce the ambiguity and it also maintains perfect communication between the developers and the users .
Advantages of prototype model:
- Reduces development time
- Reduces development cost
- Results in higher user satisfaction
Disadvantages of prototype model:
- Documenting the requirement of the system is avoided
- Management is required
- Maintenance is very expensive as its is a long term process
- c) Incremental model:
Incremental model is a combination of one or more waterfall in incremental model the whole requirements are divided into various builds.in incremental model
Advantages of incremental model:
- Generates working software quickly and early during the software life cycle
- More flexible
- Easier to test and debug during a smaller iteration
Disadvantages of incremental model:
Problem may a raise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle .
RAD model is Rapid Application Development model. It is a type of incremental model. In RAD Model, development should be done in specified time frame In RAD model the components or functions are developed in parallel as if they were mini projects. The developments are time boxed, delivered and then assembled into a working prototype. RAD Model is suitable for the small project where all the requirements are gathered before starting development of the project and no any concrete plan required Development starts as soon as requirement gathered and delivered initial working prototype to the client to get the feedback.
Business Modeling: In Business modeling phase of development business model should be designed based on total information available from different business activities. Before start the development there should be a complete picture of business process functionality.
Data Modeling: All the required and necessary data based on business analysis are identified in data modeling phase, this is done only once the business modeling phase over and all the business analysis completed.
Process Modeling: All the data identified in data modeling phase are planned to process or implement the identified data to achieve the business functionality flow. In this phase all the data modification process is defined.
Application Modeling: With help of automation tools all data implemented and processed to work as real time. Application id developed and coding completed.
Testing and turnover: All the testing activates are performed to test the developed application.
Advantages of RAD model:
- Fast application development and delivery.
- Increases re-usability of components
- Quick initial reviews occur
- Encourages customer feedback
- Very flexible if any changes required.
- Integration from very beginning solves a lot of integration issues.
Disadvantages of RAD model:
- Depends on strong team and individual performances for identifying business requirements.
- Requires highly skilled developers/designers.
- High dependency on modeling skills
- Inapplicable to cheaper projects as cost of modeling and automated code generation is very high.
- Proper modularization of project required.