Laravel バージョンアップと品質担保の話
View Slide
自己紹介● 川又 由雅● Chat Dealerの開発に携わっています● 業務で PHP(Laravel)を使用しています2
バージョンアップを行う理由3
バージョンアップを行う理由● Laravel 5.5 が 2020年8月末に EOL を迎える● EOL を意識しつつ、LTS(Long-term-support)を集中的に使うルールとしている○ 5.6 ~ 5.8 は LTS ではなく、EOLを迎えている NG○ 6.0 は LTS で EOL が2年後 OK4
バージョンアップにかかる時間5
バージョンアップにかかる時間● 公式アップグレードガイドに書かれている見積もり時間○ 5.5 → 5.6: 10分~30分○ 5.6 → 5.7:10分~15分○ 5.7 → 5.8:1時間○ 5.8 → 6.0:1時間● 5.5 から 6.0 まであっという間に終わるんじゃ?(期待)6合計2時間45分
バージョンアップにかかる時間● というわけにはいかなかった● 実績:63時間● プロダクトの品質担保のため1日では終わらない7
バージョンアップ手法8
バージョンアップ手法1. アップグレードガイド、GitHubを参照して変更点を確認○ Laravel 5.6 ~ 6.0 の各変更点を確認○ 品質担保のため、修正が必要な箇所を調査9
バージョンアップ手法2. バージョンを上げる○ composer.json(パッケージを定義するためのファイル) の“laravel/framework” の修正を行う■ "laravel/framework": “5.5",⇒ "laravel/framework": “5.6",○ “composer update” コマンドを実行する10
バージョンアップ手法参考:Laravel アップグレードガイドhttps://readouble.com/laravel/6.x/ja/upgrade.html11
バージョンアップ手法3. 1の調査をもとに、コードの修正を行う4. 修正箇所の動作確認を行い、異常なければ次のバージョンに上げる○ 異常があれば修正を行う○ 例:Laravel 6.0 Carbon 1 → 2 へのアップグレード■ 日付操作が正しく行えるか?12
バージョンアップ手法2 ~ 4 を Laravel5.6 から 6.0 まで繰り返し行う5. Laravel 6.0 まで上げ切ったら最後に全機能のテストを行う○ 一通り動かして動作不正がないか確認■ ユーザが行う全設定■ 全画面の表示 …etc13
バージョンアップ手法● 公式アップグレードガイドに書かれている見積り時間:約2時間45分● 実績:63時間○ 変更点の調査、テスト仕様書作成:29時間○ バージョンアップ:2時間30分○ コード修正:7時間○ 修正箇所の動作確認:13時間○ 全機能テスト:11時間30分14
バージョンアップ手法● なぜ段階的にバージョンアップ?○ 「一気に上げると問題が生じた時に問題の切り分けがしづらい」という課題● 事例をネットで検索○ 段階的にバージョンアップしてる記事が実際にあった。こちらを参考。○ https://tech.arms-soft.co.jp/entry/2019/08/28/09000015
バージョンアップ手法 この手法でやってみて○ 良かった点■ どのバージョンが原因でエラーが発生してるか把握しやすい○ 良くなかった点■ 特になし16
まとめ17
まとめ● バージョンアップを段階的に実行すると、どのバージョンが原因でエラーが発生しているのか把握しやすい● プロダクトの品質担保のために泥臭い作業が必要となる18