$30 off During Our Annual Pro Sale. View Details »

テストコード文化を0から作り、変化し続けた組織

zosokh
December 07, 2024

 テストコード文化を0から作り、変化し続けた組織

2024/12/07 ソフトウェアテスト自動化カンファレンス2024

zosokh

December 07, 2024
Tweet

More Decks by zosokh

Other Decks in Programming

Transcript

  1. リリースフェーズ テスト項目行数 カバー済み 一部カバー済み 未カバー 1 24 15 7 2

    2 674 143 318 213 3 3735 2866 160 709 4 2206 1817 122 267 5 289 35 20 234 6928 4876 627 1425 テスト仕様書のテストコード網羅状態 テストコードでテストできている 項目 データ内容のテストはできている けれど、表示面のテストはできて いない テストコードでテストできていな い
  2. リリースフェーズ テスト項目行数 カバー済み 一部カバー済み 未カバー 1 24 15 7 2

    2 674 143 318 213 3 3735 2866 160 709 4 2206 1817 122 267 5 289 35 20 234 6928 4876 627 1425 テスト仕様書のテストコード網羅状態 ・データが保存される ・バリデーションにかかる ・◦件表示されている ・データのアサインのテストはできているが、表示面(ボ タンをプッシュ、文字やボタンの色)も指定されたテスト は網羅できていない ・ボタンを押したら公開ステータスが非公開となる。該当 の公開ステータスもグレーとなる。   →更新について、サーバーサイド側の更新やデータ整 合性のテストはできているが、フロント表示面をカバーで きていない ・チェックボックスのONOFFができる ・〇〇の項目(文字列・ボタン・リンク ・・)が表示されている ・フロントでの出し分け表示テスト →テストコード元々無い →テストコード実装漏れ・範囲漏れ →テストコードが実装に苦戦した項目
  3. リリースフェーズ テスト項目行数 カバー済み 一部カバー済み 未カバー 1 24 15 7 2

    2 674 143 318 213 3 3735 2866 160 709 4 2206 1817 122 267 5 289 35 20 234 6928 4876 627 1425 テスト仕様書のテストコード網羅状態 テストコードで完全整備され、テスト 仕様書項目を削減できる
  4. リリースフェーズ テスト項目行数 カバー済み 一部カバー済み 未カバー 1 24 15 7 2

    2 674 143 318 213 3 3735 2866 160 709 4 2206 1817 122 267 5 289 35 20 234 6928 4876 627 1425 テスト仕様書のテストコード網羅状態 一部テスト項目漏れがあるが、テスト コードによるカバーができている。 しかし同範囲をリリース時はテストデ バッグが必要。
  5. リリースフェーズ テスト項目行数 カバー済み 一部カバー済み 未カバー 1 24 15 7 2

    2 674 143 318 213 3 3735 2866 160 709 4 2206 1817 122 267 5 289 35 20 234 6928 4876 627 1425 テスト仕様書のテストコード網羅状態 全くテストコードが整備されていない
  6. テスト工数を省けるか リリースフェーズ テスト仕様書作成(人日) テスト工数(人日) 1 0.2 0.4 2 1.5 14

    3・4 3 18 5 2 16 6.7 ×          48.4 ×          テストコード未カバー 20.57% テストコード未カバー 20.57%
  7. テストコードで、テスト工数を省けるか リリースフェーズ テスト仕様書作成(人日) テスト工数(人日) 1 0.2 0.4 2 1.5 14

    3・4 3 18 5 2 16 6.7 ×          48.4 ×          0.25人日 9.95人日 40人日以上削減できる事になる ※単純計算なので実際はそこまで極端では ないと思います テストコード未カバー 20.57% テストコード未カバー 20.57%
  8. ローンチ後3ヶ月のリリース 案件 回数 開発工数 テスト工数 composer update 15 0 0

    Github移行 1 7 0 フレームワークVer Up 1 6 2 リリース後の施策 1 4 1
  9. ローンチ後3ヶ月のリリース 案件 回数 開発工数 テスト工数 テストコードが無かった時 のテスト工数 composer update 15

    0 0 ??? Github移行 1 7 0 0 フレームワークVer Up 1 6 2 40 リリース後の施策 1 4 1 4
  10. ローンチ後3ヶ月のリリース 案件 回数 開発工数 テスト工数 テストコードが無かった時 のテスト工数 composer update 15

    0 0 ??? Github移行 1 7 0 0 フレームワークVer Up 1 6 2 40 リリース後の施策 1 4 1 4 計り知れない。テストコードが無 かったら定期的なアップデートは 出来ないかもしれない 他のPJのアップデート時を参考
  11. 研修カリキュラムとフローを実行 カリキュラムカテゴリ 内容 目的 PHPUnitテストの設け方の講義と基本ワーク ・テストコードの効果とプロジェクトの実例・扱 い方を紹介 ・PHPUnit基本講座とワーク 基本的な扱い方を学び、実際に手を動かし PHPUnitを知る

    既存のPJコードから設けられるテストコードを 提案とレクチャー ・自プロジェクトからどんなテストコードを作れ るか知る ・自プロジェクトでPHPUnit環境を立ち上げる ・自プロジェクトでテストコードを書く 今後自身でテストコード拡張を作れるよう にする テストコードの入ったPRを全面的にレビュー ・継続的なテストコード作成とレビュー 拡張したテストコードのレビュー体制を経 験し、テストコードを書き続ける
  12. 一番最初は1チームでテスト コード実装文化醸成の事例がで きた テストコード全面実装事例を出 し、テストコードがある効果を 実感できる状態も作った まとめ テストコードの有益性を立証す るため、定量的な効果をまとめ る

    効果証明だけでは組織は動かせず、エン ジニア個人のスキル向上を狙っていく ┗事業やプロダクトの状態を見て、適切 な判断でテストコード導入を検討できる 状態を目指す テストコード研修実施。まだ定着率は低 いが、自発的なテストスキル確立や方針 にテスト設置を置くチームが出てくる チームとテストコード 全社推進に向けた テストコード効果検証 全社推進へのアクション とその後