First of all: Something like one perfect bug report for all projects and types of applications does not exist. But you can talk with the develoersdevelopers and stakeholders of the project and discuss improvements of the bug reports you create. After a while you will have reports who everyone like.
Here is an example how I write a bug report:
Preconditions:
The user has an entry in the TODO list.
Steps:
1. Open www.todolist.com
2. Do a login to get access to the TODO list.
Expected:
Each entry in the TODO list has a delete button.
Actual:
No delete buttons are present.
Environment:
Firefox 30
Windows 7 SP1
Test Data:
Username: testuser
- Preconditions are not must, but in some cases thaythey are necessary.
- A step-by-step list to reproduce the bug is easy to read and understand.
- It is important to explain what your expected result is, so the develperdeveloper know what s/he has to fix.
- Some bugs could be depend on the environment. For example: A layout bug on a website could be present in Internet Explorer, but not in Firefox.
- If you use special test data (e.g. user input, account data) to reproduce the bug, write this in the report.
- Screenshots and videos are also very helpful, especially for layout/GUI bugs.