90. テストの目的 その②
欠陥や故障を発見し、ソフトウェアの品質が不適切になるリスクレベルを軽減する
「バグの発見」と書いたけど、シラバスに書かれている文章は上記の通り。
バグを見つけて、それを修正することで市場に出たときのリスクを軽減することができます。
「おいおい、見つけまくって全部直すのかよ!?」みたいに言う人もいるけど、これはまた別の回の「ステークホルダーへの意思決定のための情報提供」の話でやろうとも考えています。
先出しすると、見つけたバグについては「こういうリスクがあるよ」ということがわかるわけです。
そのうえで、どこまでリスクを許容するのかという考え方もあります。
「これだと大きなリスクはないし、次のスプリントで修正」ってことも全然ありなワケです。
けど例えばカーナビみたいな市場に出た後直せないやつだと、次、がなかったりもします。
ユニットテスト、統合(結合)テスト、システムテスト段階ではなるべく多くのバグを見つけまくる、がどのみち幸せかと思います。
そして修正することで市場に出たときのリスクレベルを下げることができます。
バグを見つける
マンガにも描いた通り、バグはどこにいくつあるかわかりません。
そこで知識、スキル、経験がないと闇雲にトライすることになります。
雰囲気でテストし始めます。
仕様書にある操作を何度も繰り返します。
人海戦術とかに走ります。
そして残念ながら「テキトーに触りまくればバグが出る」って類のものでもなかったりするので
「こんなに工数をかけたのになぜなんだー!」
となります。
テストは知識、スキル、経験がモロにでるワケです。
ちなみにテストは
「知恵の総合格闘技」
なんて呼ばれ方もしたりしますよw
エラー、欠陥、故障
テスト系のお堅めの文章を読んでいると、我々がバグと呼んでいるものが細かく分かれています。
この辺の話も書いておきます。
エラー
「間違った結果を生み出す人間の行為」と定義されています。
まぁ、人のミスってやつをエラーと呼ぶよ、って感じです。
寝不足でコード書き損じたとか、マージ忘れてリリースかけちゃったとか。
欠陥
「作業成果物に存在する、要件または仕様を満たさない不備または欠陥」と定義されています。
埋め込まれたバグとかを指します。
人のミスによって、なんか変なもん埋め込んじゃったとかそういう感じです。
なので「エラーによって欠陥が埋め込まれる」みたいな流れになります。
故障
「コンポーネントやシステムが定義された範囲内で要求する機能を実行しないこと」と定義されています。
日常でもよく使う「この機械さ、故障してるんだけど。全然動かない」の故障と同じです。
欠陥は埋め込まれた状態で潜んでるんだけど、それが実行されて初めて故障となって現れるわけです。
***
まとめると
「エラーで欠陥を埋め込み、その欠陥部分が実行されて故障が発生する」
といった流れですね。
なんでこんな細かく呼び方わけてるの?ってなるかと思います。
細かく分かれてた方が小回りがきいたりするんですよね。
わかりにくく言うと「野菜の話」をしようとすると、みんな想像する野菜はそれぞれでうまく話がまとまらないけど「ブロッコリーの話」というとみんな想像するのはそろったりするわけです。
「バグの話」というと漠然としてるけど「エラーの話」というとちょっとはフォーカスがそろうというものです。
話はそれるけど他こういうのがありそうなのは「自動化の話」というとE2E自動テストを考える人もいるけど、ユニットテストのことを考える開発の人もいて、この二人が話をするとアンジャッシュのコントになります。
ドメイン知識
たぶんIT系をやってると「ドメイン知識」なんて言葉はよく登場するかと思います。
ドメイン知識は特定の分野の専門知識のこと。
医療系なら「医療系のドメイン知識」なんて言ったりしますね。
「医療系の知識」でも意味はほとんど同じですw(病気自体とかそっちの知識ではなくITで使いそうな知識ってなりそう)
テスターのスキルセット
あれこれ書いたけど、まずは
テストの知識
が一番大切です。自分の領域だし。
最初は自分担当の業務をしっかり覚えましょう。
そこでわからないことは一つずつ先輩に聞いたり社内サイト検索してつぶしていきましょう。
外に目を向けるのはその地盤を固めてからでいいです。
というか固めてからがいいです。
自分のところのやり方の良しあしが見えなくなるので。
で、外のことを知るにはこの辺かな
さらに学びたい欲張りさんはconnpassでテストっぽい勉強会を探して出席してみるのと良いです。
最近はオンライン化によってかなり出席のハードルは下がっています。
時間になったらzoomをつなげば発表が流れてきます。
話を聞き逃したらTwitterで「ハッシュタグ」を追うと、要点をつぶやいている人が割といるのでそれを見ると良いです。
さらにさらに学びたい人はTwitterをやって、テストの困ったことをつぶやけばいいです。
さらっと言っただけで、割と拾ってくれる人がいたりしますw
PJ
PJはここではプロジェクトの略。
海外だと「PJs」でパジャマの略らしいよ!
パロ
作者、実は空島までしか見てない……