Software QA FYI - SQAFYI

Why are there Bugs in Software?

Part:   1  2  3  4  5  6  7   8  9  10  11  12  13  14  15  16  17  18 

(Continued from previous part...)

Build and Test Daily

Once you have a fully automated test suite, you should run it after every build. This gives developers feedback about the changes they are making, and it gives management clear, objective feedback about the project status.

Clear, objective feedback about project status help managers make better estimates and plans. This feedback can help you identify and address problems while you still have time to do something about them. In addition, this clear, objective feedback puts managers in a better position to provide correct feedback to their managers (or shareholders). Finally, this objective feedback helps managers decide when a project can be shipped or deployed.

The more prompt the feedback to the programmers, the more useful it is. The shorter the time between the creation of a defect and its discovery, the easier it is for the programmer to understand just what they have done wrong. Prompt feedback of failing tests can work as a kind of positive reinforcement for development techniques that work and negative reinforcement for techniques that don't.

By automating the build process as well, you can schedule builds of your system daily. By building daily, you will maximize the feedback to both your programmers and your management.


Use Automated Checking Wherever Possible

There are a lot of existing tools that can be used to find errors in your code in an automatic or semiautomatic manner. Your programmers should be using these tools wherever possible.

These tools should be used in addition to the clean design, rather than instead of. No matter how much you use automated checking tools, using these tools alone will never turn poorly designed, buggy code into defect-free code. You can however, find a lot of bugs that would otherwise take much more time and effort to find and fix.


Defect Tracking Objectives

  1. Provide the ability to track defects/problems
  2. Provide a defect tracking database
  3. Provide project-level data entry support
  4. Provide defect tracking/problem reporting workflow management
  5. Provide standardized and custom query/reporting capabilities
  6. Provide integration to software Version Management system
  7. Provide integration to Help Desk system
  8. Provide management information (cost of quality) and operational information (support project level testing process)
  9. Facilitate communication among testers/developers, the help desk, and management

Defect Tracking Guidelines
A defect tracking/problem reporting system should provide:

  • A mechanism for entering defects/problems which supports a team approach
  • A permanent database for defect tracking/problem reporting
  • A simple point and click interface for entering data and generating reports
  • A defect tracking workflow
  • An audit trail
  • Control linkages

(Continued on next part...)

Part:   1  2  3  4  5  6  7   8  9  10  11  12  13  14  15  16  17  18 

Why are there Bugs in Software?