If you work in QA or software testing and you need to communicate with an international team, clear English writing is not optional — it is part of your job. A vague bug report wastes everyone’s time. A well-written test case helps the whole team move faster.

This guide covers the three most common writing tasks for QC engineers: bug reports, test case descriptions, and review comments.


Part 1: Writing Bug Reports

The Basic Structure

A good bug report answers five questions: What happened? What did you expect? How do I reproduce it? How bad is it? Where does it happen?

Use this template:

**Summary:** [One clear sentence describing the bug]

**Steps to Reproduce:**
1. [First step]
2. [Second step]
3. [Third step]

**Expected Result:** [What should happen]
**Actual Result:** [What actually happened]
**Severity:** [Critical / High / Medium / Low]
**Environment:** [Browser, OS, version, etc.]

Key Phrases for Bug Reports

SituationPhrase
Describe what happens”The application throws an error when…”
Describe missing behavior”The button fails to redirect the user…”
Describe wrong behavior”The total displays incorrectly as…”
Describe intermittent issue”This issue occurs intermittently, approximately 3 out of 5 attempts”
Describe blocked flow”The user is unable to complete checkout because…”

Example Bug Report

Summary: User cannot submit the contact form when the phone number field contains spaces.

Steps to Reproduce:

  1. Navigate to /contact
  2. Fill in all fields with valid data
  3. Enter “090 123 4567” (with spaces) in the phone number field
  4. Click “Submit”

Expected Result: Form submits successfully or shows a clear validation message. Actual Result: The submit button becomes unresponsive. No error message is shown. Severity: High — blocks user from completing a core action. Environment: Chrome 121, Windows 11


Part 2: Writing Test Cases

Keep It Simple and Actionable

A test case should be clear enough that a new team member can follow it without asking questions.

Weak version:

Test that login works.

Strong version:

Test Case: Login with valid credentials Precondition: User account exists with email test@example.com and password Test@123 Steps:

  1. Open the login page
  2. Enter email and password
  3. Click “Sign In” Expected Result: User is redirected to the dashboard and their name appears in the top-right corner.

Key Phrases for Test Cases

  • Verify that the system displays an error message when…”
  • Confirm that the user is redirected to…”
  • Ensure that the field accepts no more than 100 characters”
  • Check that the API returns a 400 status code when…”
  • Validate that the total price updates correctly after…”

Part 3: Writing Review Comments

Code review is a collaboration, not a confrontation. The way you phrase feedback matters.

Three Types of Comments

1. Must fix (blocking) Use when the issue affects functionality, security, or production stability.

“This will cause a null reference exception if user is not initialized. Please add a null check before accessing user.Id.”

2. Should fix (suggestion) Use for quality improvements that are not urgent.

“Consider extracting this logic into a separate method to improve readability. Something like CalculateDiscount() would make the intent clearer.”

3. Nice to have (optional) Use for minor style preferences — make it clear this is not blocking.

“Not blocking, but you could simplify this to a single LINQ expression. Up to you.”

Key Phrases for Review Comments

IntentPhrase
Point out a bug”This could cause… / This will break when…”
Ask for clarification”Could you explain the reason for this approach?”
Suggest an alternative”Have you considered… / An alternative would be…”
Acknowledge good work”Nice catch here.” / “Clean solution.”
Approve with minor note”LGTM. Minor nit below, not blocking.”

Common Mistakes Vietnamese Speakers Make

1. Being Too Indirect in Bug Reports

Vietnamese culture values politeness, and sometimes engineers soften their bug descriptions too much.

  • Avoid: “Maybe there is a small problem with the login button?”
  • Better: “The login button does not respond on mobile Safari.”

Be direct and factual. This is not rude — it is professional.

2. Using “Wrong” Instead of Specific Descriptions

“Wrong” is too vague. Always say what is wrong.

  • Avoid: “The calculation is wrong.”
  • Better: “The discount is calculated on the pre-tax total instead of the post-tax total, resulting in a lower discount than expected.”

3. Passive Phrasing That Hides the Issue

  • Avoid: “An error was encountered.”
  • Better: “The system throws a 500 Internal Server Error when the file size exceeds 5MB.”

4. Missing Context in Review Comments

  • Avoid: “This is not good.”
  • Better: “This approach fetches data inside a loop, which will make N+1 database calls. Consider batching the query outside the loop.”

Quick Reference: Useful Vocabulary

WordMeaningExample
IntermittentNot always reproducible”This is an intermittent issue.”
RegressionA feature that used to work but now doesn’t”This looks like a regression from the last release.”
BlockerA critical issue that stops progress”This is a blocker for the release.”
FlakyUnreliable, passes and fails randomly”This test is flaky — it fails on CI but passes locally.”
NitA minor comment, not blocking”Nit: rename this variable for clarity.”
LGTMLooks Good To Me — approval phrase”LGTM, feel free to merge.”

Final Thoughts

The best bug report is the one that gets fixed quickly. The best review comment is the one that improves the code without creating conflict. Both require clear, specific, respectful English — and that is a skill you can practice every day.

Start with one improvement: next time you write a bug report, add a specific “Expected Result” and “Actual Result.” You will notice the difference immediately.

Export for reading

Comments