<?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: Kurnia Sandi</title>
    <description>The latest articles on DEV Community by Kurnia Sandi (@kurglory_).</description>
    <link>https://dev.to/kurglory_</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3910869%2F6899bc68-bf7f-41c5-81ec-f1acf5e997e6.jpg</url>
      <title>DEV Community: Kurnia Sandi</title>
      <link>https://dev.to/kurglory_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kurglory_"/>
    <language>en</language>
    <item>
      <title>I Tested TestSprite on a Real Project — Here's What AI Testing Actually Gets Right (and Wrong) About Locale</title>
      <dc:creator>Kurnia Sandi</dc:creator>
      <pubDate>Sun, 03 May 2026 19:59:38 +0000</pubDate>
      <link>https://dev.to/kurglory_/i-tested-testsprite-on-a-real-project-heres-what-ai-testing-actually-gets-right-and-wrong-2ke0</link>
      <guid>https://dev.to/kurglory_/i-tested-testsprite-on-a-real-project-heres-what-ai-testing-actually-gets-right-and-wrong-2ke0</guid>
      <description>&lt;p&gt;If you're building with AI coding assistants — Cursor, Claude Code, Windsurf — you've probably noticed the same gap I did: the code comes out fast, but verification is still painfully manual. You run the app, click around, squint at edge cases. TestSprite promises to close that loop autonomously. I put it through its paces on a real e-commerce project, and I want to give you an honest, developer-to-developer breakdown — especially around something most reviews skip: locale handling.&lt;/p&gt;

&lt;p&gt;What TestSprite Actually Is&lt;/p&gt;

&lt;p&gt;TestSprite is an AI-native testing agent that integrates into your IDE via MCP (Model Context Protocol). The pitch is simple: point it at your project with one prompt, and it will:&lt;/p&gt;

&lt;p&gt;Scan your codebase and generate a normalized PRD&lt;/p&gt;

&lt;p&gt;Produce a complete test plan (frontend + backend)&lt;/p&gt;

&lt;p&gt;Spin up an ephemeral cloud sandbox and run the tests&lt;/p&gt;

&lt;p&gt;Report bugs with root-cause analysis and fix suggestions&lt;/p&gt;

&lt;p&gt;Output reusable Python + Playwright test code for CI/CD&lt;/p&gt;

&lt;p&gt;It supports React, Vue, Angular, Svelte, Next.js, Vite on the frontend, and API/integration testing on the backend. IDE support covers Cursor, VS Code, Claude Code, Windsurf, Trae, and GitHub Copilot.&lt;/p&gt;

&lt;p&gt;The Project I Used&lt;/p&gt;

&lt;p&gt;I tested TestSprite on a demo Indonesian e-commerce app — a product catalog with a shopping cart, built in HTML/JavaScript. Nothing exotic, but specifically designed to stress-test locale behavior:&lt;/p&gt;

&lt;p&gt;Prices formatted in Indonesian Rupiah using toLocaleString('id-ID') → Rp 15.000.000 (periods as thousand separators, not commas)&lt;/p&gt;

&lt;p&gt;Dates rendered with toLocaleDateString('id-ID', { weekday: 'long', ... }) → Minggu, 3 Mei 2026&lt;/p&gt;

&lt;p&gt;Full Indonesian-language UI labels and button text&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flv7s3f0vob9gp39166yw.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flv7s3f0vob9gp39166yw.jpg" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
Setup: Genuinely Fast&lt;/p&gt;

&lt;p&gt;npx @testsprite/testsprite-mcp@latest&lt;/p&gt;

&lt;p&gt;Add the config to your IDE (VS Code example):&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
  "mcpServers": {&lt;br&gt;
    "TestSprite": {&lt;br&gt;
      "command": "npx",&lt;br&gt;
      "args": ["@testsprite/testsprite-mcp@latest"],&lt;br&gt;
      "env": { "API_KEY": "your-api-key" }&lt;br&gt;
    }&lt;br&gt;
  }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;One prompt — Help me test this project with TestSprite — kicks off the full pipeline. No writing test cases. No framework boilerplate. Just results.&lt;/p&gt;

&lt;p&gt;The 8 core MCP tools chain automatically:&lt;/p&gt;

&lt;p&gt;Tool&lt;/p&gt;

&lt;p&gt;What It Does&lt;/p&gt;

&lt;p&gt;testsprite_bootstrap_tests&lt;/p&gt;

&lt;p&gt;Init environment, detect project type&lt;/p&gt;

&lt;p&gt;testsprite_generate_code_summary&lt;/p&gt;

&lt;p&gt;Architectural scan, outputs code_summary.json&lt;/p&gt;

&lt;p&gt;testsprite_generate_standardized_prd&lt;/p&gt;

&lt;p&gt;Infers product requirements from code&lt;/p&gt;

&lt;p&gt;testsprite_generate_frontend_test_plan&lt;/p&gt;

&lt;p&gt;Builds UI test scenarios&lt;/p&gt;

&lt;p&gt;(+ 4 more)&lt;/p&gt;

&lt;p&gt;Execution, reporting, patching&lt;/p&gt;

&lt;p&gt;What came out: 15+ test cases covering authentication flows, cart state, error handling, and edge cases I genuinely would have missed writing tests manually.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fauwpdwbnox6o457thmt0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fauwpdwbnox6o457thmt0.jpg" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
Locale Handling: 2 Critical Observations&lt;/p&gt;

&lt;p&gt;This is where I'll give you something most TestSprite reviews don't — a focused look at how the AI handles non-English, non-US-format data.&lt;/p&gt;

&lt;p&gt;Observation 1: Currency Format — Partially Correct, One Blind Spot&lt;/p&gt;

&lt;p&gt;The project uses toLocaleString('id-ID') to render Rp 15.000.000 — periods as thousand separators, opposite of what en-US expects.&lt;/p&gt;

&lt;p&gt;What TestSprite got right: It didn't hardcode 15,000,000 in assertions. The generated tests validated that the price element was visible and contained a non-empty value — format-agnostic enough to not immediately break.&lt;/p&gt;

&lt;p&gt;What TestSprite missed: When generating tests for quantity input fields, some assertions assumed plain integer input (1000) rather than locale-formatted input (1.000). In Indonesian UX, users routinely type formatted numbers into form fields. This means TestSprite would pass a test on a form that silently rejects 1.000 as invalid input — a real, shippable bug that goes undetected.&lt;/p&gt;

&lt;p&gt;My fix: I added a custom test instruction: "Validate that numeric input fields accept both plain integers and period-separated thousands format (e.g., both 1000 and 1.000)." TestSprite regenerated the relevant tests correctly. The hook is there — you just have to know to pull it.&lt;/p&gt;

&lt;p&gt;Observation 2: Date Localization — Pragmatic, But Too Shallow&lt;/p&gt;

&lt;p&gt;The app displays dates like Minggu, 3 Mei 2026 (Indonesian: Sunday, 3 May 2026). Here's what TestSprite generated for the date element:&lt;/p&gt;

&lt;h1&gt;
  
  
  Generated Playwright test
&lt;/h1&gt;

&lt;p&gt;expect(page.locator("#currentDate")).to_be_visible()&lt;br&gt;
expect(page.locator("#currentDate")).not_to_be_empty()&lt;/p&gt;

&lt;p&gt;It checks existence. It does not verify the format.&lt;/p&gt;

&lt;p&gt;That means if your i18n config silently falls back to en-US — displaying Sunday, May 3, 2026 instead of Minggu, 3 Mei 2026 — TestSprite's test passes. The bug ships.&lt;/p&gt;

&lt;p&gt;This is philosophically reasonable behavior (tests shouldn't be brittle to locale differences in CI environments), but it creates a real gap for apps that have explicit locale requirements. For any project where Indonesian, Arabic, Japanese, or RTL formatting is a feature spec, you need to write explicit locale assertions yourself.&lt;/p&gt;

&lt;p&gt;My recommendation: Add a test instruction like: "Assert that the date element contains Indonesian month names (Januari, Februari, Maret, ..., Desember)". TestSprite handles this correctly when instructed — it just doesn't infer it automatically.&lt;/p&gt;

&lt;p&gt;What It Does Really Well&lt;/p&gt;

&lt;p&gt;Beyond locale, here's where TestSprite clearly earns its place:&lt;/p&gt;

&lt;p&gt;Edge case coverage: It caught a missing empty-cart guard on checkout that I hadn't tested manually. The alert logic was there; the test wasn't.&lt;/p&gt;

&lt;p&gt;Auto-generated Playwright code: Production-ready Python test files, ready for GitHub Actions or GitLab CI. Zero manual scripting.&lt;/p&gt;

&lt;p&gt;No QA expertise required: For small teams (common in Indonesian startups) without a dedicated QA engineer, this is the difference between zero automated coverage and 90%+ coverage.&lt;/p&gt;

&lt;p&gt;Community Edition is free: 100,000+ member community, free tier available — low barrier to try.&lt;/p&gt;

&lt;p&gt;Honest Comparison&lt;/p&gt;

&lt;p&gt;Manual Testing&lt;/p&gt;

&lt;p&gt;TestSprite&lt;/p&gt;

&lt;p&gt;Initial test setup&lt;/p&gt;

&lt;p&gt;2–4 hours&lt;/p&gt;

&lt;p&gt;~10 minutes&lt;/p&gt;

&lt;p&gt;Edge case coverage&lt;/p&gt;

&lt;p&gt;Depends on experience&lt;/p&gt;

&lt;p&gt;Comprehensive by default&lt;/p&gt;

&lt;p&gt;Locale-specific assertions&lt;/p&gt;

&lt;p&gt;Manual, explicit&lt;/p&gt;

&lt;p&gt;Needs custom instructions&lt;/p&gt;

&lt;p&gt;CI/CD output&lt;/p&gt;

&lt;p&gt;You write it&lt;/p&gt;

&lt;p&gt;Auto-generated Playwright&lt;/p&gt;

&lt;p&gt;Cost&lt;/p&gt;

&lt;p&gt;Engineer time&lt;/p&gt;

&lt;p&gt;Free tier available&lt;/p&gt;

&lt;p&gt;Final Verdict&lt;/p&gt;

&lt;p&gt;TestSprite is genuinely impressive at what it claims: autonomous test generation from a codebase with minimal setup. The 42% → 93% feature delivery improvement claim isn't outlandish — I can see the coverage delta.&lt;/p&gt;

&lt;p&gt;For developers building globally: locale testing is a first-class citizen in your product, not an afterthought. TestSprite's AI will not automatically validate currency formats, date localization, non-ASCII input, or timezone display unless you tell it to. The framework to do it is there and works well once instructed — but the default behavior is locale-neutral, not locale-aware.&lt;br&gt;
That's not a dealbreaker. It's a workflow note: add locale-specific custom instructions before your first test run, and TestSprite will produce exactly what you need.&lt;/p&gt;

&lt;p&gt;Rating: 4.5 / 5&lt;/p&gt;

&lt;p&gt;Tested on: demo Indonesian e-commerce app (HTML/JS), TestSprite MCP Server via VS Code, May 2026.Try TestSprite free: testsprite.com&lt;/p&gt;

</description>
      <category>ai</category>
      <category>testing</category>
      <category>testsprite</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
