テストエンジニアが教える JUnitを書き始める前に考えるべきテスト
ブロッコリー(風間祐也)さん
テストの目的
検出
品質レベルの確認(充分であることを確認する)
欠陥があることしか示せない
意思決定のための情報提示
欠陥の作り込みの防止
実装前にも出来る
仕様誤りの修正コスト: 後続フェーズに行くほうが大きい
要件定義: 1-> リリース後: 200
案1: リリースサイクルを短くする
案2: 早い段階で不具合を発見する
仕様の認識齟齬による、追加コスト
テスト内容について議論する
実装前に出来るテスト活動
ドキュメント大事
そのテストケースを作った理由
地域?帳票?文字長?地域別?最初と最後?
全数テストは不可能
テスト設計技法を用いる
欠陥の偏在
境界値分析: 不等号のミス
カバレッジ 100 % でもバグる
0文字
QAチーム必要?
システムテストレベルを確認したい
Checking ではなく Testing をしたい
QAチームはシステムテストレベルを見たい
単体、結合テストレベルを開発チームで担保したい
Checking と Testing
Checking: 意図通り動くか確認する: 開発チームの責務だよね?
Testing: 壊そうとする
自動テスト
コストはゼロにならない
効果的なところを選択する
ワーク
文字数 4-12:
境界値、1万文字、スペース4つ
英数字のみ:
英数字(全角半角?)
記号、スペース
SQLインジェクション
アカウントロック
3分以内に3 回なら OK ?
どこから数えて?
成功ログインを挟めばOK?
ロックする、とは?
エラーメッセージ?
ログイン失敗?
これはカウントする?
5分後に打てるかどうか
どの単位?
フィードバック
許容する..とは?エラー画面?ボタン制御?