一般的なテスト工程での分類や個人的に大事だと思うこと
Contents
全プロセス共通
テストデータ作成バッチ
状態の復元を容易にするために必要なテストデータを簡単に作れる機能があると便利
ローカル、開発、ステージング、本番の分岐
主に外部とのインターフェース(外部APIなど)の切り替えをつど書き換えるのではなく、コーディング時に.envで切り分けておく、インターフェイスだけ定義しておき、内部のクラスの注入をswitchさせる(ローカル:JSONデータ、開発:特定のレスポンスを返すスタブサーバー、検証以上:外部APIや外部サービスなど)
PT(プログラムテスト)、単体テスト
メソッド単位、クラス単位のテスト。
PHPUnitでのIn、Outのチェックや単一の画面でのテストを含むことあり。
できれば自動化しておくことが望ましい。
エビデンスに関してはスクショやログの証左など残しておくとよい。
結合テスト
ある程度のフロー(画面遷移を伴う状況下)単位での確認。
画面の挙動に関してのチェック。APIサービスなど外部と接続した時点での挙動を確認するなど。
エビデンスに関してはフローごとの画面単位のスクショなど。
外部APIが完成していない場合は直のJSONデータ(ローカル)やスタブサーバー(外部APIが完成してない段階での開発環境、検証環境ではこれが必要)を作成する。
仕様の理解などができていないと基本的なフローがわからないので仕様理解者に問い合わせる、自分がユーザーになって常識的に考えてみるなど。
前提条件など書いておくとあとで見返した時に非常にわかりやすい。
セキュリティテスト
悪意ある入力や脆弱性などに対しての漏れがないか。セキュリティの知識がある人間がテストする必要がある。
負荷テスト、性能テスト
ある程度、大量のデータ。現実データに近い量でデータを入れた時の画面レスポンスなど。
結果としては主に機能単位の時間など。