1. Requirements and Features

Code breaks on different compiler types/versions

Difficult to determine what the software should do

Doing what is convenient for developers

Interfaces not controlled

Lack of time

No Tracing of Requirements to Code

Requirement issues discovered in design/code/ test phases

Source of error message not obvious

Supported OS/browser/version/platforms not clear

2. Functionality as Implemented

Can not tell if application running

Lack of user desired features


Not flexible or adaptable to other uses

User interface not intuitive

3. Structural

Algorithm errors

Answers not accurate, repeatable, consistent

Answers out of range

Application runs slow, not responsive

Dead code

Duplicated logic

Exceptions not handled

Memory Leaks

Round off and truncation errors

System locks up

4. Data

Dereferencing stale or null pointers

Field length overwriting

Input values not sanity or range checked

Inputs dependent on delimiters

Missing Data or Files, Unrealistic Data

Mixing types

Uninitialized variables

Using the wrong library versions

5. Implementation

Code brittle fixing one thing breaks another

Code hard to maintain or understand

Complex code

Cut and pasted code

Lack of cohesion

No tutorials or self-training

Numerous patches and quick fixes

Overly complex or complicated to use

Poor documentation

Poor Help

Problems installing application

Sparse comments

Sparse error messages or error messages not useful

Uncontrolled branches or versions

User Documentation Confusing

6. Integration

Build errors

External interfaces do not work correctly

Interfaces inconsistent or unreliable

Internal communication errors

Library and feeder codes uncontrolled

Logic and Syntax Errors

7. System Software Architecture

Application breaks on some platforms/OS/browsers

Architecture sprawls, Cyclical Dependencies

Clumsy to use, easy to make mistakes, or recover

Large consumer of resources, Ram, or CPU cycles

Wrong Versions of Code/Data

 8. Test Definition and Execution

Fixed bugs reappear

Insufficient Time to Test

Large backlog of unfixed defects

More errors found by customers than by system testing

No Tracing of Requirements to Tests

Not sure of expected result running test

9. Other