テストについて
毎月無理して記事を書こう、で書いております。
若い人が「網羅的なテストをしてください、あんまり時間が無いけど」みたいなことを言って、
偉い(というかスケジュールプレッシャーに負けない)人に説教を受けていた。
気をつけろ「網羅的なテスト」
テストは、これ以上「バグが見つけられない」ことを証明するために行うもの
やったテストのみ、大丈夫って言える。完璧なテストはできない。
こういうのは普通なのですけど、
でも、だいたい偉い人が言うんですよ。「網羅的にテストしてください」
どうしたらいいのでしょうか?知らないふりしてわざと言っているのでしょうか?
結局、上下関係で押し通されて、テストの網羅を求められ苦しい展開に。
「網羅=完璧」と考えると苦しい。
網羅は「どういう網の設計をしますか?」って考えると良い。
磁石性の網なら鉄をキャッチできるとか。どういう不具合を狙い撃ちするか、そういう作戦。
「ちゃんと網羅しろ!」って言われたら、(先輩からって言われた場合に記載)
テスト設計で、何が抜けているか指摘してもらうのがいいのでしょうかね。
テストの網羅については、「説明できてご理解いただけるかどうか」って話かもしれません。
お互いに網羅の認識を合わせたらいいんでしょうかね。
「任せた!」「いい感じで!」っていうやつもいますね。。。
絶対後出しで文句言われるので、先に合意取った方がいい。
自分で解のイメージを持ってない人こそ先に合意取っておいた方が良い。
ちなみに、「カバレッジ100%」って言うパターンもあります。
エラー処理を書かなければカバレッジ率が上がりますか???
そういう正しいことを阻害するような呪縛はきついと思うなあ。
網羅的なテストは、どう考えたか説明できる必要があるんだと思う
テストの経済性
無限にテストはできない。
売上1億円のソフトに、10億円分のテストをするか???
(テストに限らないけど)経済的な制約がある。
デバッガでエラーに流してフローを変えて見ましょう、くらいは納得するけど。
時間くれたらやりますけど、(経済的な制約で)時間もらえないことが多い。
相談できる開発部隊なら、リーダーにいい塩梅に導いてもらえますでしょうか。
テストの前にそもそもコードを多く書くな。
減らす方を頑張った方がいいと思う、とくに要求仕様。
テストは、経済性の側面がある
理想は??
△△の観点でテストすると○○円くらいです。
で、どれをいたしましょうか?って感じ。
(期待される効果を求められるかも???)
少なくとも、△△の観点ではやりました!って言える。
選ばなかった観点では実施してない、△△の観点では見つからなかった問題です。とも言えるか。
「それで大丈夫?」って(無責任に)言ってくるかも。
本当はこっちのテストもしたかったのに、なんて局面あるかな。
そうしたら「お金ください」って言いますか。。。
「大丈夫かどうか一緒に考えてください」かなあ。。
ソフトウェア開発の上長の皆様、開発者は一生懸命頑張りますので、最後は責任取ってください。
Discussion