---
title: "QA and production readinessWavect"
canonical: https://wavect.io/blog/clusters/qa-production/
language: en
description: "Testing, audits, maintenance and hardening practices for reliable production software."
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

Cluster

# QA and production readiness

Testing, audits, maintenance and hardening practices for reliable production software.

## Start with the cornerstone

- [**QA for AI-Generated Code**What breaks in code from Lovable, Cursor, Claude Code, and Replit before launch, and the production-readiness checklist we run to catch it.](/blog/qa-for-ai-generated-code/)

## Latest in this collection

### [Agentic Testing vs Test Automation: 2026 Pilot Guide](/blog/agentic-testing-vs-test-automation-2026/)

- **Details:** Delivery & QA · 11 Aug 2026

A vendor-neutral guide to agentic testing: where test agents beat scripts, where they fail, how to run a 30-day pilot, and which metrics justify a rollout.

### [External QA Benchmark: What We Find in the First 30 Days](/blog/external-qa-benchmark-first-30-days/)

- **Details:** Delivery & QA · 15 Jul 2026

A research-backed defect benchmark for permissions, regressions, browser/device combinations, data integrity, AI failures and production escapes, and why no honest universal bug-count median exists.

### [What Software Maintenance Costs After Launch: A DACH SaaS Benchmark](/blog/software-maintenance-cost-benchmark-dach-saas/)

- **Details:** Delivery & QA · 10 Jul 2026

Observed post-launch maintenance cost bands for DACH SaaS: year-one, year-two and year-three spend split across bug fixes, dependency upgrades, cloud, observability, security, compliance, support, product iteration and emergency work, with an interactive calculator.

### [Agile De-engineering](/blog/agile-de-engineering/)

- **Details:** Delivery & QA · 30 Jun 2026

How a movement built to liberate engineers came to erode engineering culture in the enterprise. Alexandre Kotcherguine and Kevin Riedl trace the commercialisation, ritual capture, metric inversion, and craft erosion behind it.

### [Lovable, Bolt, and Replit App Due Diligence](/blog/lovable-bolt-replit-app-due-diligence/)

- **Details:** Delivery & QA · 20 Jun 2026

Before you raise or sell on a vibe-coded app, three questions decide whether it survives diligence: is it safe, do you own it, can anyone maintain it? The security, IP, and investor checklist.

### [The Vibe-Code Production-Readiness Checklist](/blog/vibe-code-production-readiness-checklist/)

- **Details:** Delivery & QA · 16 Jun 2026

A standalone, scannable checklist to run on any AI-generated app before real users touch it. Ten checks ordered by how often they bite, sorted into blocker, high, and cleanup.

## Complete article directory

1. [Agentic Testing vs Test Automation: 2026 Pilot Guide](/blog/agentic-testing-vs-test-automation-2026/) 11 Aug 2026
2. [External QA Benchmark: What We Find in the First 30 Days](/blog/external-qa-benchmark-first-30-days/) 15 Jul 2026
3. [What Software Maintenance Costs After Launch: A DACH SaaS Benchmark](/blog/software-maintenance-cost-benchmark-dach-saas/) 10 Jul 2026
4. [Agile De-engineering](/blog/agile-de-engineering/) 30 Jun 2026
5. [Lovable, Bolt, and Replit App Due Diligence](/blog/lovable-bolt-replit-app-due-diligence/) 20 Jun 2026
6. [The Vibe-Code Production-Readiness Checklist](/blog/vibe-code-production-readiness-checklist/) 16 Jun 2026
7. [What It Costs to Make a Vibe-Coded App Production-Ready](/blog/vibe-coded-software-audit-cost/) 16 Jun 2026
8. [QA for AI-Generated Code](/blog/qa-for-ai-generated-code/) 8 Jun 2026
9. [From Lovable and Cursor Prototype to Production: The Migration Checklist](/blog/lovable-cursor-prototype-to-production/) 8 Jun 2026
10. [Vibe-Coded Software Audit: What Breaks Before Launch](/blog/vibe-coded-software-audit/) 8 Jun 2026
11. [Why Test-Driven-Development pays off](/blog/test-driven-development/) 17 Jun 2024

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/blog/clusters/qa-production/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-08-05",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-08-05",
      "url": "https://wavect.io/blog/clusters/qa-production/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "item": "https://wavect.io/",
      "name": "Home",
      "position": 1
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/overview/",
      "name": "Blog",
      "position": 2
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/topics/delivery-qa/",
      "name": "Delivery and QA",
      "position": 3
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/clusters/qa-production/",
      "name": "QA and production readiness",
      "position": 4
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "CollectionPage",
  "about": "Delivery and QA",
  "description": "Testing, audits, maintenance and hardening practices for reliable production software.",
  "mainEntity": {
    "@type": "ItemList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "name": "Agentic Testing vs Test Automation: 2026 Pilot Guide",
        "position": 1,
        "url": "https://wavect.io/blog/agentic-testing-vs-test-automation-2026/"
      },
      {
        "@type": "ListItem",
        "name": "External QA Benchmark: What We Find in the First 30 Days",
        "position": 2,
        "url": "https://wavect.io/blog/external-qa-benchmark-first-30-days/"
      },
      {
        "@type": "ListItem",
        "name": "What Software Maintenance Costs After Launch: A DACH SaaS Benchmark",
        "position": 3,
        "url": "https://wavect.io/blog/software-maintenance-cost-benchmark-dach-saas/"
      },
      {
        "@type": "ListItem",
        "name": "Agile De-engineering",
        "position": 4,
        "url": "https://wavect.io/blog/agile-de-engineering/"
      },
      {
        "@type": "ListItem",
        "name": "Lovable, Bolt, and Replit App Due Diligence",
        "position": 5,
        "url": "https://wavect.io/blog/lovable-bolt-replit-app-due-diligence/"
      },
      {
        "@type": "ListItem",
        "name": "The Vibe-Code Production-Readiness Checklist",
        "position": 6,
        "url": "https://wavect.io/blog/vibe-code-production-readiness-checklist/"
      },
      {
        "@type": "ListItem",
        "name": "What It Costs to Make a Vibe-Coded App Production-Ready",
        "position": 7,
        "url": "https://wavect.io/blog/vibe-coded-software-audit-cost/"
      },
      {
        "@type": "ListItem",
        "name": "QA for AI-Generated Code",
        "position": 8,
        "url": "https://wavect.io/blog/qa-for-ai-generated-code/"
      },
      {
        "@type": "ListItem",
        "name": "From Lovable and Cursor Prototype to Production: The Migration Checklist",
        "position": 9,
        "url": "https://wavect.io/blog/lovable-cursor-prototype-to-production/"
      },
      {
        "@type": "ListItem",
        "name": "Vibe-Coded Software Audit: What Breaks Before Launch",
        "position": 10,
        "url": "https://wavect.io/blog/vibe-coded-software-audit/"
      },
      {
        "@type": "ListItem",
        "name": "Why Test-Driven-Development pays off",
        "position": 11,
        "url": "https://wavect.io/blog/test-driven-development/"
      }
    ],
    "numberOfItems": 11
  },
  "name": "QA and production readiness",
  "url": "https://wavect.io/blog/clusters/qa-production/"
}
```
