Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWSマネージドサービスとのテスタブルなアプリケーションコード

 AWSマネージドサービスとのテスタブルなアプリケーションコード

shiro seike

October 08, 2022
Tweet

More Decks by shiro seike

Other Decks in Programming

Transcript

  1. 自己紹介
 清家 史郎
 @seike460
 - ID
 - GitHub:seike460
 - Twitter:@seike460


    - Work at
 - 株式会社 Fusic (フュージック) 
 技術開発本部/技術開発第一部門 
 - チームリーダー/プリンシパルエンジニア/ 
 エバンジェリスト
 - Skill
 - PHP/Go/AWS
 - Community
 - PHPカンファレンス2018 - 2022 
 - AWS Dev Day Japan 2021 - 2022 
 2

  2. PHPUnitの実行の様子
 29
 Testを記述して実行すると次の様に
 結果を確認することが出来ます。
 
 ...FE...
 
 . … 成功したテスト


      想定したテスト結果となった場合
 F … failure(失敗)したテスト
   想定したテスト結果と違う場合
 E … error 
   予期せぬエラー(Fatal Error等)が
   発生した場合

  3. Serveless Laravel (Bref)
 37
 https://bref.sh/docs/frameworks/laravel.html
 
 Laravelを利用したBrefを
 整備する方法はBref公式ページに
 説明があります。
 


    手順をなぞるだけで、
 なんの不自由もなくLaravelを
 投入することが出来ます。
 
 AWS Lambdaの場合はAPIとして
 利用する事がほとんどですので、
 今回はAPIモードで利用します

  4. テスト時のIAM情報を設定できる
 39
 envファイルの中には
 AWS_ACCESS_KEY_IDや
 AWS_SECRET_ACCESS_KEY、
 AWS_BUCKETまで
 設定項目が最初から用意されてます 
 
 .env.testingの中に


    テスト用のIAMを記述する事で
 テストの時に利用するIAMを記述し、 
 本番と別の、テスト用のS3に
 データ保存を行う事が出来ます。 
 
 言語毎に設定していきます

  5. 処理の単位で分割をする
 63
 
 - クライアント生成
 - 保存情報生成
 - 保存処理の実施
 


    が一つ一つの処理単位となる
 
 保存処理の分離で達成可能
 
 だが全てのアプリケーションが
 綺麗に分割出来るわけではない 

  6. まとめ
 Point 2
 アプリケーションコードはテストが出来る単位で処理分割すると Unit Test対応が出来ます 
 65
 バグをなくすために自動テストを行いましょう
 Point

    1
 
 AWS サービスを各種OSSなどを利用することで、エミュレートして自動テストが出来ます。
 Point 3
 Point 4
 テストは完璧ではないことを知り、様々な手法を学ぶことで、選択肢を知りましょう。