Skip to content

Super

Don’t just test it.
Prove it.

Super turns your unit tests into proven guarantees.
Never miss an edge case again.

One test to rule them all.

Test infinite possibilities, all at once.

One test. Every possible input.
Proved across the whole codebase.

Meet Supertests.

A unit test checks examples. A supertest defines how your software must behave for every possible input.

tests/supertests.py PYTHON MODE
1 from schematic import *
Lines 2 through 54 omitted
55 @supertest
56 def reversing_twice_restores_text(text: str):
57 backward = reverse(text)
58 forward = reverse(backward)
59 assert forward == text
  1. 1
    Declare a supertest

    Adding @supertest turns a regular test into a supertest.

  2. 2
    Inputs represent every possible case

    The input text covers every possible string, not just a few examples.

  3. 3
    Assert as usual

    Assert or throw an exception just as you would in a regular unit test. Super handles the rest.

See Super in action

From supertest to certainty.

Use the Super CLI to check supertests against exact commits. It follows each check live, surfaces problems with reproducible evidence, and helps you fix and recheck the affected behavior.

Super
supertest-pythonmain

Run super check supertests/normalize_spaces.py. The same live view changes from checking to fail for normalizing_twice_changes_nothing. The counterexample is a followed by three spaces and b: the first call leaves two spaces, and the second leaves one. Run super fix --check 1 to review the patch, type y, and press Enter to apply it. The changes are uncommitted. Run super check --problems, type y and press Enter to include the changes, and follow the checking progress until the result is pass.

Measured on real code

Test infinite possibilities, all at once.

Across nine open-source C, Rust, and Python case studies, supertests made the test suites smaller
while strengthening what they could guarantee.

In IndexMap, 7 supertests
replaced 130 tests and properties,
resulting in

18× test suite
compression
50%fewer test
lines overall
135supertests
written

Bugs were a way of life.
No longer.

Give Super the behavior your software must preserve. Get a verified guarantee, or the exact input that breaks it.

Get access
Also from SchematicTurn written rules into guarantees with Quill. Explore Quill