Introduction
As the most important work output of a test engineer, Bug Reports (or defect reports, issue tickets) are the direct manifestation of a test engineer’s work results and the output that best demonstrates their value and capabilities. However, project stakeholders and even test engineers themselves often underestimate the importance of Bug Reports. The content of bug reports, their submission methods, and handling processes significantly impact project progress, operational efficiency, and even team morale.
There has been relatively little industry discussion and summary regarding Bug Reports. In this article, based on the author’s years of professional observations, we hope to provide some summaries and suggestions on the elements of Bug reports and how professional test engineers should handle them. We aim to spark discussion, and welcome corrections for any oversights.
Main contents include:
- What is a Bug, and what is a Bug Report
- What information do development or project teams actually want to get from Bug reports
- Common mistakes made by testing novices when submitting bugs
- Bug reporting and storytelling
- How professional test engineers submit high-quality bugs
What is a Bug? The History of Bugs
The word “Bug” in English originally meant insect or beetle, and is now used in the IT industry to refer to defects in software. This history is quite interesting:
As early as 1878, the great inventor Edison used the word “bug” in a letter to a friend to refer to faults (or potential causes of faults) in electronic circuits. However, its true entry into computer industry history came on September 9, 1947.
At that time, the first programmers were developing the Mark II computer at Harvard University. [Grace Murray Hopper][1] found a moth near a relay contact while investigating a problem, killed it with her logbook, and marked it as “the first actual case of finding a bug.” Since then, the word “bug” has been used to refer to defects or faults in computers. Correspondingly, “debug” is used to refer to the act of removing faults.
The image below is the first actual bug preserved in the Smithsonian Museum:
Among the first programmers in history, the only woman was the “mother of the bug”:
In any case, the word “Bug” now refers to defects or faults in software or programs. However, for project teams, it’s recommended not to simply define Bug as a fault
, as the word fault
has a negative connotation. Viewing Bugs as defects
or issues
, emphasizing room for improvement has a more positive guiding effect on project teams.
What is a Bug Report?
The word “report” in English can be both a verb and a noun. So Bug report
can refer to both the action of finding and reporting a problem, and the report content submitted after finding a problem. Here we generally view it as a problem report (noun), i.e., an issue ticket
, so what exactly is an issue ticket
?
Testing guru Cem Kaner once pointed out:
The purpose of testing is not to find bugs. The purpose is to get bugs fixed.
This view actually points out a misconception many testers have - thinking that testing work is just about finding as many bugs as possible. In fact, for the team, no matter how many bugs are found, they ultimately need to be resolved to demonstrate the value of finding these bugs.
From discovery to resolution, the issue ticket
is the main medium, being both the output of testers’ work and the input for developers to solve problems, its importance is self-evident.
Additionally, while there are various ways to inform developers of discovered problems - verbal notification, actual demonstration, email, IM chat, etc., can all serve the purpose of notification. However, in modern software development processes, there are usually dedicated systems for defect tracking, such as JIRA, Zentao, Bugfree, QC (HP Quality Center), etc., which can handle defect submission and tracking. Through these specialized systems, not only can they serve the purpose of recording and feedback, but they can also better reflect the overall quality status and development progress of the project through statistics and analysis.
Therefore:
An
issue ticket
is the output after testers discover defects during testing activitiesAn
issue ticket
is the input for developers to resolve defectsAn
issue ticket
is the communication medium between testers and developers regarding bugsAn
issue ticket
is also an indicator for project teams to evaluate current development status and product maturity.
The Role and Importance of Issue Tickets
Many test engineers have probably experienced the following feedback or complaints after submitting issue tickets:
What exactly are you trying to say with this issue ticket?
I can’t reproduce this problem on my end
Why do you consider this a defect?
Normal people don’t use software the way described in the issue ticket, only someone with mental issues would use it that way
This is indeed a problem, but the cost of fixing it is too high, and there are alternative ways to work around it
You might think this is a problem, but actual users won’t find it problematic
While what you submitted is indeed an issue, it has minimal impact on users. Why don’t we see many issue tickets for those parts that have a greater impact on users?
……
Testers certainly don’t want to receive such feedback. But these issues also indirectly reflect that when it comes to bugs, developers or project teams actually focus more on how to resolve bugs (including judging whether they need to be resolved), and they hope to get the following information from issue tickets
:
What problem was discovered?
- What is the problem phenomenon?
- Does it always occur?
- What was the background and context when discovering this problem?
- Besides the visible phenomenon, what else happened in the system?
- Are there screenshots, logs, screen recordings?
Why is it a problem?
- What impact does this problem have?
- What happens if it’s not resolved?
- What’s the probability of occurrence?
- Is it duplicated with other issues?
What operations were performed that exposed this problem?
- What was the input?
- What test path and test data were used?
- What about the test environment and software version?
Therefore, as testers, we shouldn’t view issue tickets
as simple problem records. They are important communication media between testing and development. Good issue tickets can greatly reduce communication costs between both parties, both greatly reducing developers’ workload in solving problems and reducing testers’ workload in clarifying and re-verifying. For the project, the quality of issue ticket
submission affects the team’s productivity and delivery speed, which cannot be underestimated.
Elements of Issue Tickets
Understanding the role of issue tickets
, the elements that should be included in them become quite clear, generally including the following aspects:
Title for preliminary judgment
The title should clearly summarize the problem and the module where it occurs, making it convenient for developers to make an initial judgment
Context and necessary related information
The contextual background when the problem occurs, related information such as software version, test environment, configuration status, resource status, etc.
Accurate and reasonable detailed description
Detailed description of the steps to discover the problem, operation expectations, actual conditions that occurred. Problem occurrence frequency, test inputs, data, files used, etc.
Supplementary information to help resolve the problem
Supplementary information that can help developers speed up problem resolution, such as screenshots, screen recordings, operation logs, system logs, etc.
Auxiliary information for project decision-making
As the first judge of bugs, testers should provide suggestions on the severity of the problem and resolution priority. Initially assign developers to resolve the problem, and provide related information identifiers for statistics and tracking.
Common Mistakes by Testing Novices
Combining the elements of issue tickets
, we can initially summarize some common mistakes made by testing novices or non-professional testers when submitting bugs:
Unclear titles
Titles that are too simple make it difficult to make preliminary judgments about the problem. For example, simply writing “system crash” is too vague, and overly simple titles can easily become similar, causing inconvenience for focused review and evaluation of issues.
Or titles that are too complex. Long titles can lead to reading fatigue and lack focus. For example, there’s no need to write detailed operation steps in the title.
Unrealistic, deviating from requirement scenarios
Sometimes testing novices make assumptions based on personal preferences and raise issues. “I think” and “it feels not good” are high-frequency words in such novice issues.
Not actually problems
Testing novices often submit issue tickets that aren’t actually bugs due to misunderstandings of system implementation principles or lack of skill level.
Also, problems caused by incorrect testing methods or environment configuration by testing novices themselves.
Insufficient description information
Typically, through the description information in the issue ticket, developers cannot confirm the problem phenomenon or reproduce it themselves. Testing novices often think their job is done once they find a problem, without providing sufficient information to developers, such as screenshots and logs.
Too much irrelevant information, messy formatting
Sometimes novice issue tickets contain too much redundant noisy information, making it difficult to see the key points. For example, pasting tens of thousands of lines of logs into the issue ticket indiscriminately.
Or completely lacking formatting, with a lot of information mixed together messily, making it extremely difficult to read.
Too many issues
Issue tickets should be focused, but sometimes testing novices include many different issues in the same ticket. This is very unfavorable for issue tracking and focusing.
Only looking at phenomena without considering essence
Sometimes simple problem phenomena are often manifestations or clues of serious problems. Novices often overlook important risks, ignoring problems hidden beneath seemingly minor traces, easily missing bugs lurking beneath phenomena. For example, some unexpected prompt messages are often manifestations of backend calculation and statistical accuracy bugs.
Bug Reporting and Storytelling
Coming back to the act of submitting bugs
, essentially, this is a communication process. The issue ticket
carries the role of this communication medium. Through the issue ticket
, testers describe the problems they see and discover during testing, and developers understand the corresponding information by reading the issue ticket
and resolve the problems accordingly.
So submitting bugs
is actually like writing a short article or telling a story, where testers are the authors and developers are the readers.
When we submit issue tickets
, it’s actually a form of writing. The 5W requirements for writing also apply:
What - What exactly is the problem?
Why - Why raise this issue? Why is it a problem?
Who - Who is the subject of the problem? Who are the related parties?
Where - Where did the problem occur?
When - When and at what frequency does it occur?
When submitting bugs, thinking about these 5Ws, combined with the issue ticket elements mentioned above, generally helps avoid many mistakes that testing novices commonly make when submitting issue tickets.
The Art of Bug Reporting
Above we discussed the elements of issue tickets and some details to note when submitting bugs, but why do we say that submitting bugs is actually an artistic work?
Let’s look at some examples of issue tickets:
Suppose there’s a product management system where users experience a crash when adding new products under a specific product category (fruits)
Issue Ticket Example 1:
|
|
This issue ticket basically describes the problem phenomenon through the provided screenshot. However, for developers, there’s too little information, and they likely won’t be able to reproduce the problem immediately (fruits category). The information contained in the issue ticket is too simple, making it an extremely poor issue ticket example.
Issue Ticket Example 2:
|
|
This issue ticket is a common submission format by many testing novices, containing very detailed operation steps and related auxiliary information. But this is also a very poor issue ticket. First, such step descriptions are unnecessary - developers don’t need to be told about basic operations like opening the app, logging in, and submitting in the issue ticket. Second, while there’s a lot of auxiliary information, it’s mostly irrelevant to the problem cause and doesn’t help developers locate the issue, instead introducing some distracting information. Such issue tickets fail to demonstrate the professional value of testers and don’t help with quick problem resolution.
Issue Ticket Example 3:
|
|
This issue ticket can be considered a relatively qualified one. It clearly indicates the scenario where the problem occurs and has preliminarily eliminated some irrelevant information. Developers can focus on product creation under the fruits category for problem analysis. It also points out the problem’s impact on the software and resolution priority suggestions, making the project team clearly aware of the problem’s impact.
Issue Ticket Example 4:
|
|
This issue ticket goes further than the previous one, preliminarily analyzing the problem cause - during new operations, a key field information is missing, causing the crash. Developers can now very clearly proceed with fixing the problem.
Issue Ticket Example 5:
|
|
This issue ticket, building on the previous example, demonstrates the tester’s professional capability by reasoning and verifying that the import function with similar logic might have the same issue based on their experience.
Through this simple case above, we can see that different ways of submitting issue tickets can have very different effects on problem resolution.
Too little information makes it difficult for developers to determine the root cause of the bug, multiplying the debugging workload.
Too much information causes developers to spend extra effort analyzing redundant information, even interfering with debugging and resolution direction, similarly causing significant waste of work effort.
The more clearly and accurately the root cause of the problem is reflected, the more efficiently developers can solve the problem.
The tester’s experience and judgment reasoning ability can be well demonstrated through issue tickets.
So why do we say submitting bugs is an artistic work? Issue tickets should neither be too simple nor too complex, and should be able to convey information as accurately and comprehensively as possible to developers - this is truly an artistic endeavor.
Conclusion
In summary, submitting bugs is a very important activity in the software development process, and the quality of issue tickets
directly affects team efficiency and output. As professional testers, mastering the art of submitting bugs means that issue tickets
are not simple problem records, but rather communication bridges between testing and development, supporting developers in efficiently fixing bugs.
Welcome to follow and comment, you can also follow the WeChat public account: 秋草说测试