背景
- テストエンジニアがいない中、中途半端な知識でテストしているのが辛い。
- テスト設計書もないので、本当にケースが適切か精査が出来ない。
きっかけ
- プログラマなんだから中身は全て知っている。そんな中、完全なブラックテストをする必要なくない?と思う様になった
- 必要性があるのは理解しているけど、効率的かつ効果的なケースを作るのは困難
- 結局ケースが増える
- それならプログラムの品質を高める方に力を入れたい
- 必要性があるのは理解しているけど、効率的かつ効果的なケースを作るのは困難
考え方
- テストの知識がないのだからとりあえずやってカイゼンしていく
- ケースの過不足は気にしなくていいから根拠を示す(ちゃんと設計する)
- ペアワイズ法は必要最低限にする
- 必要な箇所はわかっているし、自力の精査が難しいものは極力使わない
やる事
ドキュメント作成
- テスト方針
- テスト設計
- テスト項目
テスト方針
- 用語の整理
- 単体テストとは?
- 結合テストとは?
- 外部/内部の違いは?
- 環境ごと(ローカル/DEV/STG/PRD)の制約を明確化
- 可能な限り商用に近い環境で実施する
- テスト観点の整理
- 単体テスト
- 対象レイヤを確定
- レイヤ跨ぎ以外のスタブ/モックの利用は極力させない
- 画面テスト
- コンポーネント種別ごとに必要な観点を明記
- APIとバッチは後で考える
- 単体テスト
テスト設計/項目
- 機能/デバイス/権限 でファイルを分ける
- 設計と項目は1つのファイルで管理する
- 紐付けはしておきたい
E2Eテスト
- 全てはやらない
- 必要最低限 +α(重要機能は重めにやる)
自動化
- CIツールで
git push
のたびに実行させる
やらない事リスト
- テスト計画
- まだ早い
- エビデンス
- 最後はマルチチェックしてみんなの責任にしよう
悩みごと
- 単体テストの設計の作り方と管理方法