受け入れテストの形態についての質問に対する回答

受け入れテストの形態に関して、以下のような設問を提供していましたが、正解は[a]とも[d]ともとれるという指摘をいただきました。確かに微妙な感じです。ですが、この微妙さは本番試験でも多々あるので、許してほしいところです。Foundationのシラバスには、受け入れテストの形態として「規定による受け入れテスト」が明示され、「法律や安全基準などに合致しているかを検証する」と説明されているため、[a]の法令遵守テストは運用テストの範疇ではないのではないかという意見をいただきました。

運用テストでは、通常、行わないテストはどれか。
[a]法令に遵守しているかどうかをチェックする
[b]火災や地震などの災害に対応できているかどうかをチェックする
[c]保守性をチェックする
[d]操作が容易であるかどうかをチェックする

すこし解説してみます。

運用テスト=運用受け入れテスト

まず、「運用テスト」とは、受け入れ側のシステム管理者が行う「運用受け入れテスト」のことです。JSTQBでは同義としています。エンドユーザーが行う受け入れテストは「ユーザー受け入れテスト」とされ、運用受け入れテストとは区別されています。受け入れテストは、大きくユーザーが行うものと、システム管理者が行うものに分けられています。

[a]は法令遵守テスト(=標準適合性テスト=コンプライアンステスト)、[b]は災害復旧テスト、[c]は保守性テスト、[d]はユーザビリティテストです。ユーザビリティテストは、ユーザー受け入れテストの範囲になります。[b],[c]は、システム管理者が行う「運用受け入れテスト」として容易に判断できるはずです。[d]のユーザビリティテストは、ユーザーが行う「ユーザー受け入れテスト」なので、システム管理者が行う「運用受け入れテスト」ではありません。ですから1つを選択するとなると、[d]が正解と言えます。大体、この程度の判断で[d]を選択していいでしょう。

なお、システム管理者用の画面やUIがテスト対象で、それらのユーザビリティをテストする場合はどうなんだろうという疑問があるかもしれません。ですが、システム管理者もユーザーであることを忘れてはいけません。システム管理者は、自身をユーザーとして「ユーザー受け入れテスト」も行う必要があります。

法令遵守テストとは

そして、本題の[a]の法令遵守テストについての見解です。

そもそも、「法令遵守テスト」という訳が気に入らないところです。complience testはISO 9126に従って訳すなら「標準適合性テスト」と呼ぶべきです。法令だけでなく、業界標準、社内標準、規約などの標準も対象であるはずです。これら任意の標準に対して準拠性をチェックすることが、complience testです。とはいえ、すでに「法令遵守テスト」で浸透させられてしまった状況もあるので、従わざるを得ないのでしょう。

法令遵守テストは、1つのテストタイプです。テストタイプは、特定の目的でグルーピングしたものであり、目的ははっきりしているが、どのような手段でテストするかには言及しないものと言えます。テストタイプには排他的なものと、そうでないものがあります。機能テストと非機能テストは排他的です。同時に行えないものと言う意味で排他的と表現しています。一方、「保守テストの回帰テストで機能テストを実施する」という表現の場合、保守テストも、回帰テストも、機能テストもテストタイプですが、これらは排他的とは言えません。ユーザー受け入れテストと運用受け入れテストは実施者が異なるので排他的です。アルファテストとベータテストも同時に行うことはありえないので排他的です。

規定受け入れテストという受け入れテストの1形態では、法令遵守テストが実施されます。法令遵守テストは、様々なテストレベルで実施してかまいません。たまたま、「法令遵守テストのみで構成される受け入れテストを規定受け入れテストと呼んでいる」と考えるべきでしょう。

では、ユーザー受け入れテストや、運用受け入れテストでは、法令遵守テストは行えないのでしょうか。通常、受け入れテストと総称するものの中には、ユーザー受け入れテストと運用受け入れテストを含み、それらの中には法令遵守テストを含んでも問題ありません。たとえば、ユーザー受け入れテストでユーザビリティテストを行い、その中でアクセシビリティテストを行い、そこではアクセシビリティ標準に沿って法令遵守テストを行うということがあるでしょう。

法令遵守テストというテストタイプはどこにでも現れます。機能テストというテストタイプがどこにでも現れるのと同じことです。たまたま「法令遵守テストのみで構成される受け入れテストを規定受け入れテストと呼んでいる」に過ぎません。ユーザー受け入れテストでの法令遵守テスト、運用受け入れテストでの法令遵守テスト、災害復旧テストでの法令遵守テストなどが存在するといえます。

仮に設問の選択肢が、「[a]法令に遵守しているかどうかをチェックする(法令遵守テスト)」ではなく、「[a]機能を満たしているかどうかをチェックする(機能テスト)」だったらどうでしょう。機能テストなら運用受け入れテストに含まれてもおかしくはないと即答できるはずです。実はそれが、法令遵守テストであっても同じことなのです。

シラバスで提示の受け入れテストの形態

おそらく、誤解のもととなっているのは、シラバスでの受け入れテストの形態の種類が脈絡もなく羅列されていることだと思います。私も初めて見たときには理解に苦しみました。

・ユーザー受け入れテスト
・運用受け入れテスト(=運用テスト)
・契約受け入れテスト/規定受け入れテスト
・アルファテスト/ベータテスト(=フィールドテスト)

これらは単独で受け入れのテストレベルになることもあるし、複数を組み合わせて受け入れのテストレベルにする場合もあります。一般に「受け入れ」と総称する場合は、「ユーザー受け入れテスト+運用受け入れテスト」とみなしておけば無難です。また、2段階のテストレベルで表現する場合もあります。アルファテストの後にベータテストを行うような場合も想定しておく必要があります。ここに挙げられている受け入れテストの形態とは、そういったものです。

以上です。