ARSHADUL.exe, home
Menu

/WORK / Quality engineering

AI-assisted QA agent

Intelligent test execution, evidence-based bug detection, and automated code investigation for complex web applications.

This is an AI-assisted quality engineering agent for browser-based testing. It analyzes application behavior, identifies potential defects, and investigates relevant source code when a failure needs a deeper look. Browser automation, structured evidence, deterministic checks, and model-based reasoning sit in one workflow. The first target is a legacy web application whose main interface runs inside an iframe, so authentication, navigation, application state, and failure classification are part of the test, not a setup detail.

Category
Quality engineering
People
  • Engineers reviewing a structured test result
  • A legacy web application reached through an authenticated iframe
Contribution
I built this agent myself. The work is the whole workflow: browser execution, evidence, model analysis, deterministic verification, and conditional code investigation.
Status
In progress

The challenge

Testing a complex legacy web application still takes a lot of manual effort. A failed browser request is not automatically a product defect, and a page that loads is not proof that the feature worked.

The workflow has to sign in, reach the target feature, and operate an interface that lives inside an iframe. It has to keep console errors, JavaScript exceptions, and failed network requests. It also has to tell a genuine defect apart from an expected failure, a third-party request, or environmental noise. A model should analyze the meaningful anomalies, and source investigation should start only when the evidence justifies it. The result has to be structured and reviewable, with automated Jira creation left off.

The solution

The run is a sequence of stages. Browser automation collects evidence. A model classifies that evidence. A deterministic check decides whether a suspicion should continue. Code investigation runs only after that, and the artifacts stay available for a person to read.

  • Authenticate, open the relevant area, and interact with the target interface inside the iframe.
  • Persist navigation details, iframe information, console errors, JavaScript exceptions, and failed network requests, with sensitive values redacted.
  • Classify the outcome as PASS, ANOMALY, or SUSPECTED_BUG from the context of each failure.
  • Verify a potential defect in a separate stage, and stop early when the run passes or model analysis is unavailable.
  • Search relevant application repositories only when a meaningful failure warrants it.
  • Write structured evidence and analysis for review. Automated Jira creation stays disabled.

System architecture

Browser automation executes the journey and observes the application. Evidence collection captures and sanitizes what the later stages need. AI analysis interprets that context and names potential anomalies. Bug verification applies deterministic checks before a suspicion is treated as something to investigate. Code investigation examines relevant repositories only when the analysis workflow triggers it. Structured reporting persists machine-readable results for review, debugging, and a later integration.

Those responsibilities stay separate so execution, evidence, reasoning, and verification can be tested on their own. The language model is not the sole authority on whether a defect exists. OpenAI APIs provide the model calls used for evidence analysis and contextual reasoning. LangChain can provide the model, prompt, and tool abstractions. LangGraph can orchestrate the stages as a stateful graph, including conditional transitions. LangSmith can trace and evaluate those model calls.

System architecture

Read the stages from left to right. Code investigation runs only after verification.

01 Run

  • Browser automationAuthenticated journey into the iframe interface.
  • EvidenceConsole, exceptions, and failed requests, redacted before they are stored.

02 Judge

  • AI analysisPASS, ANOMALY, or SUSPECTED_BUG from the context of the run.
  • VerificationDeterministic checks. The workflow can stop when the run passes.

03 Follow through

  • Code investigationRepository search only when the evidence warrants it.
  • ReportingStructured artifacts. Jira creation stays off.

Model analysis and defect verification are different stages. A healthy run does not continue into source-code investigation.

Key engineering decisions

Collect evidence before asking the model

Engineering challenge

A model asked to explain a failure it did not observe will invent a story. A log dumped in without context will treat noise as a defect.

Implementation approach

The agent completes the authenticated path, interacts with the iframe, and stores navigation, iframe, console, exception, and failed-request evidence. Sensitive information is redacted before that record is persisted. Analysis runs on the record.

Engineering rationale

The model reasons over what the browser did. The primary application operation can succeed even when a third-party request fails, and the evidence is what makes that distinction possible.

Trade offs

The run spends time collecting and sanitizing before any model call. That cost is the alternative to analyzing a raw, unredacted trace.

Classification is not confirmation

Engineering challenge

Error presence is a weak signal. Marking every console or network failure as a bug floods the result. Skipping verification would let a suspicion stand as a defect.

Implementation approach

Analysis labels the outcome PASS, ANOMALY, or SUSPECTED_BUG. A separate verification stage then decides whether a suspected defect should go further. If the execution passes, or if AI analysis is unavailable, the workflow stops instead of continuing into investigation.

Engineering rationale

Deterministic checks sit around the model assessment. An unverified suspicion is not stored as a confirmed bug.

Trade offs

A real defect can wait in the suspected state until verification agrees. That delay is preferable to filing a conclusion the checks do not support.

Investigate code only when the evidence warrants it

Engineering challenge

Searching application repositories on every run, including healthy ones, spends time and model use without adding a finding.

Implementation approach

Code investigation is a conditional stage. It searches relevant repositories for implementation detail only after a meaningful failure has passed the earlier stages.

Engineering rationale

Source reading stays attached to a specific anomaly. Passes stay in the browser evidence.

Trade offs

A borderline anomaly that verification does not promote never opens the repositories. The workflow favors a focused investigation over a standing code search.

Keep defect reporting under human control

Engineering challenge

An automated ticket from a suspected bug would present an unverified result as team work.

Implementation approach

The agent writes structured evidence and analysis that can be inspected on their own. Automated Jira creation remains disabled while detection and verification are still being developed.

Engineering rationale

A person can review the artifacts and decide what, if anything, becomes a defect report. The detection workflow does not need a live tracker to be useful.

Trade offs

Nothing is filed by itself. A future Jira integration would have to be an explicit, separate switch, not a default of this stage.

Core capabilities

Browser automation and evidence collection

The agent signs in, opens the relevant area, and interacts with the target interface inside an iframe. It records navigation, iframe information, console errors, JavaScript exceptions, and failed network requests.

Value. A reviewer can see what the browser did, not only a pass or fail line.

Complexity. Sensitive values are redacted before the evidence is persisted.

AI-assisted failure analysis

The evidence is classified as PASS, ANOMALY, or SUSPECTED_BUG. Each failure is read in context. An expected third-party failure does not become a product defect when the primary operation succeeds.

Value. The result separates noise from a lead worth a person's time.

Complexity. The model interprets the record. It does not decide that an error string alone is a bug.

Deterministic bug verification

Potential defects pass through a verification stage that is separate from the model assessment. The run can stop when it passes, or when AI analysis is unavailable.

Value. An unverified suspicion is not treated as a confirmed bug.

Complexity. Predictable checks wrap the model output, so a missing analysis does not fall through into investigation.

Conditional code investigation

When a meaningful failure warrants it, the agent can search relevant application repositories for the implementation behind the evidence.

Value. Investigation stays tied to a real anomaly instead of running on every execution.

Complexity. Healthy runs do not trigger source-code analysis.

Structured results

Evidence and analysis are written as artifacts a person can inspect. Automated Jira creation stays disabled.

Value. The detection workflow can be reviewed and developed without creating tickets on its own.

Complexity. Reporting is a persisted result, not an integration that files work.

Technology stack

Model

  • OpenAI APIs

Agent workflow

  • LangChain
  • LangGraph
  • LangSmith

Execution

  • Browser automation
  • Iframe-aware navigation
  • Redacted evidence

Engineering impact

Evidence is collected before a model is asked to analyze a failure. Deterministic checks cover the predictable questions, and deeper code investigation runs only when the earlier stages justify it.

Model analysis stays separate from defect verification, so a language-model assessment is not stored as proof. Sensitive information is redacted from the persisted evidence.

Structured outputs can be inspected and tested. Automated Jira creation remains a future integration under explicit control, not part of the current workflow.

Workflows and modules

These drawings describe the workflow. They are not captures of a test run or of the application under test.

Application modules

Observe

  • Authentication
  • Iframe interaction
  • Console and network evidence

Interpret

  • PASS
  • ANOMALY
  • SUSPECTED_BUG
  • Deterministic verification

Investigate

  • Conditional repository search
  • Structured artifacts
Primary journey
  1. 01Reach the feature

    Sign in and operate the interface inside the iframe.

  2. 02Record the run

    Keep the browser evidence and redact sensitive values.

  3. 03Classify and verify

    Label the outcome, then apply deterministic checks.

  4. 04Stop or investigate

    Search code only for a meaningful failure. Leave Jira creation off.

Engineering takeaways

  1. I use a model to read evidence, not to replace the browser run or the person who reviews the result.
  2. The useful design is the sequence: trustworthy evidence, a contextual read, a deterministic check, then investigation only when that check says to continue.
  3. This is a foundation for a more explainable QA workflow. It is still in progress, and it does not file defects on its own.