Agent Assurance for your AI Deployment

Test how your agents actually behave across workflows, tools, and actions. Catch failures and vulnerabilities before they ship.

npm install -g @testmuai/rook

AIAI Testing

What Is a Golden Dataset? How to Build, Size and Version One

A golden dataset is a reviewed, versioned set of real inputs an AI system is scored against on every change. Learn how to build, size, version and refresh one.

Published on:

OVERVIEW

Suppose a team edits one sentence in its support assistant's system prompt and reruns its 200-item golden dataset in CI. In this guide's sample data, the pass rate falls from 90% to 85.5%, and, read as two independent samples, the drop is not statistically significant (p = 0.17), so the change looks safe to merge.

Read item by item, the same sample data says otherwise: 12 items that passed now fail, 3 that failed now pass, and an exact paired test puts the drop at p = 0.035. The script behind both readings is in the sizing section.

That paired reading needs both runs to score the same reviewed, versioned items, which is the job of a golden dataset.

Overview

A golden dataset is a versioned set of real inputs with human-reviewed acceptance criteria that an AI system is scored against on every change. Build it from production cases split into slices and risk tiers, size it for the decision it gates, version it like code, and re-review it when policies, tools or models change.

Building Blocks of a Golden Dataset

  • Acceptance criteria: A golden dataset item states what a correct output must contain and must never claim, so a correct answer in new words still passes. Exact match is kept for items with one right value, such as extracted fields.
  • Two reviewers per item: An item joins a golden dataset only after a second person checks its criteria. Microsoft's guidance for Copilot apps suggests a QA pass by a second domain expert.
  • Size per slice: A golden dataset is sized per slice, and at 20 items one failure moves a slice 5 points. Microsoft's guidance for question-answer Copilots aims for about 150 pairs, with 100 as the minimum.
  • Paired comparison: Scoring two versions on the same golden items lets a paired test count only the items that flipped. In this guide's worked example, a drop from 90% to 85.5% gives p = 0.035 paired and p = 0.17 unpaired.
  • Versioning: A changed criterion makes a new major version of a golden dataset and restarts that item's history, and added items make a minor version.
  • Agents that act: An agent that changes records or files needs golden items with end-state checks. Agent Assurance by TestMu AI, pre-alpha and publicly installable, reads the agent's code or spec to build scenarios and grades each criterion with evidence collected during the run.

What Is a Golden Dataset?

A golden dataset, also written golden data set, is a small, versioned collection of real inputs, each paired with human-reviewed acceptance criteria or a reference answer, that an AI system is scored against on every change to its prompt, model, retrieval or tools. It is test data: none of it is used to train or prompt the system.

Teams also call it a golden set, gold set or reference set. The term is informal, with no standard definition, so check what a vendor means by it before comparing numbers.

Microsoft's Producing Golden Datasets guidance, added to its promptflow-resource-hub repository in November 2023 for Copilot apps, describes one as "a collection of realistic customer questions along with expert answers". It also states that golden datasets "are not used as source data to train or fine-tune an LLM or inject context into an LLM prompt".

A folder of test prompts becomes a golden dataset when it has these properties:

  • Reviewed - one person wrote each item's criteria and a second checked them, so a failure points at the system instead of at a disputed label.
  • Frozen and versioned - every run records the dataset version it scored, so two runs on one version compare item by item.
  • Held out - no item appears in a prompt, a few-shot example or training data, so a pass shows how the system handles an input it has never seen.

When AI evals read from a set like this, the grader, the metrics and the release gate all score the same items, so one wrong item distorts every number built on it.

Golden Dataset vs Ground Truth, Benchmark, Test Set and Golden Record

Golden record and golden master sound like golden dataset but come from outside AI testing.

TermWhat it isWho owns itWhat it proves
Golden datasetYour real inputs with reviewed criteria or reference answers, under a version numberThe team that ships the AI system, with domain reviewersWhether a new version still does your job as well as the last one
Ground truth labelThe correct output for one inputAn expert, a reviewer or a system of recordThe right answer for that input, and nothing about any system
Public benchmark (MMLU, SWE-bench)A published task set for comparing modelsThe researchers who released itHow a model ranks against other models on those tasks
Holdout test setA random split of labeled data, kept out of trainingThe team that trained the modelHow a trained model generalizes to data like its training data
Training or fine-tuning dataExamples a model learns fromThe team training or tuning the modelNothing about quality: scoring a model on its training items tests recall
Unlabeled production sampleRecent real inputs with no reviewed answersThe team that runs the systemWhat users ask now; raw material for golden items once reviewed
Golden record (master data management)The single merged version of an entity, such as a customer, across source systemsThe data governance teamWhich record is trusted; it has no role in AI testing
Golden master or golden file (approval testing)A saved output of a deterministic program that later runs are diffed againstThe program's developersThat the output is unchanged; any rewording fails it

The MMLU paper says its test "covers 57 tasks including elementary mathematics, US history, computer science, law, and more", and the SWE-bench paper introduces 2,294 software engineering problems "drawn from real GitHub issues and corresponding pull requests across 12 popular Python repositories". A high score on either ranks a model against other models, and neither contains your users' questions, your policies or your tools.

What Goes Into a Golden Dataset Item?

Every golden dataset item has three parts: the input, the check that decides pass or fail, and metadata recording where the item came from and who stands behind it. Microsoft's guidance treats question and answer text as the minimum and advises adding "any references to the source documents".

Why Do Golden Items Store Acceptance Criteria Instead of Exact Strings?

A language model rarely words the same answer twice, so an expected string fails correct outputs and teaches the team to ignore a red build. A golden item records the conditions any correct output meets, so a reworded answer still passes:

  • Required facts - values the answer has to state, like the 30-day refund window, found by a string match or an extractor.
  • Forbidden claims - statements that fail the item whenever they appear, like telling the customer a refund is approved, caught by a pattern or an LLM-as-a-judge prompt that asks one yes-or-no question.
  • Structure - format rules such as valid JSON, required fields and a length limit, which a parser decides with no model involved.
  • Reference answer - one reviewed answer for reviewers to read and for similarity scoring to compare against.

Exact match still fits extraction, where an invoice number has one right value. Other assertion types are covered in the article on testing non-deterministic AI outputs.

Metadata Every Golden Item Needs

Metadata decides what a failure means: who looks at it, how much it weighs and whether the item can still be trusted. Keep these fields on every item:

FieldExampleWhat it is for
idans-0142A stable key for the item's score history, never reused
slicerefundsThe product area or intent tested; pass rates are reported per slice
riskhighThe cost of a wrong output; one high-risk failure can block a release
sourceproductionWhere the item came from: production, incident, expert or synthetic
author, reviewerrk, msWho wrote the criteria and who checked them independently
created, reviewed2026-09-02, 2026-09-09When the item was written and last confirmed against current policy
added_in1.0.0The dataset version that introduced the item, where its history starts
statusactiveActive, quarantined while under review, or retired and kept for old runs

A JSONL Template for Answer, RAG, Extraction and Agent Golden Items

JSONL keeps one item per line, so a code review shows which items changed. The items below are wrapped for reading; in the file, each object sits on one line.

{
  "id": "ans-0142",
  "type": "answer",
  "input": "Can I get a refund 40 days after renewal?",
  "must_include": ["30 days"],
  "must_not_claim": ["refund approved"],
  "reference": "The refund window is 30 days.",
  "slice": "refunds", "risk": "high",
  "source": "production", "status": "active",
  "author": "rk", "reviewer": "ms",
  "created": "2026-09-02", "reviewed": "2026-09-09",
  "added_in": "1.0.0"
}
{
  "id": "rag-0031",
  "type": "rag_answer",
  "input": "Which plans include single sign-on?",
  "must_include": ["Enterprise"],
  "must_not_claim": ["SSO on the Free plan"],
  "expected_sources": ["kb/plans.md#sso"],
  "slice": "plans", "risk": "medium",
  "source": "production", "status": "active",
  "author": "rk", "reviewer": "jt",
  "created": "2026-09-03", "reviewed": "2026-09-10",
  "added_in": "1.0.0"
}
{
  "id": "ext-0207",
  "type": "extraction",
  "input": "files/invoice-2231.pdf",
  "expected": {"invoice_no": "INV-2231",
    "total": "1840.00", "currency": "EUR",
    "due_date": "2026-07-31"},
  "match": "exact",
  "slice": "invoices", "risk": "high",
  "source": "expert", "status": "active",
  "author": "pv", "reviewer": "ms",
  "created": "2026-09-05", "reviewed": "2026-09-11",
  "added_in": "1.1.0"
}
{
  "id": "act-0019",
  "type": "agent_action",
  "input": "Cancel order 5521 and email the customer.",
  "end_state": [
    {"read": "orders.status", "key": "5521",
     "expect": "cancelled"},
    {"read": "outbox.count", "key": "cust-77",
     "expect": 1}],
  "must_not_call": ["issue_refund"],
  "verifier": {"tool": "orders_db.query",
    "access": "read_only", "env": "staging"},
  "slice": "orders", "risk": "high",
  "source": "incident", "status": "active",
  "author": "pv", "reviewer": "jt",
  "created": "2026-09-08", "reviewed": "2026-09-12",
  "added_in": "1.1.0"
}
  • Answer - passes when the 30-day limit appears and no approval is promised.
  • RAG answer - also names the knowledge-base section to cite, so a right-sounding answer from the wrong page fails.
  • Agent action - ignores the reply, reads two end states through a read-only query against staging, and fails if the refund tool was called.

Microsoft's guidance accepts any tool that exports CSV or JSONL, including Excel and Microsoft Lists. A spreadsheet suits the labeling step, with one row per item under this header, where agreed records whether both reviewers accepted the criteria:

id,slice,risk,input,criteria,author,reviewer,agreed,status

Before committing, paste a line into the JSON validator to catch a missing quote or bracket.

How Do You Build a Golden Dataset?

Each step ends with an exit criterion: the evidence you can show a colleague that the step is done.

  • Name the release decision the set gates - Write one sentence, such as "block any prompt change that makes refund answers worse", and name its owner. The decision sets which slices you need and how small a drop the set must catch.
    Exit criterion - the decision, owner and pass rule are in the dataset's README.
  • Pull candidates from production logs, tickets and incidents - Collect real inputs, strip personal data and record each one's source. Microsoft's guidance also puts realism first: start from "the most realistic questions you'd get from your non-expert customers" before looking at the answers your documents hold.
    Exit criterion - a candidate pool larger than the set, with a source on every row.
  • Split candidates into slices and risk tiers - Group them by product area or intent and tag each with what a wrong output would cost.
    Exit criterion - every slice meets the per-slice minimum in the sizing section.
  • Write acceptance criteria for each item - Required facts, forbidden claims and structure for answers; expected sources for retrieval; exact values for extraction; end states for actions.
    Exit criterion - a second person can decide pass or fail from the item alone.
  • Label with two reviewers and record agreement - A second reviewer checks every item without seeing the first verdict, an adjudicator settles disagreements, and the agreement rate goes into the README. Microsoft's guidance makes a second expert's QA pass optional; make it required, because a wrong criterion fails correct outputs on every run until someone finds it.
    Exit criterion - every active item carries two names, and disputed items were rewritten or dropped.
  • Add adversarial and edge cases - Inputs that try to override instructions, requests the policy forbids, empty, malformed and very long inputs, and every language your users write in. Tag them as their own slice so they do not dilute the main pass rate.
    Exit criterion - every high-risk tier has adversarial items with a stated pass behavior.
  • Freeze version 1.0.0 and record a baseline run - Tag the file, score it with the current prompt, model, retrieval index and grader, and store every item's result as well as the total.
    Exit criterion - a baseline record naming the dataset version and each component version.
  • Run the set in CI on every change - Trigger it on each prompt, model, retrieval or tool change, compare every item with the baseline, and fail on a significant paired drop or any high-risk item that flips to fail.
    Exit criterion - every pull request that touches the system shows which items flipped, in both directions.

How Many Examples Does a Golden Dataset Need?

Enough items to detect the smallest regression that would change your decision, counted per slice. Microsoft's guidance for Copilot question-answer apps says "you should typically aim to have about 150 question/answer pairs", and its FAQ adds that "a minimum dataset of 100 question-answer pairs is required". That figure applies to that kind of app; size other systems by the decision they gate.

Each flipped item moves its slice's pass rate by 100 divided by the slice's size, so one failure moves a 10-item slice 10 points and a 20-item slice 5 points.

How to Size a Golden Dataset for the Decision It Gates

Decision the set gatesWhat it must catchSize ruleHow to read the result
Smoke gate on each changeA broken prompt, tool or parser, in minutesEvery high-risk item plus one item per sliceAny high-risk failure blocks; pass rates are not compared
Release regression gateA drop in any slice before release20 or more items per slice; about 150 in total for a question-answer Copilot under Microsoft's guidancePaired comparison per slice against the frozen baseline; any high-risk flip to fail blocks
Model or vendor swapWhich of two versions does your work betterEnough items that the drop you care about yields 6 or more flips in one directionSame items, same grader, both versions; decide on the items that flipped

The 6 comes from the script below: with every flip in one direction, five flips give an exact two-sided p of 0.0625 and six give 0.031.

Why Does Scoring the Same Golden Items Catch Smaller Regressions?

Two runs of one golden dataset are not independent samples, because every item is scored twice. McNemar's test, a paired test for two pass or fail outcomes on the same items, looks only at the items that changed.

The script below uses the counts from the opening example and needs no packages. Node.js v25.5.0 produced the output under it on 16 October 2026.

// paired-gate.mjs: two runs of one golden set, compared
const items = 200;    // golden items scored in both runs
const basePass = 180; // passes in the baseline run
const lost = 12;      // passed in baseline, fail now
const gained = 3;     // failed in baseline, pass now
const candPass = basePass - lost + gained;

function choose(n, k) {
  let r = 1;
  for (let i = 1; i <= k; i++) r = (r * (n - i + 1)) / i;
  return r;
}

// Exact McNemar test: binomial(flips, 0.5), two-sided
function exactPaired(b, c) {
  const n = b + c;
  let tail = 0;
  for (let i = 0; i <= Math.min(b, c); i++) {
    tail += choose(n, i);
  }
  return Math.min(1, (2 * tail) / 2 ** n);
}

// Standard normal CDF (Abramowitz and Stegun 7.1.26)
function phi(z) {
  const x = Math.abs(z) / Math.SQRT2;
  const t = 1 / (1 + 0.3275911 * x);
  const poly = t * (0.254829592 + t * (-0.284496736
    + t * (1.421413741 + t * (-1.453152027
    + t * 1.061405429))));
  const erf = 1 - poly * Math.exp(-x * x);
  return z >= 0 ? (1 + erf) / 2 : (1 - erf) / 2;
}

const flips = lost + gained;
const pExact = exactPaired(lost, gained);
const chi2 = (Math.abs(lost - gained) - 1) ** 2 / flips;
const pChi2 = 2 * (1 - phi(Math.sqrt(chi2)));

// Unpaired view: the two runs as independent samples
const pool = (basePass + candPass) / (2 * items);
const se = Math.sqrt(pool * (1 - pool) * (2 / items));
const z = (basePass - candPass) / items / se;
const pZ = 2 * (1 - phi(Math.abs(z)));

// Fewest flips, all in one direction, with p < 0.05
let d = 1;
while (exactPaired(d, 0) >= 0.05) d++;

const pct = (n) => ((100 * n) / items).toFixed(1) + "%";
const log = (line) => console.log(line);
log("Golden set: " + items + " items, one run each");
log("Baseline   " + basePass + " pass  " + pct(basePass));
log("Candidate  " + candPass + " pass  " + pct(candPass));
log("");
log("Paired view (same items, same grader)");
log("  pass -> fail        " + lost);
log("  fail -> pass        " + gained);
log("  exact McNemar p     " + pExact.toFixed(3));
log("  chi-square (cc)     " + chi2.toFixed(2)
  + ", p " + pChi2.toFixed(3));
log("");
log("Unpaired view (independent samples)");
log("  two-proportion z    " + z.toFixed(2)
  + ", p " + pZ.toFixed(3));
log("");
log("Same " + candPass + " passes, other splits");
for (const [b, c] of [[9, 0], [30, 21]]) {
  const label = "  " + b + " lost, " + c + " gained";
  const p = exactPaired(b, c).toFixed(3);
  log(label.padEnd(24) + "exact p " + p);
}
log("");
log("Fewest one-way flips for p < 0.05: " + d);
Golden set: 200 items, one run each
Baseline   180 pass  90.0%
Candidate  171 pass  85.5%

Paired view (same items, same grader)
  pass -> fail        12
  fail -> pass        3
  exact McNemar p     0.035
  chi-square (cc)     4.27, p 0.039

Unpaired view (independent samples)
  two-proportion z    1.37, p 0.170

Same 171 passes, other splits
  9 lost, 0 gained      exact p 0.004
  30 lost, 21 gained    exact p 0.262

Fewest one-way flips for p < 0.05: 6
  • Two-proportion z-test - treated as two independent samples of 200, the runs give z = 1.37 and p = 0.17, so a gate set at 0.05 would let the drop through.
  • Exact McNemar test - 15 items changed, 12 of them for the worse, which gives p = 0.035; the continuity-corrected chi-square is 4.27 (p = 0.039).
  • Other splits of 171 passes - the same total can come from 9 items lost and none gained (p = 0.004) or from 30 lost and 21 gained (p = 0.262), and only per-item results tell them apart.

The test assumes the same items, the same grader at the same settings and one scored run per item. Change the grader between runs and the flips measure the grader too.

Repeated Runs per Golden Item for Non-Deterministic Output

When the system samples its output, a single run per item turns some flips into chance. Score each item several times per version, store its pass rate, and count it as flipped only when that rate crosses your pass line.

An item whose pass rate crosses the pass line between two runs of an unchanged version is unstable, so quarantine it out of the paired count. To pick the number of runs, see pass@k vs pass^k, and for the margin of error of a pass rate, the table in the guide to chatbot evaluation.

Can an LLM Generate a Golden Dataset?

It can draft items, and people still approve each one: a draft stays silver, meaning machine-made and unreviewed, until it passes the same two-reviewer check as a hand-written item.

Microsoft's guidance recommends against LLM-written questions "when trying to measure a quality metric that reflects a real-world customer-experience", and it says "you should never use an LLM answer as-is without proper, deep expert validation".

Generated items are useful for:

  • Thin slices - paraphrases of real items bring a small slice up to its minimum while keeping the reviewed criteria of the item each came from.
  • Adversarial phrasings - injection attempts, policy-boundary requests and hostile wording that production logs rarely hold in volume.
  • Edge-case variants - a real request rewritten with a missing field, a contradiction or another language.

Tag them with source synthetic, cap their share of each slice in the README, and report the pass rate on real items next to the full rate.

Keep golden items out of prompts, few-shot examples and fine-tuning data, as Microsoft's definition states. If a fix depends on one, move it to the training pool, retire it from the golden dataset and write a new item for the same behavior.

How Do You Version a Golden Dataset?

Number dataset versions the way Semantic Versioning 2.0.0 numbers software: increment the major version "when you make incompatible API changes", the minor version "when you add functionality in a backward compatible manner" and the patch version "when you make backward compatible bug fixes". For a golden dataset, compatible means a new score can still be compared with the old ones.

ChangeVersion bumpWhat happens to the baseline
A criterion, label or reference answer changesMajor: 1.4.2 to 2.0.0History restarts for the changed items; rerun the baseline before comparing
Items added, such as a new slice or an incident caseMinor: 1.4.2 to 1.5.0Existing items keep their history; compare on the items both runs share
An item retired, with its row keptMinor: 1.4.2 to 1.5.0Other items keep their history; totals cover active items only
A wording fix that changes no resultPatch: 1.4.2 to 1.4.3The baseline stands
The grader changes: judge prompt, judge model or match ruleNone; record the grader version with each runRerun the baseline, because the scores moved with the grader
  • Pin every run - record the dataset version, model, prompt, retrieval index and grader version with each run.
  • Keep a changelog - list what changed, why and who approved it, so a jump in the pass rate can be traced to the set.
  • Retire items instead of deleting them - a retired item keeps its row and history, so old runs stay reproducible.
  • Keep a held-out slice - run one slice only at release and keep its results away from whoever tunes prompts.

Why Do Golden Datasets Decay, and How Do You Catch It?

A golden dataset decays because the product, its policies and its users change while the items stay fixed: a criterion written around last quarter's refund window fails correct answers after the policy moves. Microsoft's guidance describes the symptom: "significant or continued drift" in scores "might also be an indication that the Golden Dataset is no longer up to date with reality and should be revised".

Re-review the affected slices when one of these triggers fires:

TriggerWhat goes staleWhat to do
Policy, price or product changeCriteria that state the old factRe-review the affected slices; changed criteria are a major version
Tool or API schema changeExpected calls, end-state checks and extraction fieldsUpdate the checks and verifiers, then rerun the baseline
Model or provider updateThe baseline; the items stay validRerun the baseline and read the paired flips first
New user segment or languageCoverage, because the set has no items for itAdd a slice from new production logs
An incidentA failure the set never testedAdd it as an item during the postmortem, with source incident
Label driftLabels reviewers would now write differentlyRelabel a blind random sample each review cycle and compare it with the stored labels

Between triggers, review every slice at least once a quarter, and start with the high-risk slices.

Labels in widely used benchmarks carry errors too. In Pervasive Label Errors in Test Sets Destabilize Machine Learning Benchmarks (NeurIPS 2021 Datasets and Benchmarks track), Northcutt, Athalye and Mueller estimated "an average of at least 3.3% errors across the 10 datasets" they studied, with label errors making up at least 6% of the ImageNet validation set.

The same paper reports that on ImageNet with corrected labels, "ResNet-18 outperforms ResNet-50 if the prevalence of originally mislabeled test examples increases by just 6%". Label errors of that size can change which model a golden dataset tells you to ship.

  • Check the item before filing the bug - a failure on a criterion that no longer matches policy is a dataset fix with its own version bump.
  • Review items whose result never changes - an item every version passes no longer separates versions, and one every version fails is often stale.

Golden Datasets for Agents That Act: Checking the End State

For an agent that acts, the expected output is a changed record, file or ticket, so its golden items need end-state checks like the order item above. Every tool the agent can call adds paths, each needing its own check and a verifier with read access to the system it changed.

TestMu AI's Agent Assurance tests this kind of agent. It is pre-alpha and publicly installable as Rook CLI:

npm install -g @testmuai/rook
rook --version

Rook CLI installs on macOS and Linux, and 64-bit Windows through npm or WSL. The npm route needs Node.js 20 or newer; the other routes are in the Rook CLI installation guide.

Agent Assurance reads your agent's code or spec and writes scenarios with a check per criterion: functional and adversarial ones by default, non-functional ones when you ask. It invokes the real agent against staging or in CI and grades each criterion on what it can observe:

  • Files and artifacts - files the run created or changed on disk, and what the agent produced.
  • Tool calls - each call in the run, compared with the set of tools the agent declares.
  • Records - read-only checks of the system the agent changed, through a tool you approve.

Each criterion comes back with one verdict: Pass, Fail or Unable to Verify. Only Pass and Fail enter the pass rate. The agent's own report is not proof: a reply saying the order is cancelled passes nothing until the order record shows it.

After a change, a rerun compares its pass rate with the run before and lists the scenarios that started failing and the ones that were fixed. The Rook CLI docs for comparing two saved runs keep changed criteria apart from new failures, for the same reason a major version restarts a golden item's history.

Agent Assurance does its testing before release: it is neither a production monitor nor a runtime guardrail, and it tests your agent rather than the model underneath.

Your First Golden Dataset: Start With One Decision

Start with the next change you plan to ship and the decision it needs. Pull real candidates for its riskiest slice from last month's tickets, write criteria for 20 of them and have a second person review them. Freeze version 1.0.0, record the baseline and add the paired comparison to CI before the change merges.

If the system is an agent that changes records or files, give each item an end-state check, or install Rook CLI (npm install -g @testmuai/rook) and let Agent Assurance derive the scenarios from the agent's code.

Author

...

Samyak Goyal

Blogs: 32

  • Linkedin

Samyak Goyal is a Senior Member of Technical Staff at TestMu AI engineering Kane CLI, the command-line tool that runs browser automation from the terminal, where a flow described in natural language executes in a real Chrome browser and returns pass or fail with shareable proof. He is a backend engineer with 4+ years of experience, previously an SDE at Innovaccer, where he built APIs, introduced Kafka, and cut deployment from weeks to hours. Samyak also builds multi-agent systems, skill-orchestration frameworks, and a personal copilot that indexes 200+ microservice repositories.

Reviewer

...

Sirajuddin Khan

Reviewer

  • Linkedin

Sirajuddin Khan is Vice President of Product Management at TestMu AI, where he drives the company's agentic AI product strategy, building a suite of autonomous agents that includes Agentic Browsers and Agentic Visual Testing and shifting the unit of work from test execution to autonomous outcomes. One of the company's earliest product leaders, he has owned the roadmap for the high-performance execution cloud and grew the cross-browser testing products from early adoption to market leadership. He brings over a decade of experience across SaaS, B2B, and eCommerce, with earlier product roles at Wydr and ShopClues, where his catalog and search work cut delivery SLAs and lifted seller activity. Sirajuddin holds an MBA in Information Technology from Sikkim Manipal University and a B.Tech in Computer Science Engineering from Maharshi Dayanand University.

Add to Google preferred sources

Summarise with AI

Copied to Clipboard!
...

3000+ Browsers. One Platform.

See exactly how your site performs everywhere.

Try it free
...

Write Tests in Plain English with KaneAI

Create, debug, and evolve tests using natural language.

Try for free

Golden Dataset FAQs

Did you find this page helpful?

More Related Learning Hubs

TestMu AI forEnterprise

Get access to solutions built on Enterprise
grade security, privacy, & compliance

  • Advanced access controls
  • Advanced data retention rules
  • Advanced Local Testing
  • Premium Support options
  • Early access to beta features
  • Private Slack Channel
  • Unlimited Manual Accessibility DevTools Tests