第297回: 「ALTAのテキストをつくろう」52 (最善の技法の適用)
◀前の記事へ 次の記事へ▶︎
≡ はじめに
前回は、「3. テスト技法」の「3.3 経験ベースのテスト技法」の「3.3.4 欠陥ベースのテスト技法」について書きました。
【欠陥】をテストに役立てるのは本当に難しいと感じています。
要するに、「開発者が間違えやすい箇所や間違えるパターンについて、過去の失敗から言えることはないか?」について真剣に取り組むわけです。
でも、間違えである誤認識が発生したのは人の頭のなかで、かつ、思い出したくないものでしょう。また、あまりに幼稚な間違えなら言いたくないという気持ちもよくわかります。
言いたくない理由のひとつは「心理的安全性」が確保できていないから。
心理的安全性が確保できていない組織で、自分のミスを話したら自分に不利益が発生するから。(⇦ 心理的安全性の定義の裏返しです。)
でも、声を大にして言いたいのは「そういう幼稚な間違いほど、回数が多く重要である」ということ。それを隠していたら組織のパフォーマンスは上がりません。だから心理的安全性は大事です。
さて、幼稚な間違いの話に戻ります。「4, 23, 3, 25, 1, 2」をソートした結果が、「1, 2, 23, 25, 3, 4」となる欠陥があったとします。
いやいやいや。みんな一度はやらかします。
誰でも間違えるから、みんなが使いやすい形でこの欠陥情報を整理してテストに役立てたいのだけれど、ソフトウェアの欠陥に対しては、たぶん誰も成功していません。ハードウェアの故障の場合はFMEAや田村さんのSSM(Stress Strength Model)がありますね。
必要な技術は欠陥のモデリング技術と、知識情報の参照技術です。欠陥情報を生成系AIにため込んで、仕様書を読みこませたらコメントという形で添削してくれるやつとか誰か作ってほしいです。
閑話休題。前回の復習は以下で模擬試験問題の確認を通して行います。
そして、今回はJSTQBのALTAシラバスの「3.4 最善の技法の適用」について書きます。
≡ 前回の復習
以下は前回出題したJSTQB ALTAの模擬試験問題を𝕏にポストした結果です。
投票の結果、選択肢4の「システムからのエラー出力のパターンを全て集めるテスト」が44.8%と最も多かったのですが、正解は次点の3の「ウェブアプリをテストするときは、必ず行うテストを用意する」です。
そのジャンルならではの欠陥やそのプログラミング言語ならここ気をつけて(javascriptなら「自動セミコロン挿入」による欠陥とか)があります。
そこをノウハウとしてリスト化して使いまわそうというのが「欠陥ベースのテスト技法」です。これがわかっていれば解けると思います。
ところでふと、思い出したのですが、「欠陥のモデル」、自分もつくっていました。しかも、今見たら2014年に書いた『事例とツールで学ぶHAYST法』に書いていました……。(笑)
10年も前の話で、すっかり忘れていたので、思い出しつつ、ちょっと書いておきます。
「因縁果報の連鎖モデル」が正式名称です。書籍では連鎖の部分の説明をしていません。その代わりに金子龍三さんがオリジナルと書いてありますね。まずは、書籍にも書いた「因縁果報のモデル図」を示します。
図中の「F-cost」は失敗コストのことなのですが、顧客に与えた「負の価値」も入ります。
さて、書籍には書いていない「因縁果報の連鎖モデル」の「連鎖」ですがこれは、因果関係の連鎖のことです。図では、欠陥(fault)が(原)因で、故障(failure)が(結)果となっていますが、欠陥をエラーの結果ととらえれば、「エラー(error)が因で、欠陥(fault)が果のモデル」を作れます。
さらに、「間違いやすい何か(Something that is easily mistaken)が因で、エラー(error)が果のモデル」も作れます。
整理すると、
間違いやすい何か ➡ エラー ➡ 欠陥 ➡ 故障
の因果関係の連鎖です。それぞれに「縁」と「報」が追加されます。こういうの考えるの楽しくないですか?(私は結構好きです)
それで、このモデルで欠陥を整理してってところまでやりました。発表してはいません。
やり残した感があって時間が取れたら続きをやろうと思いつつCMMIのお仕事になって、すっかり忘れていました。バタバタしていた年でした。
前回の復習は以上として、今回のnoteのテーマに移ります。
≡ 最善の技法の適用
「最善の技法の適用」は、JSTQBのALTAシラバスの該当箇所が10行しかありません。そこで、全文を引用しつつ説明します。全部で3段落あります。
それでは、段落1から。
■ 段落1
ブラックボックステスト技法は、モデルベースのものがほとんど(といいますか、JSTQBの分類ではユースケーステスト以外のブラックボックステスト技法は=モデルベーステスト技法)です。
モデルベースと言うことはカバレッジアイテムを明確に決めることができますので、補完できます。
おっと! ここまで書いたところで、シラバスをみたら、「ブラックボックステスト技法のあらゆる体系的な弱点に起因するカバレッジのギャップを埋める。」って書いてあります。逆じゃないですか。なんで?
原文を見てみます。
coverage、出てきません。><;
「カバレッジ」じゃなくて「test objectives: テスト(が達成すべき)目標」でした。
ブラックボックステスト技法はともすれば、一つの機能仕様に着目してシステムの目的が軽視され、なおざりになりがちだから、そこを経験ベースのテスト技法で補完しようということですね。
■ 段落2
ちょっと心配になって、原文も併記してみました。誤訳はなさそうです。
気になったのは、“set of techniques”を「複数の技法」と意訳しているところかな。単に複数と言うよりも何かの意図をもって集められた技法のセットを組み合わせて使うのなのだと思います。
■ 段落3
それぞれの技法で書いている、「適用」、「制限/注意事項」、「カバレッジ」を使って最善のテスト技法を選択するようにと言うことです。
≡ JSTQB ALTA試験対策
いつものことですが、まずは、「学習の目的」を確認します。
ブラックボックステスト技法以来のK4ですので、ガッツリ実践できることが求められます。
(K2:理解、K3:適用、K4:分析)
答えは次回に書きます。
≡ おわりに
今回は、「最善の技法の適用」がテーマでした。
K4の割に説明が少ないので、『これでいいの?』とも思いますが、テストは、その時々の与件によって何が最善かが変わりますので、書きにくいのかもしれません。
さて、今回でALTAシラバスの「3. テスト技法」は終わりです。
次回は久しぶりの箸休め回です。
次回は第1回 JAQシンポジウムの飯塚先生の講演が良かったので、他に思いつかなければその話にしようかなと思っています。飯塚先生のスライドは43ページもある(付録も合わせるとさらに20ページ程度ある)ので特に重要と思った個所に絞って自分のための整理をしておきたいと思います。
そして次々回から「4. ソフトウェア品質特性のテスト」に入ります。非機能のテストの話が中心となる予定です。
この記事が気に入ったらサポートをしてみませんか?