Skip to content

Tester View: Breaking the System with Intent

This article is part of the broader series Product Development with Gen AI – Feedback Cycles, where I explore how different roles in product development contribute feedback loops that keep AI-generated outputs aligned with business intent, architecture, usability, operational reality, and long-term system coherence.

In the original article, I explored the idea that Gen AI does not become reliable through better prompts alone, but through layered validation systems embedded across the software delivery lifecycle:

Product Development with Gen AI – Using Feedback Cycles

I also previously explored:

  • the Product Owner perspective and why Gen AI requires continuous product validation and usability feedback:

Product Owner View – Gen AI Needs Product Feedback, Not Just Prompts

  • the Architect perspective, focused on guardrails, DDD, governance, and preventing architectural drift at AI speed:

Software Architect View – Gen AI: Guardrails Over Genius

  • and the Ops perspective, focused on observability, operational feedback loops, resilience engineering, and agentic operations:

Ops View – Gen AI Meets Reality in Production

This article focuses on another critical perspective:
testing.

Because if Gen AI accelerates creation, testers accelerate truth discovery.

And in the age of AI-assisted development, discovering uncomfortable truths quickly becomes one of the most valuable capabilities an organization can have.

Testing Is Becoming More Important, Not Less

One of the biggest misconceptions around Gen AI is the idea that testing will become less important because AI can generate both code and tests automatically.

In practice, the opposite is happening.

Gen AI dramatically increases:

  • system generation speed,
  • implementation variability,
  • integration complexity,
  • and hidden assumption density.

Which means systems can now become wrong much faster.

Not catastrophically wrong.
Dangerously plausible wrong.

This creates a new challenge:
systems that:

  • compile correctly,
  • pass superficial checks,
  • and still fail under ambiguity, pressure, edge conditions, or real-world usage.

This is where testers become critical.

Their role is no longer only validating correctness.

Their role becomes exposing the gap between:

  • what the system appears to do,
  • and what the system actually does when reality becomes messy.

Gen AI Has a Happy Path Bias

One of the most important observations about AI-generated systems is that they heavily optimize for ideal conditions.

Gen AI tends to generate solutions assuming:

  • valid inputs,
  • expected workflows,
  • stable dependencies,
  • clean data,
  • and predictable user behavior.

This creates “happy path bias.”

The generated solution often works perfectly for:

  • the obvious workflow,
  • the expected API sequence,
  • the cleanest input,
  • and the ideal infrastructure state.

But real systems rarely operate under ideal conditions.

Users behave unexpectedly.
Dependencies fail.
Inputs become malformed.
Traffic patterns shift.
Edge conditions emerge.

This is why testing becomes a critical counterbalance to AI optimism.

Testers challenge assumptions the AI never questioned.

Contract Tests: Protecting API Integrity

One of the areas where Gen AI creates subtle risk is distributed system integration.

AI-generated APIs often appear structurally correct while remaining semantically inconsistent.

For example:

  • field names drift subtly,
  • optional values become mandatory,
  • domain terminology changes,
  • response semantics evolve unintentionally,
  • or backward compatibility silently breaks.

These problems are especially dangerous because they often survive:

  • local testing,
  • compilation,
  • and even functional validation.

Contract testing becomes one of the strongest safeguards against this type of drift.

By enforcing strict contracts:

  • request and response schemas are validated continuously,
  • domain naming consistency is enforced across services,
  • breaking changes are detected early,
  • and integration assumptions become explicit.

Contract tests create hard boundaries around distributed system behavior.

They ensure that “almost correct” APIs never quietly reach consumers.

Because in distributed systems, small inconsistencies compound rapidly into larger operational failures.

Exploratory Testing: Challenging AI Assumptions

Automated tests validate expectations.
Exploratory testing challenges assumptions.

That distinction becomes extremely important with Gen AI.

AI-generated systems often appear coherent because they satisfy explicitly described requirements.

But many real problems emerge only when the system is used creatively, unexpectedly, or incorrectly.

This is where exploratory testing becomes invaluable.

Testers should actively:

  • use systems in unintended ways,
  • combine features unexpectedly,
  • violate assumptions,
  • create strange workflows,
  • interrupt sequences,
  • and intentionally misuse the system.

Because Gen AI frequently hides weaknesses behind plausible implementations.

A generated workflow may:

  • technically function,
  • visually appear correct,
  • and still collapse under real user unpredictability.

Exploratory testing exposes the assumptions nobody explicitly encoded into the system.

And in AI-assisted development, those hidden assumptions multiply quickly.

Edge Cases: Where Gen AI Fails First

One consistent pattern with Gen AI-generated systems is weakness around edge conditions.

AI performs best when patterns are common and well represented.

It performs much worse when dealing with:

  • malformed data,
  • unusual states,
  • invalid transitions,
  • partial failures,
  • unexpected timing,
  • or ambiguous conditions.

This means testers should aggressively focus on:

  • null inputs,
  • malformed payloads,
  • boundary values,
  • race conditions,
  • retry failures,
  • concurrency problems,
  • and inconsistent states.

Because edge cases are often where generated systems reveal their true robustness.

This is also where operational resilience begins.

Many production incidents originate from edge conditions that were technically possible but insufficiently validated.

Testing therefore becomes a resilience feedback system, not just a correctness activity.

Negative Testing: Intentionally Breaking the System

Traditional validation often focuses on proving that the system works.

Negative testing focuses on proving how the system fails.

And failure behavior matters enormously.

Gen AI frequently generates:

  • optimistic error handling,
  • incomplete exception propagation,
  • generic retries,
  • and shallow recovery mechanisms.

This creates systems that:

  • appear stable,
  • until failures become complex.

Negative testing intentionally pushes systems into failure modes:

  • invalid permissions,
  • dependency outages,
  • corrupted data,
  • invalid state transitions,
  • partial infrastructure failures,
  • or unexpected execution order.

The goal is not simply breaking the system.

The goal is understanding:

  • whether failures remain observable,
  • whether degradation stays controlled,
  • whether users receive meaningful feedback,
  • and whether the system preserves integrity under stress.

Test Data Strategy: Controlling the Inputs

AI-generated systems often make implicit assumptions about data quality.

This becomes dangerous when testing environments contain only:

  • clean data,
  • idealized examples,
  • or predictable datasets.

Without strong test data strategies, systems become validated against fantasy rather than reality.

A mature testing feedback loop includes:

  • curated real-world variability,
  • synthetic edge-case datasets,
  • intentionally corrupted data,
  • unusual combinations,
  • missing fields,
  • and contradictory states.

This is especially important because Gen AI often infers assumptions from training patterns rather than explicit domain guarantees.

Test data becomes a mechanism for exposing those hidden assumptions early.

Automation Feedback Loops: Scaling Validation

Manual testing alone cannot scale with Gen AI-assisted delivery speed.

This makes automated validation increasingly important.

The key operational loop becomes:

AI-generated implementation→ automated validation→ failure detection→ refinement→ revalidation

Automation creates continuous feedback at machine speed.

This includes:

  • regression testing,
  • integration testing,
  • contract validation,
  • infrastructure validation,
  • UI testing,
  • API testing,
  • and operational verification.

The important shift is that automated testing no longer simply validates code.

It validates generated assumptions continuously.

Without automated feedback loops, Gen AI can propagate incorrect patterns faster than humans can manually detect them.

Tester–AI Collaboration: Validate, Don’t Trust

One dangerous temptation with Gen AI is trusting generated tests too easily.

AI can generate:

  • unit tests,
  • integration tests,
  • mock scenarios,
  • fixtures,
  • and testing scaffolding

extremely quickly.

But generated tests often:

  • validate trivial behavior,
  • mirror implementation incorrectly,
  • miss edge conditions,
  • assert shallow outcomes,
  • or create false confidence.

This means testers should treat AI-generated tests as:

  • suggestions,
  • scaffolding,
  • or accelerators,

not as trusted validation artifacts.

Testers still need to:

  • review generated tests critically,
  • expand them meaningfully,
  • challenge missing assumptions,
  • and verify that assertions actually matter.

The objective is not maximizing test quantity.

The objective is maximizing validation quality.

AI Can Help Testers Too

Interestingly, Gen AI can become extremely valuable for testing when used critically.

For example, AI can assist with:

  • generating test ideas,
  • identifying edge cases,
  • producing contract variations,
  • generating malformed payloads,
  • creating synthetic datasets,
  • exploring combinatorial scenarios,
  • and identifying potential failure paths.

This creates a powerful dynamic:
AI accelerates both:

  • system creation,
  • and system destruction.

Which is actually healthy.

Because resilient systems emerge when generation speed and validation speed evolve together.

Adversarial Cooperation: Testing Through Constructive Conflict

One of the most interesting developments in AI-assisted software engineering is the idea of adversarial cooperation:
multiple AI systems—or humans and AI systems—challenging each other to improve quality.

Testing is one of the areas where this approach becomes especially powerful.

Because Gen AI has a natural tendency toward agreement and plausibility.

A single AI system generating:

  • requirements,
  • implementation,
  • and tests

often reproduces the same assumptions across all layers.

This creates a dangerous validation illusion.

The system appears validated because:

  • the implementation matches the generated tests,
  • the generated tests match the generated requirements,
  • and all artifacts share the same blind spots.

In other words:
the AI ends up validating itself.

Adversarial cooperation introduces intentional tension into this process.

Instead of one AI system generating and validating everything, multiple perspectives actively challenge each other.

This creates stronger feedback loops and significantly improves truth discovery.

The Problem with Self-Validated Systems

One subtle danger with Gen AI is correlated reasoning failure.

If the same assumptions influence:

  • prompts,
  • generated code,
  • generated tests,
  • and generated documentation,

then errors become internally consistent.

The system feels coherent while remaining wrong.

For example:

  • an API may expose incorrect semantics,
  • tests may validate those incorrect semantics,
  • and generated documentation may reinforce them.

Everything aligns internally.
But reality is still violated.

Humans naturally reduce this risk through disagreement:

  • testers challenge developers,
  • reviewers challenge implementations,
  • architects challenge designs,
  • users challenge workflows.

Single-agent AI generation removes much of this productive friction.

Adversarial cooperation reintroduces it intentionally.

Multi-Agent Testing Patterns

One powerful model is separating AI responsibilities into competing validation roles.

For example:

Generator Agent

Creates:

  • implementations,
  • APIs,
  • workflows,
  • or infrastructure.

Challenger Agent

Attempts to:

  • break assumptions,
  • identify inconsistencies,
  • generate edge cases,
  • and expose vulnerabilities.

Contract Validator Agent

Checks:

  • semantic consistency,
  • API compatibility,
  • domain language,
  • and architectural rules.

Resilience Agent

Focuses on:

  • failure behavior,
  • retry logic,
  • concurrency,
  • partial outages,
  • and degradation scenarios.

Security Testing Agent

Attempts:

  • privilege escalation,
  • injection attacks,
  • invalid authorization paths,
  • and abuse scenarios.

This creates a dynamic where generated systems are continuously attacked, questioned, and stress-tested before reaching production.

The objective is not conflict for its own sake.

The objective is increasing confidence through structured skepticism.

AI vs AI Validation Loops

One fascinating possibility is creating AI-versus-AI validation systems.

For example:

  • one agent generates a feature,
  • another tries to exploit it,
  • another attempts to invalidate assumptions,
  • another generates malicious inputs,
  • another analyzes resilience,
  • while another evaluates business-rule consistency.

This creates continuous internal challenge mechanisms.

The important insight here is:
confidence increases more from surviving adversarial pressure than from passing optimistic validation.

This is true in:

  • cybersecurity,
  • distributed systems,
  • resilience engineering,
  • and increasingly AI-assisted software development itself.

Adversarial Cooperation Reduces Hallucinated Correctness

One of the biggest risks in AI-generated systems is hallucinated correctness:
high-confidence outputs built on flawed assumptions.

Adversarial cooperation reduces this risk by introducing:

  • disagreement,
  • alternative interpretations,
  • and validation tension.

Instead of:

  • a single interpretation becoming authoritative,

multiple perspectives continuously challenge:

  • implementation details,
  • semantics,
  • workflows,
  • resilience assumptions,
  • and edge conditions.

This makes it much harder for incorrect assumptions to survive unnoticed.

Especially when systems become large and complex.

Human Testers Become Orchestrators of Skepticism

Interestingly, adversarial cooperation does not reduce the importance of human testers.

It elevates it.

Testers increasingly become:

  • orchestrators of validation systems,
  • designers of adversarial scenarios,
  • feedback architects,
  • and curators of skepticism.

Instead of manually executing repetitive validation, testers increasingly shape:

  • how systems are challenged,
  • how assumptions are attacked,
  • and how feedback loops evolve over time.

This is a much more strategic role than traditional manual validation.

Feedback Into the System

Perhaps the most important role of testing is not simply finding defects.

It is feeding learning back into the system continuously.

Every failure should strengthen future validation.

For example:

  • bugs become regression tests,
  • recurring failures create new validation rules,
  • gaps in coverage improve testing strategies,
  • operational incidents generate new test scenarios,
  • and edge-case discoveries refine prompts, ADRs, scaffolding, and governance.

This creates compounding organizational learning.

Over time:

  • systems become harder to break,
  • assumptions become more explicit,
  • and validation becomes increasingly intelligent.

Not because Gen AI became perfect.

But because the feedback system around it matured.

Continuous Skepticism as a System Property

One of the deeper ideas behind adversarial cooperation is this:

Resilient systems emerge from continuous challenge.

Not from optimistic validation.

Traditional testing often asks:

“Does the system work?”

Adversarial systems ask:

“How does the system fail?”
“What assumptions survive pressure?”
“What happens when intelligent actors intentionally challenge the design?”

This shift becomes increasingly important with Gen AI because generated systems can become plausibly wrong extremely quickly.

Adversarial cooperation introduces friction back into high-speed generation systems.

And that friction is healthy.

Because without skepticism, AI systems become extremely good at producing convincing illusions of correctness.

The Future of Testing in AI-Assisted Development

The future of testing is probably not:

  • endless manual regression,
  • static test scripts,
  • or blindly trusting generated automation.

The future is:

  • continuous validation,
  • exploratory challenge systems,
  • contract-driven integration protection,
  • AI-assisted testing,
  • adversarial validation,
  • synthetic data generation,
  • AI-versus-AI challenge systems,
  • and feedback-driven resilience engineering.

Testers increasingly become:

  • assumption challengers,
  • system skeptics,
  • resilience engineers,
  • adversarial orchestrators,
  • and feedback designers.

Because in the age of Gen AI:
building systems becomes easier.

Understanding whether those systems are actually trustworthy becomes much harder.

And that is exactly why testing matters more than ever.

Subscribe

If you want to receive an email when I write a new article, subscribe here:

Subscribe for new articles

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Subscribe for new articles