A software bug occurs when an application or program doesn’t work the way it is designed to function. Most errors are faults or mistakes made by system architects, designers or developers. Testing teams use bug tracking to monitor and report on errors that occur as an application is developed and tested. “A major component of a bug tracking system is a database that records facts about known bugs,” says Wikipedia. “Facts may include the time a bug was reported, its severity, the erroneous program behavior and details on how to reproduce the bug; as well as the identity of the person who reported it and any programmers who may be fixing it.”2 During its lifetime, a single defect may go through several stages or states. They include:
Bugs are managed based on priority and severity. Severity levels help to identify the relative impact of a problem on a product release. These classifications may vary in number, but they generally include some form of the following:
In most cases, states and severity levels are monitored in a bug tracking database. A good tracking platform also ties into largersoftware developmentand management systems: the better to assess error status and the potential impact on overall production and timelines. It is estimated that software developers make 100 to 150 errors for every thousand lines of code.4According to a report by the Consortium for IT Software Quality (CISQ): “Even if only a small fraction — say 10 percent — of these errors are serious, then a relatively small application of 20,000 lines of code will have roughly 200 serious coding errors."5 Software testing is essential for isolating and mitigating errors. A good QA process can uncover hundreds or even thousands of defects, and testing teams need to manage all of them. Integrating bug tracking into the testing workflow improves efficiency by helping testers prioritize, monitor and report on the status of each error. “Defect tracking helps ensure that bugs found in the system actually get fixed,” says Agile consultant, Yvette Francino. “Tracking tools not only provide a way to ensure follow-through but also provide valuable metrics. Depending on the tool being used, the team can tie defects to changed code, tests or other data that will allow for traceability or analysis on defect trends. If a certain module is riddled with defects, it may be time to review and rewrite that module."6 Ideally, testing should be done as soon as possible — when bugs are easier and far less costly to fix. An earlier study by IBM found that defects found post-production or after release can cost 15 times more to fix compared to errors resolved early in development. Many teams are now using a methodology known ascontinuous testing. In this case, quality testing and feedback are conducted at all stages of development, from design and coding to deployment. Modern technologies like artificial intelligence (AI) too can aid the testing process by detecting and analyzing bugs early in the lifecycle. See how to get increasingly complicated applications to market faster, with fewer defects and at lower cost. Quality control is critical for developing robust applications. Software testing, change management and bug tracking tools allow teams to uncover defects, measure their scope and impact — and resolve them. In the Harvard Business Review, Nicholas Bowen outlines a process for managing defects. The first step is to classify and prioritize: “Generally, teams will prioritize two types of bugs: those that cause a system to crash and those that are less severe but could be pervasive....Next, decide your target response time for each level of severity. If the quality management system is new, then the initial focus should be on fixing the most severe bugs within hours or days. As you use your system, you can gather data on two key metrics, incoming bug rates and the productivity of the bug fixers, and adjust your targets as needed.” He says organizations also need to create a system where defects and the time required to resolve them can be reviewed at all levels, from the CEO on down.7 A good bug tracking system can assist this process by providing a single workflow for defect monitoring, reporting and lifecycle traceability. It should further link with other management systems for shared visibility and feedback both within software development and the larger organization.IBM Rational ClearQuest, for example, provides a centralized platform for error tracking and reporting. It integrates with other IBM development and change management systems, and helps improve communication and collaboration among developers, operations and broader teams. As well, look for testing and tracking systems that use AI to detect errors early in the development process. It can optimize the number and types of tests that teams run, automate the testing process and use AI to analyze past defects and prevent them in the future. |
|