ISO/IEC/IEEE 29119-4:2015 ソフトウェアおよびシステムエンジニアリング—ソフトウェアテスト—パート4:テスト手法 | ページ 3

※一部、英文及び仏文を自動翻訳した日本語訳を使用しています。

序章

ISO/IEC/IEEE 29119 のこの部分の目的は、定義されたテスト設計および実装プロセス内で使用できるソフトウェア テスト設計技術 (テスト ケース設計技術またはテスト方法とも呼ばれます) を定義する国際標準を提供することです。 ISO/IEC/IEEE 29119- ISO/IEC/IEEE 29119 のこの部分は、テストの設計と実装のプロセスを規定していません。代わりに、ISO/IEC/IEEE 29119-2 内で使用できる一連の手法について説明しています。その意図は、ソフトウェア テスト業界で広く受け入れられている一連の手法を説明することです。

ISO/IEC/IEEE 29119 のこのパートで提示されているテスト設計手法を使用して、実行時にテスト項目の要件が満たされていること、および/またはテスト項目に欠陥が存在することの証拠を生成するテスト ケースを導き出すことができます (つまり、要件を満たしていません)。リスクベースのテストは、特定の状況に適用できる一連の手法を決定するために使用できます (リスクベースのテストは、ISO/IEC/IEEE 29119-1 および ISO/IEC/IEEE 29119-2 でカバーされています)

注記「テスト項目」は、テストされる作業成果物です (ISO/IEC/IEEE 29119-1 を参照)

例 1

「テスト項目」には、システム、ソフトウェア項目、オブジェクト、クラス、要件ドキュメント、設計仕様、およびユーザー ガイドが含まれます。

各手法は、ISO/IEC/IEEE 29119-2 で定義され、図 1 に示されているテスト設計および実装プロセスに従います。

このプロセスのアクティビティのうち、ISO/IEC/IEEE 29119-4 は、説明されている各手法について、次のアクティビティを詳細に実装する方法に関するガイダンスを提供します。

  • テスト条件の導出 (TD2);
  • テスト カバレッジ項目の導出 (TD3);
  • テスト ケースの導出 (TD4)

テスト条件は、機能、トランザクション、機能、品質属性、またはテストの基礎として識別される構造要素など、テスト項目のテスト可能な側面です。この決定は、どの属性をテストするか、または 1 つまたは複数のテスト設計手法を適用することで、利害関係者と合意することによって達成できます。

例 2

状態遷移テストのテスト完了基準が、すべての状態をカバーする必要があると特定された場合、テスト条件は、テスト項目が存在できる状態になる可能性があります。テスト条件の他の例は、等価クラスとそれらの間の境界です。

テスト カバレッジ項目は、テスト中にカバーできる各テスト条件の属性です。 1 つのテスト条件が、1 つまたは複数のテスト カバレッジ項目の基礎となる場合があります。

例 3

特定の境界がテスト条件として識別される場合、対応するテスト カバレッジ アイテムは、境界自体および境界のすぐ両側である可能性があります。

テスト ケースは、前提条件、入力 (該当する場合はアクションを含む)、および期待される結果のセットであり、テスト項目の対象部分が正しく実装されているかどうかを判断するために作成されます。

ISO/IEC/IEEE 29119-2 のテスト設計および実装プロセスにおけるその他のアクティビティの実装方法に関する具体的な (規範的な) ガイダンス。アクティビティ TD, TD, および TD6 (テストの導出)手順)は、ISO/IEC/IEEE 29119 のこの部分の第 5 条または第 6 条には含まれていません。これは、プロセスがすべての手法で同じであるためです。

図 1 — ISO/IEC/IEEE 29119-2 テストの設計と実装のプロセス

ISO/IEC/TR 19759 (SWEBOK) では、機能要件と品質要件の 2 種類の要件が定義されています。 ISO/IEC 25010 は、特定のテスト項目のテストに適用できるテストの種類を識別するために使用できる 8 つの品質特性 (機能を含む) を定義しています。附属書 A は、ISO/IEC 25010 で定義されたテスト品質特性に適用されるテスト設計技法のマッピング例を提供します。

ISO/IEC/IEEE 29119 のこの部分では、テスト ケースを設計するための技法のみが説明されているため、探索的テストなどの経験ベースのテスト プラクティスや、モデルベースのテストなどの他のテスト プラクティスは、ISO/IEC/IEEE 29119 のこの部分では定義されていません。探索的テストなどのテスト プラクティスは、ISO/IEC/IEEE 29119-1 で説明されています。

テスト プロセス中に作成されるテスト ドキュメントのテンプレートと例は、ISO/IEC/IEEE 29119-3 テスト ドキュメントで定義されています。 ISO/IEC/IEEE 29119 のこの部分のテスト技法では、テスト ケースを文書化する方法について説明していません (たとえば、一意の識別子、テスト ケースの説明、優先順位、トレーサビリティ、または前提条件の割り当てに関する情報やガイダンスは含まれていません)テスト ケースを文書化する方法に関する情報は、ISO/IEC/IEEE 29119-3 に記載されています。

ISO/IEC/IEEE 29119 のこの部分は、関係者があらゆる組織でソフトウェアをテストするためのテスト ケースを設計できるようにすることを目的としています。

Introduction

The purpose of this part of ISO/IEC/IEEE 29119 is to provide an International Standard that defines software test design techniques (also known as test case design techniques or test methods) that can be used within the test design and implementation process that is defined in ISO/IEC/IEEE 29119-2. This part of ISO/IEC/IEEE 29119 does not prescribe a process for test design and implementation; instead, it describes a set of techniques that can be used within ISO/IEC/IEEE 29119-2. The intent is to describe a series of techniques that have wide acceptance in the software testing industry.

The test design techniques presented in this part of ISO/IEC/IEEE 29119 can be used to derive test cases that, when executed, generate evidence that test item requirements have been met and/or that defects are present in a test item (i.e. that requirements have not been met). Risk-based testing could be used to determine the set of techniques that are applicable in specific situations (risk-based testing is covered in ISO/IEC/IEEE 29119-1 and ISO/IEC/IEEE 29119-2).

NOTE A “test item” is a work product that is being tested (see ISO/IEC/IEEE 29119-1).

EXAMPLE 1

“Test items” include systems, software items, objects, classes, requirements documents, design specifications, and user guides.

Each technique follows the test design and implementation process that is defined in ISO/IEC/IEEE 29119-2 and shown in Figure 1.

Of the activities in this process, ISO/IEC/IEEE 29119-4 provides guidance on how to implement the following activities in detail for each technique that is described:

  • Derive Test Conditions (TD2);
  • Derive Test Coverage Items (TD3);
  • Derive Test Cases (TD4).

A test condition is a testable aspect of a test item, such as a function, transaction, feature, quality attribute, or structural element identified as a basis for testing. This determination can be achieved by agreeing with stakeholders which attributes are to be tested or by applying one or more test design techniques.

EXAMPLE 2

If a test completion criterion for state transition testing was identified that required coverage of all states then the test conditions could be the states the test item can be in. Other examples of test conditions are equivalence classes and boundaries between them.

Test coverage items are attributes of each test condition that can be covered during testing. A single test condition may be the basis for one or more test coverage items.

EXAMPLE 3

If a specific boundary is identified as a test condition, then the corresponding test coverage items could be the boundary itself and immediately either side of the boundary.

A test case is a set of preconditions, inputs (including actions, where applicable), and expected results, developed to determine whether or not the covered part of the test item has been implemented correctly.

Specific (normative) guidance on how to implement the other activities in the test design & implementation process of ISO/IEC/IEEE 29119-2, including activities TD1 (Identify Feature Sets), TD5 (Assemble Test Sets), and TD6 (Derive Test Procedures), is not included in Clauses 5 or 6 of this part of ISO/IEC/IEEE 29119 because the process is the same for all techniques.

Figure 1— ISO/IEC/IEEE 29119-2 Test Design and Implementation Process

ISO/IEC/TR 19759 (SWEBOK) defines two types of requirements: functional requirements and quality requirements. ISO/IEC 25010 defines eight quality characteristics (including functionality) that can be used to identify types of testing that may be applicable for testing a specific test item. Annex A provides example mappings of test design techniques that apply to testing quality characteristics defined in ISO/IEC 25010.

Experience-based testing practices like exploratory testing and other test practices such as model-based testing are not defined in this part of ISO/IEC/IEEE 29119 because this part of ISO/IEC/IEEE 29119 only describes techniques for designing test cases. Test practices such as exploratory testing are described in ISO/IEC/IEEE 29119-1.

Templates and examples of test documentation that are produced during the testing process are defined in ISO/IEC/IEEE 29119-3 Test Documentation. The test techniques in this part of ISO/IEC/IEEE 29119 do not describe how test cases should be documented (e.g. they do not include information or guidance on assigning unique identifiers, test case descriptions, priorities, traceability, or pre-conditions). Information on how to document test cases can be found in ISO/IEC/IEEE 29119-3.

This part of ISO/IEC/IEEE 29119 aims to provide stakeholders with the ability to design test cases for the testing of software in any organization.