Blog
QA testing insights, AI agent tips, and skill development guides
All Articles
Page 4 of 27
pytest capsys vs capfd for Subprocess Output
Choose pytest capsys vs capfd for subprocess output with accurate capture boundaries, runnable examples, binary variants, and debugging guidance for mixed I/O.
pytest Fixture Interview Questions and Answers
Master pytest fixture interview questions with precise answers on scopes, dependency order, yield teardown, parametrization, factories, and isolation.
pytest Indirect Parametrize Fixture Example
Learn pytest indirect parametrize with realistic fixture setup, selective indirection, readable IDs, teardown safety, and collection-time diagnostics.
pytest-asyncio “Event Loop Is Closed” Fix
Fix pytest-asyncio Event Loop Is Closed errors by aligning async fixture scope, loop scope, client lifetime, teardown order, and modern plugin configuration.
Python Skills Required for SDET Automation Roles
Build the Python skills required for SDET automation roles, from pytest and typing to API, UI, data, concurrency, CI, and maintainable test design.
QA Engineer to AI Testing Engineer Roadmap
Follow a practical QA engineer to AI testing engineer roadmap through Python, model evals, RAG measurement, agent traces, and portfolio evidence.
Quarantine Flaky Tests with a GitHub Actions Label
Quarantine flaky tests with a GitHub Actions pull-request label while keeping mandatory coverage, visible failures, expiry metadata, and auditable CI gates.
RAG Evaluation Interview Questions and Answers
Prepare for RAG evaluation interview questions with senior-level answers on retrieval, grounding, citations, metrics, datasets, debugging, and release gates.
Recording Video of Playwright Tests: A Complete 2026 Tutorial
Learn how to record video of Playwright tests with page.screencast and the video config option, add annotations, control file size, and upload artifacts in CI.
Refresh an Expired Playwright storageState Token
Refresh an expired Playwright storageState token safely before tests, preserve browser context isolation, and prevent parallel authentication failures.
Report Flaky Tests with GitLab CI JUnit Reports
Report flaky tests with GitLab CI JUnit artifacts, retry-aware test output, stable case identities, failure evidence, and actionable pipeline history.
Rerun Only Failed Tests in GitHub Actions
Rerun only failed tests in GitHub Actions by persisting framework state as artifacts, targeting retries safely, and preserving the original failure evidence.
Restore Environment Variables with pytest monkeypatch
Restore environment variables with pytest monkeypatch using scoped setenv and delenv changes, import-safe tests, teardown guarantees, and subprocess checks.
Retry a Block of Assertions with Playwright toPass()
Use Playwright toPass() to retry multi-step eventual assertions safely, tune intervals and timeouts, and diagnose state that never becomes internally consistent.
Retry Only Runner-System Failures in GitLab CI
Configure GitLab CI to retry only runner-system failures, keep genuine test defects red, audit failure reasons, and avoid flaky green pipelines.
Reuse Playwright Authentication State for Multiple User Roles
Reuse Playwright authentication state for admin and standard-user roles with isolated accounts, setup projects, safe fixtures, and reliable authorization checks.
Rhesis AI: An Open-Source LLM Testing Guide for 2026
A practical 2026 guide to Rhesis AI, the open-source LLM application testing framework: generate test sets, run metrics, red-team for robustness, and gate CI.
Run Authenticated API Tests with Schemathesis
Run authenticated Schemathesis API tests with static headers, dynamic token providers, refresh intervals, scope-aware caching, and safe diagnostics.
Run Contract Tests Before Deployment in CI
Learn where to run contract tests before deployment in CI, publish verification evidence, and block incompatible consumer or provider releases safely.
Run E2E Tests Against Ephemeral Preview Environments
Run E2E tests against ephemeral preview environments with reliable URL handoff, readiness checks, isolated data, failure evidence, and cleanup.
Run Playwright Shards with GitLab CI parallel:matrix
Run Playwright shards with GitLab CI parallel:matrix across browser projects, map shard indexes safely, preserve failed blobs, and merge one report.
Run PostgreSQL Init Scripts and Migrations with Testcontainers
Run PostgreSQL init scripts and migrations with Testcontainers for deterministic schemas, version-accurate integration tests, and clean isolation.
Run Tests Affected by Changed Files in CI
Run tests affected by changed files in CI using dependency graphs, safe fallbacks, and auditable selection rules that shorten feedback without hiding regressions.
Set Extra HTTP Headers for One Playwright Test
Set Playwright extra HTTP headers for one isolated test without leaking tenant, feature, or correlation values into neighboring browser scenarios.
Set Golden-Set Difference Thresholds for Prompt Regression
Set golden-set difference thresholds for prompt regression using labeled change severity, slice budgets, deterministic checks, and reviewable release gates.
Set Per-File Coverage Thresholds in Vitest
Set per-file coverage thresholds in Vitest, add glob-specific exceptions, enforce CI gates, and diagnose line, branch, function, and statement failures.
Set pytest Fixture Scope from a Command-Line Option
Set pytest fixture scope from a command-line option to switch resource lifetime safely between isolated local tests and faster shared CI sessions.
Setting RAG Answer-Relevance Test Thresholds
Set RAG answer-relevance test thresholds by calibrating metric scores to human judgments, query slices, evaluator variance, and explicit release costs.
Shard Playwright Tests by Duration in GitHub Actions
Shard Playwright tests by historical duration in GitHub Actions using a deterministic bin-packing script, dynamic matrices, and timing feedback controls.
Split Playwright Tests by Timing in CircleCI
Split Playwright tests by historical timing in CircleCI, publish usable JUnit data, control nested concurrency, and diagnose skewed parallel containers.
Spy on a Class Constructor Method in Vitest
Spy on class instance methods in Vitest before construction, verify per-instance calls, restore prototypes safely, and avoid constructor mocking traps.
Spy on a Getter Property with Jest
Spy on a getter property with Jest using accessType, preserve or replace computed behavior, verify reads precisely, and restore descriptors without test leakage.
Store Playwright Trace Artifacts in CircleCI
Store Playwright trace artifacts in CircleCI only after failed tests, with correct trace settings, artifact paths, parallel-node naming, and retention controls.
Test a Date Picker with Fixed Time in Playwright
Test date pickers with fixed time in Playwright across month ends, time zones, leap days, and booking cutoffs without flaky waits or host-clock dependence.
Test a Rejected Promise Error Code in Jest
Test rejected Promise error codes in Jest with rejects matchers, typed custom errors, exact assertions, and safeguards against false-positive async tests.
Test Browser Back-Button History in Playwright
Test browser back-button history in Playwright with real navigation, URL and UI assertions, history-state checks, bfcache awareness, and deterministic fixtures.
Test Client-Certificate Authentication with Playwright
Test client-certificate authentication with Playwright using real PEM or PFX identities, exact origin matching, negative mTLS cases, and certificate rotation.
Test Clipboard Read and Write Permissions in Playwright
Test clipboard read and write permissions in Playwright with origin-scoped grants, real Clipboard API assertions, denial paths, and cross-browser caveats.
Test Data Builder vs Object Mother
Compare Test Data Builder vs Object Mother patterns, see runnable TypeScript examples, and choose maintainable fixtures without hiding behavior or intent.
Test Downloaded File Contents in Cypress
Test Cypress file downloads by verifying the response headers, saved filename, MIME type, and parsed CSV or PDF content with deterministic cleanup.
Test Downloads with Random Filenames Using Playwright saveAs()
Test Playwright downloads with random filenames by capturing the Download object, choosing a stable saveAs path, and validating the actual file safely.
Test HTML5 Drag and Drop with Cypress DataTransfer
Test HTML5 drag and drop with Cypress DataTransfer using realistic event payloads, drop-zone assertions, debugging tactics, and browser-aware edge cases.
Test Infinite Scroll Until the Last Item in Playwright
Test infinite scroll until the last item in Playwright with deterministic stop signals, bounded loops, network checks, and virtualized-list assertions.
Test JSON Schema Structured Outputs with Promptfoo
Test JSON Schema structured outputs with Promptfoo using deterministic is-json assertions, provider schemas, adversarial cases, custom invariants, and CI reports.
Test Kafka Consumer Rebalancing with Testcontainers
Test Kafka consumer rebalancing with Testcontainers and KafkaJS by adding group members, observing assignments, and proving every partition stays owned.
Test MongoDB Transactions with a Testcontainers Replica Set
Test MongoDB transactions with a Testcontainers replica set using Node.js, real commit and rollback assertions, deterministic startup, and clean isolation.
Test Offline Cache Behavior with Playwright
Test offline cache behavior with Playwright across first load, service-worker fallback, queued writes, and reliable reconnection without false positives.
Test RabbitMQ Dead-Letter Queues with Testcontainers
Test RabbitMQ dead-letter queues with Testcontainers by verifying rejection, expiry, routing keys, x-death headers, policies, and deterministic message recovery.
Test Redis Key Expiration with Testcontainers
Test Redis key expiration with Testcontainers using real TTL commands, isolated containers, refresh boundaries, and deterministic eviction assertions.
Test Retries vs Job Retries in CI
Compare test retries vs job retries in CI, contain flaky failures, preserve evidence, and choose the cheapest recovery boundary for each fault.