【てすと】
テスト とは?
最終更新:
💡 ソフトウェアの「健康診断」、動かす前にちゃんと動くか確かめる仕組み
テストは、ソフトウェアの問題を見つけ、品質を評価する活動です。単体・結合・E2Eの違い、期待結果の決め方、自動化と全組合せを試すことの限界を説明します。
📌 このページのポイント
- 期待する動作や利用者の必要を確かめ、問題を見つける
- 部品、連携、利用者の一連の操作など、範囲に応じて確認する
- 自動化は繰り返す確認を助けるが、手動確認が不要になるとは限らない
- 通ったテストの範囲を確認し、重要なリスクや境界を優先する
動いていれば、テストは要らない?
普段の入力で動いても、空欄や境界の値で失敗することがあるよ。たとえば「名前は必須」という仕様なら、入力した名前で登録できることに加え、空欄では理由が表示されて登録されないことも確かめる。何を期待するかを先に決めるのが大事だね。
単体・結合・E2Eって、何が違う?
単体は関数などの部品、結合は部品やシステム間の連携、E2Eは利用者の一連の流れを通して確認するイメージだよ。ログインなら、入力の判定、認証サービスとの接続、画面からログインして利用する流れをそれぞれ確かめる。これ以外にも受け入れテストなどがあり、3種類がすべてではないんだ。
自動化すれば、人は何もしなくていい?
繰り返す確認をテストコードで実行できるよ。変更のたびにCIで実行する使い方もある。ただし、期待結果やケースの選定は必要だし、実行時間はテストや環境による。使いやすさの探索や画面の目視など、自動化したケースだけでは分からないこともあるね。
全部の組合せを試すのが正解?
単純な範囲なら全部を試せるけれど、一般には組合せが多くなるよ。独立した3つの欄に各100通りの値があれば100万通り。重要なリスク、通常・異常の入力、境界値などからケースを選ぶ。件数だけでなく、何を確かめたかを見よう。
テストが全部通れば、バグはゼロ?
選んだ条件で期待どおりだったという結果で、問題がないことの完全な証明ではないよ。動かすテストだけでなく、仕様やコードのレビューも役立つ。問題を直したら再確認し、ほかの動作に影響していないかも確かめよう。テストは修正の判断材料を増やしてくれるんだ。
まとめ:ざっくりこれだけ覚えればOK!
「テスト」って出てきたら「ソフトウェアの問題を見つけ、品質を確かめる活動」と思えばだいたいOK!
📖 おまけ:英語の意味
「Test」 = 試験・検査
💬 動作を試すだけでなく、仕様やコードをレビューして問題を探す活動も含むよ。