Wednesday 22 August 2012

Bug Overview

What is a software error?
A mismatch between the program and its specification is an error in the Program if and only if the specification exists and is correct.
Example: -
* The date on the report title is wrong
* The system hangs if more than 20 users try to commit at the same time
* The user interface is not standard across programs

Categories of Software errors
* User Interface errors
* Functionality errors
* Performance errors
* Output errors
* documentation errors

What Do You Do When You Find a Bug?
IF A BUG IS FOUND,
* alert the developers that a bug exists
* show them how to reproduce the bug
* ensure that if the developer fixes the bug it is fixed correctly and the fix
* didn't break anything else
* keep management apprised of the outstanding bugs and correction trends



Bug Writing Tips
Ideally you should be able to write bug report clearly enough for a developer to reproduce and fix the problem, and another QA engineer to verify the fix without them having to go back to you, the author, for more information.
To write a fully effective report you must :-
* Explain how to reproduce the problem
* Analyze the error so you can describe it in a minimum number of steps
* Write a report that is complete and easy to understand



What should be done after a bug is found?
The bug needs to be communicated and assigned to developers that can fix it. After the problem is resolved, fixes should be re-tested, and determinations made regarding requirements for regression testing to check that fixes didn't create problems elsewhere. If a problem-tracking system is in place, it should encapsulate these processes. A variety of commercial problem-tracking/management software tools are available (see the 'Tools' section for web resources with listings of such tools). The following are items to consider in the tracking process:


  • Complete information such that developers can understand the bug, get an idea of it's severity, and reproduce it if necessary.
  • Bug identifier (number, ID, etc.)
  • Current bug status (e.g., 'Released for Retest', 'New', etc.)
  • The application name or identifier and version
  • The function, module, feature, object, screen, etc. where the bug occurred
  • Environment specifics, system, platform, relevant hardware specifics
  • Test case name/number/identifier
  • One-line bug description
  • Full bug description
  • Description of steps needed to reproduce the bug if not covered by a test case or if the developer doesn't have easy access to the test case/test script/test tool
  • Names and/or descriptions of file/data/messages/etc. used in test
  • File excerpts/error messages/log file excerpts/screen shots/test tool logs that would be helpful in finding the cause of the problem
  • Severity estimate (a 5-level range such as 1-5 or 'critical'-to-'low' is common)
  • Was the bug reproducible?
  • Tester name
  • Test date
  • Bug reporting date
  • Name of developer/group/organization the problem is assigned to
  • Description of problem cause
  • Description of fix
  • Code section/file/module/class/method that was fixed
  • Date of fix
  • Application version that contains the fix
  • Tester responsible for retest
  • Retest date
  • Retest results
  • Regression testing requirements
  • Tester responsible for regression tests
  • Regression testing results
A reporting or tracking process should enable notification of appropriate personnel at various stages. For instance, testers need to know when retesting is needed, developers need to know when bugs are found and how to get the needed information, and reporting/summary capabilities are needed for managers

0 comments:

Post a Comment