Measuring 360° coverage instead of guessing it
"What did we test?" deserves a real answer. Here's how a coverage map turns a vague feeling into a number.

Most of the rule library we're building this summer isn't clever. That's the point. These are checks that hold for nearly any online store, need no knowledge of your codebase, and run on every page a test visits.
Here are seven we think every store should have, whether or not you use Testomatica.
1. An in-stock product has a price greater than zero. If a product says "In stock, add to cart" and the price reads 0.00, something went wrong. Maybe a currency conversion returned null, maybe a price list didn't sync. Either way, someone could be about to buy a $300 item for nothing. Out-of-stock items and "price on request" items are excluded; the rule only fires when the page is offering to sell.
2. No product appears twice on the same listing page. Duplicates usually mean pagination is off by a few items, or two queries got merged without deduplication. Customers notice. They scroll, see the same blender again, and wonder what else is wrong. The check compares product IDs on the page, not names, since two different products can share a name.
3. Sort order matches the price that's shown. Pick "Lowest price first" and the prices on screen should never go down as you scroll. The subtle version of this bug is common: the store sorts by the list price while showing the discounted price, so a $40 item marked down to $25 appears after a $30 one. The rule reads the price the customer sees, because that's the price the customer is sorting by.
4. One product, one price, everywhere. The listing card, the product page, the structured data in the page source, and the cart after adding the item should all agree. If the card says $24.00 and the cart says $26.40, either a fee appeared out of nowhere or two parts of the system calculate price differently. This one needs a few steps, so it runs on a sample of products rather than all of them.
5. Product links don't silently redirect home. Click a product, land on the homepage. No error, no 404, just a quiet 302 back to the start. It's one of the more annoying failures because nothing looks broken in the logs. The rule follows every product link it sees and flags any that end on the homepage when they started somewhere else.
6. No broken images. Every image on the page should load with a success status and a non-zero size. A missing product photo makes a listing look abandoned. This is technically a universal rule rather than a store-specific one, but stores have so many images that it earns a place here.
7. No untranslated keys or broken characters. Text like product.add_to_cart.label showing up on a button means a translation key wasn't resolved. Text like Crème instead of Crème means an encoding problem somewhere in the pipeline. Both are easy to detect with patterns, and both look careless to anyone reading the page.
A rule that can block a release has a lot of power. If it's wrong, it either stops good deploys or lets bad ones through. So before any of these rules is allowed into the blocking gate, it has to prove itself on a page we broke on purpose.
For each rule we build a small fixture page with exactly that defect. A listing with one product repeated. A product at 0.00 marked in stock. A sort that orders by the wrong price. A link that redirects home. An image pointing at nothing. A button labeled with a raw key. The rule has to catch each one.
It also has to stay quiet on the clean version of the same page. A duplicate check that fires on two different products with the same name is a bad rule, and we'd rather find that out on a fixture than on a real deploy.
Only after both checks pass, catching the broken page and ignoring the clean one, does the rule start its time in quarantine on real pages, the same way any new test does.
Shipping cost rules, tax rules, coupon logic, stock thresholds. All important, all specific to each store. Those come from your tickets and specs, and they sit higher in the oracle ranking we described in Oracles, ranked.
The seven above are the floor. What would you add as number eight?
We're onboarding a small group of teams that ship with AI.
Get early access