QA notes for freshers · How to think

How a Tester Thinks

Tools can be learned in weeks. The tester's way of thinking is what makes you good at the job.

1. The tester's mindset

2. The 7 principles of testing

PrincipleMeaning in simple words
1. Testing shows that bugs existTesting can show bugs are present. It can never prove an app has zero bugs.
2. Exhaustive testing is impossibleYou cannot test every input and every path. A single phone number box has crores of possible inputs. So choose tests smartly, by risk.
3. Early testing saves time and moneyStart testing from the requirement stage. A bug found in requirements is cheap to fix. The same bug found after release is costly.
4. Defects cluster togetherA few modules usually hold most of the bugs (about 80% in 20% of the app). Test risky or complex areas more.
5. Pesticide paradoxIf you run the same tests again and again, they stop finding new bugs, like insects becoming immune to the same pesticide. Review and update your tests regularly.
6. Testing depends on contextA banking app, a game and a hospital system need different kinds of testing.
7. Absence-of-errors fallacyAn app with no bugs is still a failure if it does not do what the user needs.

3. Two simple techniques to design test data

Equivalence partitioning

Split inputs into groups that behave the same, then test one value from each group.

Boundary value analysis

Bugs love the edges. Test the values just below, on, and just above each limit.

ExampleAn age field accepts 18 to 60
GroupsBelow 18 (invalid), 18 to 60 (valid), above 60 (invalid)
One test per group10, 35, 75
Boundary values17, 18, 19, 59, 60, 61
Also try: empty field, letters, special characters like @#$, negative number, very large number, spaces only.

More test design techniques

TechniqueIdeaExample
Decision tableWhen the result depends on a combination of conditions, list all combinations and the result of each.Login: valid email Y/N × valid password Y/N → only Y+Y logs in. Discount: member Y/N × coupon Y/N.
State transitionThe app moves between states depending on actions. Test each move and the not-allowed moves.Order: Placed → Packed → Shipped → Delivered. A delivered order cannot go back to Placed. Account: Active → Locked after 3 wrong passwords.
Error guessingUse your experience to guess where bugs hide.Blank input, double click, special characters, very large values, back button.
Exploratory testingLearn, design and test at the same time, without fixed steps. Set a goal and a time (for example 45 minutes) and note what you find."Explore the checkout with different payment methods for 45 minutes."

4. Detailed case studies: how to test a feature

For every feature, think in these buckets. Each case below uses the ones that fit.

BucketAsk yourself
PositiveDoes it work when used correctly?
NegativeDoes it handle wrong input without breaking?
EdgeWhat happens at limits and in odd situations?
UI / usabilityIs it clear, readable and easy to use?
SecurityCan someone misuse it?
Network / performanceWhat if the internet is slow or drops? What if many users come?
DataIs the data saved and shown correctly everywhere?

Case 1: Login page

Positive

Negative

Edge

UI and security

Case 2: Sign-up form

Positive

Negative

Edge

Data and security

Case 3: Search box on a shopping site

Positive

Negative

Edge

Filters, sorting, pages

Performance and security

Case 4: Add to cart and checkout

Positive

Negative

Edge

UI and data

Case 5: Online payment (UPI or card)

Positive

Negative

Edge: the dangerous ones

After payment

Security

Case 6: Forgot password with OTP

Positive

Negative

Edge

After reset and security

Case 7: File upload (profile photo or resume)

Positive

Negative

Edge

UI and security

5. Classic "how will you test..." questions

Interviewers often ask these to see how you think. Do not rush to answer. First ask questions, then list what you would test in groups.

Test a pen

Test a lift (elevator)

Test an ATM

Test a chat app message (like WhatsApp)

Test a web page with a "Contact us" form

Answer pattern to remember: ask questions → functional (positive, negative, edge) → usability → performance → security → compatibility → other (safety, data, accessibility).

6. A simple checklist for any feature

  1. Understand what the feature should do. Ask if it is not clear.
  2. List the inputs, outputs and steps.
  3. Test the happy path first (everything correct).
  4. Then negative and edge cases using the techniques above.
  5. Think about the surroundings: different browsers and devices, slow network, many users, data stored correctly, security.
  6. Report clearly and retest after the fix.
  7. Ask yourself: "If I were the customer, would I be happy?"

7. When to stop testing and what to do with limited time

You can never test everything (principle 2). Testing stops when the exit criteria are met, for example:

If time is short: run smoke tests, then high-risk and most-used features, then regression on key areas. Leave rare, low-impact areas last.

If requirements are missing: ask the product owner or developer, read similar features, use the old version of the app as a guide, test as the user would, and write down the assumptions you made.

8. Working with developers and the team

What makes a good bug report

9. Quick interview answers