Couple of guidelines in addition to above listed items 1. Test Steps 2. Snapshots for each steps if possible (In case you are working in remote teams, to avoid to-and-fro email communications) 3. Expected result vs Actual Result 4. Environment Details - OS, Hardware, Software, Build version 5. Log file entries / values 6. Nice to have - Preliminary investigation / analysis with supporting queries / assumptions to provide couple of leads for developer to check further 7. Provide access to the test environment - URLs, Machines for the developer to check in case if needed 8. Reference to BRD, FS, Design Document where implementation conflicts design / requirements 9. Nice to Have - Triage Meeting / Issue Review meeting to run through the bugs once with the development team to provide a quick overview of issues before they start looking into it. F2F conversations are better than email / chat coversations sometimes 10. Be Descriptive do not use Abbrevations, No implicit assumptions. Callout your understanding of functionality and how it conflicts with implementation