自動テストチュートリアル

Playwright、Seleniumなどの自動テストツールを学ぼう

自動テストの基本的な考え方

自動テストはテストを成功させることが目的ではありません。

自動テストを、私たちのアプリケーションの健康状態をチェックする「精密な健康診断ツール」だと考えてみてください。

もし、この健康診断ツールが、どんなに体調が悪くても常に「健康です(テスト成功)」という結果しか出さなかったとしたら、そのツールに意味はあるでしょうか?私たちが知りたいのは、本当に健康なのか、それともどこかに問題があるのか、という真実です。


テストコードも全く同じです。

例えば、ボタンが表示されるのに10秒もかかってしまい、ユーザーにとっては非常に不便な状態だったとします。しかし、テストを成功させるために「ボタンを押す前に30秒間待つ」という設定を追加すれば、このテストは簡単に「成功」してしまいます。

これでは、ユーザーが感じる不便さや、パフォーマンスの悪化という「問題」を見過ごすことになり、ユーザーの実際の体験とはかけ離れた「意味のないテスト」になってしまいます。

テストを成功させるために、あまりにもユーザーの挙動からかけ離れたプログラミングを書くのはNGです。

(とはいえそこはパフォーマンステストで補えばいいだろ。という気持ちもわかります。)