読んだ経緯
業務上、誰かの開発した内容をQAする機会があります。
メインのユースケースやよくあるCRUD的な確認だけならささーっとテストケースも列挙できてQAもすぐに終わります。 しかし、お客さんに提供できるかどうか、スムーズに使ってもらえるかというのを確認する工程なので、もうちょっと突っ込んで「良いものができました」と言いたい。し、バグなんか絶対出したくない。そう考えると「基本的には問題なかったけど、本当に大丈夫かなーって思ってる状態でQA終わりましたって言いづらい!とにかくあれこれ試してみよう。よくわからんけど!」となったりしていました。
その結果、たくさんの変数を考慮した膨大なテストケース苦しんだり、手元にチェック観点を用意してもそうではなく何気なく触った操作の方が(割と重大な)バグが出てくるなど場当たり的になんとかなったりしていることに限界を感じていました。
つまり「QAするにも戦略・戦術が必要」という課題感がありました。そこで、どういうテストの進め方があるのかを知ろうと思って本書を手に取りました。
感想
テスト技法も銀の弾丸はないのだな、と思いました。 しかし、単体で銀の弾丸にはならなくとも、複数の手法・観点を組み合わせたり使い分けたりすることで「最小のコストで最大の成果を出す」ことは可能なのだろうという手応えを覚えました。
また、本書で紹介されている一連のテスト技法は「テストにしか使えない技法」なのではなくて、要件定義や実装時の(大小様々な規模の)設計時に使うことができるものだとも思いました。 どの技法でも「こういう結果になるはず」というものを明らかにする作業がありますが、単純な例で言うと「AかBならばA’ということだけ決まっている。ではAでもBでもないときはどうなるか」のような感じです。
学びや気づきがあり面白かったですが、あまり理解できなくて読み流してしまう箇所もちらほらあってまだ浅くしか読み進められなかった感じもあるので実践と読みかえしを交互にやっていきたいと思う一冊でした。