Skip to main content

Blog

QA testing insights, AI agent tips, and skill development guides

All Articles

Page 10 of 36

Tutorial
2026-07-13

Cache Cypress Sessions Across Spec Files

Cache Cypress sessions across spec files with cy.session, reliable validation, collision-safe IDs, and realistic behavior in parallel CI runs.

Tutorial
2026-07-13

Cache Playwright Browser Binaries in CircleCI

Cache Playwright browser binaries in CircleCI with versioned keys, correct paths, safe fallbacks, and installation checks that prevent stale builds.

Tutorial
2026-07-13

Cache Playwright Browsers in GitHub Actions

Cache Playwright browsers in GitHub Actions with version-safe keys, Linux dependency installation, cache validation, and evidence that caching pays off.

Tutorial
2026-07-13

Cache the pnpm Store for Tests in GitLab CI

Cache the pnpm store in GitLab CI with lockfile-derived keys, project-local paths, trusted writers, and pull-only test jobs that stay reproducible.

Guide
2026-07-13

Cancel Stale E2E Runs When a New Commit Arrives

Cancel stale E2E runs on new commits with branch-scoped GitHub Actions concurrency and GitLab interruptible jobs while protecting deploys and cleanup.

Tutorial
2026-07-13

Canvas Pixel Assertion Testing in Playwright

Test canvas pixels in Playwright with deterministic rendering, getImageData sampling, PNG decoding, tolerances, and focused rendering diagnostics.

Tutorial
2026-07-13

Change Browser Geolocation During a Playwright Test

Change browser geolocation during a Playwright test and verify live location updates, permission loss, accuracy handling, and location-aware network calls.

Guide
2026-07-13

Clean Up Orphaned Test Data After CI Failures

Clean up orphaned test data after cancelled or crashed CI jobs using ownership markers, leases, idempotent sweepers, retention windows, and safety guards.

API Testing
2026-07-13

Clean Up Pact Provider-State Test Data

Clean up Pact provider-state test data with deterministic identities, setup and teardown handlers, transaction-aware isolation, and leak detection.

Tutorial
2026-07-13

Comment a Test Summary on Pull Requests with GitHub Actions

Comment a clear test summary on every pull request with GitHub Actions, update one sticky comment, handle failures, and keep forked contributions safe.

Tutorial
2026-07-13

Compare Nested Dictionary Floats with pytest.approx()

Compare nested dictionary floats with pytest.approx using recursive leaf checks, path-aware tolerances, exact structure validation, and readable failures.

Tutorial
2026-07-13

Compare One Element with Masks in Playwright Visual Tests

Compare one Playwright element while masking dynamic subregions, stabilizing snapshots, controlling mask scope, and preserving meaningful visual coverage.

AI Testing
2026-07-13

Compare Prompt Versions with a Promptfoo Variable Matrix

Compare prompt versions with a Promptfoo variable matrix that holds model settings constant, expands shared inputs, and exposes quality regressions.

Tutorial
2026-07-13

Configure a Different Proxy per Playwright Project

Configure a different Playwright proxy per project for regional, tenant, and network-path coverage without leaking credentials or duplicating test suites.

Tutorial
2026-07-13

Configure HTTP Basic Authentication in Playwright

Configure Playwright HTTP Basic Authentication per project, constrain credential origins, cover browser and API requests, and prevent secret exposure.

Tutorial
2026-07-13

Configure Playwright baseURL for Multiple Environments

Configure Playwright baseURL for local, staging, and preview environments with validated targets, project overrides, and safe relative navigation.

Tutorial
2026-07-13

Configure Playwright Traces Only on the First Retry

Configure Playwright trace on first retry to capture decisive CI evidence while controlling storage, runtime overhead, and noisy test artifacts.

Tutorial
2026-07-13

Create a PostgreSQL Database per Test with Testcontainers

Create a PostgreSQL database per test with Testcontainers, safe parallel naming, real migrations, connection cleanup, and fast suite-level container reuse.

Tutorial
2026-07-13

Cross-Domain Authentication with Cypress origin()

Automate cross-domain authentication with Cypress origin(), pass credentials safely, validate redirects, and keep identity-provider tests reliable.

Guide
2026-07-13

Cypress “Element Is Detached from the DOM” Fix

Fix Cypress element detached from the DOM failures by re-querying after reactive renders, ending action chains, and synchronizing on observable application state.

Guide
2026-07-13

Cypress “Timed Out Retrying After 4000ms” Fix

Fix Cypress timed out retrying after 4000ms errors by separating selector, request, rendering, actionability, and test-isolation causes with evidence.

Guide
2026-07-13

Cypress “Uncaught Exception” Test Failure Fix

Fix Cypress uncaught exception failures with scoped, evidence-based handling that suppresses only known noise while preserving real application defects.

Guide
2026-07-13

Cypress intercept() Streaming-Response Limitations

Understand Cypress intercept streaming-response limitations for SSE and chunked HTTP, then design reliable tests for partial data, reconnects, and completion.

Comparison
2026-07-13

Database Seeding per Test vs per Suite

Compare database seeding per test vs per suite, including transaction rollback, fixture ownership, parallel workers, and hybrid patterns for reliable fast suites.

AI Testing
2026-07-13

DeepEval Tool Correctness Metric Example

Use DeepEval Tool Correctness Metric with real agent traces, expected calls, strict arguments, ordering, and regression cases that expose wrong tools.

Guide
2026-07-13

Deterministic Faker Seeds in Parallel Tests

Design deterministic Faker seeds for parallel tests, reproduce failures by test identity, avoid worker collisions, and preserve realistic data variation.

Guide
2026-07-13

Disable Animations and Carets in Playwright Screenshots

Disable animations and blinking carets in Playwright screenshots, stabilize visual baselines, and keep meaningful UI regressions visible in CI.

Tutorial
2026-07-13

Ensure pytest Yield-Fixture Cleanup After Failure

Make pytest yield-fixture cleanup reliable when tests or setup fail, using safe fixture boundaries, finalizers, context managers, and verified teardown.

Tutorial
2026-07-13

Exclude Browser and OS Combinations from a GitHub Actions Matrix

Exclude browser and OS combinations from a GitHub Actions matrix while preserving targeted Playwright coverage, readable jobs, and intentional failure policy.

Tutorial
2026-07-13

Exclude Generated Files from Jest Coverage

Exclude generated files from Jest coverage without hiding authored code, using precise collection rules, Istanbul directives, and auditable thresholds.

Tutorial
2026-07-13

Factory Boy post_generation for Many-to-Many Test Data

Use Factory Boy post_generation for Django many-to-many test data with explicit related objects, safe defaults, through models, batching, and isolated assertions.

Guide
2026-07-13

Fail CI Only on New Coverage Regressions

Enforce changed-code coverage in CI while leaving legacy gaps visible, using diff-aware line checks, stable baselines, and actionable pull request failures.

Guide
2026-07-13

Handle Missing Requests During Playwright HAR Replay

Configure Playwright HAR replay notFound fallback safely, diagnose unmatched requests, prevent accidental live traffic, and keep recordings maintainable.

Tutorial
2026-07-13

How to Shard Playwright Tests by File Instead of Project

Shard Playwright tests by file with predictable CI distribution, avoid project duplication, inspect shard membership, and balance uneven spec runtimes.

Tutorial
2026-07-13

How to Test a Debounced Search Input in Playwright

Learn deterministic Playwright debounce testing with the Clock API, request inspection, boundary checks, and no brittle fixed sleeps in your search tests.

Tutorial
2026-07-13

How to Test WebSocket Messages in Cypress

Test WebSocket messages in Cypress by controlling server events, observing browser state, and asserting reconnection, ordering, and malformed-frame behavior reliably.

Tutorial
2026-07-13

How to Test WebSocket Reconnection in Playwright

Test WebSocket reconnection in Playwright with deterministic server closes, real offline transitions, retry assertions, and duplicate-subscription checks.

Tutorial
2026-07-13

How to Wait for a Dynamic URL Response in Playwright

Learn how to wait for a dynamic URL response in Playwright by matching paths, query parameters, methods, status codes, and concurrent requests safely.

Tutorial
2026-07-13

HTML5 Drag and Drop with DataTransfer in Playwright

Implement HTML5 drag and drop with DataTransfer in Playwright, including custom MIME payloads, file drops, event diagnostics, and reliable outcome checks.

Tutorial
2026-07-13

In-Source Testing with import.meta.vitest

Use import.meta.vitest for focused in-source testing with correct Vitest configuration, TypeScript typing, production dead-code removal, and maintainable boundaries.

Tutorial
2026-07-13

Intercept GraphQL Requests by Operation Name in Cypress

Intercept GraphQL requests by operation name in Cypress to stub one query or mutation, preserve unrelated traffic, and make network assertions precise.

Guide
2026-07-13

Jest “Cannot Log After Tests Are Done” Fix

Fix Jest Cannot Log After Tests Are Done by tracing unawaited callbacks, owning timers and subscriptions, and proving teardown completes before exit.

Guide
2026-07-13

Jest “Did Not Exit One Second After the Test Run” Fix

Fix Jest did not exit one second after the test run by tracing open servers, sockets, timers, workers, and database pools to their missing cleanup.

Guide
2026-07-13

Jest “Invalid Hook Call” in React Tests Fix

Fix Jest invalid hook call errors by finding duplicate React instances, correcting resetModules usage, and isolating mocks without splitting the renderer.

Guide
2026-07-13

Jest ESM Default Export Mock Fix

Fix Jest ESM default export mocks by returning the right module shape, handling hoisting correctly, and using native ESM mocking when the runtime requires it.

Tutorial
2026-07-13

Jest Snapshot Property Matchers for Dynamic Values

Use Jest snapshot property matchers to validate dynamic IDs, timestamps, and generated fields while preserving meaningful structural regression coverage.

Guide
2026-07-13

Jest Worker Encountered Four Child-Process Exceptions Fix

Diagnose Jest worker child-process exceptions by exposing the first crash, separating resource exhaustion from test bugs, and tuning concurrency safely.

Comparison
2026-07-13

Langfuse vs Arize Phoenix: Open-Source LLM Observability (2026)

Langfuse vs Arize Phoenix for 2026: tracing model, evals, local-first vs self-host, OTel and OpenInference, datasets, RAG debugging, dashboards, and Python SDK examples compared.

AI Testing
2026-07-13

LLM Testing Interview Questions for QA Engineers

Prepare for LLM testing interviews with senior-level questions on nondeterminism, evaluation sets, safety, tool use, retrieval, and release decisions.

Guide
2026-07-13

Mask Secrets in CI Test Logs

Mask secrets in CI test logs with early registration, application redaction, adversarial failure tests, and controls for encoded or transformed credentials.

QA Testing Blog Articles, Page 10 | QASkills.sh