<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: AutomationDataCamp</title>
    <description>The latest articles on DEV Community by AutomationDataCamp (@automationdatacamp).</description>
    <link>https://dev.to/automationdatacamp</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4155938%2F564f7d4e-3c30-4bb4-87b9-6a9f897a52cb.png</url>
      <title>DEV Community: AutomationDataCamp</title>
      <link>https://dev.to/automationdatacamp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/automationdatacamp"/>
    <language>en</language>
    <item>
      <title>From QA tester to Lead QA: what changes, and what US data can't tell you</title>
      <dc:creator>AutomationDataCamp</dc:creator>
      <pubDate>Thu, 22 Oct 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/automationdatacamp/from-qa-tester-to-lead-qa-what-changes-and-what-us-data-cant-tell-you-oge</link>
      <guid>https://dev.to/automationdatacamp/from-qa-tester-to-lead-qa-what-changes-and-what-us-data-cant-tell-you-oge</guid>
      <description>&lt;p&gt;After a few years writing and automating tests, many testers wonder whether to keep going deeper on the tooling or to move into a role that sets test strategy, designs the test architecture and runs the team's approach to quality. This article explains what changes, and what US labor data can and cannot tell you before you step up.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The role change&lt;/strong&gt;: a lead decides what to test, how to organise it and how to measure it; an architect designs the technical structure that keeps it sustainable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;US data&lt;/strong&gt;: the Bureau of Labor Statistics projects 6% employment growth for software QA analysts and testers from 2025 to 2035, against 10% for software developers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The limit&lt;/strong&gt;: the BLS does not track QA leads or test architects separately, so no official figure exists for those roles.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tester, lead, architect: three different jobs
&lt;/h2&gt;

&lt;p&gt;Job titles vary from one company to the next, and what follows is my reading of the field, not a standard. A tester designs and runs tests, often with an automation tool, on the scope they are given. A QA lead answers a different question: for this product, with this deadline and this budget, what should we test, at which level, and who does it? A test architect looks after structure: how test code is organised, where data comes from, how tests run in the CI pipeline, and how all of it stays maintainable two years from now.&lt;/p&gt;

&lt;p&gt;In a small team one person wears both hats. In a large one, they are two jobs. Either way, the shift is from "I deliver tests" to "I make the team able to deliver good tests".&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually changes in the work
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Test strategy.&lt;/strong&gt; Strategy starts with risk: identify what could hurt the product, decide what to test first, decide what not to automate, and split the effort between unit, API and end-to-end tests. A good strategy fits on a few pages and can be defended in front of a project manager. It says why, not just what.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test architecture.&lt;/strong&gt; An automation project that grows without a plan gets slow and brittle. The architect sets the rules: repository layout, data and environment management, parallel execution, readable reports, and conventions the whole team follows. The goal is simple: a new tester can add a test without breaking the others.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Metrics.&lt;/strong&gt; Measuring is for deciding, not for decorating a dashboard. A coverage percentage alone does not tell you whether the right risks are covered. A lead picks few indicators, explains what they show and what they hide, and uses them to make trade-offs: where to put effort, when to stop, what to fix in the process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Leading the team.&lt;/strong&gt; Sharing out work, reviewing, coaching, pushing back on an unrealistic deadline, presenting a risk to the Product Owner: a growing share of the job happens in conversation. For a tester used to working alone on their scenarios, this is often the biggest change.&lt;/p&gt;

&lt;h2&gt;
  
  
  What US labor data says
&lt;/h2&gt;

&lt;p&gt;The most solid public source is the BLS Occupational Outlook Handbook, which treats "software quality assurance analysts and testers" (SOC 15-1253) as its own occupation alongside software developers. Its page was last modified on August 27, 2026:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Jobs&lt;/strong&gt;: about 187,600 software QA analysts and testers in 2025, against about 1,717,800 software developers. By simple division, that is roughly one QA analyst or tester for every nine developers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Growth&lt;/strong&gt;: projected employment growth from 2025 to 2035 is 6% for QA analysts and testers and 10% for software developers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pay&lt;/strong&gt;: median annual pay in May 2025 was $104,300 for QA analysts and testers and $135,980 for software developers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two honest limits. First, the BLS does not publish figures for QA leads or test architects, so these numbers describe the occupation as a whole, not the step up. Second, a 6% projection is moderate growth, and it says nothing about your own chances of getting a given job.&lt;/p&gt;

&lt;p&gt;My interpretation, which is an opinion and not a statistic: when there are relatively few tester seats per team, broadening your scope towards strategy, architecture and metrics is one way to become harder to replace by a script or an AI assistant. It is not the only way, and it does not suit everyone.&lt;/p&gt;

&lt;h2&gt;
  
  
  A one-week test before you decide
&lt;/h2&gt;

&lt;p&gt;For a week, note how many of your questions at work are about how to write a test, and how many are about what to test and why. The second kind is the lead's territory. If most of your questions already sit there, the step is probably natural. If they do not, that is useful to know too.&lt;/p&gt;

&lt;p&gt;If you are already asked "what is our test strategy?" and want an outside view of the answer, ADC offers a &lt;a href="https://www.automationdatacamp.com/en/qa-audit" rel="noopener noreferrer"&gt;QA audit&lt;/a&gt;: a risk and coverage map of a team's testing, with a costed action plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  What about certification?
&lt;/h2&gt;

&lt;p&gt;ISTQB offers advanced levels. The CTAL-TM (Test Management, version 3.0) covers, among other topics, project test strategy, risk-based testing, test metrics, estimation, defect management and stakeholder relationships. It requires the Foundation level (CTFL) and enough practical experience, with the exact criteria set by ISTQB's national member boards. It is not mandatory, and it is not part of the specialisation below.&lt;/p&gt;

&lt;h2&gt;
  
  
  ADC's Lead QA &amp;amp; Architect specialisation
&lt;/h2&gt;

&lt;p&gt;The track is for an experienced tester who wants to move towards team leadership, test strategy and test architecture. As shown on the &lt;a href="https://www.automationdatacamp.com/en/qa-specialisation-tracks#lead-qa" rel="noopener noreferrer"&gt;specialisation page&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;399 hours over 3 months, 100% online;&lt;/li&gt;
&lt;li&gt;next session announced for January 2027 (confirm the exact date with an advisor);&lt;/li&gt;
&lt;li&gt;one-to-one mentoring, learning platform for 6 months, session replays for 24 months;&lt;/li&gt;
&lt;li&gt;topics: test strategy, team leadership, test architecture, metrics.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Launch price for individuals: €1,750 incl. VAT, payable in 1 to 4 interest-free instalments; for companies, €7,500 incl. VAT. Prerequisites are clarified with an advisor, since this track is not meant for beginners. ADC is a French-language online training provider, so check the teaching language before you enrol. No certification is promised for this specialisation, and no job, promotion or salary either.&lt;/p&gt;

&lt;h2&gt;
  
  
  Over to you
&lt;/h2&gt;

&lt;p&gt;If you have made the jump from tester to lead, what was the first thing that surprised you: the strategy work, the metrics, or the conversations? And if you decided to stay hands-on instead, what made you choose that?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt; &lt;a href="https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm" rel="noopener noreferrer"&gt;US Bureau of Labor Statistics: Software Developers, Quality Assurance Analysts, and Testers (Occupational Outlook Handbook, page last modified August 27, 2026)&lt;/a&gt; · &lt;a href="https://www.istqb.org/certifications/certified-tester-advanced-level-test-management-ctal-tm-v3-0" rel="noopener noreferrer"&gt;ISTQB: Advanced Level Test Management CTAL-TM v3.0 (page modified August 22, 2026)&lt;/a&gt; · &lt;a href="https://www.automationdatacamp.com/en/qa-specialisation-tracks#lead-qa" rel="noopener noreferrer"&gt;ADC: QA specialisation tracks (Lead QA &amp;amp; Architect)&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.automationdatacamp.com/en/blog-post-lead-qa-architect-training" rel="noopener noreferrer"&gt;AutomationDataCamp&lt;/a&gt;. Written with AI assistance. Every figure comes from the sources listed above, as cited in the original article (checked on 19 October 2026).&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AutomationDataCamp is an online software testing academy (Playwright, API testing, CI, AI-assisted testing, ISTQB prep). More on &lt;a href="https://www.automationdatacamp.com/en/" rel="noopener noreferrer"&gt;our site&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>qa</category>
      <category>career</category>
      <category>testing</category>
      <category>automation</category>
    </item>
    <item>
      <title>Testing now lives in the pipeline: what CNCF, DORA and BLS data mean for QA</title>
      <dc:creator>AutomationDataCamp</dc:creator>
      <pubDate>Wed, 21 Oct 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/automationdatacamp/testing-now-lives-in-the-pipeline-what-cncf-dora-and-bls-data-mean-for-qa-1a40</link>
      <guid>https://dev.to/automationdatacamp/testing-now-lives-in-the-pipeline-what-cncf-dora-and-bls-data-mean-for-qa-1a40</guid>
      <description>&lt;p&gt;A few years ago, a tester received a build, tested it and gave a verdict. Today code goes through a pipeline that builds, tests and ships on every change. A tester who cannot read that pipeline only sees part of the work. Here is what recent US-based studies say about it, with their limits.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Testing moves into the pipeline&lt;/strong&gt;: it runs on every commit, not once at the end of a project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Containers are mainstream&lt;/strong&gt;: 82% of container users run Kubernetes in production (CNCF, January 2026).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The main obstacle is human&lt;/strong&gt;: the most-cited challenge is cultural change with development teams (47%), not technology.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No figure measures "the market for DevOps testers"&lt;/strong&gt;, and none is claimed here.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What changes: testing is no longer "the last step"
&lt;/h2&gt;

&lt;p&gt;In a team that ships often, nobody waits for a tester to open a spreadsheet of test cases. Automated checks start on every code change, and the pipeline stops when a test fails. The tester gains a more visible role: deciding which tests run, when, in which environment, and how to read a failure.&lt;/p&gt;

&lt;p&gt;Employers in France already ask for it. In &lt;a href="https://www.automationdatacamp.com/en/blog-post-qa-skills-barometer" rel="noopener noreferrer"&gt;our QA skills barometer&lt;/a&gt; of 2 October 2026, CI/CD appears in 35.1% of the 405 QA job ads we analysed. That is a French sample, not a US one, but it points the same way. For concrete examples with Jenkins, GitLab CI and GitHub Actions, see &lt;a href="https://www.automationdatacamp.com/en/blog-post-cicd-automation" rel="noopener noreferrer"&gt;test automation in CI/CD&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the US-facing data says, and its limits
&lt;/h2&gt;

&lt;p&gt;Each of these figures measures something specific.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kubernetes in production.&lt;/strong&gt; In the CNCF Annual Cloud Native Survey 2025, published on January 20, 2026, 82% of container users run Kubernetes in production, up from 66% in 2023. In the same survey, 98% of organisations say they have adopted cloud native techniques and 59% say much or nearly all of their development and deployment is cloud native.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A cultural obstacle first.&lt;/strong&gt; The same survey names "cultural changes with the development team" as the top challenge (47%). CNCF says it is the first time the main challenge is organisational rather than technical. For a tester, being able to work with developers weighs as much as knowing the tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI speeds up code, not trust.&lt;/strong&gt; The 2025 DORA report from Google Cloud (September 23, 2025, nearly 5,000 technology professionals surveyed) says AI adoption among software professionals reached 90%, and is now linked to higher software delivery throughput. It also notes that the ongoing challenge is making sure software works as intended before it reaches users. That is exactly where testing sits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jobs.&lt;/strong&gt; The US Bureau of Labor Statistics projects employment of software developers, QA analysts and testers to grow 10% from 2025 to 2035. For the QA analysts and testers line alone, it counts 187,600 jobs in 2025 and projects 198,200 in 2035, a 6% increase. The BLS groups these roles with developers for pay and does not break out DevOps testing, so I quote no salary here.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  CI/CD, Docker, Kubernetes: seen from the test side
&lt;/h2&gt;

&lt;p&gt;Four simple ideas, without needless jargon.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CI/CD: tests on every commit.&lt;/strong&gt; A pipeline runs tests automatically when a change arrives. The tester chooses what runs on every commit (fast), on every merge (broader) and overnight (long). A flaky test that fails the pipeline for no reason costs the whole team its trust, so the job is as much about making tests reliable as automating them. If that sounds familiar, our earlier piece on &lt;a href="https://www.automationdatacamp.com/en/blog-post-flaky-playwright-tests-causes-fixes" rel="noopener noreferrer"&gt;flaky Playwright tests&lt;/a&gt; goes through the usual causes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker: the same environment everywhere.&lt;/strong&gt; A container packages the application and its dependencies. For a tester it ends "it works on my machine": you start the same environment locally and in the pipeline, with controlled test data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kubernetes: knowing where tests run.&lt;/strong&gt; When the application runs on Kubernetes, test environments are created and destroyed there. You do not need to administer a cluster. You need to understand enough to run your tests in the right place and to read a log when something does not start.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Observability: seeing what happens after release.&lt;/strong&gt; Logs, metrics and traces help explain a failure and spot a regression the tests missed.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical first step
&lt;/h2&gt;

&lt;p&gt;If your tests only run on your laptop, move one smoke suite into a pipeline and make it block the merge when it fails. That single change forces every question that matters: where does the environment come from, where does the test data come from, and what happens when a test is flaky. If you want a second pair of eyes on how your tests fit into delivery, ADC also does a &lt;a href="https://www.automationdatacamp.com/en/cypress-to-playwright-migration" rel="noopener noreferrer"&gt;Cypress to Playwright migration&lt;/a&gt; with both suites running in CI during the transition.&lt;/p&gt;

&lt;h2&gt;
  
  
  The DevOps QA specialisation, briefly
&lt;/h2&gt;

&lt;p&gt;ADC's DevOps QA specialisation covers CI/CD, Docker, Kubernetes and observability. The &lt;a href="https://www.automationdatacamp.com/en/qa-specialisation-tracks#devops" rel="noopener noreferrer"&gt;programme page&lt;/a&gt; lists 399 hours over 3 months, 100% online, with one-on-one mentoring, 6 months on the learning platform and 24 months of replays. The next session is announced for December; exact dates are confirmed with an advisor.&lt;/p&gt;

&lt;p&gt;Two honest points. The programme pages state that ADC courses are taught in French, so ask an advisor about the language before you decide. And no certification is promised for this specialisation. Launch price: €1,500 for individuals (1 to 4 interest-free instalments), €7,500 for companies. Public funding schemes are not yet available at ADC. No programme guarantees a job or a salary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Over to you
&lt;/h2&gt;

&lt;p&gt;Where does your test suite run today: on every commit, on merge, nightly, or only when someone remembers? And in your team, is the harder part the tooling or, as CNCF's 47% suggests, the conversation with developers?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt; &lt;a href="https://www.cncf.io/announcements/2026/01/20/kubernetes-established-as-the-de-facto-operating-system-for-ai-as-production-use-hits-82-in-2025-cncf-annual-cloud-native-survey/" rel="noopener noreferrer"&gt;CNCF: Annual Cloud Native Survey 2025 (January 20, 2026)&lt;/a&gt; · &lt;a href="https://blog.google/innovation-and-ai/technology/developers-tools/dora-report-2025/" rel="noopener noreferrer"&gt;Google: 2025 DORA report (September 23, 2025)&lt;/a&gt; · &lt;a href="https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm" rel="noopener noreferrer"&gt;US Bureau of Labor Statistics: Software Developers, Quality Assurance Analysts, and Testers (projections 2025-35, page updated August 27, 2026)&lt;/a&gt; · &lt;a href="https://www.automationdatacamp.com/en/blog-post-qa-skills-barometer" rel="noopener noreferrer"&gt;ADC: QA Skills Barometer France (October 2, 2026)&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.automationdatacamp.com/en/blog-post-devops-qa-training" rel="noopener noreferrer"&gt;AutomationDataCamp&lt;/a&gt;. Written with AI assistance. Every figure comes from the sources listed above, as cited in the original article (checked on 19 October 2026).&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AutomationDataCamp is an online software testing academy (Playwright, API testing, CI, AI-assisted testing, ISTQB prep). More on &lt;a href="https://www.automationdatacamp.com/en/" rel="noopener noreferrer"&gt;our site&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>qa</category>
      <category>automation</category>
      <category>career</category>
    </item>
    <item>
      <title>Is software testing still a good career in 2026? What US data says about QA and AI</title>
      <dc:creator>AutomationDataCamp</dc:creator>
      <pubDate>Tue, 20 Oct 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/automationdatacamp/is-software-testing-still-a-good-career-in-2026-what-us-data-says-about-qa-and-ai-2ge6</link>
      <guid>https://dev.to/automationdatacamp/is-software-testing-still-a-good-career-in-2026-what-us-data-says-about-qa-and-ai-2ge6</guid>
      <description>&lt;p&gt;"Will AI take my testing job?" is the question I hear most from people thinking about a career in QA. Instead of guessing, I went to the most reliable public source for US jobs, the Bureau of Labor Statistics (BLS), and read what it actually says about software QA analysts and testers, and about AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The outlook is positive&lt;/strong&gt;: the BLS projects 6% growth for software QA analysts and testers from 2025 to 2035.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The pay data is solid&lt;/strong&gt;: the median annual wage for this occupation was $104,300 in May 2025.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI is a demand driver, not only a threat&lt;/strong&gt;: the BLS links demand to software built for AI, IoT, robotics and other automation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The work moves&lt;/strong&gt;: drafting a first test gets cheaper with AI assistants; deciding what to test, reviewing the output and judging risk do not.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What the US data says about testers
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm" rel="noopener noreferrer"&gt;Occupational Outlook Handbook&lt;/a&gt;, last modified on 27 August 2026, gives these figures for software quality assurance analysts and testers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;About 187,600 jobs in 2025.&lt;/li&gt;
&lt;li&gt;Projected employment growth of 6% from 2025 to 2035.&lt;/li&gt;
&lt;li&gt;A median annual wage of $104,300 in May 2025.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the wider group that includes software developers, QA analysts and testers, the BLS projects 10% growth over the same period and about 106,100 openings per year, mostly from workers who leave the occupation and need to be replaced. Read that carefully: 6% is the figure for testers alone, and the openings number covers the whole group, not testers only.&lt;/p&gt;

&lt;p&gt;Also keep in mind that these are US national figures. Pay depends on the city, the sector, the seniority and the employer, and a median is not a starting salary. These numbers describe the market. They do not predict what anyone would earn.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the BLS says about AI
&lt;/h2&gt;

&lt;p&gt;The same page does not describe AI as shrinking this occupation. It says demand should stay strong because of the growth of software for AI, the Internet of Things, robotics and other automation, and that more investment in security software could raise demand for QA analysts and testers.&lt;/p&gt;

&lt;p&gt;A fair reading: more software means more things to verify. The work moves, though. Writing a first draft of a test is getting cheaper with AI assistants. Deciding what to test, reviewing what the assistant produced and judging a risk are not getting cheaper.&lt;/p&gt;

&lt;p&gt;I looked at the job-ad side too. In our &lt;a href="https://www.automationdatacamp.com/en/blog-post-qa-skills-barometer" rel="noopener noreferrer"&gt;QA Skills Barometer&lt;/a&gt;, a snapshot of 405 QA job ads in France taken on 2 October 2026, Playwright appears in 24.2% of ads and AI in 20.7%, with Jira and agile practices each in a larger share. That is a French sample, not a US one, but the direction is useful: automation and AI are on the list, and the basics of test management are still asked for more often. For a wider view, see &lt;a href="https://www.automationdatacamp.com/en/blog-post-ai-testing-trends-2026" rel="noopener noreferrer"&gt;AI testing trends in 2026&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The skills that travel
&lt;/h2&gt;

&lt;p&gt;Whether a team is in Austin, Montreal or Lyon, the core of the job looks the same:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Test design&lt;/strong&gt;: equivalence classes, boundary values, risk analysis. This is what makes automated tests worth having.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automation&lt;/strong&gt;: Playwright with TypeScript is a common modern stack for web and API tests. If you are on the hiring side and want that kind of suite built in your own repository instead, ADC also offers &lt;a href="https://www.automationdatacamp.com/en/playwright-test-automation-services" rel="noopener noreferrer"&gt;Playwright test automation services&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CI&lt;/strong&gt;: running tests on every change, for example with GitHub Actions, and reading the failures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Working with AI&lt;/strong&gt;: generate, review, run and verify, and never accept a test you have not read.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Certification as a common language&lt;/strong&gt;: ISTQB certificates are international.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A habit that costs nothing: the next time an AI assistant writes a test for you, read it line by line and ask what bug it would actually catch. If you cannot answer, the test is decoration.&lt;/p&gt;

&lt;h2&gt;
  
  
  One course, with honest limits
&lt;/h2&gt;

&lt;p&gt;Our &lt;a href="https://www.automationdatacamp.com/en/qa-automation-ai-tester-course" rel="noopener noreferrer"&gt;QA Automation &amp;amp; AI Tester course&lt;/a&gt; is built around exactly that list, starting from zero: testing fundamentals, then Playwright and TypeScript for web and API tests, tests in GitHub Actions, and generative AI applied to testing.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;399 hours over 12 weeks, with 160 hours of live classes with a mentor and about 239 hours of self-paced work.&lt;/li&gt;
&lt;li&gt;100% online, evening classes Monday to Friday, 19:30 to 21:30 Paris time.&lt;/li&gt;
&lt;li&gt;ISTQB CTFL v4.0 and CT-GenAI v1.1 exams included, with a second attempt offered for each. The course is "certifying" in this precise sense: an ADC certificate awarded after a defence in front of a jury, plus the ISTQB exams.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The limits matter for a US reader. &lt;strong&gt;Classes are in French&lt;/strong&gt;, so you need fluent French and the ability to read technical English. If you are not a French speaker, this course is not the right fit today. The evening slot is Paris time, early afternoon on the US East Coast. The next session runs from 15 October 2026 to 15 January 2027 with 12 places, and enrolment stays open until 22 October.&lt;/p&gt;

&lt;p&gt;Price: €1,500 launch price for individuals (1 to 4 interest-free instalments), €7,500 for companies, both including VAT. French public funding such as the CPF, France Travail or an OPCO is not available yet. There is no promise of a job, a salary or that a recruiter will recognise the certificate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Over to you
&lt;/h2&gt;

&lt;p&gt;If you moved into QA in the last couple of years, which skill turned out to matter more than you expected: test design, automation or working with an AI assistant? And if you hire testers, what do you now ask candidates about AI that you did not ask two years ago?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt; &lt;a href="https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm" rel="noopener noreferrer"&gt;US Bureau of Labor Statistics: Software Developers, Quality Assurance Analysts, and Testers (last modified 27 August 2026)&lt;/a&gt; · &lt;a href="https://www.automationdatacamp.com/en/blog-post-qa-skills-barometer" rel="noopener noreferrer"&gt;ADC: QA Skills Barometer (snapshot of 2 October 2026, France)&lt;/a&gt; · &lt;a href="https://istqb.org/" rel="noopener noreferrer"&gt;ISTQB&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.automationdatacamp.com/en/blog-post-qa-automation-ai-tester-training" rel="noopener noreferrer"&gt;AutomationDataCamp&lt;/a&gt;. Written with AI assistance. Every figure comes from the sources listed above, as cited in the original article (checked on 19 October 2026).&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AutomationDataCamp is an online software testing academy (Playwright, API testing, CI, AI-assisted testing, ISTQB prep). More on &lt;a href="https://www.automationdatacamp.com/en/" rel="noopener noreferrer"&gt;our site&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>qa</category>
      <category>ai</category>
      <category>career</category>
    </item>
    <item>
      <title>Flaky Playwright tests: 8 common causes and how to fix each one</title>
      <dc:creator>AutomationDataCamp</dc:creator>
      <pubDate>Fri, 09 Oct 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/automationdatacamp/flaky-playwright-tests-8-common-causes-and-how-to-fix-each-one-19p2</link>
      <guid>https://dev.to/automationdatacamp/flaky-playwright-tests-8-common-causes-and-how-to-fix-each-one-19p2</guid>
      <description>&lt;p&gt;A flaky test fails, then passes on the next run with no code change. Playwright has a name for it: a test that “failed on the first run, but passed when retried” is reported as &lt;strong&gt;flaky&lt;/strong&gt;. Retries hide the problem, they do not fix it. Below are eight common causes, how to spot each one, and the fix the Playwright documentation recommends, including two features from the latest releases: test locks (1.63) and &lt;code&gt;--shuffle&lt;/code&gt; (1.64).&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Never wait for time&lt;/strong&gt;: Playwright’s own docs say tests that use &lt;code&gt;waitForTimeout&lt;/code&gt; are “inherently flaky”.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Await the assertion, not the value&lt;/strong&gt;: &lt;code&gt;await expect(locator).toBeVisible()&lt;/code&gt; retries, &lt;code&gt;expect(await locator.isVisible())&lt;/code&gt; does not.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Order-dependent tests&lt;/strong&gt; can now be found with &lt;code&gt;npx playwright test --shuffle&lt;/code&gt; (Playwright 1.64).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tests that share one resource&lt;/strong&gt; can declare a named &lt;code&gt;lock&lt;/code&gt; so they never run at the same time (Playwright 1.63).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measure before you fix&lt;/strong&gt;: &lt;code&gt;--repeat-each&lt;/code&gt; to reproduce, traces on the first retry to understand, &lt;code&gt;--fail-on-flaky-tests&lt;/code&gt; to stop new ones.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. Hard waits
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; the test passes on your laptop and fails on a slower CI runner, or the reverse.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt; &lt;code&gt;page.waitForTimeout(2000)&lt;/code&gt; guesses how long the app needs. The Playwright API reference marks it as discouraged: “Never wait for timeout in production. Tests that wait for time are inherently flaky.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; wait for a state, not a duration. Locator actions already wait: before a click, Playwright checks that the element is visible, stable (“the same bounding box for at least two consecutive animation frames”), receives events and is enabled. Then assert the result with a web-first assertion such as &lt;code&gt;await expect(page.getByRole('status')).toHaveText('Saved')&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The same goes for &lt;code&gt;waitForLoadState('networkidle')&lt;/code&gt;, which the docs also mark as discouraged: “Don't use this method for testing, rely on web assertions to assess readiness instead.”&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Assertions that do not retry
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; an assertion fails, but the screenshot shows the expected element.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt; the value was read once, before the page was ready. The Playwright best practices page gives this exact anti-pattern: &lt;code&gt;expect(await page.getByText('welcome').isVisible()).toBe(true)&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; &lt;code&gt;await expect(page.getByText('welcome')).toBeVisible()&lt;/code&gt;. Web-first assertions wait “until the expected condition is met”. A quick search for &lt;code&gt;expect(await&lt;/code&gt; in your test folder often finds several of these.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Locators tied to the DOM structure
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; the test breaks after a harmless markup change, or clicks the wrong one of two matching elements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt; long CSS or XPath selectors. The docs warn: “Your DOM can easily change so having your tests depend on your DOM structure can lead to failing tests.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; prefer user-facing locators (&lt;code&gt;getByRole&lt;/code&gt;, &lt;code&gt;getByLabel&lt;/code&gt;, &lt;code&gt;getByTestId&lt;/code&gt;). When a hidden copy of an element exists (a mobile menu, a template), Playwright 1.63 added &lt;code&gt;locator.visible()&lt;/code&gt;, which “returns a locator that matches only visible elements”, for example &lt;code&gt;page.locator('button').visible()&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Tests that depend on each other
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; a test passes in the full suite but fails when run alone, or the reverse.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt; one test creates data or state that another one silently needs. Playwright already gives each test a fresh browser context (“Playwright creates a context for each test”), so cookies and storage are not shared. But data in your backend is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; each test creates what it needs, for example through an API call in a fixture. To find the hidden dependencies, Playwright 1.64 added &lt;code&gt;npx playwright test --shuffle&lt;/code&gt;, which “schedules tests in a random order, which helps to find tests that accidentally depend on each other”. The run prints a seed: pass it back (&lt;code&gt;--shuffle 271828182&lt;/code&gt; in the docs) to replay the same order while you debug.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Parallel tests fighting over one resource
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; failures only appear with several workers, and never on the same test twice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt; by default, Playwright runs test files in parallel in separate worker processes. Two tests that edit the same account setting or the same record overwrite each other.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; first, give each test its own data (unique names, one user per worker). When the resource really is shared, Playwright 1.63 added test locks: “Tests that share a lock name never run concurrently, across files, workers and projects, while everything else keeps running in parallel.” You declare it with &lt;code&gt;test('update user settings', { lock: 'user-settings' }, async ({ page }) =&amp;gt; { ... })&lt;/code&gt;, or for a whole file with the &lt;code&gt;lock&lt;/code&gt; option of &lt;code&gt;test.describe.configure()&lt;/code&gt;. This is more precise than switching the whole file to serial mode.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Calls to services you do not control
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; failures come in waves, on every branch at once.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt; a third-party API, payment sandbox or analytics script is slow or down. Your test is measuring someone else’s uptime.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; the best practices page says to use “the Playwright Network API and guarantee the response needed”: &lt;code&gt;page.route()&lt;/code&gt; with &lt;code&gt;route.fulfill()&lt;/code&gt; returns a fixed response. Keep a few separate, clearly labelled tests that hit the real service.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Time, time zone and locale
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; the test fails around midnight, at the end of the month, or only on the CI machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt; the app formats “today” or a price with the machine’s clock, time zone and language, and those differ between your laptop and CI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; set them. In the config, &lt;code&gt;use: { locale: 'en-GB', timezoneId: 'Europe/Paris' }&lt;/code&gt; (the example from the emulation docs). For the date itself, the Clock API controls time: &lt;code&gt;page.clock.setFixedTime()&lt;/code&gt; fixes &lt;code&gt;Date.now()&lt;/code&gt; and &lt;code&gt;new Date()&lt;/code&gt;, and &lt;code&gt;page.clock.install()&lt;/code&gt; lets you pause or fast-forward timers.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. A CI machine under too much load
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; unrelated tests time out together, close to the timeout limit, and all pass when re-run alone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt; too many workers for the machine, combined with a tight timeout. When &lt;code&gt;workers&lt;/code&gt; is not set, Playwright uses 50% of the logical CPU cores. We hit this on our own website’s test suite: 5 tests failed in the full run, each running for 11 to 18 seconds with a 15-second test timeout. With &lt;code&gt;--workers=1&lt;/code&gt;, all 89 tests passed. Nothing was wrong with the site.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; set &lt;code&gt;workers&lt;/code&gt; explicitly for CI, and do not lower timeouts to make the suite look faster. Before reporting a bug from a full run, re-run the failing test alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to measure flakiness before fixing it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reproduce&lt;/strong&gt;: &lt;code&gt;npx playwright test my.spec.ts --repeat-each=20&lt;/code&gt; runs each test 20 times. A test that passes 20 times in a row is not proof, but one failure is.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Record evidence&lt;/strong&gt;: the default config records a trace &lt;code&gt;on-first-retry&lt;/code&gt;. For CI failures, the docs recommend “the Playwright trace viewer instead of videos and screenshots”: it shows the DOM, network and console at each step.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read the report&lt;/strong&gt;: with &lt;code&gt;retries&lt;/code&gt; enabled, the report sorts tests into passed, flaky and failed. Track the flaky list like a bug list.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stop new ones&lt;/strong&gt;: &lt;code&gt;--fail-on-flaky-tests&lt;/code&gt; makes the run “fail if any test is flagged as flaky”. Useful on a pull request, once the existing list is under control.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Can AI help?
&lt;/h2&gt;

&lt;p&gt;AI agents can read a trace and suggest a fix, and Playwright now ships a healer agent for broken tests. But most of the causes above are design decisions: what data a test owns, which service is mocked, which resource is shared. An agent can propose a &lt;code&gt;waitForTimeout&lt;/code&gt; just as easily as a web-first assertion, so review its fix with the same checklist.&lt;/p&gt;

&lt;h2&gt;
  
  
  Over to you
&lt;/h2&gt;

&lt;p&gt;Which of these eight causes shows up most in your suite, and which one took you the longest to track down? If you have tried &lt;code&gt;--shuffle&lt;/code&gt; or test locks since they shipped, I'd like to hear what they found.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt; &lt;a href="https://playwright.dev/docs/test-retries" rel="noopener noreferrer"&gt;Playwright docs: Retries (passed, flaky, failed)&lt;/a&gt; · &lt;a href="https://playwright.dev/docs/api/class-page#page-wait-for-timeout" rel="noopener noreferrer"&gt;Playwright docs: page.waitForTimeout (discouraged)&lt;/a&gt; · &lt;a href="https://playwright.dev/docs/actionability" rel="noopener noreferrer"&gt;Playwright docs: Auto-waiting&lt;/a&gt; · &lt;a href="https://playwright.dev/docs/best-practices" rel="noopener noreferrer"&gt;Playwright docs: Best practices&lt;/a&gt; · &lt;a href="https://playwright.dev/docs/browser-contexts" rel="noopener noreferrer"&gt;Playwright docs: Isolation&lt;/a&gt; · &lt;a href="https://playwright.dev/docs/test-parallel" rel="noopener noreferrer"&gt;Playwright docs: Parallelism&lt;/a&gt; · &lt;a href="https://playwright.dev/docs/release-notes" rel="noopener noreferrer"&gt;Playwright release notes (1.63 test locks, 1.64 --shuffle)&lt;/a&gt; · &lt;a href="https://playwright.dev/docs/clock" rel="noopener noreferrer"&gt;Playwright docs: Clock&lt;/a&gt; · &lt;a href="https://playwright.dev/docs/emulation" rel="noopener noreferrer"&gt;Playwright docs: Emulation (locale, timezone)&lt;/a&gt; · &lt;a href="https://playwright.dev/docs/test-cli" rel="noopener noreferrer"&gt;Playwright docs: Command line (--repeat-each, --fail-on-flaky-tests)&lt;/a&gt; · &lt;a href="https://playwright.dev/docs/trace-viewer-intro" rel="noopener noreferrer"&gt;Playwright docs: Trace viewer&lt;/a&gt; · &lt;a href="https://playwright.dev/docs/test-agents" rel="noopener noreferrer"&gt;Playwright docs: Test agents (planner, generator, healer)&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.automationdatacamp.com/en/blog-post-flaky-playwright-tests-causes-fixes" rel="noopener noreferrer"&gt;AutomationDataCamp&lt;/a&gt;. Written with AI assistance and reviewed by a test automation engineer; every Playwright option and quote was checked against the official documentation on 8 October 2026 (Playwright 1.64).&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AutomationDataCamp is an online software testing academy (Playwright, API testing, CI, AI-assisted testing, ISTQB prep). More on &lt;a href="https://www.automationdatacamp.com/en/" rel="noopener noreferrer"&gt;our site&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>playwright</category>
      <category>testing</category>
      <category>qa</category>
      <category>automation</category>
    </item>
    <item>
      <title>How to Prepare for a QA Interview in 2026: 5 Questions You Will Be Asked</title>
      <dc:creator>AutomationDataCamp</dc:creator>
      <pubDate>Thu, 08 Oct 2026 00:27:29 +0000</pubDate>
      <link>https://dev.to/automationdatacamp/how-to-prepare-for-a-qa-interview-in-2026-5-questions-you-will-be-asked-2oh8</link>
      <guid>https://dev.to/automationdatacamp/how-to-prepare-for-a-qa-interview-in-2026-5-questions-you-will-be-asked-2oh8</guid>
      <description>&lt;p&gt;Candidates who know every definition by heart can still struggle in a QA interview, because the questions rarely test definitions. They test how you think.&lt;/p&gt;

&lt;p&gt;Below are five questions that come up again and again for junior and mid-level testers, what the interviewer is actually looking for, and how to build an answer. They are not scripts. Read them, close the tab, and write your own version with an example from your own work or practice projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Answer with reasoning, not vocabulary.&lt;/strong&gt; Interviewers want to hear how you decide, not a textbook quote.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use risk to prioritize&lt;/strong&gt;, and say out loud what you did &lt;em&gt;not&lt;/em&gt; test.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A bug report is judged on one thing&lt;/strong&gt;: can a developer reproduce it on the first try?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For "how would you test X?"&lt;/strong&gt;, ask questions first, then structure your ideas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For automation&lt;/strong&gt;, show judgment about what &lt;em&gt;not&lt;/em&gt; to automate.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A quick word on how QA interviews are built
&lt;/h2&gt;

&lt;p&gt;Most hiring processes for testers combine some of the same building blocks: a short screening call, a technical interview, a practical exercise (live or take-home), and a behavioral interview. The names and order change from one company to the next, but each round looks for something different. The five questions below are mostly technical-interview material, and the fourth one often turns into the practical exercise.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. "Time is short. What do you test first?"
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What they are checking:&lt;/strong&gt; prioritization. Nobody tests everything, so the interviewer wants to see how you choose.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to answer:&lt;/strong&gt; talk about risk. Look at what changed in this release, what users rely on most, and what would hurt the business if it broke. Test the main happy paths of those areas first, then the most likely failure cases.&lt;/p&gt;

&lt;p&gt;Then add the part most candidates forget: &lt;strong&gt;tell the team what you did not get to.&lt;/strong&gt; A release decision made with a clear list of untested areas is a good decision, even if the coverage is incomplete.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I'd start from what changed and what users depend on most, check the main flows there, then the likely failures. Before the release, I'd share exactly what I didn't cover, so the team decides with full information."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  2. "What should a good bug report contain?"
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What they are checking:&lt;/strong&gt; clear communication. A vague report costs a developer time and costs you credibility.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to answer:&lt;/strong&gt; list the parts, then give the goal behind them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a &lt;strong&gt;title&lt;/strong&gt; that says what is wrong and where;&lt;/li&gt;
&lt;li&gt;the &lt;strong&gt;environment&lt;/strong&gt;: build or version, browser or device, operating system;&lt;/li&gt;
&lt;li&gt;exact &lt;strong&gt;steps to reproduce&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;expected&lt;/strong&gt; result and &lt;strong&gt;actual&lt;/strong&gt; result;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;severity&lt;/strong&gt;, with a one-line reason;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;evidence&lt;/strong&gt;: screenshot, short video, logs, the failing network request.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One bug per report. The goal: &lt;strong&gt;a developer reproduces it on the first try without having to ask you anything.&lt;/strong&gt; If you can, mention a bug you reported and what made the report effective.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. "A developer says: 'It works on my machine.' What do you do?"
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What they are checking:&lt;/strong&gt; collaboration under mild friction. Are you defensive, or curious?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to answer:&lt;/strong&gt; stay curious. Reproduce it again on your side, then compare the two environments: build version, browser, test data, user permissions, configuration, cached data, feature flags. Share the exact steps and the evidence, and offer to reproduce it together.&lt;/p&gt;

&lt;p&gt;The point worth saying out loud: &lt;strong&gt;the difference between the two environments is often the clue to the bug itself.&lt;/strong&gt; That turns a disagreement into a joint investigation, which is exactly what a team wants from its tester.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. "How would you test this login page?"
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What they are checking:&lt;/strong&gt; structured thinking. This question (or "how would you test a pen / an elevator / a coffee machine?") is less about the object than about how you organize your ideas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to answer:&lt;/strong&gt; start with questions. Who uses it? Is there "remember me", a lockout policy, single sign-on, two-factor authentication? What are the password rules? Then group your ideas instead of listing them at random:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Happy path:&lt;/strong&gt; valid credentials log the user in and land on the right page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Negative cases:&lt;/strong&gt; wrong password, unknown email, empty fields, expired account.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Boundaries:&lt;/strong&gt; minimum and maximum length, spaces, special characters, copy-paste.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security:&lt;/strong&gt; password is masked, lockout after repeated failures, error messages don't reveal whether the email exists.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Usability and accessibility:&lt;/strong&gt; keyboard navigation, labels read by a screen reader, clear error messages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compatibility:&lt;/strong&gt; the main browsers and a mobile viewport.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finish by saying which of these you would run first, and why. The structure of your answer matters more than its length.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. "What would you automate first?"
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What they are checking:&lt;/strong&gt; judgment. Automation is a cost as well as a benefit, and mid-level candidates in particular are expected to know the difference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to answer:&lt;/strong&gt; automate what is &lt;strong&gt;stable, repetitive and valuable&lt;/strong&gt;: smoke tests, core user journeys, regression checks, and API tests with many data combinations. Keep exploratory testing, usability judgment, one-off checks and features that still change every sprint as manual work, at least for now.&lt;/p&gt;

&lt;p&gt;If the role mentions a tool, connect your answer to it. With Playwright, for example, you can mention that the official &lt;a href="https://playwright.dev/docs/best-practices" rel="noopener noreferrer"&gt;best practices&lt;/a&gt; recommend testing user-visible behavior, using locators, and keeping tests isolated from one another. Be honest about your level: "I've used it on a personal project, here is what I built" beats bluffing every time.&lt;/p&gt;

&lt;p&gt;API questions often follow this one. A classic: &lt;em&gt;what is the difference between 401 and 403?&lt;/em&gt; A &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/401" rel="noopener noreferrer"&gt;401&lt;/a&gt; means the request lacks valid authentication; a &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/403" rel="noopener noreferrer"&gt;403&lt;/a&gt; means the server understood who you are but refuses access.&lt;/p&gt;

&lt;p&gt;Tool expectations also vary by market. When we counted the skills in 405 QA job ads in France in October 2026, &lt;a href="https://dev.to/automationdatacamp/playwright-now-beats-selenium-in-french-qa-job-ads-what-405-ads-ask-testers-for-4hnd"&gt;Playwright appeared in 24.2% of them and Selenium in 21.7%&lt;/a&gt;. Read the job ad closely and prepare for the tools it names.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to practice in the week before
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Write your answers down&lt;/strong&gt;, then say them out loud with a timer. Most answers should take between 45 and 90 seconds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prepare four to six real stories&lt;/strong&gt; in STAR format (Situation, Task, Action, Result) for behavioral questions. Say "I", not "we", and keep the Action part the longest.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Redo one practical exercise&lt;/strong&gt;: write test cases for a login form, or a bug report for a bug you found in any app you use.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prepare two or three questions for them&lt;/strong&gt;, for example: "Who decides when a release is ready?"&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  If you want a structured workbook
&lt;/h2&gt;

&lt;p&gt;I put all of this, and more, into a printable and fillable PDF: the &lt;em&gt;Software Testing Interview Workbook&lt;/em&gt; (36 pages, in English). It covers 30 common questions with model answers, 13 core testing concepts, three practical exercises with worked solutions (login test cases, a checkout spec review, a bug report), automation and API basics, STAR worksheets and a 7-day prep plan. It's a paid product on Etsy ($10.99): &lt;a href="https://www.etsy.com/listing/4590804257" rel="noopener noreferrer"&gt;Software Testing Interview Workbook&lt;/a&gt;. Everything in this article is free to use without it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Over to you
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Which interview question caught you off guard the most, and how would you answer it today?&lt;/strong&gt; Share it in the comments; I'll reply to each one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt; &lt;a href="https://playwright.dev/docs/best-practices" rel="noopener noreferrer"&gt;Playwright — Best Practices&lt;/a&gt; · &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/401" rel="noopener noreferrer"&gt;MDN — 401 Unauthorized&lt;/a&gt; · &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/403" rel="noopener noreferrer"&gt;MDN — 403 Forbidden&lt;/a&gt; · &lt;a href="https://www.automationdatacamp.com/en/blog-post-barometre-competences-qa" rel="noopener noreferrer"&gt;AutomationDataCamp — QA Skills Barometer, October 2026&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Written with AI assistance and reviewed by a test automation engineer; links were checked on 7 October 2026. The interview advice reflects our own experience, not a survey.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AutomationDataCamp is an online software testing academy (Playwright, API testing, CI, AI-assisted testing, ISTQB prep). More on &lt;a href="https://www.automationdatacamp.com/en/" rel="noopener noreferrer"&gt;our site&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>qa</category>
      <category>career</category>
      <category>automation</category>
    </item>
    <item>
      <title>How to test an LLM chatbot or a RAG app in 2026: a tester's checklist</title>
      <dc:creator>AutomationDataCamp</dc:creator>
      <pubDate>Tue, 06 Oct 2026 13:00:07 +0000</pubDate>
      <link>https://dev.to/automationdatacamp/how-to-test-an-llm-chatbot-or-a-rag-app-in-2026-a-testers-checklist-156o</link>
      <guid>https://dev.to/automationdatacamp/how-to-test-an-llm-chatbot-or-a-rag-app-in-2026-a-testers-checklist-156o</guid>
      <description>&lt;p&gt;More and more teams ship a chatbot or a “chat with your documents” feature, and testers are asked to sign it off. The usual tools still apply, but the method changes: the same question can get two different answers, the answer depends on documents the model retrieved, and the user can try to talk the model into misbehaving. Here is how we approach it, with the public references behind each check.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Don’t assert exact text&lt;/strong&gt;: assert properties (required facts, refusal, format, sources) and run each case several times.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test retrieval and generation separately&lt;/strong&gt;: a wrong answer often comes from the wrong documents, not from the model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use the OWASP Top 10 for LLM Applications (2025)&lt;/strong&gt; as a security checklist: prompt injection, sensitive information disclosure, system prompt leakage, excessive agency…&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check the AI Act transparency rule&lt;/strong&gt;: since 2 August 2026, users must be told they are interacting with an AI system.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools exist&lt;/strong&gt;: promptfoo (open-source evals and red teaming), Ragas (RAG metrics), and Playwright for the UI.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why do classic assertions break on a chatbot?
&lt;/h2&gt;

&lt;p&gt;Because the output is not deterministic. Ask the same question twice and you may get two correct answers worded differently, or one correct and one wrong. An assertion like &lt;code&gt;expect(answer).toBe("Your order ships in 3 days")&lt;/code&gt; fails on a good answer and tells you nothing about a bad one.&lt;/p&gt;

&lt;p&gt;What works better is to assert &lt;strong&gt;properties&lt;/strong&gt; of the answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;it &lt;strong&gt;contains the required facts&lt;/strong&gt; (the delay, the price, the right product name);&lt;/li&gt;
&lt;li&gt;it &lt;strong&gt;does not contain forbidden content&lt;/strong&gt; (another customer’s data, an internal URL, a competitor’s price);&lt;/li&gt;
&lt;li&gt;it &lt;strong&gt;refuses&lt;/strong&gt; what is out of scope, instead of inventing;&lt;/li&gt;
&lt;li&gt;it respects the expected &lt;strong&gt;format&lt;/strong&gt; (JSON schema, length, language);&lt;/li&gt;
&lt;li&gt;it &lt;strong&gt;cites its sources&lt;/strong&gt; when the product promises it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then run each case several times and track a &lt;strong&gt;pass rate&lt;/strong&gt;, not a single green or red. A case that passes 7 times out of 10 is a finding, not a pass.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you test a RAG application?
&lt;/h2&gt;

&lt;p&gt;A RAG (retrieval-augmented generation) app first &lt;strong&gt;retrieves&lt;/strong&gt; documents, then &lt;strong&gt;generates&lt;/strong&gt; an answer from them. Test the two steps separately, otherwise you cannot tell where a wrong answer comes from.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Retrieval&lt;/strong&gt;: for a set of questions with known answers, check that the right passages come back. Ragas calls this &lt;em&gt;context recall&lt;/em&gt;: how many of the relevant documents were successfully retrieved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generation&lt;/strong&gt;: check that the answer sticks to what was retrieved. Ragas calls this &lt;em&gt;faithfulness&lt;/em&gt;: how factually consistent the response is with the retrieved context, on a 0 to 1 scale.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Build a small reference set first: 30 to 50 real questions, with the expected answer and the document it should come from. It becomes your regression suite every time someone changes the prompt, the model or the chunking.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which security tests come from the OWASP LLM Top 10?
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;OWASP Top 10 for LLM Applications (2025)&lt;/strong&gt; is the most used public checklist. Several entries translate directly into test cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LLM01 Prompt Injection&lt;/strong&gt;: user input that alters the model’s behaviour. Test it &lt;em&gt;directly&lt;/em&gt; (“ignore your instructions and…”) and &lt;em&gt;indirectly&lt;/em&gt;, by putting hidden instructions in a document or web page the app will read.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM02 Sensitive Information Disclosure&lt;/strong&gt;: try to obtain another user’s data, keys or internal information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM05 Improper Output Handling&lt;/strong&gt;: check what happens when the model’s output is rendered or passed on, for example HTML or script in an answer displayed in the page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM06 Excessive Agency&lt;/strong&gt;: if the bot can call tools (send an email, cancel an order), check it cannot do more than the user is allowed to.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM07 System Prompt Leakage&lt;/strong&gt;: ask for the instructions, in several languages and phrasings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM09 Misinformation&lt;/strong&gt;: questions with no answer in the documents; the right behaviour is to say so.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM10 Unbounded Consumption&lt;/strong&gt;: very long inputs, rapid repeated requests; check limits and costs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What does the AI Act add for a chatbot?
&lt;/h2&gt;

&lt;p&gt;A test case that is easy to forget. According to the European Commission, the transparency obligations of &lt;strong&gt;Article 50&lt;/strong&gt; apply since &lt;strong&gt;2 August 2026&lt;/strong&gt;: among other things, people must be informed that they are interacting with an AI system. Check that the disclosure is there, visible, and in the user’s language. (The high-risk rules are a separate matter: since the AI Omnibus they apply from 2 December 2027.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Which tools help?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;promptfoo&lt;/strong&gt;: an open-source CLI and library for evaluating and red-teaming LLM apps, usable in CI (a GitHub Action exists). Good for running your reference set and attack prompts on every change.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ragas&lt;/strong&gt;: RAG metrics such as context precision, context recall, faithfulness and response relevancy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Playwright&lt;/strong&gt;: for the chat interface itself (streaming, errors, disclosure banner, accessibility), as for any web UI.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tools score; they do not decide. A human still reviews the failing cases and the thresholds.&lt;/p&gt;

&lt;h2&gt;
  
  
  A starter checklist
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;A reference set of 30 to 50 real questions with expected facts and source documents.&lt;/li&gt;
&lt;li&gt;Each case run several times, with a target pass rate.&lt;/li&gt;
&lt;li&gt;Retrieval checked on its own (right passages returned).&lt;/li&gt;
&lt;li&gt;Answers checked against the retrieved context (no invented facts).&lt;/li&gt;
&lt;li&gt;Out-of-scope and unanswerable questions: the bot says it does not know.&lt;/li&gt;
&lt;li&gt;Direct and indirect prompt injection attempts.&lt;/li&gt;
&lt;li&gt;System prompt and other users’ data cannot be extracted.&lt;/li&gt;
&lt;li&gt;Tool calls limited to what the user is allowed to do.&lt;/li&gt;
&lt;li&gt;Model output safely rendered in the page.&lt;/li&gt;
&lt;li&gt;AI disclosure visible to the user.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Over to you
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;How do you test your chatbot today?&lt;/strong&gt; Pass rates, golden datasets, red-teaming prompts, or still mostly by hand? I'd love to compare approaches in the comments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt; &lt;a href="https://genai.owasp.org/llm-top-10/" rel="noopener noreferrer"&gt;OWASP — Top 10 for LLM Applications (2025)&lt;/a&gt; · &lt;a href="https://genai.owasp.org/llmrisk/llm01-prompt-injection/" rel="noopener noreferrer"&gt;OWASP — LLM01:2025 Prompt Injection&lt;/a&gt; · &lt;a href="https://docs.ragas.io/en/stable/concepts/metrics/available_metrics/" rel="noopener noreferrer"&gt;Ragas — Available metrics&lt;/a&gt; · &lt;a href="https://www.promptfoo.dev/docs/intro/" rel="noopener noreferrer"&gt;promptfoo — Introduction&lt;/a&gt; · &lt;a href="https://digital-strategy.ec.europa.eu/en/faqs/navigating-ai-act" rel="noopener noreferrer"&gt;European Commission — Navigating the AI Act&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.automationdatacamp.com/en/blog-post-testing-llm-chatbot-rag-2026" rel="noopener noreferrer"&gt;AutomationDataCamp&lt;/a&gt;. Written with AI assistance; definitions and dates were checked against the sources listed above on 5 October 2026.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AutomationDataCamp is an online software testing academy (Playwright, API testing, CI, AI-assisted testing, ISTQB prep). More on &lt;a href="https://www.automationdatacamp.com/en/" rel="noopener noreferrer"&gt;our site&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>ai</category>
      <category>llm</category>
      <category>qa</category>
    </item>
    <item>
      <title>AI in software testing in 2026: 5 changes that are actually shipping (not hype)</title>
      <dc:creator>AutomationDataCamp</dc:creator>
      <pubDate>Mon, 05 Oct 2026 14:35:21 +0000</pubDate>
      <link>https://dev.to/automationdatacamp/ai-in-software-testing-in-2026-5-changes-that-are-actually-shipping-not-hype-11kg</link>
      <guid>https://dev.to/automationdatacamp/ai-in-software-testing-in-2026-5-changes-that-are-actually-shipping-not-hype-11kg</guid>
      <description>&lt;p&gt;Every week brings a new “AI will replace testers” headline. We looked instead at what testers can &lt;strong&gt;actually use&lt;/strong&gt; in 2026: features in Playwright’s release notes, ISTQB syllabi, job ads and EU law. Five changes stand out, and each one says something about what a tester’s job looks like now.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Agents now ship inside the test framework&lt;/strong&gt;: Playwright Test Agents (planner, generator, healer) since version 1.56.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Playwright is built for coding agents&lt;/strong&gt;: CLI debugging and trace analysis for agents (1.59), MCP server bundled (1.62).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ISTQB split “testing AI” from “testing with AI”&lt;/strong&gt;: CT-AI v2.0 (April 2026) and CT-GenAI v1.1.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Employers ask for it&lt;/strong&gt;: one QA job ad in five in France mentions AI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The AI Act high-risk deadline moved&lt;/strong&gt; to 2 December 2027 (Annex III), after the AI Omnibus entered into force on 27 July 2026.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. Are AI agents now part of the test framework itself?
&lt;/h2&gt;

&lt;p&gt;Yes, in Playwright at least. Since &lt;strong&gt;version 1.56&lt;/strong&gt; (October 2025), Playwright ships &lt;strong&gt;Playwright Test Agents&lt;/strong&gt;, three agent definitions that guide a language model through building a test:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;planner&lt;/strong&gt;: explores the app and produces a Markdown test plan;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;generator&lt;/strong&gt;: turns that plan into Playwright Test files;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;healer&lt;/strong&gt;: runs the suite and automatically repairs failing tests.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One command, &lt;code&gt;npx playwright init-agents&lt;/code&gt;, generates the agent definitions for your assistant (Claude Code, VS Code and others). The shift is important: AI assistance is no longer a third-party plugin bolted onto the framework, it is part of the framework’s own documentation and tooling.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. What has Playwright added for coding agents in 2026?
&lt;/h2&gt;

&lt;p&gt;Two releases made Playwright easier for an agent to drive and debug:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1.59&lt;/strong&gt; (April 2026): coding agents can run &lt;code&gt;npx playwright test --debug=cli&lt;/code&gt; to attach and debug tests over &lt;code&gt;playwright-cli&lt;/code&gt;, and &lt;code&gt;npx playwright trace&lt;/code&gt; to explore a trace and understand failing or flaky tests from the command line.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1.62&lt;/strong&gt; (July 2026): Playwright now bundles the Playwright MCP server and &lt;code&gt;playwright-cli&lt;/code&gt;, runnable with &lt;code&gt;npx playwright mcp&lt;/code&gt; and &lt;code&gt;npx playwright cli&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In practice, the loop “a test fails, the assistant reads the trace, proposes a fix” no longer needs custom glue code. Our &lt;a href="https://www.automationdatacamp.com/en/blog-post-playwright-mcp" rel="noopener noreferrer"&gt;Playwright MCP guide&lt;/a&gt; shows a first explore-then-generate scenario.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Why did ISTQB split its AI certifications?
&lt;/h2&gt;

&lt;p&gt;Because they describe two different jobs. &lt;strong&gt;CT-AI v2.0&lt;/strong&gt;, released on 17 April 2026, certifies the ability to &lt;strong&gt;test AI-based systems&lt;/strong&gt; (data, models, generative AI products). &lt;strong&gt;CT-GenAI v1.1&lt;/strong&gt; certifies the ability to &lt;strong&gt;use generative AI to test&lt;/strong&gt; (prompting, risks, LLM-powered tools). Since v2.0, “using AI for testing” belongs to CT-GenAI. Both require the CTFL. The English CT-AI v1.0 exam remains available until 21 April 2027. Details in our &lt;a href="https://www.automationdatacamp.com/en/blog-post-istqb-ai-testing" rel="noopener noreferrer"&gt;CT-AI vs CT-GenAI comparison&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Do employers really ask testers for AI skills?
&lt;/h2&gt;

&lt;p&gt;Increasingly. In our count of &lt;strong&gt;405 job ads with “QA” in the title&lt;/strong&gt; published in France over 60 days (snapshot of 2 October 2026), &lt;strong&gt;20.7%&lt;/strong&gt; mention AI or generative AI. That word covers several realities: testing an AI-based product, using assistants to write tests, or simply the company’s context. For comparison, 24.2% mention Playwright and 40% mention Jira. The full figures are in our &lt;a href="https://www.automationdatacamp.com/en/blog-post-barometre-competences-qa" rel="noopener noreferrer"&gt;QA Skills Barometer&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. What changed for the EU AI Act in 2026?
&lt;/h2&gt;

&lt;p&gt;The calendar. The &lt;strong&gt;AI Omnibus&lt;/strong&gt;, which amends the AI Act (Regulation 2024/1689), entered into force on &lt;strong&gt;27 July 2026&lt;/strong&gt;. According to the European Commission, rules for high-risk AI systems listed in &lt;strong&gt;Annex III&lt;/strong&gt; now apply from &lt;strong&gt;2 December 2027&lt;/strong&gt;, and those for AI embedded in products covered by &lt;strong&gt;Annex I&lt;/strong&gt; from &lt;strong&gt;2 August 2028&lt;/strong&gt;. For testers working on AI products, this is extra time to build risk management, data quality and robustness testing, not a reason to drop them.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does it mean for a tester today?
&lt;/h2&gt;

&lt;p&gt;The common thread: AI writes more tests, and &lt;strong&gt;humans review them&lt;/strong&gt;. Before merging a test generated by an assistant, we check seven points:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;a &lt;strong&gt;business assertion&lt;/strong&gt; (not just “the page loaded”);&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;accessible locators&lt;/strong&gt; (roles and names, not brittle CSS);&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;isolated test data&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;no secrets in the prompt&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;never run against production&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;limited exploration&lt;/strong&gt; scope for the agent;&lt;/li&gt;
&lt;li&gt;the test &lt;strong&gt;seen failing at least once&lt;/strong&gt;, so you know it can catch a bug.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Test design (equivalence partitions, boundary values, risk-based prioritisation) matters more, not less: it is what you need to judge whether a generated test is worth keeping.&lt;/p&gt;

&lt;h2&gt;
  
  
  Over to you
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Which of these have you actually used in a real project?&lt;/strong&gt; Playwright's healer agent, MCP, an AI-generated test that made it to main? Tell me in the comments what worked, and what you had to throw away.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt; &lt;a href="https://playwright.dev/docs/release-notes" rel="noopener noreferrer"&gt;Playwright — Release notes (1.56, 1.59, 1.62)&lt;/a&gt; · &lt;a href="https://playwright.dev/docs/test-agents" rel="noopener noreferrer"&gt;Playwright — Test Agents&lt;/a&gt; · &lt;a href="https://istqb.org/certifications/certified-tester-ai-testing-ct-ai/" rel="noopener noreferrer"&gt;ISTQB — Certified Tester AI Testing (CT-AI) v2.0&lt;/a&gt; · &lt;a href="https://istqb.org/certifications/gen-ai/" rel="noopener noreferrer"&gt;ISTQB — Testing with Generative AI (CT-GenAI)&lt;/a&gt; · &lt;a href="https://digital-strategy.ec.europa.eu/en/news/ai-omnibus-enters-force" rel="noopener noreferrer"&gt;European Commission — AI Omnibus enters into force&lt;/a&gt; · &lt;a href="https://www.automationdatacamp.com/en/blog-post-barometre-competences-qa" rel="noopener noreferrer"&gt;AutomationDataCamp — QA Skills Barometer, October 2026&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.automationdatacamp.com/en/blog-post-ai-testing-trends-2026" rel="noopener noreferrer"&gt;AutomationDataCamp&lt;/a&gt;. Written with AI assistance; every version number and date was checked against the sources listed above on 5 October 2026.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AutomationDataCamp is an online software testing academy (Playwright, API testing, CI, AI-assisted testing, ISTQB prep). More on &lt;a href="https://www.automationdatacamp.com/en/" rel="noopener noreferrer"&gt;our site&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>ai</category>
      <category>playwright</category>
      <category>qa</category>
    </item>
    <item>
      <title>Playwright now beats Selenium in French QA job ads: what 405 ads ask testers for</title>
      <dc:creator>AutomationDataCamp</dc:creator>
      <pubDate>Mon, 05 Oct 2026 11:03:50 +0000</pubDate>
      <link>https://dev.to/automationdatacamp/playwright-now-beats-selenium-in-french-qa-job-ads-what-405-ads-ask-testers-for-4hnd</link>
      <guid>https://dev.to/automationdatacamp/playwright-now-beats-selenium-in-french-qa-job-ads-what-405-ads-ask-testers-for-4hnd</guid>
      <description>&lt;p&gt;Which tools and skills do employers actually ask testers for? Rather than repeat the usual "top 10 testing tools" lists, we counted.&lt;/p&gt;

&lt;p&gt;On 2 October 2026, we analysed job ads published in France over the previous 60 days: &lt;strong&gt;405 ads with "QA" in the title&lt;/strong&gt; and &lt;strong&gt;1,180 ads with "test" or "testeur" in the title&lt;/strong&gt;. Here is what they mention.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Playwright has caught up with Selenium&lt;/strong&gt;: 24.2% of QA ads mention Playwright, versus 21.7% for Selenium.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test management outweighs any automation tool&lt;/strong&gt;: Jira (40%) and Xray (26.2%) come ahead of every framework.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI is entering job descriptions&lt;/strong&gt;: one QA ad in five (20.7%) mentions it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance testing stays marginal&lt;/strong&gt;: JMeter, k6 and Gatling each appear in less than 2% of QA ads.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Method in brief
&lt;/h2&gt;

&lt;p&gt;We used the public API of &lt;a href="https://www.adzuna.fr/" rel="noopener noreferrer"&gt;Adzuna&lt;/a&gt;, an aggregator that collects ads from many job boards. For each skill, we counted ads published in France over the last 60 days whose title contains "QA" (or "test") and whose full text mentions the skill.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;"QA" ads (405)&lt;/strong&gt;: QA engineer, QA automation, QA tester. The core of software testing, mostly web and SaaS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Test" ads (1,180)&lt;/strong&gt;: broader. They also include validation roles for embedded, railway or industrial systems, where web tools are less in demand, so shares are lower.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Automation tools: Playwright level with Selenium
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;"QA" ads&lt;/th&gt;
&lt;th&gt;Share&lt;/th&gt;
&lt;th&gt;"Test" ads&lt;/th&gt;
&lt;th&gt;Share&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Playwright&lt;/td&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;td&gt;24.2%&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;6.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Selenium&lt;/td&gt;
&lt;td&gt;88&lt;/td&gt;
&lt;td&gt;21.7%&lt;/td&gt;
&lt;td&gt;84&lt;/td&gt;
&lt;td&gt;7.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cypress&lt;/td&gt;
&lt;td&gt;61&lt;/td&gt;
&lt;td&gt;15.1%&lt;/td&gt;
&lt;td&gt;54&lt;/td&gt;
&lt;td&gt;4.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Robot Framework&lt;/td&gt;
&lt;td&gt;36&lt;/td&gt;
&lt;td&gt;8.9%&lt;/td&gt;
&lt;td&gt;59&lt;/td&gt;
&lt;td&gt;5%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Appium&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;5.2%&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;1.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UFT / QTP&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;1%&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;0.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TestComplete&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;0.5%&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;0.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;In QA ads, Playwright comes first. In the more industrial "test" ads, Playwright and Selenium are neck and neck, and Robot Framework rises to 5%. Legacy proprietary tools stay under 1%.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test management: Jira and Xray first
&lt;/h2&gt;

&lt;p&gt;This is the clearest result.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;"QA" ads&lt;/th&gt;
&lt;th&gt;Share&lt;/th&gt;
&lt;th&gt;"Test" ads&lt;/th&gt;
&lt;th&gt;Share&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Jira&lt;/td&gt;
&lt;td&gt;162&lt;/td&gt;
&lt;td&gt;40%&lt;/td&gt;
&lt;td&gt;212&lt;/td&gt;
&lt;td&gt;18%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Xray&lt;/td&gt;
&lt;td&gt;106&lt;/td&gt;
&lt;td&gt;26.2%&lt;/td&gt;
&lt;td&gt;114&lt;/td&gt;
&lt;td&gt;9.7%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cucumber / Gherkin&lt;/td&gt;
&lt;td&gt;57&lt;/td&gt;
&lt;td&gt;14.1%&lt;/td&gt;
&lt;td&gt;45&lt;/td&gt;
&lt;td&gt;3.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Squash TM&lt;/td&gt;
&lt;td&gt;34&lt;/td&gt;
&lt;td&gt;8.4%&lt;/td&gt;
&lt;td&gt;76&lt;/td&gt;
&lt;td&gt;6.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TestRail&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;4.9%&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;1.2%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ALM / Quality Center&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;2.5%&lt;/td&gt;
&lt;td&gt;58&lt;/td&gt;
&lt;td&gt;4.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Writing and tracking test cases in a tool matters as much as automating them. Squash TM, an open-source tool widely used in France, shows up more than TestRail.&lt;/p&gt;

&lt;h2&gt;
  
  
  API and performance testing
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;"QA" ads&lt;/th&gt;
&lt;th&gt;Share&lt;/th&gt;
&lt;th&gt;"Test" ads&lt;/th&gt;
&lt;th&gt;Share&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Postman&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;20%&lt;/td&gt;
&lt;td&gt;88&lt;/td&gt;
&lt;td&gt;7.5%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;REST Assured&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;15.3%&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;5.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SoapUI&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;2.2%&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;1.2%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JMeter&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;1.7%&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;0.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;k6&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;1%&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;0.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gatling&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;1%&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;0.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;API testing is well established. Performance testing remains a specialty, rarely asked of generalist testers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Languages: Python first
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;"QA" ads&lt;/th&gt;
&lt;th&gt;Share&lt;/th&gt;
&lt;th&gt;"Test" ads&lt;/th&gt;
&lt;th&gt;Share&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;td&gt;18.3%&lt;/td&gt;
&lt;td&gt;199&lt;/td&gt;
&lt;td&gt;16.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;14.8%&lt;/td&gt;
&lt;td&gt;123&lt;/td&gt;
&lt;td&gt;10.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Java&lt;/td&gt;
&lt;td&gt;54&lt;/td&gt;
&lt;td&gt;13.3%&lt;/td&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;td&gt;8.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;JavaScript / TypeScript&lt;/td&gt;
&lt;td&gt;52&lt;/td&gt;
&lt;td&gt;12.8%&lt;/td&gt;
&lt;td&gt;47&lt;/td&gt;
&lt;td&gt;4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C# / .NET&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;4.4%&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;4.2%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;SQL right behind Python is a useful reminder: querying a database to check a result is a daily task.&lt;/p&gt;

&lt;h2&gt;
  
  
  CI/CD: one QA ad in three
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;"QA" ads&lt;/th&gt;
&lt;th&gt;Share&lt;/th&gt;
&lt;th&gt;"Test" ads&lt;/th&gt;
&lt;th&gt;Share&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CI/CD&lt;/td&gt;
&lt;td&gt;142&lt;/td&gt;
&lt;td&gt;35.1%&lt;/td&gt;
&lt;td&gt;178&lt;/td&gt;
&lt;td&gt;15.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitLab&lt;/td&gt;
&lt;td&gt;59&lt;/td&gt;
&lt;td&gt;14.6%&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;5.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jenkins&lt;/td&gt;
&lt;td&gt;46&lt;/td&gt;
&lt;td&gt;11.4%&lt;/td&gt;
&lt;td&gt;57&lt;/td&gt;
&lt;td&gt;4.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Git&lt;/td&gt;
&lt;td&gt;42&lt;/td&gt;
&lt;td&gt;10.4%&lt;/td&gt;
&lt;td&gt;78&lt;/td&gt;
&lt;td&gt;6.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Docker&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;4.2%&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;1.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub Actions&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;3%&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;1%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;An automation tester is expected to run tests in the pipeline, not just on their own machine. In France, GitLab is well ahead of GitHub Actions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agile, AI and ISTQB
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;"QA" ads&lt;/th&gt;
&lt;th&gt;Share&lt;/th&gt;
&lt;th&gt;"Test" ads&lt;/th&gt;
&lt;th&gt;Share&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Agile / Scrum&lt;/td&gt;
&lt;td&gt;197&lt;/td&gt;
&lt;td&gt;48.6%&lt;/td&gt;
&lt;td&gt;265&lt;/td&gt;
&lt;td&gt;22.5%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI / generative AI&lt;/td&gt;
&lt;td&gt;84&lt;/td&gt;
&lt;td&gt;20.7%&lt;/td&gt;
&lt;td&gt;143&lt;/td&gt;
&lt;td&gt;12.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ISTQB&lt;/td&gt;
&lt;td&gt;59&lt;/td&gt;
&lt;td&gt;14.6%&lt;/td&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;8.7%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;"AI" covers testing AI-based products, using assistants to write tests, or simply company context. ISTQB is a recognised asset, rarely a hard requirement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where, which contract, which salary
&lt;/h2&gt;

&lt;p&gt;On a sample of 605 unique test and QA ads:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Location&lt;/strong&gt;: the Paris region (Île-de-France) accounts for 31.9% of ads, followed by Auvergne-Rhône-Alpes (12.6%), Provence-Alpes-Côte d'Azur (11.9%) and Occitanie (10.9%).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contracts&lt;/strong&gt;: 44.3% permanent (CDI), 15.2% fixed-term, assignment or freelance, 40.5% not specified.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Seniority&lt;/strong&gt;: only 2.1% of titles explicitly say "junior"; 14.5% target a senior or lead profile.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Salaries&lt;/strong&gt;: 229 ads (37.9%) display one. The median is &lt;strong&gt;€42,500 gross per year&lt;/strong&gt;, half between €40,000 and €45,000. Senior and lead roles show a median of €50,000.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What it means if you are learning
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Learn a modern framework&lt;/strong&gt;: Playwright (or Selenium) remains the technical core of test automation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't neglect test management tools&lt;/strong&gt;: Jira, Xray or Squash TM are cited more often than any framework.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run your tests in CI&lt;/strong&gt;: one QA ad in three asks for it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Get ready for AI&lt;/strong&gt;: one QA ad in five mentions it, and reviewing what an assistant writes is becoming part of the job.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Adzuna is not exhaustive, and an ad posted on several sites may count more than once.&lt;/li&gt;
&lt;li&gt;A mentioned skill is not always required: it may be a "nice to have".&lt;/li&gt;
&lt;li&gt;Titles are imperfect: a QA role with another title escapes both bases.&lt;/li&gt;
&lt;li&gt;"AI" is a broad word.&lt;/li&gt;
&lt;li&gt;This is a one-off snapshot. We will repeat it every quarter, starting in December 2026.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Over to you
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Does this match your market?&lt;/strong&gt; If you hire or work as a tester outside France (UK, Canada, US, Belgium, Switzerland…), I'd love to know in the comments whether Playwright has overtaken Selenium where you are, and which tool your last job ad asked for.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published as the &lt;a href="https://www.automationdatacamp.com/en/blog-post-barometre-competences-qa" rel="noopener noreferrer"&gt;QA Skills Barometer&lt;/a&gt; (full FAQ and chart there; &lt;a href="https://www.automationdatacamp.com/blog-post-barometre-competences-qa" rel="noopener noreferrer"&gt;French version&lt;/a&gt;). You may reuse the figures with a link to the source: "QA Skills Barometer, AutomationDataCamp, October 2026". Job ad data: Adzuna. This article was written with AI assistance; the figures come from our own count and were checked against the original page.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AutomationDataCamp is an online software testing academy (Playwright, API testing, CI, AI-assisted testing, ISTQB prep). More on &lt;a href="https://www.automationdatacamp.com/en/" rel="noopener noreferrer"&gt;our site&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>playwright</category>
      <category>qa</category>
      <category>ai</category>
    </item>
    <item>
      <title>ISTQB CT-AI vs CT-GenAI: which AI certification should a tester take?</title>
      <dc:creator>AutomationDataCamp</dc:creator>
      <pubDate>Fri, 02 Oct 2026 00:57:24 +0000</pubDate>
      <link>https://dev.to/automationdatacamp/istqb-ct-ai-vs-ct-genai-which-ai-certification-should-a-tester-take-4npc</link>
      <guid>https://dev.to/automationdatacamp/istqb-ct-ai-vs-ct-genai-which-ai-certification-should-a-tester-take-4npc</guid>
      <description>&lt;p&gt;ISTQB offers two certifications around artificial intelligence, and their names are easy to mix up. &lt;strong&gt;CT-AI&lt;/strong&gt; ("AI Testing") certifies the ability to &lt;strong&gt;test AI-based systems&lt;/strong&gt;: data, machine learning models, generative AI systems. &lt;strong&gt;CT-GenAI&lt;/strong&gt; ("Testing with Generative AI") certifies the ability to &lt;strong&gt;use generative AI to test&lt;/strong&gt;: prompting, risk management, LLM-powered tools. CT-AI version 2.0, released on 17 April 2026, made that boundary clear. This guide compares both with official figures and helps you choose.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CT-AI = testing AI&lt;/strong&gt;; &lt;strong&gt;CT-GenAI = testing with AI&lt;/strong&gt;. Since CT-AI v2.0, "using AI for testing" belongs to CT-GenAI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Same prerequisite&lt;/strong&gt;: the CTFL (Foundation Level) certification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Same exam format&lt;/strong&gt;: 40 questions in 60 minutes; CT-AI v2.0 pass mark is 29 out of 44 points, CT-GenAI 30 out of 46.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CT-AI v1.0 is retiring&lt;/strong&gt;: English exam until 21 April 2027, other languages until 21 October 2027; v1.0 certificates remain valid.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  CT-AI vs CT-GenAI in one sentence
&lt;/h2&gt;

&lt;p&gt;CT-AI is for testers whose &lt;strong&gt;product contains AI&lt;/strong&gt;: a recommendation engine, a fraud detection model, an LLM-based chatbot. The question is "is this AI system reliable, fair, robust?". CT-GenAI is for testers who want to &lt;strong&gt;use generative AI in their own work&lt;/strong&gt;: writing test cases, generating data, analysing results, building internal tools on top of an LLM. The question becomes "how do I use these assistants without lowering the quality of my tests?".&lt;/p&gt;

&lt;p&gt;The two can complement each other. A tester can use an AI assistant (CT-GenAI) to test a product that itself embeds a model (CT-AI). But the skills assessed are different.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does ISTQB CT-AI v2.0 cover?
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Certified Tester AI Testing v2.0&lt;/strong&gt; syllabus was released by the ISTQB General Assembly on 17 April 2026. It is a rewrite of the 2021 version 1.0: it goes from 11 to 7 chapters, and recommended training goes from four to three days. Content on using AI for testing was removed, with ISTQB pointing to CT-GenAI for that topic. The seven chapters, with the training time given in the syllabus:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introduction to Artificial Intelligence (120 min)&lt;/li&gt;
&lt;li&gt;Quality Characteristics for AI-Based Systems (45 min)&lt;/li&gt;
&lt;li&gt;Machine Learning (375 min)&lt;/li&gt;
&lt;li&gt;Testing AI-Based Systems (195 min), including a section on testing generative AI and large language models, with red teaming&lt;/li&gt;
&lt;li&gt;Input Data Testing for Machine Learning Systems (180 min)&lt;/li&gt;
&lt;li&gt;Model Testing for Machine Learning Systems (225 min)&lt;/li&gt;
&lt;li&gt;Machine Learning Development Testing (30 min)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is 1,170 minutes in total, about 19.5 hours. ISTQB's stated outcomes include understanding how neural networks work, knowing the ISO/IEC 25059 quality characteristics, calculating machine learning performance metrics, and designing and executing test cases for machine learning systems. Target audience: testers, test analysts, test engineers, test managers, consultants, data analysts, developers and UAT roles.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does ISTQB CT-GenAI cover?
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Certified Tester – Testing with Generative AI&lt;/strong&gt; syllabus was approved by the ISTQB General Assembly on 25 July 2025. The current version is 1.1, a minor update announced in April 2026 that, according to ISTQB, does not change the structure, learning objectives or scope. Its five chapters:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introduction to Generative AI for Software Testing&lt;/li&gt;
&lt;li&gt;Prompt Engineering for Effective Software Testing&lt;/li&gt;
&lt;li&gt;Managing Risks of Generative AI in Software Testing (hallucinations, reasoning errors, bias, data privacy, energy consumption, regulation)&lt;/li&gt;
&lt;li&gt;LLM-Powered Solutions for Software Testing&lt;/li&gt;
&lt;li&gt;Deploying and Integrating Generative AI in Test Organizations&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The v1.0 syllabus plans 815 minutes of training, about 13.5 hours, of which 365 minutes for prompt engineering alone: it is the practical core of the certification.&lt;/p&gt;

&lt;h2&gt;
  
  
  Side-by-side comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;CT-AI v2.0&lt;/th&gt;
&lt;th&gt;CT-GenAI v1.1&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Focus&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Testing AI-based systems&lt;/td&gt;
&lt;td&gt;Using generative AI to test&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Prerequisite&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;CTFL&lt;/td&gt;
&lt;td&gt;CTFL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Chapters&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Training time in syllabus&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1,170 min (about 3 days)&lt;/td&gt;
&lt;td&gt;815 min (v1.0 syllabus)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Exam&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;40 questions, 60 min&lt;/td&gt;
&lt;td&gt;40 questions, 60 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Pass mark&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;29 out of 44 points&lt;/td&gt;
&lt;td&gt;30 out of 46 points&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Extra time&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;+25% for non-native speakers&lt;/td&gt;
&lt;td&gt;+25% for non-native speakers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Typical profile&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tester of a product embedding ML or an LLM&lt;/td&gt;
&lt;td&gt;Tester who wants to work with AI assistants&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Sources: official ISTQB pages and syllabi, accessed on 2 October 2026 (list at the end).&lt;/p&gt;

&lt;h2&gt;
  
  
  Which one fits your profile?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;You test a product that includes AI&lt;/strong&gt; (scoring, recommendation, vision, chatbot, agent): CT-AI. You will learn to test data, models and generative AI systems, topics that classic test techniques do not cover.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You want to be more productive with ChatGPT, Claude or Copilot&lt;/strong&gt;: CT-GenAI. It gives a method to write test prompts, check what the AI produces and manage its risks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You are aiming for a test automation role&lt;/strong&gt;: CT-GenAI is the most useful day to day, as coding assistants are now everyday tools (see our &lt;a href="https://www.automationdatacamp.com/en/blog-post-playwright-mcp" rel="noopener noreferrer"&gt;Playwright MCP&lt;/a&gt; guide). To go deeper into automation itself, ISTQB offers the advanced &lt;strong&gt;CTAL-TAE&lt;/strong&gt; (Test Automation Engineering v2.0): it requires CTFL and sufficient practical experience, and its exam has 40 questions in 90 minutes, passed at 43 out of 66 points.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You are a test manager or consultant&lt;/strong&gt;: both make sense. CT-GenAI covers the strategy for adopting generative AI in a test team, CT-AI the test strategy for an AI-based product.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  CTFL first, in every case
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.automationdatacamp.com/en/certification-istqb-ctfl" rel="noopener noreferrer"&gt;CTFL v4.0&lt;/a&gt; is the shared prerequisite. Its exam has 40 questions in 60 minutes and is passed at 26 out of 40 points. If you do not have it yet, start there. See all the certifications we prepare on our &lt;a href="https://www.automationdatacamp.com/en/certifications" rel="noopener noreferrer"&gt;certifications page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to prepare with ADC
&lt;/h2&gt;

&lt;p&gt;Our QA Automation &amp;amp; AI Tester programme, taught in French, includes &lt;strong&gt;preparation for the ISTQB CTFL and CT-GenAI exams, exams included&lt;/strong&gt;. We do not prepare for CT-AI at this time. AutomationDataCamp is not an ISTQB-accredited training provider: we prepare candidates for the exams, which are delivered by official exam providers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What is the difference between ISTQB CT-AI and CT-GenAI?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CT-AI (AI Testing) teaches how to test AI-based systems: data, machine learning models and generative AI systems. CT-GenAI (Testing with Generative AI) teaches how to use generative AI to test: prompting, risks such as hallucinations, and LLM-powered tooling. Since CT-AI version 2.0, the 'using AI for testing' content was removed from CT-AI and points to CT-GenAI instead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do I need CTFL for CT-AI or CT-GenAI?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes. ISTQB requires the Certified Tester Foundation Level (CTFL) certification for both CT-AI v2.0 and CT-GenAI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is my CT-AI v1.0 certificate still valid?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes. According to ISTQB, certifications obtained under version 1.0 remain valid, with no requirement to retake the exam. The v1.0 exam stays available in English until 21 April 2027 and in other languages until 21 October 2027.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the CT-AI and CT-GenAI exams like?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Both have 40 questions in 60 minutes, with 25% extra time for candidates not taking the exam in their native language. CT-AI v2.0 is scored out of 44 points with a pass mark of 29; CT-GenAI out of 46 points with a pass mark of 30.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which one should a beginner choose?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Start with CTFL, which is required for both. Then choose CT-GenAI if your goal is to be more productive with AI assistants day to day, and CT-AI if you test, or will test, a product that embeds machine learning or a language model.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sources and references
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://istqb.org/certifications/certified-tester-ai-testing-ct-ai/" rel="noopener noreferrer"&gt;ISTQB — Certified Tester AI Testing (CT-AI) v2.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://istqb.org/wp-content/uploads/2026/05/ISTQB-_CTAI_Syllabus_v2.0_Release.pdf" rel="noopener noreferrer"&gt;ISTQB — CT-AI Syllabus v2.0 (PDF, 17/04/2026)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://istqb.org/help/ct-ai-v2/" rel="noopener noreferrer"&gt;ISTQB — CT-AI Version 2.0, FAQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://istqb.org/istqb-releases-certified-tester-ai-testing-ct-ai-syllabus-version-2-0/" rel="noopener noreferrer"&gt;ISTQB — CT-AI v2.0 announcement&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://istqb.org/certifications/gen-ai/" rel="noopener noreferrer"&gt;ISTQB — Certified Tester Testing with Generative AI (CT-GenAI)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://istqb.org/wp-content/uploads/sdm-uploads/CT-GenAI-Syllabus-v1.0.pdf" rel="noopener noreferrer"&gt;ISTQB — CT-GenAI Syllabus v1.0 (PDF, 25/07/2025)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://istqb.org/istqb-announces-minor-update-to-certified-tester-testing-with-generative-ai-ct-genai/" rel="noopener noreferrer"&gt;ISTQB — CT-GenAI v1.1 update&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://istqb.org/certifications/certified-tester-foundation-level-ctfl-v4-0/" rel="noopener noreferrer"&gt;ISTQB — Certified Tester Foundation Level (CTFL) v4.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://istqb.org/certifications/certified-tester-advanced-level-test-automation-engineering-ctal-tae-v2-0/" rel="noopener noreferrer"&gt;ISTQB — CTAL Test Automation Engineering (CTAL-TAE) v2.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Written with AI assistance; every figure was checked against the official ISTQB sources listed above, accessed on 2 October 2026. A French version is available: &lt;a href="https://www.automationdatacamp.com/blog-post-istqb-ai-testing" rel="noopener noreferrer"&gt;ISTQB CT-AI ou CT-GenAI&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Prepare for CTFL and CT-GenAI
&lt;/h3&gt;

&lt;p&gt;Our programme prepares you for the ISTQB CTFL and CT-GenAI exams, exams included, with mock exams in the official format. Courses are taught in French. Programme details: &lt;a href="https://www.automationdatacamp.com/en/formations" rel="noopener noreferrer"&gt;automationdatacamp.com/en/formations&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>ai</category>
      <category>career</category>
      <category>certification</category>
    </item>
    <item>
      <title>Playwright MCP: let an AI assistant explore your app, then write the test (Claude Code, Copilot, Cursor)</title>
      <dc:creator>AutomationDataCamp</dc:creator>
      <pubDate>Thu, 01 Oct 2026 23:36:52 +0000</pubDate>
      <link>https://dev.to/automationdatacamp/playwright-mcp-let-an-ai-assistant-explore-your-app-then-write-the-test-claude-code-copilot-44p5</link>
      <guid>https://dev.to/automationdatacamp/playwright-mcp-let-an-ai-assistant-explore-your-app-then-write-the-test-claude-code-copilot-44p5</guid>
      <description>&lt;p&gt;Playwright MCP is Microsoft's official Model Context Protocol server for Playwright. It gives an AI assistant such as Claude Code, GitHub Copilot or Cursor the tools to drive a real browser: navigate, click, fill forms and read the page. The interesting part for testers: the assistant reads the page through &lt;strong&gt;structured accessibility snapshots&lt;/strong&gt;, not screenshots, so no vision model is needed and it naturally "sees" the roles and accessible names that good Playwright locators are built on.&lt;/p&gt;

&lt;p&gt;This post walks through installation, a first explore-then-generate scenario, how MCP compares with Playwright CLI and the Playwright Test Agents, and the rules we teach to keep AI-generated tests trustworthy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install it in one command
&lt;/h2&gt;

&lt;p&gt;Node.js is the only prerequisite (the server runs with &lt;code&gt;npx&lt;/code&gt;). The browser is headed by default, which is handy to watch what the assistant does.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add playwright npx @playwright/mcp@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;VS Code (GitHub Copilot agent mode)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;code &lt;span class="nt"&gt;--add-mcp&lt;/span&gt; &lt;span class="s1"&gt;'{"name":"playwright","command":"npx","args":["@playwright/mcp@latest"]}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Cursor and other MCP clients&lt;/strong&gt; accept the standard JSON configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"playwright"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"@playwright/mcp@latest"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Options worth knowing (append them after &lt;code&gt;@playwright/mcp@latest&lt;/code&gt;):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;--headless&lt;/code&gt;: no visible browser (CI machines, containers)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--isolated&lt;/code&gt;: keep the profile in memory, start from a clean session every time&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--storage-state &amp;lt;path&amp;gt;&lt;/code&gt;: start already logged in&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--secrets &amp;lt;path&amp;gt;&lt;/code&gt;: a dotenv file, so credentials never appear in your prompt&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--test-id-attribute&lt;/code&gt;: defaults to &lt;code&gt;data-testid&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--caps&lt;/code&gt;: optional capabilities such as &lt;code&gt;testing&lt;/code&gt; (assertion and locator-generation tools), &lt;code&gt;network&lt;/code&gt; (route mocking), &lt;code&gt;storage&lt;/code&gt;, &lt;code&gt;pdf&lt;/code&gt;, &lt;code&gt;vision&lt;/code&gt;, &lt;code&gt;devtools&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A first scenario: explore, then generate
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1, exploration.&lt;/strong&gt; Be precise in the prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Using Playwright MCP, open http://localhost:3000/login.
Describe the fields, buttons and messages on the page.
Then try to log in with a wrong password and report the exact error message.
Do not submit any other form.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The assistant calls &lt;code&gt;browser_navigate&lt;/code&gt;, &lt;code&gt;browser_snapshot&lt;/code&gt;, &lt;code&gt;browser_fill_form&lt;/code&gt; / &lt;code&gt;browser_type&lt;/code&gt; and &lt;code&gt;browser_click&lt;/code&gt;, then reads the page again. You get a report of the elements (with roles and accessible labels) and of the observed behaviour: a small, documented exploratory session.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2, generation.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;From what you observed, write tests/login.spec.ts with Playwright Test in TypeScript:
one successful login and one wrong-password case. Use getByRole and getByLabel only,
no CSS selectors, read credentials from environment variables.
Then run the tests and fix them if they fail.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A typical result (labels come from the demo app; yours will come from the real exploration):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;test&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;expect&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@playwright/test&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;test&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;describe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Login&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;test&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;beforeEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;goto&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/login&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;a valid user reaches the dashboard&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getByLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Email&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;fill&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;TEST_USER_EMAIL&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getByLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Password&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;fill&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;TEST_USER_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getByRole&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;button&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Sign in&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="nf"&gt;click&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;toHaveURL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;\/&lt;/span&gt;&lt;span class="sr"&gt;dashboard/&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getByRole&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;heading&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Dashboard&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;})).&lt;/span&gt;&lt;span class="nf"&gt;toBeVisible&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;a wrong password shows an error&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getByLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Email&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;fill&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;TEST_USER_EMAIL&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getByLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Password&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;fill&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;wrong-password&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getByRole&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;button&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Sign in&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="nf"&gt;click&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getByRole&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;alert&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)).&lt;/span&gt;&lt;span class="nf"&gt;toContainText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Invalid credentials&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;page&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;toHaveURL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="se"&gt;\/&lt;/span&gt;&lt;span class="sr"&gt;login/&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3, human review.&lt;/strong&gt; Read it like a colleague's pull request. Do the assertions check a business outcome or just that a click happened? Does the error case also check the user is &lt;em&gt;not&lt;/em&gt; logged in? Is an edge case missing (empty field, locked account)? Run it yourself and make it fail once on purpose to prove it catches a regression.&lt;/p&gt;

&lt;h2&gt;
  
  
  MCP, CLI or Test Agents?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Approach&lt;/th&gt;
&lt;th&gt;How it works&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Playwright MCP&lt;/td&gt;
&lt;td&gt;The AI calls &lt;code&gt;browser_*&lt;/code&gt; tools and reads accessibility snapshots&lt;/td&gt;
&lt;td&gt;Exploration, self-healing tests, long autonomous loops with a persistent browser context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Playwright CLI + Skills&lt;/td&gt;
&lt;td&gt;The coding agent runs short commands described by Skills&lt;/td&gt;
&lt;td&gt;Coding agents juggling a large codebase: more token-efficient&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Playwright Test Agents (1.56+)&lt;/td&gt;
&lt;td&gt;Three agents: planner, generator, healer&lt;/td&gt;
&lt;td&gt;Building or maintaining a Playwright Test suite with an assistant&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The Playwright MCP README is explicit: for coding agents, CLI + Skills is often the better choice because it avoids loading large tool schemas and verbose accessibility trees into the context. MCP stays relevant when the agent needs to reason over page structure with persistent state.&lt;/p&gt;

&lt;p&gt;Test Agents are set up in an existing project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx playwright init-agents &lt;span class="nt"&gt;--loop&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;claude   &lt;span class="c"&gt;# or --loop=vscode, --loop=opencode&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For Claude Code this writes agent definitions in &lt;code&gt;.claude/agents/&lt;/code&gt; and a &lt;code&gt;.mcp.json&lt;/code&gt; that starts &lt;code&gt;npx playwright run-test-mcp-server&lt;/code&gt;. The planner explores the app and writes a Markdown test plan, the generator turns it into test files, the healer runs the suite and repairs failing tests (as a last resort it marks a test &lt;code&gt;test.fixme()&lt;/code&gt; with a comment). Re-run the command after each Playwright upgrade.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rules we teach for AI-generated tests
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Review every generated line.&lt;/strong&gt; A passing test is not necessarily a good test. The AI checks what it sees; the tester defines what the business expects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demand accessible locators&lt;/strong&gt; (&lt;code&gt;getByRole&lt;/code&gt;, &lt;code&gt;getByLabel&lt;/code&gt;, &lt;code&gt;getByTestId&lt;/code&gt;) and say so in the prompt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Own your test data.&lt;/strong&gt; Dedicated accounts and datasets, recreated before each run.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep secrets out of prompts and code&lt;/strong&gt;: &lt;code&gt;--secrets&lt;/code&gt; for exploration, environment variables for tests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Never point the agent at production.&lt;/strong&gt; An assistant that clicks on its own can submit, delete or pay. Use a test environment and &lt;code&gt;--isolated&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Watch token cost.&lt;/strong&gt; Every snapshot and tool description fills the context. Scope the exploration to one flow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep CI deterministic.&lt;/strong&gt; AI writes and repairs tests; plain Playwright Test runs them in the pipeline.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What it changes for testers
&lt;/h2&gt;

&lt;p&gt;Less time writing selectors and boilerplate, more time on test design (equivalence partitions, boundary values, decision tables), test data and code review. You still need to read and fix TypeScript: you can't review what you don't understand.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article is adapted from our French guide &lt;a href="https://www.automationdatacamp.com/blog-post-playwright-mcp" rel="noopener noreferrer"&gt;Playwright MCP : tester avec l'IA&lt;/a&gt;. It was written with AI assistance; commands and options were checked against the official Playwright MCP and Playwright documentation.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AutomationDataCamp is an online software testing academy (Playwright, API testing, CI, AI-assisted testing, ISTQB prep). A ready-to-run Playwright + TypeScript starter with CI is on &lt;a href="https://github.com/automationdatacamp/playwright-starter" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;; more on &lt;a href="https://www.automationdatacamp.com/en/" rel="noopener noreferrer"&gt;our site&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sources:&lt;/strong&gt; &lt;a href="https://github.com/microsoft/playwright-mcp" rel="noopener noreferrer"&gt;microsoft/playwright-mcp&lt;/a&gt; · &lt;a href="https://github.com/microsoft/playwright-cli" rel="noopener noreferrer"&gt;microsoft/playwright-cli&lt;/a&gt; · &lt;a href="https://playwright.dev/docs/test-agents" rel="noopener noreferrer"&gt;Playwright Test Agents&lt;/a&gt; · &lt;a href="https://playwright.dev/docs/locators" rel="noopener noreferrer"&gt;Playwright locators&lt;/a&gt;&lt;/p&gt;

</description>
      <category>playwright</category>
      <category>testing</category>
      <category>ai</category>
      <category>mcp</category>
    </item>
  </channel>
</rss>
