Sunday, 3 March 2013

What is a Software Defect, Bug and Debugging

What is a Software Defect / Bug?

A software bug is an
  • Error,
  • Flaw,
  • Failure,
  • (or) Fault

In a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. Most bugs arise from mistakes and errors made by people in either a program's source code or its design, and a few are caused by compilers producing incorrect code. A program that contains a large number of bugs, and/or bugs that seriously interfere with its functionality, is said to be buggy. Reports detailing bugs in a program are commonly known as bug reports, defect reports, fault reports, problem reports, trouble reports, change requests, and so forth.

Difference between defect, error, bug, failure and fault:

“A mistake in coding is called error ,error found by tester is called defect, defect accepted by development team then it is called bug ,build does not meet the requirements then it Is failure.”
Error: A discrepancy between a computed, observed, or measured value or condition and the true, specified, or theoretically correct value or condition. This can be a misunderstanding of the internal state of the software, an oversight in terms of memory management, confusion about the proper way to calculate a value, etc.

Failure: The inability of a system or component to perform its required functions within specified performance requirements. See: bug, crash, exception, and fault.

Bug: A fault in a program which causes the program to perform in an unintended or unanticipated manner. See: anomaly, defect, error, exception, and fault. Bug is terminology of Tester.

Fault: An incorrect step, process, or data definition in a computer program which causes the program to perform in an unintended or unanticipated manner. See: bug, defect, error, exception.

Defect: Commonly refers to several troubles with the software products, with its external behavior or with its internal features.

What is Debugging?

  • Debugging is the process of locating and fixing errors (known as bugs), in a computer program, or hardware device.
  • To debug a program or hardware device, you start with a known problem, isolate the source of the problem, and then fix it. When someone says they have debugged a program, or "removed the bugs" in a program, they imply that they have fixed the program, so that the bugs no longer exist in it.
  • Debugging is a necessary process in almost any new software, or hardware development process, whether a commercial product, an enterprise, or personal application program.
  • For complex products, debugging is done periodically throughout the development, and again during the customer beta test stages. Because most computer programs and many programmed hardware devices contain thousands of lines of code, almost any new product is likely to contain a few bugs. Invariably, the bugs in the functions that get the most use, are found and fixed first.
  • An early version of a program that has lots of bugs is referred to as "buggy." Debugging tools help identify coding errors at various stages of development. Some programming language packages include a facility for checking the code for errors as it is being written.

Other Definitions for Defect (or) Bug :

While testing when a tester executes the test cases he might observe that the actual test results do not match from the expected results. The variation in the expected and actual results is known as defects. Different organizations have different names to describe this variation, commonly defects are also known as bug, problem, incidents or issues.

Every incident that occurs during testing may not be a defect or bug. Am incident is any situation in which the software system has a questionable behavior, however we call the incident a defect or bug only if the Root Cause is the problem in the tested component.

Incidents can also occur by some other factors as well like testers mistake in test setup, environment error, invalid expected results etc.

We log these incidents just to keep track of the record of what is observed during the testing so that we can find out the solution to correct it.

Click to see Testing (vs) Debugging differences between


                                1. Thank you for sharing this! What you have shared is very helpful and informative. Would love to see more updates from you.

                                  Website Development

                                2. I like your post there is a lot of information about software testing, which i would like to learn, thank you for the great guide. Very useful post and I think it is rather easy to see from the other comments as well that this post is well written and useful. I bookmarked this blog a while ago because of the useful content and I am never being disappointed. Keep up the good work.. Read more about QA Services

                                3. I must thank you for the efforts you have put in penning this site. I am hoping to check out the same high-grade content by you later on as well. Keep up the good work
                                  software testing services
                                  software testing companies
                                  Security testing services
                                  Test automation services

                                4. It's great to be here and to learn more about software testing. I'm a software tester in a leading Software testing companies. This a great knowledge for all beginners. Appreciate your effort to write about this.

                                5. Thanks for sharing such a great blog... I am impressed with you taking time to post a nice info.
                                  software testing training in chennai

                                6. Thanks for sharing this informative content , Great work
                                  To crack scrum master interview : Agile coach Interview Questions

                                7. I think this is the best article today. Thanks for taking your own time to discuss this topic, I feel happy about that curiosity has increased to learn more about this topic. Keep sharing your information regularly for my future reference.Excellent blog admin. This is what I have looked. Check out the following links for QA services
                                  Test automation software
                                  Best automated testing software
                                  Mobile app testing services


                                Share your feedback and queries here. Your feedback are more valuable to us!