SDLC Methodologies in Software Testing

SDLC Methodologies in Software Testing

The Software Development Life Cycle (SDLC) provides a systematic process for building and delivering software applications from inception to completion.

There are a number of different SDLC methodologies that can be used to deliver projects and in this post, we will give an overview of the different SDLC models out there and their advantages and disadvantages.

1. Waterfall Model

Waterfall is the oldest and most straightforward of the structured SDLC methodologies. There are strict phases and each phase needs to be completed first before going to the next phase. There is no going back.

Each phase relies on information from the previous stage and has its own project plan.

Waterfall is easy to understand and simple to manage. However, it is usually prone to delays as each phase needs to be reviewed and fully signed off before the next phase can begin.

Also, since there is little room for revisions once a stage is completed, problems can’t be fixed until you get to the maintenance stage.

This model works best when all requirements are known and flexibility is not required and the project has a fixed timeline.

One disadvantage of waterfall model is that all requirements need to be known before development starts. Therefore if a requirement is wrong or missing, it won’t become apparent until the late stages of the life cycle.

2. V Model

V Model which is also known as the Verification and Validation model, was the next logical step from the Waterfall model with the aim of introducing testing at each stage of development rather than at the end of the project.

Like Waterfall, each stage begins only after the previous one has ended. This model is useful when there are no unknown requirements, as it’s still difficult to go back and make changes.

The advantage of V Model is that each stage has a corresponding testing activity which helps to identify missing requirements, and incorrect design early in the life cycle.

The disadvantage is that the each stage has to wait for the previous stage to be finalized and signed off.

3. Iterative Model

With the Iterative model, software is built in small chunks, each time adding more functionality. Unlike the waterfall model which requires fully specified requirements before starting the implementation, with the Iterative model, you implement a small set of software requirements, then test, evaluate and refine the requirements.

With each iteration, new requirements are added and a new version of the software is produced. This process is repeated until the application is fully developed and all requirements implemented.

One advantage of Iterative model over the other SDLC methodologies is that we get a working version of the application early in the process and so it less expensive to implement changes.

One disadvantage is that resources can quickly be eaten up by repeating the process again and again.

4. Spiral Model

One of the most flexible SDLC methodologies, the Spiral model takes ideas from the Iterative model and its repetition but also combined with the structured and systematic development of the waterfall model with a heavy emphasis on risk analysis.

The project passes through four phases (identification, design, build, evaluation and risk analysis) over and over in a “spiral” until completed, allowing for multiple rounds of refinement.

It allows for incremental releases of the product, or incremental refinement through each iteration around the spiral.

This model allows for the building of a highly customized product, and user feedback can be incorporated from early on in the project. But the risk you run is creating a never-ending spiral for a project that goes on and on.

5. Agile Model

The agile model is a combination of both iterative and incremental model by breaking a product into components where on each cycle or iteration, a working model of a component is delivered.

The model produces ongoing releases (iterative), each time adding small changes to the previous release (iterative). During each iteration, as the product is being built, it is also tested to ensure that at the end of the iteration the product is shippable.

The Agile model emphasizes collaboration, as the customers, developers and testers work together throughout the project.

An advantage of the Agile model is that it quickly delivers a working product and is considered a very realistic development approach.

One disadvantage of this model is that because it depends heavily on customer interaction, the project can head the wrong way if the customer is not clear about the requirements or the direction he or she wants to go.

要查看或添加评论,请登录

Md. Taukir Hasan的更多文章

  • Highly Efficient Product Organizations

    Highly Efficient Product Organizations

    The Business Impact Of Investing In Product Management, that provides a deep analysis of the relationship between…

  • The Many Hats of Product Managers

    The Many Hats of Product Managers

    Working on a product management solution allows you to interact with a large number of talented product managers. We've…

  • Ultimate Testing Checklist

    Ultimate Testing Checklist

    Testing is the most crucial part in every mechanism either in development of website or any tool. For a long-term…

  • Agile Terminologies and Definitions – Complete Glossary

    Agile Terminologies and Definitions – Complete Glossary

    Acceptance Testing Formal testing conducted to determine whether or not a system satisfies its acceptance criteria and…

  • Difference Between Scrum, Kanban and XP

    Difference Between Scrum, Kanban and XP

    In Agile Software Development Methodology, software is developed incrementally and iteratively and delivered bit by…

  • Definitive Guide to Writing Good Agile User Stories

    Definitive Guide to Writing Good Agile User Stories

    One of the first steps in delivering a quality product, is writing good user stories. A user story is a place to…

  • Pros and Cons of Test Driven Development (TDD)

    Pros and Cons of Test Driven Development (TDD)

    Test Driven Development is a software development methodology whereby you write and run a set of tests before you write…

  • BDD Guidelines and Best Practices

    BDD Guidelines and Best Practices

    BDD Introduction BDD (Behavior Driven Development) is a methodology for developing software through continuous…

  • Roles and Responsibilities of a Product Owner in Agile

    Roles and Responsibilities of a Product Owner in Agile

    Product Owner Roles and Responsibilities Product Owner is one of the main roles in Agile projects. But what does a…

  • 10 Traits of an Agile Self Organizing Team

    10 Traits of an Agile Self Organizing Team

    One of the key important aspects of a successful Agile setup is having a self-organizing team. This is also mentioned…

社区洞察

其他会员也浏览了