What is Agile Methodology in Software Testing?
Overview
Agile methodology is the approach the recent software development process follows, which is the concurrent iteration of development and testing throughout the phases of the development cycle.
Introduction to Agile Methodology
The agile methodology used in the Software development lifecycle focuses on the parallel execution of development and testing at each stage of the development process. Traditionally, the waterfall model was used, which focused on completing one stage before moving on to the next phase of the lifecycle. Agile methodology is faster and much more practical in resource utilization. Now, you know what is agile methodology, let's look at how is it different from the waterfall model.
Agile Model Vs. Waterfall Model
Agile Model | Waterfall Model |
---|---|
Agile model in SDLC uses a concurrent iteration of the development and testing cycle in each phase | In the waterfall model in SDLC, One phase needs to get completed before moving on to the next phase of the lifecycle |
Agile model is a practical model used nowadays | Waterfall model is used more where there is a requirement for R&D |
Agile model has the optimization of resources | Waterfall model cannot make use of multiple resources concurrently |
Agile model is a faster approach to building a product | Waterfall model is relatively much slower than the agile approach |
New features or bug is handled much faster in agile | For new bug or feature, the entire STLC has to be followed from the beginning, making it a slower approach |
Agile Methodologies
-
Scrum: Scrum is a framework for agile methodology. Scrum uses the concept of sprints. A task that has to be delivered in three months is divided into sprints of 2 weeks. Those smaller durations are called sprints. They make the overall developer cycle easy to manage and deliver.
Scrum has three roles:
- Scrum Master: Scrum master is the team lead responsible for setting up the team, sprinting meetings, and managing the development cycle.
- Product Owner: The product owner is the project manager. The manager is responsible for including client feedback, maintaining the backlog, prioritizing the backlog, and ensuring project delivery.
- Scrum Team: Scrum Master, Product Owner, Business Analyst, Developers, and testers conclude the scrum team. Everyone has a specific role and collaborates to deliver the product to the client.
-
Extreme Programming(XP): Extreme Programming, as the name suggests, has frequent milestones in product delivery where after every few weeks, a version of the product needs to be released to the client. It also is the best framework when clients' requirements keep on changing. , For example,, some clients ask for a product prototype to be delivered with the basic functionalities. Then after a few weeks, a meeting is called where the model is detailed.
-
Crystal Methodology: Crystal methodology is a lightweight framework consisting of three concepts:
- Chartering: Here, all the prerequisites to the development cycle are done. Requirement gathering, creating a team, defining the development and testing cycle and tools. The initial plan of the product delivery is laid down here.
- Cyclic Delivery: The product is delivered in multiple cycles. Functionalities are developed in due release time. The developed functionalities are tested and released. Integrated product is delivered to the users as well.
- Cycle Closure: The development cycle is closed here. Maintenance, deployment, and ensuring the product is live, defect-free, and maintained for any required change.
-
Feature Driven Development(FDD): Feature Driven Development methodology focuses on developing one particular functionality at a time. That is two weeks of the sprint cycle, where the functionality is broken into requirement gathering, designing, development, testing and ultimately released. Once released, the entire team works together to deliver the next functionality.
-
Dynamic Software Development Method(DSDM): Dynamic model focuses on building a prototype with basic requirements and releasing it into the market. Now the feedback from the users would be incorporated into the product, new requirements would get added, and the cycle would continue. So, during the development process, user interaction is there any product keeps on evolving. This framework is used highly in bootstrapped startups where user interaction is involved at the beginning stages of the product cycle itself.
-
Kanban: Kanban is a also highly used agile framework. Kanban doesn't have the concepts of sprints. Kanban uses the board approach where the tasks are written on the board. And the entire team focuses onto to deliver that functionality. Kanban uses smaller cycles to deliver the product represented on the kanban board.
Agile Testing Lifecycle
Let's understand the agile testing lifecycle with an example. For instance, there is a requirement to make an e-commerce site that sells high-quality fabric. First, the requirement of the client is noted. Then, a development plan is laid out on the basis. Suppose six months are allocated for the product to release. 2 weeks of sprints have been divided. The first sprint authentication should be done, and UI should be done. Now development and testing are going parallel in the process. The developer does Gmail authentication, and parallel test cases that should be validated are being done. And in two weeks, the developed part is released. The same methodology is followed throughout the product development period. Below diagram would make more impact in understanding what is agile methodology.
Conclusion
- Here we discussed what is agile methodology. The agile methodology follows development and testing concurrently throughout the software development process.
- Unlike the Waterfall model, where one phase must be completed before the developer moves on to the next.
- Different agile methodologies like scrum, kanban, crystal, DSDM, etc.
- Agile methodology is faster and better handles change requests than traditional forms.