Blog
QA testing insights, AI agent tips, and skill development guides
All Articles
Page 11 of 37
Playwright Locators Best Practices: Roles, Strictness, and Stability
Choose stable Playwright locators with roles, labels, scoped filters, strictness, and web-first assertions, then diagnose ambiguity without brittle shortcuts.
Playwright MCP Complete Guide for Browser Automation with AI Agents
Configure and use Playwright MCP for AI browser automation, testing, profiles, security, HTTP, Docker, CI, and reliable agent workflows in 2026.
Playwright MCP Persistent, Isolated, and Browser Extension Profiles
Choose Playwright MCP persistent, isolated, or browser-extension state for QA, including storage-state setup, parallel sessions, and profile risks.
Playwright MCP Security Best Practices for Files, Origins, and Secrets
Harden Playwright MCP file access, browser origins, profiles, secrets, artifacts, transports, sessions, and authorization with official security guidance.
Playwright MCP Server Configuration Reference for QA Teams
Configure Playwright MCP for QA with documented CLI flags, environment variables, JSON schema, capabilities, browsers, timeouts, output, and network controls.
Playwright MCP Testing Capability: Assertions and Test Generation
Enable Playwright MCP testing tools, verify elements, text, lists, and values, generate locators, and convert browser exploration into reviewable tests.
Playwright Planner Agent Guide for High-Coverage Markdown Test Plans
Use the Playwright Planner agent to explore bounded user flows, design risk-based scenarios, and produce precise Markdown plans ready for human review.
Playwright Test Agents Complete Guide: Planner, Generator, and Healer
Use Playwright test agents safely from setup through planning, generation, trace-driven healing, review, and CI with current Playwright 1.61 guidance.
Playwright Testing Complete Guide for Reliable E2E Automation in 2026
Build reliable Playwright E2E automation with current setup, locators, fixtures, isolation, auth, API testing, mocking, debugging, CI, and Playwright 1.61 guidance.
Promptfoo Complete Guide for LLM Evals, RAG, and Red Teaming
Use Promptfoo to design LLM evals, test RAG and coding agents, run red teams, enforce CI gates, preserve evidence, and govern reproducible releases.
RAG QA Testing Guide for Retrieval, Generation, and Citation Quality
Build a rigorous RAG testing strategy for retrieval, context, answers, citations, security, cost, latency, regression data, CI, and production monitoring.
Run Parallel Playwright CLI Sessions with PLAYWRIGHT_CLI_SESSION
Run coding agents in isolated Playwright CLI browser sessions, monitor them in the dashboard, attach to existing browsers, and clean up state safely.
Run the Official MCP Conformance Suite Against Your Server
Run the official MCP conformance suite against a live server with a pinned runner, deterministic fixtures, scoped results, and release-ready evidence.
Self-Healing Test Automation Governance for Reliable QA Suites
Govern self-healing test automation with eligibility rules, human review, audit evidence, stop conditions, safe examples, rollout phases, and reliability metrics.
Test and Red-Team an MCP Server with Promptfoo's MCP Provider
Configure Promptfoo MCP provider tests for local and remote servers, add authorization and threat cases, and gate safe results in CI.
Test MCP Tool Schemas, Defaults, Invalid Inputs, and Error Types
Test MCP tool schemas, omitted defaults, invalid inputs, protocol and execution errors, structured output, and product semantics under the current spec.
Use MCP Inspector CLI to Automate tools/list and tools/call Tests
Automate MCP tools/list and tools/call checks with the pinned Inspector CLI, typed arguments, JSON assertions, negative cases, and CI-safe evidence.
What OpenAI's Promptfoo Acquisition Means for Open-Source LLM Testing
Separate verified OpenAI-Promptfoo acquisition facts from inference, then protect open-source LLM eval continuity with practical release controls.
Add a PostgreSQL Service-Container Health Check in GitHub Actions
Add a PostgreSQL service-container health check in GitHub Actions so migrations and tests wait for readiness instead of racing database startup.
AI Testing Engineer Salary and Skills in 2026
Compare AI testing engineer salary benchmarks for 2026, identify high-value technical skills, and build evidence that supports a stronger compensation offer.
API Contract-Testing Interview Scenarios
Practice API contract-testing interview scenarios on consumer needs, provider verification, schema evolution, messaging, deployment gates, and failure triage.
Artillery Load Testing in Node.js: Complete 2026 Guide
A complete Artillery load testing guide for Node.js in 2026: install, write YAML scenarios, test HTTP and WebSocket, add JS processors, assert thresholds, and run in CI.
Assert a Specific Log Level with pytest caplog
Assert specific Python log levels with pytest caplog, isolate logger records, verify exception metadata, and avoid tests coupled to formatted output.
Assert That a Playwright List Has No Duplicate Items
Detect duplicate list items in Playwright with stable keys, normalized text, retrying assertions, and diagnostics that identify every repeated record.
Assert That a Table Column Is Sorted in Playwright
Assert sorted table columns in Playwright across numbers, dates, nulls, and locale-aware text with stable extraction and diagnostic failures.
Braintrust vs Langfuse: LLM Eval and Observability (2026)
Braintrust vs Langfuse compared for 2026: eval workflows, tracing, datasets, scoring, CI, self-hosting, pricing shape, and TS + Python SDK examples to pick the right platform.
Build a Rerun-Failed-Tests Workflow in CircleCI
Build a CircleCI rerun-failed-tests workflow that persists Playwright failure state, retries only failed tests in a follow-up job, and reports honestly.
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.
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.
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.
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.
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.
Canvas Pixel Assertion Testing in Playwright
Test canvas pixels in Playwright with deterministic rendering, getImageData sampling, PNG decoding, tolerances, and focused rendering diagnostics.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Configure Playwright baseURL for Multiple Environments
Configure Playwright baseURL for local, staging, and preview environments with validated targets, project overrides, and safe relative navigation.
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.
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.
Cross-Domain Authentication with Cypress origin()
Automate cross-domain authentication with Cypress origin(), pass credentials safely, validate redirects, and keep identity-provider tests reliable.
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.
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.
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.
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.