第296回: 「ALTAのテキストをつくろう」51 (欠陥ベースのテスト技法)
◀前の記事へ 次の記事へ▶︎
≡ はじめに
前回は、「3. テスト技法」の「3.3 経験ベースのテスト技法」の「3.3.3 探索的テスト」のカバレッジ、検出できる欠陥の種類と「探索的テストのはじめかた」(実践)について書きました。
前回の復習は以下で模擬試験問題の確認を通して行います。
今回はJSTQBのALTAシラバスの「3.3 経験ベースのテスト技法」の「3.3.4 欠陥ベースのテスト技法」について書きます。
≡ 前回の復習
以下は前回出題したJSTQB ALTAの模擬試験問題を𝕏にポストした結果です。
投票の結果、選択肢2の「非機能のテスト」が50%と最も多く、正解も2です。
以下の2枚のスライドは、JaSST 15 Hokkaidoの基調講演で、高橋 寿一さんが『探索的テストってなんですか?』というタイトルで講演されたものの抜粋です。
とても良い内容なので、見ていない人は上記リンクをクリックして読まれることをおすすめします。
上記スライドの通り「セキュリティテスト」や「信頼性テスト」に対して探索的アプローチを取るのはおすすめできません。
ところで、ALTAシラバスでは、「性能問題やセキュリティ問題が、探索的テストで見つかることもある。」と書いてあるので、できる(やれ)と誤読しそうになるのですが、問題文に書いたとおり、(非機能テストは)探索的テストと分けて実施したほうが良いです。
ユーザーインターフェースのテストは、探索的テストの「スーパーモデルツアー」で探索的にテストするのもありですが、UIの機能的なバグが見つかるだけですので、ユーザーインターフェースのテストですら、全体設計は別途実施するほうが良いです。
前回の復習は以上として、今回のnoteのテーマに移ります。
≡ 欠陥ベースのテスト技法とは
ちょうど良い例がTwitterのTLに流れてきたので引用します。
このツイートは、ブラウザアプリのテストのときに役立ちます。
「ブラウザ特性テストパターン鉄板焼きセット」
と書いてありますが、JSTQBの技法区分で言えば今回の「欠陥ベースのテスト」の具体例といえます。
ブラウザアプリのテストのときに、「ブラウザバック、……、サイズ変更」をするとバグがみつかりますよね。
重要なポイントは、どのようなブラウザアプリであっても適用できるテストのテクニックであるということ。逆に言えば仕様書をベースとするブラックボックステストとは違う分類の技法であるということです。
以上のことから、EgaSaさんのツイート内容は「経験ベースのテスト技法」の一つである【欠陥ベースのテスト技法】でつくられたものです。
シラバスを見てみましょう。
自組織の開発物にバグがたくさん出ているようであれば、まずは、ここに書かれている「欠陥のタイプ、根本原因、故障の兆候、および欠陥に関連するその他のデータの一覧」のそれぞれの個数を数えて整理します。カラフルなグラフを作ると良いです。
≡ 欠陥ベースのテスト技法の適用
JSTQBのALTAシラバスの該当箇所の全文を引用します。
ブラウザの欠陥ベースのテストについてEgaSaさんの例を上に書きました。デザイナーからブラウザアプリUIのプロトタイプが納品されたときにそのテストをしても、システムテストでやり直す必要があります。ブラウザバックなど、内部の作り込みが必要だからです。
≡ 欠陥ベースのテスト技法の制限/注意事項、カバレッジ、検出できる欠陥の種類
JSTQBのALTAシラバスの50~51ページに書いてはあるのですが、「先進的なソフトウェアに対しては利用できる分類法が存在しないことがある」など、当たり前なことが書いてあるだけです。あまりに当たり前で説明することがないので割愛します。
≡ JSTQB ALTA試験対策
いつものことですが、まずは、「学習の目的」を確認します。
K2ですので、知識として理解していればOKです。(K2:理解、K3:適用、K4:分析)
答えは次回に書きます。
≡ おわりに
今回は、「欠陥ベースのテスト技法」がテーマでした。
自組織・チーム、あるいは、自プロジェクトで見つけてきたバグを記録している組織は多いと思います。ところが、バグを記録する目的が「リリースまでにバグを修正する。また、プロジェクトマネジメントの管理対象の一つとしてPMが管理する」しかないため、バグ分析をしようとしても必要な情報がバグ票に残っていないことが多いものです。
たとえば、「このバグはパートナー会社が作ったものだから根本原因の分析ができない」とか「このバグをつくったAさんは転職されてもういないから何もわからない」という場合があるということです。
欠陥ベースのテストをするために必要となる情報を開発者と真剣に議論してバグ票に必要な項目を埋め込みましょう。とはいえ、このときに、私が失敗したのは、必須入力項目をつくってしまったことです。必須入力項目があるということは、任意入力項目があるということです。
入力が任意の項目があると、“任意だから”と入力してもらえないということです。
ですから、そのバグ票のCloseできる条件に「全部の項目が埋まっていること」をいれてしまうことが有効です。バグ票の管理ツールもそのように作っておきましょう。
次回は、「3.4 最善の技法の適用」です。