<?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: QA-lab URL Review</title>
    <description>The latest articles on DEV Community by QA-lab URL Review (@qalaburlreview).</description>
    <link>https://dev.to/qalaburlreview</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%2F4187607%2F8903d3e2-7e69-4cc6-a349-bc7b939d6158.png</url>
      <title>DEV Community: QA-lab URL Review</title>
      <link>https://dev.to/qalaburlreview</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/qalaburlreview"/>
    <language>en</language>
    <item>
      <title>21 kinds of test cases a public page already tells you about</title>
      <dc:creator>QA-lab URL Review</dc:creator>
      <pubDate>Sun, 18 Oct 2026 22:59:59 +0000</pubDate>
      <link>https://dev.to/qalaburlreview/20-kinds-of-test-cases-a-public-page-already-tells-you-about-1m8l</link>
      <guid>https://dev.to/qalaburlreview/20-kinds-of-test-cases-a-public-page-already-tells-you-about-1m8l</guid>
      <description>&lt;p&gt;Before anyone writes a single automated test, a public page has already told you a lot: what it answers over https, which links it exposes, whether its fields have labels, which headers it sends, how long the document takes to arrive.&lt;/p&gt;

&lt;p&gt;Most first test plans stop at "the happy path works". Here is the list I use instead when I read a page for the first time. Each kind has one example case, written the way I would hand it to a team.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Functional&lt;/strong&gt; (&lt;code&gt;FN-01&lt;/code&gt;): The reviewed URL answers over https&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content&lt;/strong&gt; (&lt;code&gt;CT-01&lt;/code&gt;): The meta description is present and short enough to read&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Links&lt;/strong&gt; (&lt;code&gt;LK-01&lt;/code&gt;): Same-host links discovered from the start page resolve&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forms&lt;/strong&gt; (&lt;code&gt;FM-01&lt;/code&gt;): Visible fields have labels&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility&lt;/strong&gt; (&lt;code&gt;A11Y-01&lt;/code&gt;): Images expose a text alternative&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt; (&lt;code&gt;SEC-01&lt;/code&gt;): HTTPS is the only way in&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy&lt;/strong&gt; (&lt;code&gt;PR-01&lt;/code&gt;): A privacy notice is linked from the page&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SEO&lt;/strong&gt; (&lt;code&gt;SEO-01&lt;/code&gt;): Title, description, canonical, and social tags agree&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GEO&lt;/strong&gt; (&lt;code&gt;GEO-01&lt;/code&gt;): AI answer and search crawlers may read the site&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance&lt;/strong&gt; (&lt;code&gt;PF-01&lt;/code&gt;): The HTML document arrives inside a stated budget&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Load&lt;/strong&gt; (&lt;code&gt;LD-01&lt;/code&gt;): An authorised baseline could repeat the document fetch&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobile&lt;/strong&gt; (&lt;code&gt;MB-01&lt;/code&gt;): The layout holds at a phone width&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Internationalization&lt;/strong&gt; (&lt;code&gt;I18N-01&lt;/code&gt;): The lang attribute matches the copy a person reads&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resilience&lt;/strong&gt; (&lt;code&gt;RS-01&lt;/code&gt;): A missing path returns a deliberate not-found page&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compatibility&lt;/strong&gt; (&lt;code&gt;CMP-01&lt;/code&gt;): The page still explains itself when scripts do not run&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Media&lt;/strong&gt; (&lt;code&gt;MED-01&lt;/code&gt;): Video exposes captions or a transcript path&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analytics&lt;/strong&gt; (&lt;code&gt;AN-01&lt;/code&gt;): Analytics tags wait for a recorded choice when the page asks for consent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Commerce&lt;/strong&gt; (&lt;code&gt;CM-01&lt;/code&gt;): A catalog or payment marker is covered without placing an order&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visual&lt;/strong&gt; (&lt;code&gt;VIS-01&lt;/code&gt;): Images reserve their box before they paint&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Platform&lt;/strong&gt; (&lt;code&gt;PLAT-01&lt;/code&gt;): The public Salesforce path stays available without an org login&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API&lt;/strong&gt; (&lt;code&gt;API-01&lt;/code&gt;): A public API description is listed without calling the API&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to use the list
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Read the public response first: status, headers, the HTML that arrives before any script runs.&lt;/li&gt;
&lt;li&gt;Follow the same-host links you can see, a couple of levels deep, and note what each one answers.&lt;/li&gt;
&lt;li&gt;Keep only the kinds you will actually run. A list nobody runs is worse than a short one.&lt;/li&gt;
&lt;li&gt;Name the tool for each case (Playwright, Cypress, Robot, Selenium, WebdriverIO, Appium, JMeter, Gatling, axe-core, Lighthouse, k6) so the case is ready to become code.&lt;/li&gt;
&lt;li&gt;Treat security headers as signals, not proof. A missing header is a question for the owner, not a finding of a break-in.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What this list is not
&lt;/h2&gt;

&lt;p&gt;It is not a certification and not a penetration test. Reading a public page does not sign in, submit forms, or generate load, so anything behind a login or under real traffic still needs its own plan.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article was created with the help of AI and checked for accuracy before publishing.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>qa</category>
      <category>webdev</category>
      <category>a11y</category>
    </item>
  </channel>
</rss>
