テストとQAとデバッグの違い
動機
『テスト』『QA』『デバッグ』という3つの単語は同業者の間で明確に区別されているが、同業者以外には混同されがちだ。
これらの単語をよく使うIT業界の人の方が積極的に混同している節すらあるし、なんなら最近は質問と回答、すなわちQ&AをQAと呼ぶ勢力まで現れて大変だ。デジタル庁を筆頭に。
いろいろ理由を考えたが「単純に知られていないだけでは?」と思ったので、改めて定義するためにこの記事を書いている。
免責事項
話をわかりやすくするために、省略した部分が多々ある。
テストとは?
同業者の間ではバイブルとも呼べるJSTQBのFoudation Levelシラバスを当たろう。
ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2023V4.0.J02
ソフトウェアテストは、欠陥を発見し、ソフトウェアアーティファクトの品質を評価するための一連の
活動である。(16ページ 1.1 テストとは何か? 第2段落)
重要な部分を抜き出そう。
欠陥を発見し、品質を評価する活動である。
システムのバグを見つける。システムの質が良いか判断する。
前者ばかり注目されがちだが、後者も重要な活動である[1][2]。
QAとは?
こちらもJSTQBのFoundation Levelシラバスを当たろう。
プロセス志向の予防的アプローチ
QA は、プロセスの実装と改善に焦点を当てた、プロセス指向の予防的アプローチである。(18ページ 1.1.2 テストと品質保証(QA) 第3段落)
『プロセス志向』の明確な定義は見つけられなかったが、個人的には『ものごとの進め方』に着目する考えだと思っている。
バグを検知したら直して終わりではなく、『どこで混入したか?』『どこで検知したか?』『同じミスを繰り返さないためにどうするか?』を検討して実行に移すのがプロセス志向であろう[3]。
『予防的アプローチ』は読んで字のごとく、起きてからではなく起きる前に手を打つアプローチだ。
これには、どんな価値があるのだろう?
二つの場合を例に考える。
テストでバグが発見・修正されたケース
内容によっては、『再要件定義』も必要だろう。更にコストが増える。
そしてもっと悪いケースがある。利用者がバグを発見したケースだ。
対応者から恨み言は言われるだろうが、報告してもらえたなら御の字だ。修正できる。
対応によってはむしろ高評価を受けるかもしれない。
最悪のケースは、バグを発見した利用者が黙って離れていくケースである。
最悪だが、当然の帰結だ。
バグを見つけて直すのは開発者の仕事であって、顧客はそれに付き合う義理も道理もないのだから。
バグを予防できたケース
単純に、再実装と再テストのコストが減る。当然の帰結だ。
身も蓋もない話だが、発生させなければ直す必要もないし、流出する心配もない。
ここを目指すのがQA、プロセス志向の予防的アプローチである。
テストと修正は重要だが、対症療法ともいえる。
発症してから治すより、発症しないように行動を整える方が楽だし安全だ。
QAとテストの関係
『QA』は『テスト』を内包する。
『システムのどこにバグがあるか』『どのプロセスでバグを埋め込んだか』『どこで検知したか』というテストで得られる情報は、QAに必要だからだ。
デバッグとは?
例によって、JSTQBのFoundation Levelシラバスを当たろう。
デバッグの関心ごとは、故障の原因(欠陥)を発見し、その原因を解析し、原因を取り除くことにある。(17ページ 1.1.2 テストとデバッグ 第2段落)
随分とシンプルだ。『テスト』『QA』と比べて、JSTQBのデバッグに対する言及は少ない[5]。
語源も明白で、否定の接頭辞『de-』にプログラムの誤りを指す『bug』がついたものである。
雑なまとめ
テストは『見つけること』で、QAは『発生させないこと』で、デバッグは『直すこと』である。
よって混同などもってのほかだし、『デバック』なんて言おうものなら二重にもってのほかである。
なぜ混同されるのか?
ゲーム業界では『ゲームをプレイし、バグを見つけること』もデバッグと呼ぶことがあるらしい。
このことが『テスト』と『デバッグ』の混同を招く。
そして同業者でない人の「QAって人たちは、テストを仕事にしているらしいぞ」→「テストってつまりデバッグだよね」→「じゃあ、デバッグとテストとQAって同じなんだ」
という認識に繋がっていると推測する。
おわりに
- 知らなかった人は覚えて帰ってください。
- 知ってた人は知らない人に教えてあげてください。
- 同業者もそうでない方も、ご意見やご感想をぜひコメントで教えてください。
- 興味が湧いた人は、JSTQB Foundation Levelの取得を目指して勉強してみてください。合格したらだいたいの現場に入れます。
Discussion