Defect reports are among the most important deliverables to come out of software testing. The point of writing a defect report is to get defects fixed. Hence, it is worth the effort to learn how to write good defect report. Characteristics of a good defect report include:

Reproducible: make it easy to reproduce the defect by developer

Make sure you include the environment, data used, and all steps necessary to reproduce the defect. If your defect is not reproducible it will never get fixed, and the defect may be considered INVALID! Developers may complain when they cannot successfully reproduce a problem, so the steps should be clear and precise. Do not assume or skip any key steps.

Specific: be specific and to the point

Try to summarize the problem concisely yet in effective way. Do not combine multiple problems into one defect even if they seem similar. Write different defect reports for each problem. This will make it easier for the developer to fix and for QA to verify.

Informational: add more useful information

Add whatever useful information which can help developer to understand and fix the problem in the defect report. This may include screenshots, error logs, testing data, application parameters, system settings, and perhaps even some video recording files. Do the investigative reporting work for the developer if you can.  Think of what he will ask you. Did it happen in this situation? What happened in that situation?  Have all this information ready and included in the defect report. For instance, if you are doing localization testing, note that the problem happened in German, but did not happen in Spanish or other languages. You may even add your own suggestions as to where the problem may be or how it is also related to other defects that you are aware of.

A good defect report can reduce the time it takes to fix the defect, thereby saving time and money for everyone. Also, it fosters collaboration between developers and QA engineers.