正解: B
決定表は、ATM(現金自動預け払い機)から現金を引き出す際の入力条件のあらゆる組み合わせを網羅するために使用する手法です。決定表は、入力や刺激(原因)と、それに関連する出力や動作(結果)の組み合わせを示します。決定表は、条件(入力)、動作(出力)、条件エントリ(値)、動作エントリ(結果)の4つの象限で構成されます。決定表は、複数の入力と、条件の論理的な組み合わせに依存する出力を持つコンポーネントのテストに使用できます。たとえば、ATMをテストする場合、入力条件として、銀行カードが有効であること、PINコードが正しいこと、ユーザーの口座に資金があることの3つを特定できます。また、出力動作として、カードが拒否される、ATMが別のPINコードを要求する、ATMが別の金額を要求する、ATMが現金を引き出すの4つを特定できます。決定表は、これらの条件と動作のあらゆる組み合わせを体系的に示すことができます。
Use case based testing is not a technique that can cover all possible combinations of input conditions for withdrawing money from an ATM. Use case based testing is a technique that verifies that a software product or system meets its specified requirements or user stories by executing realistic scenarios or workflows. Use case based testing can be used to test components that have complex or dynamic interactions with users or other systems. For example, for testing the ATM, we can identify several use cases, such as withdraw money, check balance, transfer money, etc. Each use case can have one or more scenarios that describe the steps and outcomes of the interaction. However, use case based testing may not cover all possible combinations of input conditions, as some scenarios may be omitted or overlooked.
Boundary value analysis is not a technique that can cover all possible combinations of input conditions for withdrawing money from an ATM. Boundary value analysis is a technique that tests boundary values between partitions of equivalent data. Boundary values are values at the edge of an equivalence partition or at the smallest incremental distance on either side of an edge. Boundary value analysis can be used to test components that have input values that can be divided into partitions of equivalent data. For example, for testing the ATM, we can identify boundary values for the input amount, such as the minimum and maximum amount allowed by the system or the user's account. However, boundary value analysis may not cover all possible combinations of input conditions, as some conditions may not have boundary values or may not be related to input values.
Equivalence class partitioning is not a technique that can cover all possible combinations of input conditions for withdrawing money from an ATM. Equivalence class partitioning is a technique that divides the input data and output results of a software component into partitions of equivalent data. Each partition should contain data that is treated in the same way by the component. Equivalence class partitioning can be used to test components that have input values that can be divided into partitions of equivalent data. For example, for testing the ATM, we can identify equivalence partitions for the input amount, such as valid amount (within the range allowed by the system and the user's account) and invalid amount (outside the range allowed by the system or the user's account). However, equivalence class partitioning may not cover all possible combinations of input conditions, as some conditions may not be related to input values or may have more than two partitions. Verified Reference: [A Study Guide to the ISTQB Foundation Level 2018 Syllabus - Springer], Chapter 4, page 34-46.