There is an old phrase “A stitch in time saves nine” which is very true when handling bugs. The longer a bug is there in a program, the probability to have additional code written around it is higher. This would require more re-testing which would incur additional cost to fix. The early detection of bugs is necessary to minimize the cost of bug fixing.
Agile strategies for handling bugs
Agile project management approach helps not only in early detection of bugs but a higher quality release is achieved through collaboration. Effective collaboration is important for prioritizing bugs for fixing.
The main emphasis in agile projects is customer satisfaction. As compared to traditional waterfall software development projects; the scope of agile projects is flexible. The software development teams are well aware that the requirements will evolve throughout the project. There is a necessity for continuous customer involvement in agile projects. In agile projects, the bugs are handled on the basis of the impact they have on the application being developed.
There are two strategies for handling bugs in agile projects:
In this strategy, as soon as a bug is found, the criticality of the bug is determined. The criticality of the bug depends upon the impact of the bug on the functionality of the application. Then the bugs are generally classified having following criticality levels:
A bug that prevents the accomplishment of an essential function.
A bug that adversely affects the accomplishment of an essential function and there are no alternative workarounds available.
A bug that causes user inconvenience.
All the other errors.
These criticality levels are not standardized as the impact of the bugs varies by industry. While deciding the priority of fixing bugs, the probability of occurrence is also taken into consideration. A bug with high criticality that occurs very rarely is of low priority for fixing. This is a risk-based software testing approach in which the probability of a bug occurring and the impact of the bug when it occurs are considered. The bugs with high probability and high impact are scheduled first for fixing (refer risk matrix).
As the bugs are detected, to deal with these bugs effectively, “Three Amigos” meetings are set up. These meetings involve a product owner or a business analyst, a developer and a QA tester to review all the bugs. The idea behind these meetings is to get three different viewpoints while setting up the priority of the bugs for fixing. These three viewpoints are
Business – What are the problems we are trying to solve?
Development – How can we solve these problems?
Tester- What could possibly happen as we solve these problems?
The product owner is the representative of the business and explains the risk of the bugs for the business. The programmer highlights the implementation details of the bug fixing initiatives. The tester, on the other hand, presents opinions on what might go wrong. The “Three Amigos” meeting is not limited to three people but it can include other members as well.
There is a school of thought that says that any error found in the development phase is not a bug as the software is still being worked on. The second strategy for agile projects emphasizes on prevention is better than cure approach. The bugs found in the production phase are results of an inefficient development, testing or delivery process.
Continuous Development (CD) is a software development approach which optimizes the delivery process to ship high-quality software to the customers as quickly as possible. In CD, you can get early feedback by releasing a prototype or Minimum Viable Product (MVP). You can get feedback on MVP by tracking usage patterns. You can then measure with every release the user behaviors in terms of what you want to achieve. The baseline MVP product with minimal features required to solve a specific business problem will reduce any wasted development efforts that may lead to more bugs.
With Continuous Development (CD), the development team has to perform Continuous Integration which is a process to check code into a shared repository several times a day. An automated build to detect errors as soon as possible verifies each check-in. The testing is performed continuously as unit tests, component tests and a variety of acceptance and integration tests are run on every check-in.
There are different deployment strategies in CD to achieve zero downtime in agile projects. The two important deployment strategies are:
In this strategy, the next version of your software released into production is exposed to only a small percentage of your user base. As the version passes the environment tests, it is made available for a large number of users.
In this strategy, an identical clone of your production application stack is required. The latest version of your application is set up on the clone. Then the traffic is switched from the current production stack to the new one after testing. This approach is well-suited for cloud resources and virtual infrastructure.
From the above strategies, we could deduce that to bring down the cost of bug fixing you need a higher level of collaboration. For improving the process of documenting bugs and collaborating on bug fixing initiatives, you need the right tool.
Decrease your cost of bugs with ReQtest
ReQtest is a one-stop solution for all your bug tracking initiatives. It helps you in finding and fixing all the bugs during development. It is a cloud-based test management tool that has a dedicated reporting module for gaining insights on all bug tracking initiatives.
Find & Fix bugs early on
With ReQtest, it’s easy for test managers, testers, developers and product owners to collaborate, communicate and coordinate. You can report the bugs as and when you find them. Assign bugs to individual developers for fixing them. You can ensure that no bug reaches the production phase and thereby minimize the cost of bugs.
ReQtest is a perfect tool for creating a virtual agile team. Business analysts, test managers, product owners, developers, and customers can collaborate on different projects using ReQtest. The modules such as requirement management, test management, and bug tracking are equipped to help plan iterations more effectively. ReQtest helps to build rapid prototypes and get instant feedback.
Project level view of bugs
The tool has an “Agile board” that helps to visualize tasks and get updated on activity within the project. You can create bugs as stickies on the “Agile board” and track the status of bugs fixed. You can indicate the priority of bugs with the help of different colors. In addition to this, there is a burndown chart which gives you a project level view of the bugs. You can easily know the total number of bugs in the project. This way you can keep a track of when your bug count goes high.
Report bugs with the help of images/ videos
ReQtest also offers a desktop app for capturing bugs with video or images and upload them as attachments. You can document bugs easily and quickly without the need for any explanation. As a result, both the testers and developers can save a lot of their time required for explanation.
Gain insights into bugs
The reporting module helps to keep track of the progress of testing activity as well as deciding next action steps. You can populate pie and bar charts with the combination of different fields. You can gain insights into the bugs assigned to a developer and so on.
To minimize the cost of bugs, you need to find and fix them early on in the software development cycle. Therefore you require a tool which improves your bug tracking outcomes and also helps you gain a project level view of bugs. ReQtest is one such tool which provides the easiest way to handle bugs. Hence you can decrease the overall cost of the bugs with the help of ReQtest.