こんにちは。HumanCrestの荒川です。
今回はリスクベースドテストの話です。
リスクベースドテストとはざっくり説明すると、
「ヤバいとこからテストして優先的に解決していこうぜ」
といったスタンスで挑むテスト技法です。
「ヤバい」というのがいわゆる”リスク”と呼ばれるもので、具体的にいうとソフトウェア開発の世界では下記のようなものがあります。
◆欠陥を作り込んでしまう可能性(=バグありそうだなって箇所)
例1:関連モジュールが多岐にわたるためインターフェースに不整合がある可能性が高い
例2:仕様がいささか複雑でコードの複雑度が高い
◆欠陥によって引き起こされる障害の重大性(=もし起きたら非常に痛いなっていう障害)
例1:ユーザに不利益をもたらすような障害
例2:金銭がかかわってくる障害
こういった箇所からテストをしていく事で重大なバグの早期発見に取り組んでいく営みがリスクベースドテストです。
リスクベースドなテストは、テスト実施前に対象システムの具体的なリスクを洗い出して優先度付けなどを行ういわゆる「リスク分析」を行い、それを基にリスクをつぶしこんでいくといった工程を踏みますが、テスト対象が小規模であったり日程的にみてそういった作業にコストがかけられないといったシチュエーションはしばしばあるかと思います。
かくいう私もアジャイル開発の現場でQA業務を行っており、こまごまとしたバグフィックスや緊急対応などのテストに対して、リスクを分析する時間などは取れない事がほとんどです。
そんな場合はリスクベースドテストの実施が不可能なのかというとそうでもありません。
私はどんな規模のテストでも、実施前に必ず関係者に対して下記の言葉を投げかけるようにしています。
『どこからテストしましょう?』
これは私が勝手に”テストの師”と仰いでいる現場のテストマネージャーの方から教えていただいた言葉ですが、「簡易的なリスクベースドテスト」を実施するという観点では非常に有効です。
QA「どこからテストしましょうかね?」
開発者A「○○機能周りが心配だからそこらへんからやりたいですね」
企画A「これ△△機能がこけてたら損害賠償ものですよね、修正も時間かかるだろうし」
QA「では○○と△△あたりから優先的に実施しますね」
企画A「そういえばこの改修って□□を考慮してます?」
開発者B「おっと・・・」
といった感じで優先的に実施すべき箇所を引き出すだけでなく、仕様の検討漏れや実装漏れなども検出できたりする事もよくあります。
まとめるとこんな感じでしょうか。
■従来のリスクベースドテスト:
・リスク分析
・テスト設計&優先順位の決定
・テスト実施~終了
■世界で一番やさしいリスクベースドテスト:
・キーパーソンへのヒアリング→『どこからテストしましょう?』
・テスト実施~終了
もちろん後者の方法ではリスクベースドテストの要件を100%満たす事はできません。
しかし最小限のコスト(たった一言)でハイクオリティなアウトプット(テスト対象のリスク)を得るという点では非常にコストパフォーマンスが高い方法と言えます。
ある意味経験ベースのテストととらえる事もできるかもしれません。
また、この時に得たナレッジはテストオラクルとして纏めておく事によって次回以降も再利用が可能な状態にもなります。
『どこからテストしましょう?』
面白そうじゃんと思った方、ぜひぜひ使ってみてください。

1件のコメント
ただいまコメントは受け付けていません。