愛すべき不完全なテストケースについて

「完璧なテストケースなどといったものは存在しない。完璧な絶望が存在しないようにね。」村上春樹さん風 (『風の歌を聴け』より)

 

わたしはテストケースに完璧を求めていない派だけど、こうなる前までは”完璧”とか”漏れがない”とか…なんだろう理想のテストケースを追い求めていたように思います。

だから手を動かしてテストする時間より、理想のテストケースを作るために考える時間のほうが多くなる日もあって(テスターなのにテストしてないのでは!)と不安になることもありました。

何をどれくらいの密度や深さで、どのようにテストしたらよいのか、強弱は?テストする順番は?…それらを考えることもテストの一部なんだけど、やはり実際にシステムやソフトウェアを触って動かして、はじめてテストの価値が生まれるというか、生を与えられたように感じてしまう。

とにかく漏れのない完璧なテストケースを作って、きちんとテストしたい!と言う気持ちが強かったのは確かです。

 

そんなわたしが、なぜ、完璧なテストケースを求めなくなったのか、それで平気でいられるようになったのかを考えてみました。


1. イテレーション開発がそれを許してくれなかった

完璧なテストケースを考えてると、あっという間に開発に置いていかれます。

考えてみればウォーターフォールでの開発だって時間の制約があるんだから同じなんだけど、毎日、毎週締め切りがあるのは大きい。

で、どれくらいのスピードかと言うと、JSTQBシラバスに載ってるテストプロセス(テスト計画、テスト分析、テスト設計、テスト実装、テスト実行、評価&レポート)を短いときは1日で全部やるイメージです。とにかく今のチームの開発のスピードがめちゃくちゃ早いので、テストのサイクルも必然的に早くなります。

 

開発手法のせいで、完璧なテストケースを作らせてもらえないわけですからね、さぞかしモヤモヤするんだろうな…と思いきや、そうでもなかった。だいぶ適当な人間なんだなぁとあらためて思いました。*1

 

2. 不完全さが新しいテストケースをつくる

すでに存在するテストケースをそのまま実行してもバグはほとんど見つかりませんが、そのテストケースに対する疑問やテストの不足を補うようなテストをすることで、バグを見つけることができます。*2
プロダクト(テスト対象)の品質自体も大きく関係しそうですが、わたしたちのチームで見つかるバグのほとんどがこれです。

またチームのメンバーが完璧なテストケースではないことを知っていて、それを容認していることも大きいと思います。開発しながらテストケースも一緒に育つ感じ。子供を育てながら、親も一緒に成長するのと似ています。そこには愛がありますね。

 

3. 完璧なテストケースは存在しないことを受け入れた

1と2がわたしの中では大きいのですが、最後にこれも。

でも諦めているわけではないんですよね。より良いテストを目指して、不完全なテストケースと共に、これから先もまだまだ新しいテストケースを開発していくし、イテレーション開発に組み込んでみたい中長期のテストケースもある。だから(完璧なテストケースは存在しないんだから)やり過ぎに注意しなさいよ!くらいに思えるようになったんじゃないかな、と。

 

テストケースについて書いてみたくなったのは、これを読んだからでした。残り2回も楽しみです。

 

 

 

*1:適応能力が高いことにしたい。

*2:このことは多くの人がそう感じているようなので、そろそろこの現象に名前をつけてもいいと思う。