1 はじめに
前回の記事では同値クラス分割と境界値解析手法について説明しましたが、これら 2 つの手法は単一の入力条件のみを考慮しており、入力条件のさまざまな組み合わせや入力条件間の相互制約のシナリオは考慮されていません。この欠点に基づいて、因果関係図法とデシジョンテーブル法が登場しました。
2 特性特性図法
2.1 概念と原則
2.1.1 定義
入力条件の組み合わせと、その組み合わせに応じた出力をグラフィカルに記述したツールで、プログラムの入力条件のさまざまな組み合わせを確認するのに適しています。
2.1.2 方法の原理
特性特性図を描く場合、左に原因、右に結果を上から下に並べ、機能説明で指定した原因と結果の関係に応じて、以下の基本記号を使用します。因果関係図にいくつかを導入することもできます。
1. 特性特性図の基本的な図記号
2. 特性特性図における制約
理由の観点から見ると、制約には主に 4 種類あります。
- E (相互排他的、排他的): a と b の 2 つの理由は同時に現れず、多くても 1 つだけが現れます。
- I (またはを含む): a、b、c の 3 つの理由のうち少なくとも 1 つが表示される
- O (ユニーク): a と b が必ず発生する 2 つの理由のうちの 1 つだけ
- R (要件): a が出現する場合は b も出現する必要があります。
結果の観点から見ると、主に 1 つの制約があります。
- M(マスキング):aが現れるときはbは必ず現れない、aが現れないときはbは不確かである
2.2 方法のステップ
- 入力条件または入力条件の等価クラスであるすべての理由を見つけます。
- すべての結果を検索します。結果は出力条件です。
- すべての入力条件間の制約と組み合わせ関係、つまり、どの条件を組み合わせてはいけないのか、どの条件を組み合わせてよいのかを明確にします。
- どの出力結果が同時に出力できないのか、どの出力結果が同時に出力できるのか、すべての出力条件間の制約と組み合わせ関係を明確にします。
- 入力条件のどの組み合わせがどの出力を生成するかを調べます。
- 原因と結果の図を描きます。
- 因果関係図を判断表/決定表に変換します。
- デシジョン表の各列が表す状況のテスト ケースを設計します (各列がテスト ケースです)。
2.3 栗をあげる
シナリオ: 基本代理人が責任を認めるか控訴する
1. まず入力条件と出力条件を列挙します。
入力条件:
- 1——責任を認めるか、
- 2——控訴
- 3 - 個人の責任
- 4 - 組織の責任
- 5——三者間の責任
- 6——ERP責任者
- 7-上訴の理由
- 8-説明
出力条件:
- a - 個人の責任を受け入れます
- b——組織の責任を認識する
- c——三者間の責任の承認
- d——控訴
2. 原因と結果の図を描く
3. 因果関係図をデシジョンテーブルに変換し、デシジョンテーブルの各列をテストケースとして取り出す
- 「責任の承認」を選択し、「個人の責任」を選択し、次のように入力します: 責任者 ERP、説明 - 「責任の承認 個人の責任」
- 「責任を認める」を選択し、「組織的責任」を選択し、次のように入力します: 説明-「責任を認める 組織的責任」
- 「責任を認める」を選択し、「三者責任」を選択し、責任者 ERP、三者名、説明 -「責任を認める 三者責任」を入力します。
- 「異議申し立て」を選択し、次の内容を入力します: 異議申し立ての理由、説明 - 「異議申し立て」
3 判定テーブル方式
3.1 概念と原則
3.1.1 定義
デシジョンテーブルとは、複数の論理条件の下で異なる操作を実行する状況を分析して表現するためのツールであり、条件とその条件によって引き起こされる一連のアクションを表示するための表を指します。
3.1.2 方法の原理
主に次の 5 つの部分で構成されます。
- 条件パイル: 問題のすべての条件
- 条件付き項目: すべての条件の値の組み合わせ
- アクションパイル: 可能なすべてのアクション
- アクション項目: 条件値の各組み合わせに対して、アクション パイル内のどのアクションが実行されますか?
- ルール: 条件値の組み合わせとそれに対応するアクションの組み合わせ 条件値の組み合わせとそれに対応するアクションの組み合わせ (つまり、条件項目とアクション項目を貫くデシジョン表の列) が、デシジョン表のルールを構成します。
3.2 方法のステップ
- すべての条件スタブとアクション スタブ (入力と出力) をリストします。
- 条件項目(入力項目)を入力します。
- アクション項目を入力して初期判定表を取得します。
- デシジョンテーブルを簡素化します (同様のルール (同じアクション) をマージします)。
3.3 栗をあげる
シナリオ: 基本代理人が責任を認めるか控訴する
1. カラム判定表
2. デシジョンテーブルを簡素化する
- 「責任の承認」を選択し、「個人の責任」を選択し、次のように入力します: 責任者 ERP、説明 - 「責任の承認 個人の責任」
- 「責任を認める」を選択し、「組織的責任」を選択し、次のように入力します: 説明-「責任を認める 組織的責任」
- 「責任を認める」を選択し、「三者責任」を選択し、責任者 ERP、三者名、説明 -「責任を認める 三者責任」を入力します。
- 「異議申し立て」を選択し、次の内容を入力します: 異議申し立ての理由、説明 - 「異議申し立て」
4 まとめ
ただし、特性要因図とデシジョン テーブル手法では、変数値が多く、並べ替えや組み合わせが多数あるシナリオでは、非常に大規模で冗長なテスト ケースが生成されるため、現時点では完全にカバーすることは困難です。すべての組み合わせシナリオとテストケース。直交テスト手法の力を発揮するときが来ました。一緒に学びましょう~
著者: JD Logistics 王鵬
出典:JD Cloud Developer Community Ziyuanqishuo Tech 転載の際は出典を明記してください
IntelliJ IDEA 2023.3 と JetBrains の年次メジャー バージョン アップデート 新しいコンセプト「防御型プログラミング」: 安定した仕事に就く GitHub .com の稼働率が向上1,200 を超える MySQL ホストがある場合、8.0 にシームレスにアップグレードするにはどうすればよいですか? Stephen Chow の Web3 チームは来月、独立したアプリをリリースする予定 Firefox は廃止されるのでしょうか? Visual Studio Code 1.85 がリリース、フローティング ウィンドウ Yu Chengdong: ファーウェイは来年破壊的な製品を発売し、業界の歴史を書き換える 米国CISA C/C++ を放棄し、メモリ セキュリティの脆弱性を排除することを推奨します TIOBE 12 月: C# が今年のプログラミング言語になると予想されます Lei Jun の論文執筆30 年前: 「コンピュータウイルス判定エキスパートシステムの原則と設計」