用語集 · テストの基礎
サニティテスト(Sanity Testing)
英語: Sanity testing
別名: sanity test, サニティチェック, サニティーテスト
定義
小さな変更やバグ修正の後に、影響を受けた領域が意図どおり動くことを確認する、範囲を絞った集中的なチェックで、より広いテストに進む前に行います。
サニティテストは、特定の変更が機能していること、そしてその周辺の領域が引き続き妥当に振る舞っていることを確認する、すばやく対象を絞ったチェックです。すでにある程度安定しているビルドに対して、バグ修正や軽微な変更の後に行います。サニティチェックが失敗した場合、フルの回帰テストに時間を費やすことなく、ビルドは開発に差し戻されます。
例
「アドレスにプラス記号が含まれる(ana+test@example.com)と、パスワード再設定メールが送信されない」というバグ報告があり、開発者が修正をリリースしたとします。サニティチェックでは次のことを行います。
ana+test@example.comでリセットを要求し、メールが届くことを確認する。- 通常のアドレスでリセットを要求し、引き続き動作することを確認する。
- リセットリンクをたどり、新しいパスワードが受け付けられることを確認する。
これだけです。ここではショッピングカートやレポート機能は誰も確認しません。これらが通れば、ビルドは回帰テストに進みます。
サニティテストとスモークテストの違い
| サニティテスト | スモークテスト | |
|---|---|---|
| 範囲 | 狭くやや深い。1 つの機能または修正 | 広く浅い。アプリケーション全体 |
| きっかけ | 特定の修正や小さな変更 | 新しいビルドのたび |
| ビルドの状態 | すでにかなり安定している | 不明。壊れている可能性もある |
| 形式 | スクリプトなしでテスターが行うことが多い | 通常はスクリプト化・自動化されたスイート |
サニティテストを、変更された領域に焦点を当てた回帰テストのサブセットと説明するチームもあります。これも妥当な捉え方です。
用語についての注意
定義は会社や教科書によって異なり、「スモーク」と「サニティ」を同じ意味で使うチームもあります。面接では上記の区別を説明したうえで、実務で重要なのは各チェックが何をカバーし、いつ実行されるかについてチームが合意していることだ、と付け加えましょう。1 冊の教科書に固執するよりも、正確に説明しつつ曖昧さを認めるほうが好印象です。