Slide 1

Slide 1 text

Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. #stac2024 ビットキーの中核を担うプロダクトで テスト自動化を駆使して安定的なリリースを実現する 株式会社ビットキー / 大高 浩太郎 2024.12.07 ソフトウェアテスト自動化カンファレンス2024

Slide 2

Slide 2 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 リリースは喜ばしいことです

Slide 3

Slide 3 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 不安なくリリースできますか?

Slide 4

Slide 4 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 テスト自動化を含めた環境づくりについて共有

Slide 5

Slide 5 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 大高 浩太郎 Kotaro Otaka / おーたかこーたろー / @otakakot 2020.04 2022.11 2024.12 新卒社会人として Web業界にてエンジニア人生開幕 AWS Lambda など Serverless による開発を経験 株式会社ビットキーへジョイン Google Cloud を活用した デジタルキーを管理するプラットフォーム開発 技術本部 / プラットフォーム開発部 Cross Service Backend ( CSB ) チーム Go で認証認可基盤を実装したり 弊社デザイナーにわがまま言って Gopherくん描いてもらったり→

Slide 6

Slide 6 text

Copyright © Bitkey Inc. All rights reserved. Outline #stac2024 1. bitkey platform: BKP 2. Jupyter Notebook を使ったシナリオテスト 3. シナリオテストの自動化 4. まとめ・今後の展望

Slide 7

Slide 7 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 bitkey platform: BKP

Slide 8

Slide 8 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 Copyright © Bitkey Inc. All rights reserved.

Slide 9

Slide 9 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 ハードとソフトに跨る自社開発プロダクト

Slide 10

Slide 10 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 ビットキーのサービス

Slide 11

Slide 11 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 ビットキーのサービス構成 ※ 説明のため簡略化しています。 認証認可/デジタルキー生成

Slide 12

Slide 12 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 Jupyter Notebook を使ったシナリオテスト

Slide 13

Slide 13 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 Jupyter Notebook とは https://jupyter.org/ より

Slide 14

Slide 14 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 Jupyter Notebook とは セル単位の実行 デバッグのしやすさ Markdown の利用

Slide 15

Slide 15 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 Jupyter Notebook とは セル単位の実行 デバッグのしやすさ Markdown の利用 導入背景は不明 開発体験がよいので継続利用

Slide 16

Slide 16 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 Jupyter Notebook を使ったテスト API による機能提供

Slide 17

Slide 17 text

Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. #stac2024 Jupyter Notebook を使ったテスト ● チームのテスト実装方針 ○ Go コードに対してはそこまで強制していない ○ ロジックが複雑ならば単体テストがあると嬉しい ○ テストを書くならなるべく統合テストを利用 ○ シナリオテストは使い方の提示になるので必須

Slide 18

Slide 18 text

Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. #stac2024 Jupyter Notebook を使ったテスト ● 実装例 ○ bravado による OpenAPI からのクライアント利用 ○ 事前データの準備は秘伝のタレを利用 ○ 最低限ステータスコード(例外)の確認 ○ 必要なものは値もチェック

Slide 19

Slide 19 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 リトライの工夫 1:セル単位でのリトライ 2:ファイル単位でのリトライ 3:失敗テストファイルの記録

Slide 20

Slide 20 text

Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. #stac2024 シナリオテストの実行 ● Jupyter Notebook による実行 ○ 作成するときはセルごとに実行して確認しながら作成 ● コマンド操作による実行 ○ コマンド実行時にはセルごとに自動リトライすることが可能

Slide 21

Slide 21 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 シナリオテストの自動化

Slide 22

Slide 22 text

Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. #stac2024 実行環境 1. 各開発者のPC 2. Google Cloud 上の開発環境 3. Google Cloud 上の本番ミラー環境

Slide 23

Slide 23 text

Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. #stac2024 環境 ● 開発者の PC ● Docker Compose 実行 ● Jupyter Notebook or コマンド ローカル環境

Slide 24

Slide 24 text

Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. #stac2024 開発環境 環境 ● Google Cloud ● Google Kubernetes Engine ● Argo CD によるデプロイ 実行 ● Argo Workflows ● Dockerfile によるコンテナ化 ● Cron Workflows による定期実行

Slide 25

Slide 25 text

Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. #stac2024 環境 ● Google Cloud ● Google Kubernetes Engine ● 週に1度の自動構築 ● GitHub Actions × Argo CD 実行 ● 開発者によるコマンド操作 本番ミラー環境

Slide 26

Slide 26 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 ※ 本番ミラー環境構築の自動化 https://speakerdeck.com/bitkey/bitkey-style-devops-with-10x-faster-release -speed-how-to-work-with-argo-cd https://qiita.com/_otakakot_/items/12722dafa7d526ae61af

Slide 27

Slide 27 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 まとめ・今後の展望

Slide 28

Slide 28 text

Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. #stac2024 まとめ ● Jupyter Notebook のご紹介 ● シナリオテストの作り方 ● 自動テストの実行方法

Slide 29

Slide 29 text

Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. Copyright © Bitkey Inc. All rights reserved. #stac2024 今後の展望 ● テスト実行環境の見直し ○ Argo Workflows → GitHub Actions ● テスト実行時間の短縮 ○ 全部回すのにだいたい 30 min くらい ● ミラー環境自動化の推進 ○ テスト実行まで

Slide 30

Slide 30 text

Copyright © Bitkey Inc. All rights reserved. #stac2024 End of File The Go gopher was designed by Renée French. またね わいわい