microsoft / microsoft/pict

Missing Negative Cases When Using Submodels

Open
#44 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
1.5k
Forks
323
Avg merge
2h 5m
Merged PRs (30d)
4

Description

I found some weird situations in which all negative values of one submodel are ignored without any warning or error. This is the smallest model I found where this happens:

C1: 1, ~0
C2: 1, 2, 3, ~0

D1: ok, ~fail
D2: 1, ~0, ~-1
D3: 1, ~0, ~-1, ~-2, ~-3

{C1, C2} @ 2
{D1, D2, D3} @ 2

Current Behavior:

pict model /r:1222

C1      C2      D1      D2      D3
1       1       ok      1       1
1       3       ok      1       1
1       2       ok      1       1
1       1       ok      ~-1     1
1       2       ok      1       ~-3
1       1       ~fail   1       1
1       3       ok      1       ~-1
1       3       ok      ~0      1
1       2       ok      ~-1     1
1       2       ok      1       ~0
1       2       ok      ~0      1
1       3       ok      1       ~0
1       3       ok      ~-1     1
1       1       ok      ~0      1
1       1       ok      1       ~-3
1       2       ok      1       ~-1
1       3       ok      1       ~-3
1       1       ok      1       ~0
1       3       ~fail   1       1
1       1       ok      1       ~-1
1       1       ok      1       ~-2
1       2       ok      1       ~-2
1       3       ok      1       ~-2
1       2       ~fail   1       1

Expected Behavior:

  • Expected test cases with C1=~0
  • Expected test cases with C2=~0

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue with the model in the report using pict with /r:1222, then trace how submodels handle negative values. Done means generated cases include C1=~0 and C2=~0, with regression coverage for this model.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.