This Friday session was about Software Testing Processes & Methodologies. This was my first session as part of Hubfly Friday Learning and I was happy to share few key things on Software Testing to our team.I briefed up through various software development models that are most commonly used in the industry.
4 Major Software Development Models
There are various Software development models or methodologies. The most used ones are here, with a brief explanation and its pros and cons.
1. Waterfall model
2. Spiral model
3. V Model
4. Agile Model
Waterfall model is simple and easy to manage due to the rigidity of the model each phase has specific deliverables and a review process. In this model, phases are processed and completed one at a time. Phases do not overlap and hence the name. Waterfall model works well for smaller projects where requirements are very well understood.
However, the major disadvantage with this model is that 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.
The Spiral Model involves High amount of risk analysis hence, risk is better handled. This is also good for large and mission-critical projects. Also, it has strong approval and documentation control. Unlike Waterfall model, additional Functionality can be added at a later date. But the disadvantage is that risk analysis requires high expertise. Also, it doesn’t suit for smaller projects.
The V model is also simple and easy to use. Testing activities like planning, test designing happens well before coding. This saves a lot of time. Hence higher chance of success over the waterfall model. Also, it helps in proactive defect tracking by finding it at an early stage. This model works well for small projects where requirements are easily understood. The model however is very rigid and least flexible.
This is by far the most used model. This model ensures customer satisfaction by rapid, continuous delivery of software. People and interactions are emphasized rather than process and tools. Customers, developers and testers constantly interact with each other. Working software is delivered frequently (weeks rather than months). Face-to-face conversation is the best form of communication. Close, daily cooperation between business people and developers.
Even late changes in requirements are welcomed. However, the project can easily get taken off track if the customer representative is not clear what final outcome that they want. Also, there is lack of emphasis on necessary designing and documentation.