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

システムテスト自動化カンファレンス2018

Atsushi Kawamura
December 08, 2018
8.2k

 システムテスト自動化カンファレンス2018

登壇タイトル「freeeの品質トゥギャザー」の後半分です

Atsushi Kawamura

December 08, 2018
Tweet

Transcript

  1. 5 コンセプト Pull Requestのレビュー → E2Eテスト → マージ、のサイクルを高速に回したい • Pull

    Request作成をトリガに、可能なところは自動でやる ◦ ユニットテスト (実現済み) ◦ コード静的解析 (実現済み) ◦ Pull Requestを反映したシステムの自動構築 (NEW!) ◦ Pull Requestを反映したシステムに対するE2Eテストの自動実行 (NEW!) • Pull Request(GitHub)が中心のオペレーション ◦ なるべくGitHub上で完結できるような作りに ◦ GitOpsの実現
  2. 7 PRレビューの流れ developer reviwer QA PR 作成 環境構築 変更確認 動作確認

    修正 依頼 環境更新 追加 コミット 再確認 QA依頼 E2E 実行 E2E 結果 確認 LGTM マージ
  3. 8 全体像 全部クラウド API Gateway Lambda S3 ELB EC2 ECR

    Parameter Store CodePipeline セットアップ 参照 reviewer github Event hook setup start pull request 作成
  4. 11 環境構築 • ECRのdocker imageでコンテナ起動 ◦ docker imageは常に最新を維持 ▪ bundle

    install, yarn install済み • git checkoutでPRのコードを取得 • assetsはcircle ciでbuildされたものを流用 • DBはmysql dump取り込み & db:migrate Lambda S3 ELB EC2 ECR Parameter Store CodePipeline 認証情報管理 PRマージに フックして docker build実行 PR固有設定 セットアップスクリプト テスト結果
  5. 12 プロジェクトの進め方 アプリケーションエンジニア、QAエンジニア、SREが共同で推進 • アプリケーションエンジニア ◦ docker化やチューニング(起動の高速化等)の推進 ◦ アプリケーション起因の問題へのアドバイス •

    SRE ◦ インフラ整備 ◦ コンポーネントつなぎ込み、自動化 ◦ インターン生にもかなり(基本アーキは全部)お手伝いいただきました! • QA ◦ 要件定義、機能設計 ◦ E2E自動化
  6. 13 期待される効果 • 誰でも、独立した環境が、すぐに、構築できる ◦ レビュー、QAが誰でもすぐに始められる ◦ 評価環境を持っていない人はわざわざ作る必要が無い ◦ 環境を持っている人も自分の環境を汚したり、PR用にセットアップする必要がない

    • 最新の評価環境が常に維持される ◦ バージョン誤りによるレビューQAの誤認を防ぐ • 評価環境のスペックを柔軟に変えられる ◦ 性能が必要な評価をすばやく行える • 大量のテスト環境を一気に用意できる ◦ テストの並列度を上げられる
  7. 14 課題と今後 • 使い勝手を上げていく ◦ 起動をもっと早く、早く ◦ すべての機能・マイクロサービスが揃っていない ◦ 異なるバージョン感のマイクロサービス結合テスト

    • 環境構築の柔軟性を上げる ◦ より簡単なスケーリング ◦ リソース管理効率の最適化 • コスト最適化 ◦ 自動スケーリング ◦ 不要リソースの自動検出・停止 • モニタリング ◦ 使用状況監視、ロギング