Home / Tutorials / Real-World Example
Real-World Example¶
In this tutorial, you will model a realistic testing scenario for a cloud deployment pipeline, using sub-models, seeds, constraints, and engine comparison.
Scenario¶
Your team deploys a microservice to multiple cloud environments. You need to test the deployment across:
| Parameter | Values |
|---|---|
| Cloud Provider | AWS, Azure, GCP |
| Region | US-East, US-West, EU-West |
| Instance Size | Small, Medium, Large, XLarge |
| OS Image | Ubuntu, Amazon Linux, Windows Server |
| Database | PostgreSQL, MySQL, DynamoDB |
| Cache | Redis, Memcached, None |
| Load Balancer | ALB, NLB, None |
That's 3 x 3 x 4 x 3 x 3 x 3 x 3 = 2,916 combinations. Exhaustive testing is impractical.
Step 1: Define Parameters¶
Enter all seven parameters and their values on the Parameters tab.
Step 2: Add Constraints¶
# DynamoDB is AWS-only
IF [Cloud Provider] <> "AWS" THEN [Database] <> "DynamoDB";
# Amazon Linux is AWS-only
IF [Cloud Provider] <> "AWS" THEN [OS Image] <> "Amazon Linux";
# ALB/NLB are AWS load balancers
IF [Cloud Provider] <> "AWS" THEN [Load Balancer] IN { "None" };
Step 3: Create Sub-Models¶
Infrastructure parameters need stronger coverage than application parameters:
| Sub-Model | Parameters | Order |
|---|---|---|
| Infrastructure | Cloud Provider, Region, Instance Size, OS Image | 3 |
| Application | Database, Cache, Load Balancer | 2 |
Step 4: Add Seeds¶
Ensure your production configurations are always tested:
| Cloud | Region | Size | OS | DB | Cache | LB |
|---|---|---|---|---|---|---|
| AWS | US-East | Large | Ubuntu | PostgreSQL | Redis | ALB |
| Azure | EU-West | Medium | Windows Server | MySQL | Redis | None |
Step 5: Generate and Compare Engines¶
- Generate with PICT engine — note the test case count
- Generate with SIPO engine — compare the count
Engine Comparison
The SIPO engine typically produces 10-30% fewer test cases than PICT, though the reduction varies by scenario. For this model, try both and compare.
Step 6: Apply NCK Optimization¶
On the Results tab, click Reduce using NCK to see if any redundant test cases can be removed.
Result¶
Instead of testing all 2,916 combinations, you now have a compact test suite (likely 30-50 test cases) that:
- Covers all 3-way infrastructure interactions
- Covers all pairwise application interactions
- Includes your production configurations
- Respects all cloud-specific constraints
Key Takeaways¶
- Sub-models let you apply higher coverage where it matters most
- Constraints prevent invalid test cases from being generated
- Seeds ensure critical configurations are always tested
- Comparing engines can significantly reduce your test suite