はじめに
現在、アプリ開発者としてプロダクトの持続的な成長や
ユーザーへのコミットに寄与するためにも、
SDLC全体を見渡して開発をすること、
および、それにはテストに関する体系的な知識が必要だと考え、
それを効率良く学べるJSTQB Foundation Levelの資格試験の勉強をしており、
そこでのインプットを記事にしたいと思います。
今回はその中でも「テストの7つの原則」の一部について
記事にしたいと思います。
なお今回記事は
テストは欠陥があることは示せるが、欠陥がないことは示せない
こちらの原則について記事にしてみようと思います。
テストは欠陥があることは示せるが、欠陥がないことは示せない
皆さんは「悪魔の証明」という言葉を耳にしたことはありますでしょうか?
誰かに
「悪魔がいることを証明せよ!👿」
と言われたら、1体でも良いので何処かから見つけてくれば証明完了ですよね💯
でも...
「この世界に悪魔がいないことを証明せよ!」
このように言われてしまうと、途端にその証明は難しくなります。。。
なぜなら、世界中隈なく探すことは現実的には不可能だからです😅
プロダクトのテスト、および欠陥との関係性についてもこれは同じです。
テストを実施することで
「欠陥がある!」
と言ったことは示せますが、
テストによって
「欠陥がない!」
と言ったことは示せません。
なぜなら、テストプロセスやテストレベル、テストタイプのうち、
実施してpassした部分に関してはそれを保証できても、
検証していない部分に関してはノータッチなので、
「欠陥がない」とは言い切れないからです。。。
故にこれは次回のテーマである「全数テストは不可能」にも通じるのですが、
そのプロダクト自体やその機能において
最もクリティカルな部分や優先度が高い部分について、
テスト技法などを用いて重点的にまたは効率的にテストを行うことで
そのプロダクトの品質をそのスコープにおいては保証する、
または求められる品質のレベルを事前に決めておき、
それを満たすように実装と検証を重ねる、
と言った合理性が重要になってくるかと思われます🤔
参考