はじめに
表題のテスト技法を学んだので、今回はこちらを記事にしてみたいと思います。
なお、この記事は以下の記事を前提にしていますので、
僭越ながら、先にこちらから見ていただければと思います。
テストは意地悪であれ
先述の記事にもありますが、『ソレはアタル』を用いることで、怪しい所をより見つけやすくなります。
これは探索的テストでしたり、
テスト分析におけるテスト観点の抽出でしたり、
はたまた仕様漏れの防止でしたり、
開発の様々なフェーズで応用可能なフレームワークとして機能してくれます。
とはいえ、
- 0の階乗のこと
- 小数点の階乗で数字が膨らんだ時のこと
- 負の数や分数の時のこと
- 00を許すのか
- 小数点は何桁目まで許すのか
- 数字以外を入れてみること
- etc...
テストをしようとしたり、テストケースを設計したり、
はたまた仕様を踏まえてプログラムを設計・実装する時に、
こう言った着想をそんなに容易に思い付かないことも多いはずです。
そんな時に効く考え方があります。
それは...
壊すつもりでテストをする
です。
または、
起こってほしくないことをテストする
です。
意地悪テストについて
そんなある意味、意地悪な視点に立ったテストをすることを『意地悪テスト』と言います。
そして、そんな意地悪テストで検証する条件のことを意地悪条件と言います。
意地悪条件は大別すると、
- 異常値
- 特異値
こちらがあります。
異常値とは、プログラムないしはソフトウェアが計算可能な閾値を超えるような異常な入力値のことを指し、
特異値とは、ゼロや文字列などの特別な処理を施す必要がある入力値のことを言います。
これら異常値、特異値を見出すために意地悪な人になりきって創造的にテストをする、ということです。
過去の経験値も活かせる
先述の記事の中に『類推』という視点がありました。
実はこれは応用が可能です。
今回のソフトウェア、機能、仕様、テスト対象といった具象的なものを一旦汎化可能な抽象的なものに変換し、
それに対して自身、ないしはチーム・組織の過去のトラブル経験、ナレッジに置き換えて想像してみる、
といった使い方が出来ます。
そうすると...
- めちゃくちゃ大きい数字などの異常な入力値
- メモリを少なくするなどのようなプログラムの実行環境を厳しくする
- テスト手順をめちゃくちゃにしてみる
- 何も知らない人にテストをしてもらう
- etc...
こんな色々な視点がどんどん出てくるかも知れません。
このように意地悪テストと言う観点に立って『ソレはアタル』を当てはめることで、
より創造的で網羅的なテストを実施することが出来ます。
参考