Equivalent Class Tables
Define, Document and Optimize your test cases.
UNIT / M-01A toolkit for test case and test data creation
Combine the Power of equivalence class tables and data generators
↓ SEE USE CASESNanook is an open-source toolkit for systematic test case and test data creation. It uses equivalence class tables — spreadsheets that define input fields, value classes, and test combinations — to automatically generate synthetic test data. Nanook reads test definitions from LibreOffice, Excel, or Google Sheets and produces test data in JSON, CSV, or any custom format through pluggable writers. Built with Node.js, it integrates into CI/CD pipelines and supports custom data generators for domain-specific testing needs. Nanook is used by enterprises including Deutsche Bahn for automated test data generation.
Define, Document and Optimize your test cases.
UNIT / M-01Enrich the tables with generator calls and generate your data as needed. Export the data in any format you need. The generators and exporters are fully customisable.
UNIT / M-02All your testing apps, tools and platforms, are easy to integrate with Nanook
UNIT / M-03Create equivalence class tables in a spreadsheet — LibreOffice, Excel, or Google Sheets. Each table defines the input fields, their possible value classes, and which combinations to test. No coding required at this stage.
Attach generator functions to your equivalence classes. Use built-in generators for common data types like emails, names, and dates — or write custom generators in JavaScript for domain-specific test data.
Run Nanook to produce synthetic test data for every defined test case. Export to JSON, CSV, or any custom format through pluggable writers. Integrate the output directly into your CI/CD pipeline or testing framework.
Systematically test REST and GraphQL endpoints. Generate varied payloads covering valid inputs, error paths, and edge cases — all from one equivalence class table.
UC-01 / APIRegistration, login, checkout. Every form has fields with validation rules. Nanook produces test data for every valid/invalid combination without manual fixture work.
UC-02 / FORMRegenerate test data on every spec change. Nanook runs as a Node.js script in any pipeline — GitHub Actions, GitLab CI, Jenkins, or a cron job.
UC-03 / CICDStop copying production data to test environments. Synthetic data matches your schema without privacy risks, audit headaches, or compliance exposure.
UC-04 / GDPRNeed 10,000 test users or 1 million transactions? Nanook scales your equivalence class table to any volume while preserving realistic data distribution.
UC-05 / LOADTest data flowing through multiple microservices. Nanook keeps data consistent across service boundaries with reference fields and instance IDs.
UC-06 / INTBootstrap dev and staging environments with realistic, repeatable data. Every developer sees the same test data, defined in one spreadsheet.
UC-07 / SEEDTest database migrations with synthetic data that matches your production schema. Regenerate after every schema change — no risk of leaking real data.
UC-08 / MIGNot sure if Nanook fits your scenario? Open an issue on GitHub or reach out at opensource@xhub.io.
UC-09 / OPENAn equivalence class table is a spreadsheet that defines input fields, their possible value classes, and which combinations to test. Each class represents a group of values that should produce equivalent behavior. Nanook reads these tables from Excel, LibreOffice, or Google Sheets.
Nanook supports Microsoft Excel (.xlsx, .xls), LibreOffice (.ods), and Google Sheets. You can define your test cases in any of these formats and Nanook will process them identically.
Nanook can export test data to JSON, CSV, or any custom format. The output is controlled through pluggable writers — you can use the built-in writers or create your own for domain-specific formats.
Yes. Nanook is built with Node.js and designed for automation. You can integrate it into any CI/CD pipeline to regenerate test data whenever your test specifications change.
Yes, Nanook is open source and released under the MIT License. It is free for both personal and commercial use.