Home » 11/1/07 - 12/1/07
Defect Taxonomies !!!

Categories of Defects:

All software defects can be broadly categorized into the below mentioned types:

• Errors of commission: something wrong is done
• Errors of omission: something left out by accident
• Errors of clarity and ambiguity: different interpretations
• Errors of speed and capacity

However, the above is a broad categorization; below we have for you a host of varied types of defects that can be identified in different software applications:

1. Conceptual bugs / Design bugs
2. Coding bugs
3. Integration bugs
4. User Interface Errors
5. Functionality
6. Communication
7. Command Structure
8. Missing Commands
9. Performance
10. Output
11. Error Handling Errors
12. Boundary-Related Errors
13. Calculation Errors
14. Initial and Later States
15. Control Flow Errors
16. Errors in Handling Data
17. Race Conditions Errors
18. Load Conditions Errors
19. Hardware Errors
20. Source and Version Control Errors
21. Documentation Errors
22. Testing Errors

Defect !!!

Defect Management

Defects determine the effectiveness of the Testing what we do. If there are no defects, it directly implies that we don’t have our job. There are two points worth considering here, either the developer is so strong that there are no defects arising out, or the test engineer is weak. In many situations, the second is proving correct. This implies that we lack the knack. In this section, let us understand Defects.

What is a Defect?
For a test engineer, a defect is following: -
• Any deviation from specification
• Anything that causes user dissatisfaction
• Incorrect output
• Software does not do what it intended to do.

Bug / Defect / Error: -
• Software is said to have bug if it features deviates from specifications.
• Software is said to have defect if it has unwanted side effects.
• Software is said to have Error if it gives incorrect output.

But as for a test engineer all are same as the above definition is only for the purpose of documentation or indicative.

Rapid Testing Practice !!!

THE RAPID TESTING PRACTICE

It would help us if we scrutinize each phase of a development process to see how the efficiency, speed and quality of testing can be improved, bearing in mind the following factors:

• Actions that the test team can take to prevent defects from escaping. For example, practices like extreme programming and exploratory testing.
• Actions that the test team can take to manage risk to the development schedule.
• The information that can be obtained from each phase so that the test team can speed up the activities.

If a test process is designed around the answers to these questions, both the speed of testing and the quality of the final product should be enhanced.

Some of the aspects that can be used while rapid testing are given below:

1. Test for link integrity
2. Test for disabled accessibility
3. Test the default settings
4. Check the navigation’s
5. Check for input constraints by injecting special characters at the sources of data
6. Run Multiple instances
7. Check for interdependencies and stress them
8. Test for consistency of design
9. Test for compatibility
10. Test for usability
11. Check for the possible variability’s and attack them
12. Go for possible stress and load tests
13. And our favorite – banging the keyboard

Rapid Testing

Rapid testing is the testing software faster than usual, without compromising on the standards of quality. It is the technique to test as thorough as reasonable within the constraints. This technique looks at testing as a process of heuristic inquiry and logically speaking it should be based on exploratory testing techniques.

Although most projects undergo continuous testing, it does not usually produce the information required to deal with the situations where it is necessary to make an instantaneous assessment of the product's quality at a particular moment. In most cases the testing is scheduled for just prior to launch and conventional testing techniques often cannot be applied to software that is incomplete or subject to constant change. At times like these Rapid Testing can be used. 

It can be said that rapid testing has a structure that is built on a foundation of four components namely,
• People
• Integrated test process
• Static Testing and
• Dynamic Testing

There is a need for people who can handle the pressure of tight schedules. They need to be productive contributors even through the early phases of the development life cycle. According to James Bach, a core skill is the ability to think critically.

It should also be noted that dynamic testing lies at the heart of the software testing process, and the planning, design, development, and execution of dynamic tests should be performed well for any testing process to be efficient.