見出し画像

第297回: 「ALTAのテキストをつくろう」52 (最善の技法の適用)

◀前の記事へ 次の記事へ▶︎


≡ はじめに

前回は、「3. テスト技法」の「3.3 経験ベースのテスト技法」の「3.3.4 欠陥ベースのテスト技法」について書きました。

【欠陥】をテストに役立てるのは本当に難しいと感じています。

要するに、「開発者が間違えやすい箇所や間違えるパターンについて、過去の失敗から言えることはないか?」について真剣に取り組むわけです。
でも、間違えである誤認識が発生したのは人の頭のなかで、かつ、思い出したくないものでしょう。また、あまりに幼稚な間違えなら言いたくないという気持ちもよくわかります。

言いたくない理由のひとつは「心理的安全性」が確保できていないから。
心理的安全性が確保できていない組織で、自分のミスを話したら自分に不利益が発生するから。(⇦ 心理的安全性の定義の裏返しです。)

でも、声を大にして言いたいのは「そういう幼稚な間違いほど、回数が多く重要である」ということ。それを隠していたら組織のパフォーマンスは上がりません。だから心理的安全性は大事です。

心理的安全性について誤解されている人もチラホラいるので、補足します。
1番気をつけないといけないことは、「仲良し倶楽部」と「心理的安全性が保たれた組織」とは違うということです。

心理的安全性は、どんな発言に対しても相手の気分を害さないことを最優先に「いいねー」って言うことではありませんし、何を言っても出世に響かない組織のことでもありません。(前者は、いわゆる仲良し倶楽部ですし、後者については心理的安全性が確保された組織においても良い提案をする人が出世しますし、酷い発言ばかりの人は降格あるいは解雇されます。)
誰かが発した意見が自分の意見と違っていたら「自分はこう考えるんだけど」と安心して自分の意見を表明できることが心理的安全が確保されているということです。
もちろん、そこには相手の意見を尊重する土台があってのことです。また、当たり前ですが、反対の為の反対意見の表明や、相手をやりこめて優位に立つための発言と自由な発言とは違います。

それから、心理的安全性は、うさんくさいものでも宗教でもありません。心理的安全性は、リーダーがほんのちょっとだけ意識すれば実現するものです。逆に、リーダーは一瞬で自組織の心理的安全性を破壊できます。

あと、こらはIMFO(気になってググったら今IMFO通じないかも。“in my foolish opinion”です)なのですが、老害って「高年齢を主な要因として心理的安全性が個人レベルまで縮小している状況」だと思っています。

老害には知識を共有したいという思いがありません。年長者が若者の思いを汲み取ろうとすることもなければ、若者が年長者の知識を必要と思うこともありません。水と油です。
思考が飛ぶようですが、だから偉い人が心理的安全性を確保するために無意識のうちに駄洒落や親父ギャグを言うのだと思っています。わたしは偉くないから言わないけど。

詳しくは、提唱者のエイミー・C・エドモンドソン 教授が書いた『恐れのない組織』がおすすめです。

さて、幼稚な間違いの話に戻ります。「4, 23, 3, 25, 1, 2」をソートした結果が、「1, 2, 23, 25, 3, 4」となる欠陥があったとします。

いやー、文字で格納されているんだから、いったん、頭0をつけて「04, 23, 03, 25, 01, 02」という中間データをつくって、それをソートしてから頭0を削除して「1, 2, 3, 4, 23, 25」にすればいいんだよね。
知ってた知ってた。でも忘れてたんだよー。なんでだろうね。

恥ずかしくてこんな話したくないよ。それにみんな間違えないから情報共有をしたって意味ないって。

いやいやいや。みんな一度はやらかします。

誰でも間違えるから、みんなが使いやすい形でこの欠陥情報を整理してテストに役立てたいのだけれど、ソフトウェアの欠陥に対しては、たぶん誰も成功していません。ハードウェアの故障の場合はFMEAや田村さんのSSM(Stress Strength Model)がありますね。

田村さんは、にしさんと同じ飯塚研究室の出身です。ほぼ同世代の二人。

必要な技術は欠陥のモデリング技術と、知識情報の参照技術です。欠陥情報を生成系AIにため込んで、仕様書を読みこませたらコメントという形で添削してくれるやつとか誰か作ってほしいです。

閑話休題。前回の復習は以下で模擬試験問題の確認を通して行います。
そして、今回はJSTQBのALTAシラバスの「3.4 最善の技法の適用」について書きます。

キャッチイメージですが、「最善」で検索したら「最善の炒めなます」がでてきて、なんか違うけど気に入ったので、これにしました。美味しそう。



≡ 前回の復習

以下は前回出題したJSTQB ALTAの模擬試験問題を𝕏にポストした結果です。


𝕏によるアンケート結果

投票の結果、選択肢4の「システムからのエラー出力のパターンを全て集めるテスト」が44.8%と最も多かったのですが、正解は次点の3の「ウェブアプリをテストするときは、必ず行うテストを用意する」です。

そのジャンルならではの欠陥やそのプログラミング言語ならここ気をつけて(javascriptなら「自動セミコロン挿入」による欠陥とか)があります。
そこをノウハウとしてリスト化して使いまわそうというのが「欠陥ベースのテスト技法」です。これがわかっていれば解けると思います。

ところでふと、思い出したのですが、「欠陥のモデル」、自分もつくっていました。しかも、今見たら2014年に書いた『事例とツールで学ぶHAYST法』に書いていました……。(笑)
10年も前の話で、すっかり忘れていたので、思い出しつつ、ちょっと書いておきます。

「因縁果報の連鎖モデル」が正式名称です。書籍では連鎖の部分の説明をしていません。その代わりに金子龍三さんがオリジナルと書いてありますね。まずは、書籍にも書いた「因縁果報のモデル図」を示します。

『事例とツールで学ぶHAYST法』より

図中の「F-cost」は失敗コストのことなのですが、顧客に与えた「負の価値」も入ります。

さて、書籍には書いていない「因縁果報の連鎖モデル」の「連鎖」ですがこれは、因果関係の連鎖のことです。図では、欠陥(fault)が(原)因で、故障(failure)が(結)果となっていますが、欠陥をエラーの結果ととらえれば、「エラー(error)が因で、欠陥(fault)が果のモデル」を作れます。

さらに、「間違いやすい何か(Something that is easily mistaken)が因で、エラー(error)が果のモデル」も作れます。

整理すると、
 間違いやすい何か ➡ エラー ➡ 欠陥 ➡ 故障
の因果関係の連鎖です。それぞれに「縁」と「報」が追加されます。こういうの考えるの楽しくないですか?(私は結構好きです)

それで、このモデルで欠陥を整理してってところまでやりました。発表してはいません。
やり残した感があって時間が取れたら続きをやろうと思いつつCMMIのお仕事になって、すっかり忘れていました。バタバタしていた年でした。

前回の復習は以上として、今回のnoteのテーマに移ります。



≡ 最善の技法の適用

「最善の技法の適用」は、JSTQBのALTAシラバスの該当箇所が10行しかありません。そこで、全文を引用しつつ説明します。全部で3段落あります。

それでは、段落1から。

■ 段落1

ブラックボックステスト技法および経験ベースのテスト技法は、一緒に使用すると最も効果的である。経験ベースの技法は、ブラックボックステスト技法のあらゆる体系的な弱点に起因するカバレッジのギャップを埋める。

ブラックボックステスト技法は、モデルベースのものがほとんど(といいますか、JSTQBの分類ではユースケーステスト以外のブラックボックステスト技法は=モデルベーステスト技法)です。
モデルベースと言うことはカバレッジアイテムを明確に決めることができますので、補完できます。

おっと! ここまで書いたところで、シラバスをみたら、「ブラックボックステスト技法のあらゆる体系的な弱点に起因するカバレッジのギャップを埋める。」って書いてあります。逆じゃないですか。なんで?

原文を見てみます。
coverage、出てきません。><;

Black-box and experience-based test techniques are most effective when used together. Experience-based test techniques fill the gaps in achieving test objectives that result from any systematic weaknesses in black-box test techniques.

「カバレッジ」じゃなくて「test objectives: テスト(が達成すべき)目標」でした。

ブラックボックステスト技法はともすれば、一つの機能仕様に着目してシステムの目的が軽視され、なおざりになりがちだから、そこを経験ベースのテスト技法で補完しようということですね。


■ 段落2

すべての状況に対して完璧である技法は存在しない。テストアナリストは、各技法の長所と短所を理解し、プロジェクトの種類、スケジュール、情報へのアクセス、テスト担当者のスキル、および選択に影響する可能性のある要因を考慮して、特定の状況にとって最善の技法または複数の技法を選択できることが重要である。

There is not one perfect technique for all situations. It is important for the Test Analyst to understand the advantages and disadvantages of each technique and to be able to select the best technique or set of techniques for the situation, considering the project type, schedule, access to information, skills of the tester and other factors that can influence the selection.

ちょっと心配になって、原文も併記してみました。誤訳はなさそうです。

気になったのは、“set of techniques”を「複数の技法」と意訳しているところかな。単に複数と言うよりも何かの意図をもって集められた技法のセットを組み合わせて使うのなのだと思います。


■ 段落3

ブラックボックスおよび経験ベースの各テスト技法の説明において(それぞれ3.2節および3.3節参照)、「適用」、「制限/注意事項」、および「カバレッジ」で説明されている情報は、適用する最善のテスト技法をテストアナリストが選択するのに役立つ。

In the discussion of each black-box and experience-based test technique (see Sections 3.2 and 3.3 respectively), the information provided in “applicability”, “limitations/difficulties” and “coverage” guides a Test Analyst in selecting the most appropriate test techniques to apply.

それぞれの技法で書いている、「適用」、「制限/注意事項」、「カバレッジ」を使って最善のテスト技法を選択するようにと言うことです。



≡ JSTQB ALTA試験対策

いつものことですが、まずは、「学習の目的」を確認します。

TA-3.4.1 (K4)与えられたプロジェクト状況に対して特定のゴールを達成するためにブラックボックステスト技法または経験ベースのテスト技法のどちらを適用するかを決定する。

ALTAシラバス30ページ

ブラックボックステスト技法以来のK4ですので、ガッツリ実践できることが求められます。

(K2:理解、K3:適用、K4:分析)

《問題》
 与えられたプロジェクト状況に対して特定のゴールを達成するためにシラバスの各技法の特徴として説明したものではないものを選びなさい。

1. 適用
2. 制限/注意事項
3. カバレッジ
4. コスト

答えは次回に書きます。



≡  おわりに

今回は、「最善の技法の適用」がテーマでした。

K4の割に説明が少ないので、『これでいいの?』とも思いますが、テストは、その時々の与件によって何が最善かが変わりますので、書きにくいのかもしれません。

さて、今回でALTAシラバスの「3. テスト技法」は終わりです。
次回は久しぶりの箸休め回です。

次回は第1回 JAQシンポジウムの飯塚先生の講演が良かったので、他に思いつかなければその話にしようかなと思っています。飯塚先生のスライドは43ページもある(付録も合わせるとさらに20ページ程度ある)ので特に重要と思った個所に絞って自分のための整理をしておきたいと思います。

そして次々回から「4. ソフトウェア品質特性のテスト」に入ります。非機能のテストの話が中心となる予定です。

この記事が気に入ったらサポートをしてみませんか?