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
- TestMu AI (Formerly LambdaTest)
- /
- Learning Hub
- /
- What Is a Golden Dataset? How to Build, Size and Version One
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.
| Term | What it is | Who owns it | What it proves |
|---|---|---|---|
| Golden dataset | Your real inputs with reviewed criteria or reference answers, under a version number | The team that ships the AI system, with domain reviewers | Whether a new version still does your job as well as the last one |
| Ground truth label | The correct output for one input | An expert, a reviewer or a system of record | The right answer for that input, and nothing about any system |
| Public benchmark (MMLU, SWE-bench) | A published task set for comparing models | The researchers who released it | How a model ranks against other models on those tasks |
| Holdout test set | A random split of labeled data, kept out of training | The team that trained the model | How a trained model generalizes to data like its training data |
| Training or fine-tuning data | Examples a model learns from | The team training or tuning the model | Nothing about quality: scoring a model on its training items tests recall |
| Unlabeled production sample | Recent real inputs with no reviewed answers | The team that runs the system | What 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 systems | The data governance team | Which 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 against | The program's developers | That 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:
| Field | Example | What it is for |
|---|---|---|
| id | ans-0142 | A stable key for the item's score history, never reused |
| slice | refunds | The product area or intent tested; pass rates are reported per slice |
| risk | high | The cost of a wrong output; one high-risk failure can block a release |
| source | production | Where the item came from: production, incident, expert or synthetic |
| author, reviewer | rk, ms | Who wrote the criteria and who checked them independently |
| created, reviewed | 2026-09-02, 2026-09-09 | When the item was written and last confirmed against current policy |
| added_in | 1.0.0 | The dataset version that introduced the item, where its history starts |
| status | active | Active, 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,statusBefore 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 gates | What it must catch | Size rule | How to read the result |
|---|---|---|---|
| Smoke gate on each change | A broken prompt, tool or parser, in minutes | Every high-risk item plus one item per slice | Any high-risk failure blocks; pass rates are not compared |
| Release regression gate | A drop in any slice before release | 20 or more items per slice; about 150 in total for a question-answer Copilot under Microsoft's guidance | Paired comparison per slice against the frozen baseline; any high-risk flip to fail blocks |
| Model or vendor swap | Which of two versions does your work better | Enough items that the drop you care about yields 6 or more flips in one direction | Same 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.
| Change | Version bump | What happens to the baseline |
|---|---|---|
| A criterion, label or reference answer changes | Major: 1.4.2 to 2.0.0 | History restarts for the changed items; rerun the baseline before comparing |
| Items added, such as a new slice or an incident case | Minor: 1.4.2 to 1.5.0 | Existing items keep their history; compare on the items both runs share |
| An item retired, with its row kept | Minor: 1.4.2 to 1.5.0 | Other items keep their history; totals cover active items only |
| A wording fix that changes no result | Patch: 1.4.2 to 1.4.3 | The baseline stands |
| The grader changes: judge prompt, judge model or match rule | None; record the grader version with each run | Rerun 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:
| Trigger | What goes stale | What to do |
|---|---|---|
| Policy, price or product change | Criteria that state the old fact | Re-review the affected slices; changed criteria are a major version |
| Tool or API schema change | Expected calls, end-state checks and extraction fields | Update the checks and verifiers, then rerun the baseline |
| Model or provider update | The baseline; the items stay valid | Rerun the baseline and read the paired flips first |
| New user segment or language | Coverage, because the set has no items for it | Add a slice from new production logs |
| An incident | A failure the set never tested | Add it as an item during the postmortem, with source incident |
| Label drift | Labels reviewers would now write differently | Relabel 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 --versionRook 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 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 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.
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





