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

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Atsushi Kawamura Atsushi Kawamura
December 08, 2018
10k

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

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

Avatar for Atsushi Kawamura

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 課題と今後 • 使い勝手を上げていく ◦ 起動をもっと早く、早く ◦ すべての機能・マイクロサービスが揃っていない ◦ 異なるバージョン感のマイクロサービス結合テスト

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