テストケースの設計方法 六経神剣 - 第三の剣:天による龍の殺害と龍の殺害、直交テストチャージ | JD Logistics Technology Team

17128450:

1 はじめに

前回の記事では、因果関係図とデシジョンテーブルの手法について説明しましたが、これら 2 つの手法は、変数値が多く、多数の順列と組み合わせが存在するシナリオでは、非常に大規模で冗長なテスト ケースを生成します。すべての組み合わせシナリオをテストすることは困難であり、テスト ケースを完全にカバーするために、この欠点に基づいて直交テスト手法が登場しました。

2 概念と原則

2.1 定義

直交実験法は、複数の要因とレベルを研究する実験法です。直交表を使用して実験を計画し、包括的な実験を少数の実験に置き換えます。そのアイデアは、
包括的な実験を部分的な実験に置き換え、部分的な実験を通じて分析することです。結果を確認して、テスト全体の状況を把握します。
総合テスト:各要因の影響や相互作用を分析し、最適なレベルの組み合わせを選択することもできます。しかし、総合テストは横の組み合わせが多く、作業量が多く、場合によってはテストが完了しない場合があります。

2.2 直交表

直交実験法を使用してテスト ケースを設計することの核心は、直交テーブルの選択にあります。直交テーブルは一連の規則的な計画テーブルであり、一般に次のように表されます。

このうち、Lは直交表を表し、nは直交表の行数(すなわちテストケースの数)を表し、kは因子の数または直交表の列数(すなわちテストケースの数)を表す。入力条件)、m はそれぞれの因子のレベル数、n=k*(m-1)+1

  • 因子は、実験で観察する必要がある変数を表します。
  • レベルは、テスト範囲内で単一の因子が取得できる値(変数の値)の最大数を表します。

栗をあげます:

直交表は次の 2 つの特性を満たす必要があり、どちらかが満たされない場合は直交表ではありません。

  • 異なる属性値が各列に同じ回数だけ表示されます。
    この特徴は、各因子の各水準が他の因子の各水準とまったく同じ実験に参加する確率を持っていることを示しており、したがって各水準で他の因子水準の干渉が最大限に排除され、実験が可能になります。結果を効果的に比較し、最適な試験条件を見つける
  • 2 つの水平列で構成される属性値のペアでは、各属性値のペアは同じ頻度で表示されます。
    この機能により、テスト ポイントが因子とレベルの完全な組み合わせに均等に分散されるため、テスト ポイントは非常に代表的になります。

これらは直交表の 2 つの大きな利点、つまり「均一な分散ときれいな比較可能性」でもあります。平たく言えば、各因子の各レベルが別の因子の各レベルに 1 回接触すること、これが直交性です。

3つの方法ステップ

3.1 全体的なプロセス

1. 因子 (変数) と各因子のレベルの数 (変数値) を決定します;
2. 因子の数とレベルの数に基づいて n 値を決定します ここでは 2 つの状況が区別されます。

単一レベル直交表 (各因子のレベル数は同じ)

混合レベル直交表、つまり各因子のレベル数が完全に同じではない直交表

3. 適切な直交表を選択します;
4. 直交表に従って変数の値をテーブルにマッピングし、各行の各因子の値の組み合わせがテスト ケースとして使用されます。

3.2 直交表の選択

1. 田口玄一博士が設計した直交表を確認する: Dr. Genichi Taguchi orthogonal table https://www.york.ac.uk/depts/maths/tables/orthogonal.htm
2. SAS 標準技術サポート: SAS design Orthogonalテーブル http://support.sas.com/techsup/technote/ts723_Designs.txt

検索するときは、次の 2 つの状況を区別して、さまざまなタイプの直交表に注意を払う必要があります。

1. 単一の水平直交テーブル:

2. 混合水平直交表:

選択できる直交表が 2 つ以上ある場合、選択の原則は、テストの数が最も少ない直交表を選択することです。

4 栗をあげる

シナリオ:4つの特殊なシナリオに対応した第3レベルの破損例外タイプの通報機能をテストします 第3レベルの例外
タイプ=外箱破損、破損、中身の破損・漏洩
特殊シナリオ=梱包不備、不法収集回収、荷物の封印異常、車両の封印異常
アップロード方法 = 単一レポート、一括アップロード

4.1 従来の方法: フルカバレッジ

  1. 仕様によれば、上記のテスト要件を分析すると、次のとおりです。
    3 レベルの例外タイプ (外箱の破損、商品の破損、内容物の損傷/漏洩)
    特別なシナリオ (不規則な梱包、違法な収集、異常なパッケージの密封、車両の密封) ) したがって、測定される要素 (因子) は 3 つあり、各因子はそれぞれ 3、4、2 つの値を持ちます

  2. すべての要素のすべての水準値の完全な配置、テスト ケースの数: 3 4 2 = 24、具体的な使用例は次のとおりです。

4.2 直交テスト手法設計の使用例

1. 因子とレベルの数に基づいて n 値を決定します。

2. 適切な直交テーブルを選択します。計算により、n=6 が得られますが、田口玄一博士の直交表を検索したところ、n=6 の直交表は存在しません。このとき、使用する直交表は、次のとおりに決定する必要があります。次の原則:

  • n>6 && m>=max(m1=3,m2=4,m3=2) && k>=k1+k2+k3=1+1+1=3; を同時に満たす直交表を見つけます。
  • 選択できる直交表が2つ以上ある場合は検定回数が最も少ないものが選択され、今回はL16bが選択されます。

3. マッピングテーブルに各因子のレベル値を記入し、各行をテストケースに変換すると、テストケースの数は 12 となり、テストケースの数が 50% 削減されていることがわかります。フルカバレッジ方式で。

4.3 PICT は直交テスト テスト ケースを生成する

直交テスト手法を使用すると、適切なテストケースを選択してテスト効率を向上させることができますが、直交テーブルの選択とテストケースの出力にある程度の時間がかかるため、より高速な方法はないでしょうか?

もちろん!PICT は、すべての因子と変数値を指定するだけで済む小さなツールで、直交実験用のテスト ケースを自動的に生成するのに役立ちます。次に、PICT を使用してテスト ケースを生成する方法を学びましょう。

PICT を使用してテスト ケースを直接生成する前に、テスト ケースを生成するための txt ファイルを準備する必要があります。この txt ファイルはインストール ディレクトリと同じフォルダに配置する必要があります。そうしないと効果がありません。

今回は、test_pict.txtというファイルが作成されました。ファイルにすべての因子と変数値を入力します。各行は、因子とそれに対応するすべての変数値の列挙です。因子名と変数値の間には「:」を使用します列挙。" 接続。各変数値は "," で接続されます。すべて英語の記号であり、スペースは含まれません。次のようなものです。

  • 異常第3レベル:外箱破損、商品破損、内容物破損・漏れ
  • 特殊なシナリオ: 不規則な梱包、違法な収集、異常な荷物の密封、異常な車両の密封
  • アップロード方法: 単一レポート、バッチアップロード

エンコード形式は ANSI であることに注意してください。そうでない場合は、以下に示すようにコードが文字化けします (Notepad++ を使用してエンコード形式を変更できます)。

 
次に、テスト ケースを生成して DOS ウィンドウを開く準備を開始します。
まず、ディレクトリを pict インストール ディレクトリ、今回は C:\Users\chenyuting50\Downloads に切り替え、次のコマンドを使用します。

pict test_pict.txt では、以下に示すようにテスト ケースを自動的に生成できます。

次に、 pict test_pict.txt > text_pict.xls コマンドを実行して、テスト ケースを text_pict.xls ファイルに保存します。ファイルはインストール ディレクトリに保存されています。ファイルを開くと、内容は次のようになります。データ行はテスト ケースです。:

5 まとめ

ただし、直交テスト手法は、プロセス要件が強いテストケース設計には適していないため、機能図法やシナリオ手法を使用してテストケースを設計する必要があります。

著者: JD Logistics Chen Yuting

出典:JD Cloud Developer Community Ziyuanqishuo Tech 転載の際は出典を明記してください

 

IntelliJ IDEA 2023.3 と JetBrains Family Bucket の年次メジャー バージョン アップデート 新しいコンセプト「防御型プログラミング」: 安定した仕事に就く GitHub.com では 1,200 を超える MySQL ホストが稼働していますが、8.0 にシームレスにアップグレードするにはどうすればよいですか? Stephen Chow の Web3 チームは来月、独立したアプリをリリースする予定ですが、 Firefox は廃止されるのでしょうか? Visual Studio Code 1.85 リリース、フローティング ウィンドウ Yu Chengdong: ファーウェイは来年破壊的な製品を発売し、業界の歴史を書き換えるだろう 米国 CISA はメモリ セキュリティの脆弱性を排除するために C/C++ の廃止を勧告 TIOBE 12 月: C# がプログラミングになると予想30年前 雷軍が書いた論文「コンピュータウイルス判定エキスパートシステムの原理と設計」
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/4090830/blog/10320664