If you are a developer or a tester, the word agile is nothing new to you. But if you are new in it and wonder what agile testing is and what it means in practice, you won’t have any questions left after reading this article.
What is Agile Testing?
Agile testing is an inseparable part of agile software development methodology. In agile, testing runs continuously alongside the development itself. It is a mutual effort of developers, testers, project managers, and customers to tailor the product to customer’s needs.
Unlike waterfall methodology, where testing is a separate stage that occurs after the development stage, agile testing methodology implies that testing begins at the very start of the project and goes hand in hand with development, providing an ongoing feedback into the process of development.
The testers are no longer a separate unit. They are part of the agile software development team and work closely with developers throughout the agile software development lifecycle, which allows for:
- Saving time and money
- Less documentation
- Regular feedback
- Identifying problems in advance
So, what are the reasons you choose agile process or not? The best way to answer is the pros and cons list.
Advantages of Agile Methodology
- Flexibility
- Productivity
- Transparency
- High quality
- Regular adaptation to changing circumstances
- Greater client involvement and satisfaction
Disadvantages of Agile Methodology
- Not suitable for any project
- Challenging to implement when clients follow rigid processes or methods
- Challenging to estimate the effort needed at the beginning of the software development lifecycle
- The lack of emphasis on necessary design and documentation
- Only senior developers can make the kind of decisions required during the development process
If you choose to embrace agile testing, you will also need to know its main principles.
Agile Testing Principles
- Testing is not a separate phase but a constant process
- Testing improves the product through constant feedback
- Testing can involve not only testers but developers too
- Testing goes according to a reusable checklist, not a detailed documentation
- Testing occurs in self-organized teams
All that is to:
- Welcome the changing requirements even late in testing
- Deliver a high-quality software product in a short timescale
- Satisfy the client with fast delivery of a high-quality product
But before sticking to any of those, you will have to choose the agile testing framework that will work best within your processes and testing methods. The most used ones are Scrum and Kanban.
Scrum and Kanban: What is the Difference?
Scrum is an approach when a universal team of specialists works on each project. It also implies a product owner and a scrum master:
- Product owner connects the team with the customer and monitors the development of the project.
- Scrum master helps the product owner to organize the business process: holds general meetings, solves everyday problems, motivates the team and monitors compliance with the scrum approach.
Scrum approach divides the workflow into equal sprints. Those are the periods from a week to a month, depending on the project and the team. After the sprint is over, completed tasks are pushed to production, others — transferred to another sprint.
The tasks that are done during the sprint usually do not change: what was set for implementation at the start of the sprint should be done at all costs by the end of the sprint. Sprints are very easy to compare, which allows managing work efficiency.
Kanban approach is about balancing the work of various specialists within the team and avoiding the situation when designers work for days and developers complain about the lack of new tasks.
The whole team is one unit in Kanban. No product owner or a scrum-master here. The business process is not divided into universal sprints but into the stages of performing specific tasks:
- To do
- Development
- Testing
- Deployment
The main indicator of effectiveness in Kanban is the average time taken to complete the task. The task passes quickly — the team works productively and harmoniously. The task drags on — you have to think at what stage and why there were delays and whose work needs to be optimized.
Kanban gives you more flexibility, which means the frequency of changing priorities. If the developer uploads the completed task and receives feedback that it does not work as intended, he gets new requirements to work on. These new tasks rise up in priority and the programmer performs them first.
To form a sprint in Scrum, the tasks need to be evaluated in story points or hours. Without such assessment, it will be impossible to form a sprint as you need to know whether you will manage to complete the tasks in a particular time. After that time has passed, you get the statistics on hours or story points the team was able to do in a sprint. It allows measuring team performance velocity in one sprint. Knowing this, the Scrum manager can predict where the team will be in the next sprint.
Kanban does not require evaluation. The concept of “teamwork speed” does not exist: only the average time needed to complete a unit of work is taken into account.
So, in Scrum, the goal is to finish the sprint, in Kanban — the task.
To keep everything in order and under control, both Scrum and Kanban use boards that visualize the tasks and the stage they are at.
The task on the boards are divided by the principle:
- To do
- In progress
- Done
The only difference is that Scrum board divides tasks on sprints, and all the tasks that are in a particular sprint have to be “Done” when this Sprint is over.
Shall we recap now?
For you to see how that works in practice, let’s see some examples.
Agile Testing in QAwerk
Being a software testing company, we can show our own examples of how agile methodology impacts a particular project workflow.
Unfold
Unfold is an iOS and Android app for creating stories with photos and videos using different templates.
In this project, development is conducted on the client side. The work is structured in such a way that version updates of both iOS and Android come out constantly: minor edits, design changes, adding subscription functionality, adding new collections of templates that are often added in collaboration with stars (Miley Cyrus), movies (The Sun is Also a Star), major events (Billboard Music Awards), clothing brands (Tommy Hilfiger).
The client does not share development plans and documentation with us. But here is what agile testing process allows us to do when working on this project:
- We are always ready to test the new version on all kinds of devices that we have
- We communicate with developers, conduct frequent regressions of bugs that will be fixed in the current version until it is enhanced to the level that it can go into release
- We also work with user reviews in app stores (Google, Apple) and gather users feedback to reproduce bugs, start reports, and communicate with developers
- Once we worked as a team on the weekend to help with testing a major update – adding subscriptions to the app
Bottom Line
No matter what agile testing methodology is used, they both allow early detection of bugs, which leads to reduces cost of fixing them. It is also a customer-centric approach that allows providing a high-quality product in a relatively short time.