Bug in Software Testing

In this chapter, we will learn about defect/bug in software testing and why it occurs, basic terminology of a defect, and bug tracking tool.

What is a bug in software testing?

The Bug is the informal name of defects, which means that software or application is not working as per the requirement.

In software testing, a software bug can also be issue, error, fault, or failure. The bug occurred when developers made any mistake or error while developing the product.

Bug in Software Testing

While testing the application or executing the test cases, the test engineer may not get the expected result as per the requirement. And the bug had various names in different companies such as error, issues, problem, fault, and mistake, etc.

Basic terminology of defect

Let see the different terminology of defect:

  • Defect
  • Bug
  • Error
  • Issue
  • Mistakev
  • Failurev
TermsDescriptionRaised by
DefectWhen the application is not working as per the requirement.Test Engineer
BugInformal name of defectTest Engineer
ErrorProblem in code leads to the errors.Developer, Automation Test Engineer
IssueWhen the application is not meeting the business requirement.Customer
MistakeProblem in the document is known as a mistake.--
FailureLots of defect leads to failure of the software.--

Why defect/bug occur?

In software testing, the bug can occur for the following reasons:

  • Wrong coding
  • Missing coding
  • Extra coding

Wrong coding

Wrong coding means improper implementation.

For example: Suppose if we take the Gmail application where we click on the "Inbox" link, and it navigates to the "Draft" page, this is happening because of the wrong coding which is done by the developer, that's why it is a bug.

Missing coding

Here, missing coding means that the developer may not have developed the code only for that particular feature.

For example: if we take the above example and open the inbox link, we see that it is not there only, which means the feature is not developed only.

Extra coding

Here, extra coding means that the developers develop the extra features, which are not required according to the client's requirements.

For example:

Suppose we have one application form wherein the Name field, the First name, and Last name textbox are needed to develop according to the client's requirement.

But, the developers also develop the "Middle name" textbox, which is not needed according to the client's requirements as we can see in the below image:

Bug in Software Testing

If we develop an extra feature that is not needed in the requirement, it leads to unnecessary extra effort. And it might also happen that adding up the extra feature affects the other elements too.

Bug tracking tool

We have various types of bug tracking tools available in software testing that helps us to track the bug, which is related to the software or the application.

Some of the most commonly used bug tracking tools are as follows:

  • Jira
  • Bugzilla
  • Redmine
  • Mantis
  • Backlog

Jira

Jira is one of the most important bug tracking tools. Jira is an open-source tool that is used for bug tracking, project management, and issue tracking in manual testing.

Jira includes different features like reporting, recording, and workflow. In Jira, we can track all kinds of bugs and issues, which are related to the software and generated by the test engineer.

To get the complete details about Jira tool, refer to the below link:

https://www.javatpoint.com/jira-tutorial

Bugzilla

Bugzilla is another important bug tracking tool, which is most widely used by many organizations to track the bugs.

Bugzilla is an open-source tool, which is used to help the customer, and the client to maintain the track of the bugs.

It is also used as a test management tool because, in this, we can easily link other test case management tools such as ALM, quality Centre, etc.

Bugzilla supports various operating systems such as Windows, Linux, and Mac.

Bugzilla has some features which help us to report the bug easily:

  • A bug can be list in multiple formats
  • Email notification controlled by user preferences.
  • Advanced searching capabilities
  • Excellent security
  • Time tracking

Redmine

It is an open-source tool which is used to track the issues and web-based project management tool. Redmine tool is written in Ruby programing language and also compatible with multiple databases like MySQL, Microsoft SQL, and SQLite.

While using the Redmine tool, users can also manage the various project and related subprojects.

Some of the common characteristics of Redmine tools are as follows:

  • Flexible role-based access control
  • Time tracking functionality
  • A flexible issue tracking system
  • Feeds and email notification
  • Multiple languages support (Albanian, Arabic, Dutch, English, Danish and so on)

MantisBT

MantisBT stands for Mantis Bug Tracker. It is a web-based bug tracking system, and it is also an open-source tool.

MantisBT is used to follow the software defects. It is executed in the PHP programing language.

Some of the common features of MantisBT are as follows:

  • Full-text search
  • Audit trails of changes made to issues
  • Revision control system integration
  • Revision control of text fields and notes
  • Notifications
  • Plug-ins
  • Graphing of relationships between issues

Backlog

The backlog is widely used to manage the IT projects and track the bugs. It is mainly built for the development team for reporting the bugs with the complete details of the issues, comments. Updates and change of status. It is a project management software.

Features of backlog tool are as follows:

  • Gantt and burn down charts
  • It supports Git and SVN repositories
  • IP access control
  • Support Native iOS and Android apps