Updated August 2026 - rewritten as a complete guide: what data-driven testing is, how test parameters and test datasets work in TestCollab, plus a new FAQ and refreshed help links.
When you ship features at sprint speed, test management grinds to a halt if you copy the same test case a dozen times just to cover new usernames or environment settings. Test Datasets & Parameters in TestCollab fix this with data-driven testing: you keep test logic and test data separate, slash duplication, and turn any manual or automated script into a true data-driven testing machine.
What is data-driven testing?
Data-driven testing is a technique where one test case runs multiple times with different sets of input data, instead of hard-coding values into every test. The test logic (the steps) stays fixed. The data (usernames, passwords, configurations) lives in an external table, and each row of that table drives one execution of the test.
The payoff is coverage without duplication: more input combinations, no cloned test cases, and a single place to update when the data changes. The technique is a staple of automation frameworks, but it is just as valuable for manual and exploratory testing, where cloned test cases rot even faster. Most modern test management tools treat some form of it as a core capability; this post shows how it works in TestCollab.
What are test parameters?
Test parameters in software testing are named placeholders that stand in for real values inside your test steps and expected results. In TestCollab you write them in double braces, like {{username}} or {{password}}. At run time, each parameter is replaced with a concrete value from your dataset.
If you have written parameterized tests in a framework like JUnit, TestNG, or pytest, the concept is identical. The difference is that TestCollab applies parameterized testing to manual test cases too, so testers who never touch code get the same reuse.
Why we built it
A login flow that accepts three roles and two password patterns already needs six separate executions. Add language, browser, or region and that number skyrockets. Most teams handle this with extra spreadsheets or cloned cases - until maintenance becomes its own full-time job.
Test Datasets & Parameters solve the problem by letting you design one canonical test and feed it clean, table-driven test data on demand. No more hard-coded strings, no more version drift.
| Scenario | Cloned test cases | One data-driven test case |
|---|---|---|
| Cover 6 input combinations | Write and maintain 6 separate cases | Write 1 case, add 6 dataset rows |
| The flow changes | Edit every clone | Edit one case |
| A new combination appears | Clone again | Add a row |
| Reading results | Scattered across cases | Pass/fail per row, in one place |
| Drift risk | High - clones fall out of sync | Low - one source of logic |
Key concepts at a glance
| Term | What it means | Where you'll see it |
|---|---|---|
| Parameter | A named placeholder wrapped in double braces inside your steps and expected results, e.g. {{username}}. At run time TestCollab swaps it for real data. | Step editor and dataset tables |
| Test Dataset | A table that lists parameters as columns and holds one or more rows of values. Each row drives one iteration of the test. | Project → Settings → Test Datasets |
Why this matters:
- Design once, reuse everywhere - no copy-paste.
- Track pass/fail per data row for instant insight.
- Update live data without touching the test logic.
Building your first dataset (it's two clicks)
- Go to Project → Settings → Test Datasets → "Add Test Dataset." Give it a clear name like "Login Credentials."
- Add parameters (Username, Password, Role) and type sample values in the grid.
- Save - done. The dataset is now ready for every test in the project.
Tip: You can also create a dataset on the fly while editing a test case; just type {{parameter}} in any step and TestCollab spawns the column automatically.
Linking data to a test case

Open (or create) the test and replace hard-coded strings with parameters:
Before: Enter "maria@acme.com" in the email field and "P@ssw0rd" in the password field
After: Enter "{{username}}" in the email field and "{{password}}" in the password field
The step reads the same to a tester, but the values now come from the dataset.
Parameters are not limited to inputs. Place them in a step's expected result and the assertion becomes data-driven too - each iteration verifies against its own row:
Action: Log in as "{{username}}" with "{{password}}"
Expected: The workspace header shows "{{username}}" signed in with the "{{role}}" role
One row asserts that user1 lands in the admin workspace; the next asserts that user2 sees the tester view. Same test, row-specific checks.
Below the editor, choose Select to reuse an existing dataset or Use as template to clone and tweak one. Edits you make here sync straight back to the project-level table - no duplicate copies to track.
Running the suite

Add the data-driven case to any test plan. At execution time every row in the linked dataset becomes its own iteration; testers see real values substituted inline, can pass or fail each row, attach evidence, and leave comments. Results are stored per iteration, so you know exactly which credential pair or config broke the build.
How test data is preserved across runs
Historical runs keep their original data even if the dataset later changes. Update a row, add one, or delete one: past results still show the exact values each iteration ran with, so audits and postmortems always see the truth. Current and future test plans pull the latest rows automatically. You never have to choose between clean data and a clean history - TestCollab preserves both.
A data-driven testing example
Say your login dataset holds four rows:
| Username | Password | Role |
|---|---|---|
| user1 | P@ssw0rd | admin |
| user2 | P@ssw0rd | tester |
| user1 | Pa55word! | tester |
| user2 | Pa55word! | admin |
One dataset, one login test case. Four iterations automatically appear in your run - zero cloning, zero spreadsheets. Need to add a "viewer" role? Drop a new row into the table and you're covered next run.
Good habits for test datasets
A few practices keep data-driven tests healthy as they scale:
- Pick rows that earn their place. Every row adds an iteration to every run, so choose values that represent distinct classes of input - boundary values, one valid and one invalid case per rule - instead of piling on near-duplicates.
- Name parameters for meaning, not position.
{{invoice_total}}tells the next tester what belongs there;{{value2}}does not. - Keep real customer data out. Good test data management means synthetic or masked values, never production PII, especially for datasets shared across a whole project.
- Review datasets like you review tests. When a feature changes, its datasets need the same once-over as its steps.
Data-driven testing FAQ
Is data-driven testing only for automation? No. The technique started in automation frameworks, but manual testers get the same benefit: one written test case, many executions with different values, and per-row results.
What is the difference between a test parameter and a test dataset? A parameter is the placeholder inside a step, like {{username}}. A dataset is the table that supplies its values: parameters are the columns, and each row is one iteration.
When should I not use data-driven testing? When two scenarios need different steps, not just different values. Forcing them into one parameterized case makes the test harder to read than the clones you removed. Different logic means a different test case.
Which TestCollab plans include Test Datasets & Parameters? Elite and Enterprise plans.
Getting started in under five minutes
- Upgrade if needed: Datasets & Parameters are available on Elite and Enterprise plans.
- Create your first dataset as shown above.
- Refactor your high-value tests to use
{{braces}}instead of hard-coded data. - Kick off a fresh test plan run and watch the iterations roll in.
Full how-to docs:
- Parameters & test datasets overview
- Creating & managing datasets
- Linking datasets to a test case
- Running tests with datasets
Ready to try?
Head to any project, click Test Datasets, and start feeding your tests clean, reusable data. Not on TestCollab yet? Start a free trial and set up your first data-driven test in minutes. Your team - and your future self - will thank you. 🎉


