So, what is Bug Fixing?
When the expected and actual behavior does not match, a scenario concerning software testing, it is due to a technical glitch, a.k.a bug. Once you spot, bug fixing should be carried out as soon as possible. Not doing so immediately, will lead to inaccurate status updates and estimates. Above all, for App maintenance, bug fixing is necessary.
“If debugging is the process of removing bugs, then programming must be the process of putting them in.”
Edsger Dijkstra, A pioneer in Computer Science
Did you know that unfixed bugs hide other bugs? As a result, the bug discovered later can be more stringent. Here is a bug cycle (technically known as Defect Life Cycle) that differs from organization to organization.
On detection of defect/bug, it falls in a ‘New’ state. Next, validations and testing are conducted on this defect in the following stages of the Bug Life Cycle.
Newly formed defect is assigned to the development team for working on the defect. Generally assigned by the project lead or the manager of the testing team to a developer.
At this stage, the defect can be directly assigned to the developer who owns the particular functionality. OR It needs to be approval of the developer lead before it falls in the hands of the developer.
The developer begins the process of analyzing the defect. If the developer feels that the defect is not relevant then it may transfer to any of the below four states. These are Duplicate, Deferred, Rejected or Not a Bug, based upon the specific reason.
We will discuss them towards the end.
If a developer finishes the task of fixing a defect by making the required changes then he can mark the status of the defect as ‘Fixed’.
5) Pending Test:
After fixing the bug, it is assigned to a tester for retesting the defect at their end.
The tester, at this stage, verifies if the developer fixed the bug accurately and as per requirement.
If the issue remains, the developer will have to look at it again. And the status of the defect changes to ‘Reopened’.
If the tester finds no issue after retesting and knows that defect has been fixed accurately, the status of the bugs gets changed to ‘Verified’.
When the bug doesn’t exist any longer then the tester changes the status of the defect to ‘Closed’.
In case the developer finds the defect similar to any other defect or if the concept of the defect matches any other defect then the state of the defect is changed to ‘Duplicate’ by the developer.
If the developer doesn’t consider the bug to be a genuine issue, it is thus ‘Rejected’ by the developer.
If the developer feels that the defect is not of priority and it can get fixed in the next releases or so in such a case, he can mark the status of the defect as ‘Deferred’.
- Not a Bug:
If the bug doesn’t impact the functionality of the application then the status is marked ‘Not a Bug’.
Bug Reporting- Tips
Finding a defect is work half-done and another important skill you should have as a tester is to be able to write a good bug report. A bug tracking software should have many compulsory fields so that the tester can give a descriptive account of the bug encountered.
1. Definitive Title-
Clear and descriptive, at a mere glance.
You have to remain clear and to the point. Because the person you are explaining to hasn’t seen the bug so no assumptions are allowed. It is a skill that develops over the time.
3. Result Expectations
You need to explain what is the expected result. This eliminates misunderstanding, and the developer will have a clear idea of the issue.
4. Project and Version Details
A tester will handle many projects at the same time. It may happen that they will share a database. Make sure that your bug listing is in the correct section & version within the project. If the version is wrong, developers may end up wasting their time.
5. Defect- Type & Severity
Categorizing bugs based on type and priority helps with decision making.
6. Stating Steps to Reproduce-
This is the most important of all.
A step by step account of how did you find the defect has to be presented. Use software tools to catch keystrokes, or record screen or videos while testing. Take notes on the go.
7. Visual Attachment-
A visual aid forms supporting materials to those who have to fix the defects. Along with screenshots, it can also include audio and video files.
This also helps in saving precious time.
8. Tags & Links
Descriptive tags enable to filter the database and find groups of related bugs.
Usually, lead developers or management to assign bugs but on some occasions, you might receive instructions about who to assign to. Leaving an unassigned or wrongly assigned bugs can be risky.
Since we are talking about bug fixing and reporting we have to discuss the comprehensive role of a QA (Also called testers & bug reporters).
1. The QA sits right in the middle of the software testing matrix. He/She works with and among designers, developers, product managers, clients, and users.
2. QA is a middleman who is in touch with alpha & best testers and customers.
3. They are responsible to convey that the code requires a change or fixing to web developers.
4. Besides this, they also gauge whether the design is intuitive enough for the end-users. They ensure the alignment of the tasks.
To sum it up, the importance of bug fixing in mobile and web apps is eminent in App maintenance and the overall flow of the app. The bug cycle, and then to write a bug fixing report are relevant in their own nature.