Skip to content

Home / Tutorials / Basic Walkthrough

Basic Walkthrough

In this tutorial, you will build a complete test model for a web application, add constraints to exclude impossible combinations, generate a covering array, and export the results.

Scenario

You need to test a web application that runs on multiple operating systems, browsers, and screen resolutions. Your goal is to create a minimal test suite that covers all pairwise interactions.

What You Will Learn

  • Creating parameters and values
  • Adding constraints to exclude invalid combinations
  • Generating a covering array
  • Reading and exporting results

Step 1: Create the Model

  1. Launch ProTest and click New (Ctrl+N).

  2. On the Parameters tab, add three parameters:

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

Step 2: Add Constraints

  1. Switch to the Constraints tab.

  2. Enter these constraints:

    IF [OS] = "Linux" THEN [Browser] <> "Safari";
    IF [OS] = "Linux" THEN [Browser] <> "Edge";
    IF [OS] = "Windows" THEN [Browser] <> "Safari";
    

    These reflect real-world restrictions: Safari doesn't run on Linux or Windows, and Edge doesn't run on Linux.

Step 3: Generate

  1. Verify the Order is set to 2 (pairwise) in the left sidebar.

  2. Click Generate (Ctrl+G or F5).

  3. ProTest switches to the Results tab automatically.

Step 4: Review Results

The Results tab shows your covering array. Notice:

  • Far fewer test cases than the 36 exhaustive combinations
  • No rows violate your constraints (no Safari on Windows, etc.)
  • Every pair of (OS, Browser), (OS, Resolution), and (Browser, Resolution) values appears at least once

Step 5: Export

Click Copy to Clipboard (Ctrl+Shift+C) to copy the results as tab-separated values. Paste into Excel, a test management tool, or your test plan.

Next Steps

  • Add seeds to ensure critical configurations are always tested
  • Try SIPO to see if it produces fewer test cases for your model
  • Add sub-models for different coverage strengths