モデルオプション
PICTでは、
制約条件
パラメータの組み合わせを行う場合、
メモリ: 1GB, 2GB, 4GB
HD1: なし, 250GB, 500GB, 750GB
HD2: なし, 250GB, 500GB, 750GB
制約条件表
制約条件は、
パラメータ | 値セット1 | 値セット2 |
---|---|---|
HD1 | 250GB, 500GB, 750GB | なし, 250GB, 500GB, 750GB |
HD2 | なし, 250GB, 500GB, 750GB | 250GB, 500GB, 750GB |
表1は、
表1は2パラメータ間の制約条件ですが、
A: a1, a2, a3, a4, a5
B: b1, b2, b3, b4, b5
C: c1, c2, c3, c4, c5
D: d1, d2, d3, d4, d5
パラメータ | 値セット1 | 値セット2 | 値セット3 |
---|---|---|---|
A | a1 | a2 | a3 |
B | b1 | b2 | b3 |
C | c1 | c2, c3, c4, c5 | c2, c3, c4, c5 |
パラメータ | 値セット4 | 値セット5 | |
A | a4 | a5 | |
B | b4 | b5 | |
C | c2, c3, c4, c5 | c2, c3, c4, c5 |
表2は、
以上は制約条件の結果、
パラメータ | 値セット1 |
---|---|
A | a1, a2, a3, a4 |
B | b1, b2, b3, b4 |
表3は、
制約条件の指定ができなければテスト業務で実用的に使用することはできません。また、
モデルファイルを作成する際は、
制約条件の記述は、
条件付き制約
条件付き制約は、 if 関係式 then 関係式 else関係式
の形式をとります。else以降は省略できる場合があります。if文の中にif文を入れ子にすることはできません。関係式はパラメータとその値、
演算子 | 説明 |
---|---|
=, <>, >, >=, <, <= | パラメータの値 |
IN | パラメータに含まれる複数の値を指定します。 |
NOT, AND, OR | 関係式に対して論理演算を行います。 |
LIKE | ワイルドカード |
(1) =, <>, >, >=, <, <=
表1の制約条件を演算子
if [HD1] = "なし"
then [HD2] <> "なし";
if [HD2] = "なし"
then [HD1] <> "なし";
この条件で生成される組み合わせを表5に示します。
No. | メモリ | HD1 | HD2 |
---|---|---|---|
1 | 1GB | 250GB | 500GB |
2 | 1GB | 500GB | なし |
3 | 1GB | 750GB | 750GB |
4 | 1GB | なし | 250GB |
5 | 2GB | 250GB | 250GB |
6 | 2GB | 250GB | 750GB |
7 | 2GB | 250GB | なし |
8 | 2GB | 500GB | 500GB |
9 | 2GB | 750GB | 250GB |
10 | 2GB | なし | 500GB |
11 | 4GB | 250GB | なし |
12 | 4GB | 500GB | 250GB |
13 | 4GB | 500GB | 750GB |
14 | 4GB | 750GB | 500GB |
15 | 4GB | 750GB | なし |
16 | 4GB | なし | 750GB |
生成されたHD1、
(2) IN
演算子INは、
if [HD1] = "なし"
then [HD2] in {"250GB", "500GB", "750GB"};
if [HD2] = "なし"
then [HD1] in {"250GB", "500GB", "750GB"};
この例では、
IN演算子では、
(3) NOT、AND、OR
演算子NOT、
if [HD1] = "なし"
then [HD2] = "250GB" or
[HD2] = "500GB" or
[HD2] = "750GB";
if [HD2] = "なし"
then [HD1] = "250GB" or
[HD1] = "500GB" or
[HD1] = "750GB";
(4) LIKE
演算子LIKEは、
if [HD1] = "なし"
then [HD2] LIKE "*GB";
if [HD2] = "なし"
then [HD1] LIKE "*GB";
このようにLIKE演算子は適切なパラメータの名称、
以上、
これまでの例では、
A: a1, a2, a3
B: b1, b2, b3, b4
C; c1, c2
パラメータ | 値セット1 | 値セット2 |
---|---|---|
A | a1, a2 | a3 |
B | b1, b2, b3 | b4 |
この制約条件を記述する式の一例はリスト8のとおりとなります。
if [A] = "a3"
then [B] = "b4"
else [B] <> "b4";
無条件制約
無条件制約は、
この条件式を適用するモデルをリスト9に示します。 条件式1~4と生成された組み合わせを表7~10に示します。
テーブル番号a: 1,128,255
テーブル番号b: 1,128,255
テーブル番号c: 1,128,255
# 条件式1 3つのパラメータのうちすくなくとも1つは異なる値を組み合わせる。
# (<>とOR演算子を使用)
[テーブル番号a] <> [テーブル番号b] or [テーブル番号b] <> [テーブル番号c] or
[テーブル番号c] <> [テーブル番号a];
No. | テーブル番号a | テーブル番号b | テーブル番号c |
---|---|---|---|
1 | 1 | 1 | 128 |
2 | 1 | 128 | 1 |
3 | 1 | 255 | 255 |
4 | 128 | 1 | 128 |
5 | 128 | 128 | 255 |
6 | 128 | 255 | 1 |
7 | 255 | 1 | 1 |
8 | 255 | 1 | 255 |
9 | 255 | 128 | 128 |
10 | 255 | 255 | 128 |
# 条件式2 3つのパラメータはすべて異なる値を組み合わせる。
# (<>とAND演算子を使用)
[テーブル番号a] <> [テーブル番号b] and [テーブル番号b] <> [テーブル番号c] and
[テーブル番号c] <> [テーブル番号a];
No. | テーブル番号a | テーブル番号b | テーブル番号c |
---|---|---|---|
1 | 1 | 128 | 255 |
2 | 1 | 255 | 128 |
3 | 128 | 1 | 255 |
4 | 128 | 255 | 1 |
5 | 255 | 1 | 128 |
6 | 255 | 128 | 1 |
# 条件式3 3つのパラメータのうちすくなくとも2つは同じ値を組み合わせる。
# (= とOR演算子を使用)
[テーブル番号a] = [テーブル番号b] or [テーブル番号b] = [テーブル番号c] or
[テーブル番号c] = [テーブル番号a];
No. | テーブル番号a | テーブル番号b | テーブル番号c |
---|---|---|---|
1 | 1 | 1 | 255 |
2 | 1 | 128 | 128 |
3 | 1 | 255 | 1 |
4 | 128 | 1 | 128 |
5 | 128 | 128 | 1 |
6 | 128 | 255 | 128 |
7 | 128 | 255 | 255 |
8 | 255 | 1 | 1 |
9 | 255 | 128 | 255 |
10 | 255 | 255 | 128 |
# 条件式4 3つのパラメータはすべて同じ値を組み合わせる。
# (= とAND演算子を使用)
[テーブル番号a] = [テーブル番号b] and [テーブル番号b] = [テーブル番号c] and
[テーブル番号c] = [テーブル番号a];
No. | テーブル番号a | テーブル番号b | テーブル番号c |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 128 | 128 | 128 |
3 | 255 | 255 | 255 |
無条件制約は、
次回は、