CH 08Testing Lab
UTC 08:27:18LOCAL 08:27:18
CH 08Testing Lab

Tools for people who break things for a living

Live download trends for the major test frameworks, a generator that turns any input into a test plan, and a field guide to flaky tests.

syncing…

Framework wars

Test idea generator

  1. Happy pathAccepts a plain valid addressuser@example.com→ the address is accepted
  2. Happy pathAccepts plus addressinguser+qa@example.com→ the address is accepted
  3. Happy pathAccepts multi-level domainsuser@mail.example.co.uk→ the address is accepted
  4. BoundaryLocal part of exactly 64 charactersa×64@example.com→ the address is accepted
  5. BoundaryLocal part of 65 charactersa×65@example.com→ a clear length error is shown
  6. BoundaryTotal length above 254 charactersa×250@example.com→ a clear length error is shown
  7. NegativeMissing @ signuserexample.com→ an inline format error is shown
  8. NegativeConsecutive dots in the local partuser..name@example.com→ the address is rejected
  9. NegativeLeading and trailing spaces user@example.com → input is trimmed or rejected consistently
  10. NegativeEmpty submit on a required field→ a required-field message is shown
  11. NegativeCase-only duplicate of an existing accountUser@Example.com→ it is treated as the same address
  12. SecurityScript tag in the address<script>alert(1)</script>@x.com→ input is escaped and no script runs
  13. SecuritySQL-style payload' OR 1=1 --@x.com→ the request is rejected without a server error
  14. AccessibilityError message is announcedinvalid→ the error is linked via aria-describedby and read by screen readers
  15. AccessibilityCorrect input type and autocomplete→ type=email and autocomplete=email are set for mobile keyboards
## Test ideas: Email field

- [ ] **Happy path**: Accepts a plain valid address (`user@example.com`). Expect the address is accepted.
- [ ] **Happy path**: Accepts plus addressing (`user+qa@example.com`). Expect the address is accepted.
- [ ] **Happy path**: Accepts multi-level domains (`user@mail.example.co.uk`). Expect the address is accepted.
- [ ] **Boundary**: Local part of exactly 64 characters (`a×64@example.com`). Expect the address is accepted.
- [ ] **Boundary**: Local part of 65 characters (`a×65@example.com`). Expect a clear length error is shown.
- [ ] **Boundary**: Total length above 254 characters (`a×250@example.com`). Expect a clear length error is shown.
- [ ] **Negative**: Missing @ sign (`userexample.com`). Expect an inline format error is shown.
- [ ] **Negative**: Consecutive dots in the local part (`user..name@example.com`). Expect the address is rejected.
- [ ] **Negative**: Leading and trailing spaces (` user@example.com `). Expect input is trimmed or rejected consistently.
- [ ] **Negative**: Empty submit on a required field. Expect a required-field message is shown.
- [ ] **Negative**: Case-only duplicate of an existing account (`User@Example.com`). Expect it is treated as the same address.
- [ ] **Security**: Script tag in the address (`<script>alert(1)</script>@x.com`). Expect input is escaped and no script runs.
- [ ] **Security**: SQL-style payload (`' OR 1=1 --@x.com`). Expect the request is rejected without a server error.
- [ ] **Accessibility**: Error message is announced (`invalid`). Expect the error is linked via aria-describedby and read by screen readers.
- [ ] **Accessibility**: Correct input type and autocomplete. Expect type=email and autocomplete=email are set for mobile keyboards.

Flaky test doctor

Likely cause: Different browser versions, CPU speed, screen size or env vars.

Fix: Pin versions, run tests in the same container locally and in CI, and wait for conditions instead of fixed sleeps.

Next channel · CH 09Dev StudioMake badges, commits and cron schedules.