Manual, automation, and test strategy.
2 topics
The testing pyramid: many unit tests, fewer integration tests, fewest E2E tests. Types: functional, regression, smoke, sanity, exploratory, acceptance. Test design techniques: equivalence partitioning, boundary value analysis, decision tables. Write clear test cases. Use TestRail or Zephyr for test management.
2 resources
Test backend independently from UI. Use Postman for exploration and Newman for CI automation. Test: happy paths, error handling (4xx/5xx), auth/authz, rate limiting, pagination, response times. JSON Schema validation. REST methods/status codes and GraphQL queries/mutations. pytest + requests for Python automation.
Playwright: Chromium/Firefox/WebKit, auto-waiting, parallel execution, trace viewer, codegen. Key: locator strategies (roles, text, test IDs over CSS), Page Object Model, handling dynamic content, test data management. Tests should be independent, idempotent, and focused.
Run tests in CI: unit on push, integration on PRs, E2E on staging deploys. Parallel execution for speed. Reports with Allure or JUnit XML. Track: pass/fail trends, flaky test rates, coverage. Failed tests block merges. Manage test environments with Docker Compose.
Types: load (expected users), stress (beyond capacity), endurance (sustained), spike (sudden surges). Tools: k6 (JS scripting), JMeter, Gatling, Locust. Metrics: response time (P50/P95/P99), throughput, error rate, resource utilization. Integrate into CI for regression detection.
Mobile: real devices via BrowserStack/Firebase Test Lab, Appium for cross-platform automation. Test: install/upgrade, offline, push notifications, deep links. Accessibility: screen readers (VoiceOver, TalkBack), keyboard navigation, color contrast (WCAG AA 4.5:1), automated tools (axe, Lighthouse, Pa11y).