Wiki / mid-range
- Said valid vs invalid
- Test port=80, suite green
- 65536 never bound
Topic · equivalence partitioning
Gist
Equivalence partitioning splits the input domain into classes that should behave the same. Proof asks Z3, with proof verify-properties specs/system, whether the authored data_constraint partitions cover that domain without overlap. A wiki of valid vs invalid is not that check. GeeksforGeeks still owns the glossary. Jama still authors.
proof verify-properties specs/system
Keep ISTQB notes if you already teach the method. Keep one representative test per class if you already write them. Keep Jama if you author shalls. Proof will not count a green mid-range case as coverage of the empty class.
01 · The empty class
You can pick one happy value and still leave a hole the solver can name.
Wikipedia, GeeksforGeeks, VirtuosoQA, and TestGrid define the same act: divide the input domain into classes that should behave the same, then pick a representative from each. Boundary value analysis sits next to that glossary. This URL owns both heads. Proof does not replace the method. It asks a narrower question: did you write the classes as data_constraint groups that Z3 can prove complete and exclusive, and does a test bind a concrete value to each class?
The motivating miss is mechanical. A URI parser treats port as unsigned 16-bit. The suite has port=80. A wiki page says “valid vs invalid.” The invalid class never got a test. The overlap between “port >= 0” and “port <= 65535” written as two overlapping conditions is invisible to the runner. Review is performed. The audit reports clean. Z3 can still assign port=65536 and show the model has a hole.
The command is deterministic. It does not call a model to invent classes. It does not generate the tests. It refuses a silent pass when the authored partitions overlap, leave a legal value unmatched, or lack a triple-form binding that Z3 can admit.
proof verify-properties specs/system
proof audit --check data_constraints_complete,partition_evidence_complete --verbose
The first command is the completeness and exclusivity proof on the authored groups. The second asks whether each important partition has a passing test with a concrete key=value binding. A green port=80 after a shall that names the uint16 domain is how the 65536 class stayed empty.
02 · The exhibit
port=80 still returns 200. The outside-uint16 class never gained a binding. Click the tabs.
Wiki / mid-range
This partition
No data_constraint group. No Z3 completeness. No triple-form binding for the empty class.
No recordWiki / mid-range
Still port=80. Still a green log. Keep the representative. It is one class, not the domain.
Keep the mid-range caseProof
Same port. A wiki of two classes, or this record. Click the tabs.
| Surface | What they do | What Proof does | What we lose |
|---|---|---|---|
| ISTQB / GeeksforGeeks | Teach picking one representative per class. | Not a course. Proof checks the authored groups and the bindings. | No syllabus. Keep the notes. |
| Boundary value analysis | Pick values on and just outside the edge. Same cluster as this H1. | A binding such as port=65536 is the edge case. Not a second URL. |
No BVA generator. |
| SQL data constraints | PRIMARY KEY, CHECK, UNIQUE on a table. W3Schools owns that SERP. | Not this H1. A YAML data_constraint is a partition model, not a column rule. |
No database engine. |
| Negative testing | Assert a reject on invalid input. Security-class floor on negative testing. | A :negative witness is one class. Completeness of the domain is this URL. |
Not every invalid input. Not ISTQB breadth. |
| Jama / DOORS | Author and store the programme. | Jama still authors. Proof holds the partition as a row the audit can re-read. IBM DOORS stays a mention on Proof vs Jama. | Not an ALM. Jama still authors. |
The teaching graph is still a port with two classes. Author the groups. Let Z3 prove they cover the domain. Bind a test to each class. Source annotations alone do not count. The test must also match a passing case in
project.checks.test_results.report_path.
variables:
- name: uri_port_in_uint16
type: bool
data_constraint:
domain: integer
condition: "port >= 0 && port <= 65535"
parameters:
- name: port
type: int
constraint: "0 <= port <= 65535"
// Verifies: SW-REQ-060:uri_port_outside_uint16_range:negative port=65536
proof verify-properties specs/system
proof workflow check --stage verify --only partition_evidence_complete --verbose
If Z3 reports a hole, split or tighten the groups. If it reports overlap, the two booleans can both be true for one legal value. A proved partition is not a proof of the Go. Move a clamp on a helper to a lemma on loop invariant or Z3 / Kind2 when the claim is the function, not the domain.
03 · The honest loss
A complete partition model is not a proof of the Go. Jama still authors.
Proof does not implement ISTQB training, pairwise tools, or a combinatorial generator. It does not invent the partitions. It does not inspect production code to see whether the parser actually rejects 65536. The constraint proves the authored model. Prefer a code lemma when the clamp lives in a helper. We have not scored this against GeeksforGeeks examples on a frozen pack. The loss is named, not scored.
data_constraints as a Google query is SQL. That SERP is W3Schools. This URL is the testing method. Do not treat a CHECK constraint as a partition record.
The reject-path H1 stays on negative testing. Property generators stay on property based testing. Decision cells stay on decision tables. Jama still authors.
04 · Nearby questions
What is equivalence partitioning? Same question. Same URL.
What is equivalence class partitioning? Same cluster, longer head. Same command. Not a twin.
What is boundary value analysis? Same cluster. The edge binding is port=65536 on this page. Not a second URL.
Is this pairwise testing? No. Pairwise and combinatorial generators are a different method. Proof does not ship that generator.
Is this negative testing? A reject-path witness is one class. Completeness of the domain is this URL. negative testing.
Are SQL data constraints this page? No. W3Schools still owns CHECK and UNIQUE. A YAML partition is not a column rule.
Does Proof replace Hypothesis? No. Keep the library for shrinking. property based testing.
Is Proof a VectorCAST alternative? No. LDRA owns that cluster. Proof vs LDRA.