Skip to content

Home / Getting Started / Quick Start

Quick Start

Create your first covering array in under two minutes.

This example tests a web application across different operating systems, browsers, and screen sizes.

The Problem

You need to test a web app on 3 operating systems, 4 browsers, and 3 screen sizes. That's 3 x 4 x 3 = 36 combinations. Pairwise testing covers all two-way interactions in far fewer test cases.

Using the Desktop Application

  1. Launch ProTest and click New to start with a blank model.

  2. Add parameters on the Parameters tab:

    Parameter Values
    OS Windows, Linux, macOS
    Browser Chrome, Firefox, Safari, Edge
    Screen 1080p, 1440p, 4K

    Parameters tab with OS, Browser, and Screen parameters

  3. Click Generate (or press Ctrl+G).

  4. View results on the Results tab — you should see 9 test cases that cover every pair of parameter values.

    Results tab showing 9 generated test cases

Using the CLI

  1. Create a model file called webapp.cahtt:

    {
      "Version": 1,
      "GlobalOrder": 2,
      "Parameters": [
        {
          "Name": "OS",
          "Values": [
            { "Name": "Windows", "Weight": 1, "IsNegative": false },
            { "Name": "Linux", "Weight": 1, "IsNegative": false },
            { "Name": "macOS", "Weight": 1, "IsNegative": false }
          ]
        },
        {
          "Name": "Browser",
          "Values": [
            { "Name": "Chrome", "Weight": 1, "IsNegative": false },
            { "Name": "Firefox", "Weight": 1, "IsNegative": false },
            { "Name": "Safari", "Weight": 1, "IsNegative": false },
            { "Name": "Edge", "Weight": 1, "IsNegative": false }
          ]
        },
        {
          "Name": "Screen",
          "Values": [
            { "Name": "1080p", "Weight": 1, "IsNegative": false },
            { "Name": "1440p", "Weight": 1, "IsNegative": false },
            { "Name": "4K", "Weight": 1, "IsNegative": false }
          ]
        }
      ],
      "ConstraintText": "",
      "SubModels": [],
      "Seeds": []
    }
    
  2. Generate the covering array:

    protest generate -i webapp.cahtt -o results.csv
    
  3. Open results.csv — each row is a test case to execute.

What Just Happened?

Instead of testing all 36 combinations, ProTest found 9 test cases that guarantee every pair of (OS, Browser), (OS, Screen), and (Browser, Screen) values appears at least once. This is pairwise (2-way) coverage — the default interaction strength.

Next Steps