ソフトウェアテスト講義ノオト: ASTERセミナー標準テキストを読み解く の 4.5 経験ベースのテスト技法 (1) エラー推測(P.191)に、このように書かれています。
推測は、「テスト担当者の経験、欠陥や故障のデータ、ソフトウェアが不合格となる理由に関する一般的な知識」にもとづいて行います。逆にいえば、経験と知識が貧弱であれば良い推測はできません。エラー推測によるテストで良い結果を出すためには、深い経験と高度な知識が必要ということです。これは、他の「経験ベースのテスト技法」でも同様です。
どうすれば、深い経験と高度な知識が身につくかというと、一件一件のバグを大切にするしかないと筆者は思います。具体的には、テストしてバグを見つけて直ってきたら、その原因について自分が納得するまで理解するの繰り返しです。
”どうすれば、深い経験と高度な知識が身につくか”の具体的な方法が「その原因について自分が納得するまで理解する」というのは、自分の感覚とも合っていて、普段やっていることと一致します。
中でも、わたしが注目しているのは、自分以外の人が見つけたバグで、かつ、自分では見つけられなかった(だろう)と思うバグです。このバグから「自分に足りないもの」が具体的にわかります。システム間のインターフェースやソフトウェアの設計や実装だけでなく、製品に関する知識(たとえば、ある特定分野の臨床医学)、どこにも明記されていない現場での実際の使われ方の理解、テストのうまいやり方や狙いどころ(たとえば、特殊なテスト画像をどこでどう使うか)、さらに、そのバグを見つけた人の製品開発にたいする姿勢(たとえば、医学文献を探して読んで自分なりの裏付けをとっている)などなど。さまざまなことに気付かされ、そこから学び、真似してみたいことが見つかります。
ここまでの文章を読んで「たしかにそうだな。自分もやってみようかな」と思った方がいるかもしれませんね。これを実際にやると、毎日「自分のわかってなさ」に向き合うことになります。人によっては辛い作業です。
わたしは、自分で見つけたバグについては、早いうちから「その原因について自分が納得するまで理解する」ことができていました。が、自分以外のテスターやプログラマーが見つけたバグについては、そこまで熱心に研究することができませんでした。いくつか理由はありますが、自分のわかってなさにいちいち向き合うのが苦痛でしたので、それが(すくなからず)自身の行動に影響していたと思います。
現在は「自分がなにもかもわかるなんてあり得ない」「わたしのくせに」と思っています。思っていますというか、実際そうなんです。当時の自分はなんて思い上がっていたのでしょうか。本当に恥ずかしいです。わたしたちは、誰でも簡単にわかるような製品なんて作ってないですし、だからこそ、多くの人たちが知恵を出し合って開発しているのです。よく考えてみればわかることでした。
追記(2023-05-06)
ソフトウェアテスト講義ノオト: ASTERセミナー標準テキストを読み解く の元はnoteの連載で、ソフトウェアテスト技術振興協会の「ASTERセミナー標準テキスト」を著者の秋山浩一さんが講義するとこんなことを話す、という内容を書籍化したものです。
本記事で話題にした経験ベースのテスト技法は、こちらから読むことができます。
書籍を購入しなくてもnoteで読めるのですが、ノオトの作成コンセプト に書いてあるように「ウェブサイト(note)を読むよりも、本で読んだほうがわかりやすく、学習しやすい」です。
noteにはいくつか罠があります。たとえば、埋め込まれているツイートをクリックしてしまうと、そちらの議論も面白くて、しばらくnoteに戻れなくなったりします。それはそれで良いのですが、タイムパフォーマンス(タイパ)を気にして学習したい場合は、書籍をおすすめします。