Slide 1

Slide 1 text

Laravel バージョンアップと 品質担保の話

Slide 2

Slide 2 text

自己紹介 ● 川又 由雅 ● Chat Dealerの開発に携わっています ● 業務で PHP(Laravel)を使用しています 2

Slide 3

Slide 3 text

バージョンアップを行う理由 3

Slide 4

Slide 4 text

バージョンアップを行う理由 ● Laravel 5.5 が 2020年8月末に EOL を迎える ● EOL を意識しつつ、LTS(Long-term-support)を集中的に使うルール としている ○ 5.6 ~ 5.8 は LTS ではなく、EOLを迎えている NG ○ 6.0 は LTS で EOL が2年後 OK 4

Slide 5

Slide 5 text

バージョンアップにかかる時間 5

Slide 6

Slide 6 text

バージョンアップにかかる時間 ● 公式アップグレードガイドに書かれている見積もり時間 ○ 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分

Slide 7

Slide 7 text

バージョンアップにかかる時間 ● というわけにはいかなかった ● 実績:63時間 ● プロダクトの品質担保のため1日では終わらない 7

Slide 8

Slide 8 text

バージョンアップ手法 8

Slide 9

Slide 9 text

バージョンアップ手法 1. アップグレードガイド、GitHubを参照して変更点を確認 ○ Laravel 5.6 ~ 6.0 の各変更点を確認 ○ 品質担保のため、修正が必要な箇所を調査 9

Slide 10

Slide 10 text

バージョンアップ手法 2. バージョンを上げる ○ composer.json(パッケージを定義するためのファイル) の “laravel/framework” の修正を行う ■ "laravel/framework": “5.5", ⇒ "laravel/framework": “5.6", ○ “composer update” コマンドを実行する 10

Slide 11

Slide 11 text

バージョンアップ手法 参考:Laravel アップグレードガイド https://readouble.com/laravel/6.x/ja/upgrade.html 11

Slide 12

Slide 12 text

バージョンアップ手法 3. 1の調査をもとに、コードの修正を行う 4. 修正箇所の動作確認を行い、異常なければ次のバージョンに上げる ○ 異常があれば修正を行う ○ 例:Laravel 6.0 Carbon 1 → 2 へのアップグレード ■ 日付操作が正しく行えるか? 12

Slide 13

Slide 13 text

バージョンアップ手法 2 ~ 4 を Laravel5.6 から 6.0 まで繰り返し行う 5. Laravel 6.0 まで上げ切ったら最後に全機能のテストを行う ○ 一通り動かして動作不正がないか確認 ■ ユーザが行う全設定 ■ 全画面の表示 …etc 13

Slide 14

Slide 14 text

バージョンアップ手法 ● 公式アップグレードガイドに書かれている見積り時間:約2時間45分 ● 実績:63時間 ○ 変更点の調査、テスト仕様書作成:29時間 ○ バージョンアップ:2時間30分 ○ コード修正:7時間 ○ 修正箇所の動作確認:13時間 ○ 全機能テスト:11時間30分 14

Slide 15

Slide 15 text

バージョンアップ手法 ● なぜ段階的にバージョンアップ? ○ 「一気に上げると問題が生じた時に問題の切り分けがしづらい」という 課題 ● 事例をネットで検索 ○ 段階的にバージョンアップしてる記事が実際にあった。こちらを参考。 ○ https://tech.arms-soft.co.jp/entry/2019/08/28/090000 15

Slide 16

Slide 16 text

バージョンアップ手法  この手法でやってみて ○ 良かった点 ■ どのバージョンが原因でエラーが発生してるか把握しやすい ○ 良くなかった点 ■ 特になし 16

Slide 17

Slide 17 text

まとめ 17

Slide 18

Slide 18 text

まとめ ● バージョンアップを段階的に実行すると、どのバージョンが原因でエ ラーが発生しているのか把握しやすい ● プロダクトの品質担保のために泥臭い作業が必要となる 18