
ソフトウェアテストの成功は、主にテスト設計に依存します。 高品質のテスト設計は、優れたカバレッジを提供するだけでなく、テストの効果を高めます。 テストの設計は、コンパクトさと効率の原則に基づいている必要があり、テストの量は容易に管理可能であると同時に、システムがリリースまたは更新される前にエラーを検出するのに十分でなければなりません。
テスト設計は成功したテスト自動化の重要な決定要因ですが、これはそれほど明白ではありません。 オートメーションの成功は、優れたプログラミングまたは「適切なツールの購入」にかかっていると考えていました。 理解するには何年もの作業が必要でした。テスト設計は、自動化を成功させる主な要因です。
アーサー王と円卓の騎士の伝説のように、テストを設計するために努力する必要がある3つの主要な目標があります-「テスト設計の三聖杯」 。 したがって、この記事では、テストを設計するときに見つける必要がある3つの「グライル」を紹介します。
この記事で使用される用語は、LogiGearがテストとテストの自動化に使用するAction Based Testing(ABT)方法論に基づいています。 ABT方法論の詳細については、LogiGear Webサイトをご覧ください。
ABT方法論では、テストケースはテストモジュールと呼ばれるテーブルにグループ化されます。 それらでは、テストは「テスト行」のシーケンスとして記述されます。各テスト行は列Aで始まり、ある種の「アクション」で始まり、他の列には引数が含まれます。 ABTでは、テストケースの自動化ではなく、必要に応じて再利用できる個々のアクションの自動化に重点が置かれています。
3つのテスト設計目標

テスト設計の3つの主要な目標を区別できます。
1.効果的なテスト分解
最初のステップは、ABTでテストモジュールと呼ばれる、適切に管理された部分にテストを分割することです。 この段階では、テストシナリオについてはまだ説明していませんが、単にテストシナリオを含めるべき「チャプター」を示しています。 このような内訳は、受け取った各テストモジュールに、他のモジュールとは異なる明確に定義された指向のコンテンツがある場合に効果的です。 テストモジュールの内容によって、テストスクリプトを含めるモジュールがさらに決定されます。
2.各テストモジュールに適切なアプローチ
テストの内訳が完了すると、個々のテストモジュールは一種のミニプロジェクトになります。 テストモジュールの内容に基づいて、テストモジュールの開発に使用するアプローチを決定する必要があります。 アプローチとは、テストシナリオの作成に使用される一連のテスト方法の定義(たとえば、境界値、決定テーブルなどの分析)、およびテストの作成や評価に関与する人々の輪を意味します。 たとえば、テストモジュールの場合、保険契約の保険料の計算をテストするには、保険部門の従業員の参加が必要になる場合があります。
3.適切な詳細レベルのテスト
自動テストをサポートする能力は、主に3番目の目標の達成に依存します。
テストシナリオを作成するときは、このテストに関連する高レベルの要素のみを選択する必要があります。 たとえば、エンドユーザーの観点からは、「サインイン」または「クライアントの電話番号を変更する」は1つのアクションです。 したがって、ボタンを押してデータを入力するなど、テストスクリプトで下位レベルの要素を指定する必要はありません。 この段階では、これらの低レベルの要素は、すべてのテストに共通する個別の再利用可能な自動化された機能に「隠れ」ている必要があります。 これにより、テストはよりコンパクトで読みやすくなりますが、主なことは、ベースシステムに変更が加えられた場合に個々のテストで1つの低レベル要素を変更する必要がないため、テストを伴うことができることです。 その後、低レベルの要素は一度だけ再指定(または自動化の順序を変更)できるため、すべてのテストで再利用できます。
ABT方法論では、この(3番目の)原則は、テストモジュールで使用されることになっているアクションの「レベル」で明示されます。
たとえば、保険会社のデータベースの場合、「ポリシーの作成」や「保険料の確認」などの「高レベル」アクションのみを使用してテストを記述でき、ダイアログのテストには「低レベル」アクション(「ボタンをクリック」など) )[OK]ボタンをテストします。
おわりに
選択した方法論に関係なく、最初のテストスクリプトを作成する前にテストの設計について時間をかけて検討すると、将来的にはテストの品質と有効性が大幅に向上します。
11月22日に、ハンス・ブーバルダは「 成功するテスト自動化のための5つの重要な要因 」というマスタークラスでモスクワに到着します。
Hans Boowaldyのその他の記事はこちらにあります 。