Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DevOpsに向けたテスト方針/Testing Policy for DevOps
Search
AEON
January 30, 2025
Technology
1
54
DevOpsに向けたテスト方針/Testing Policy for DevOps
2025年1月29日開催「みんなで学ぶ!品質改善を加速する テスト設計と管理手法LT」の登壇資料です。
https://findy-tools.connpass.com/event/341029/
AEON
January 30, 2025
Tweet
Share
More Decks by AEON
See All by AEON
HCP TerraformとAzure:イオンスマートテクノロジーのインフラ革新 / HCP Terraform and Azure AEON Smart Technology's Infrastructure Innovation
aeonpeople
3
990
イオンスマートテクノロジーとTerraformの歩み、そしてPlaftorm Engineering/AEON Smart Technology with Terraform
aeonpeople
3
650
2025年に活用していきたいAzure関連のブラウザ拡張 / Azure-Related Browser Extensions to Leverage in 2025
aeonpeople
1
290
NerdGraph APIに入門する/Getting Started with the NerdGraph API
aeonpeople
1
360
BizDevOps加速のカギ/the key to accelerating BizDevOps
aeonpeople
0
350
イオンネクストがGitHubに振り切った理由/GitHub-Universe-Recap-tokyo-2024
aeonpeople
3
560
SREチームの越境/crossing-Boundaries-of-the-SRE Team
aeonpeople
5
1.2k
イオンCTOが語るイオングループ全体を支えるクリティカルシステム解体新書/findy-architecture-conf-2024
aeonpeople
14
6.3k
巨大企業でDX革新を起こすということ@BTCONJP2024
aeonpeople
2
250
Other Decks in Technology
See All in Technology
あなたの興味は信頼性?それとも生産性? SREとしてのキャリアに悩むみなさまに伝えたい選択肢
jacopen
6
3.2k
BLEAでAWSアカウントのセキュリティレベルを向上させよう
koheiyoshikawa
0
140
生成AIを活用した機能を、顧客に提供するまでに乗り越えた『4つの壁』
toshiblues
1
210
Fin-JAWS第38回reInvent2024_全金融系セッションをライトにまとめてみた
mhrtech
1
130
プロダクト開発、インフラ、コーポレート、そしてAIとの共通言語としての Terraform / Terraform as a Common Language for Product Development, Infrastructure, Corporate Engineering, and AI
yuyatakeyama
6
1.6k
Creative Pair
kawaguti
PRO
1
130
Platform EngineeringがあればSREはいらない!? 新時代のSREに求められる役割とは
mshibuya
2
4k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
18k
GitLab SelfManagedをCodePipelineのソースに設定する/SetGitLabSelfManagedtoCodePipeline
norihiroishiyama
1
120
あなたはJVMの気持ちを理解できるか?
skrb
5
2k
RevOpsへ至る道 データ活用による事業革新への挑戦 / path-to-revops
pei0804
3
810
企業テックブログにおける執筆ネタの考え方・見つけ方・広げ方 / How to Think of, Find, and Expand Writing Topics for Corporate Tech Blogs
honyanya
0
820
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.4k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.4k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Speed Design
sergeychernyshev
25
760
For a Future-Friendly Web
brad_frost
176
9.5k
Unsuck your backbone
ammeep
669
57k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
The Cult of Friendly URLs
andyhume
78
6.2k
Scaling GitHub
holman
459
140k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Transcript
2025/01/29 Findy イベント DevOpsに向けたテスト方針 〜 迅速なリリースとテスト戦略 〜 イオンスマートテクノロジー株式会社 CTO室QAチーム 白江
大輔 ( @show_chan )
所属 • イオンスマートテクノロジー株式会社 • CTO室QA マネージャー 職歴 • 家電メーカで組込開発エンジニア •
携帯電話全盛期にテストマネジメントからQAへ • 携帯電話向け組込ブラウザの品質保証 • 国産 手書きタブレット開発のテスト、QA • 品質コンサルティングなどを経験し現職 その他 • フルリモートになり奈良に引き篭り中 • ガジェット好き 白江 大輔 @show_chan 自己紹介
会社紹介
イオンDX
膨大なIDと購買データを集約したアプリ「iAEON」 イオンDX iAEONはイオングループが提供する決済機能やポイントプログラムを1つにまとめたアプリです。 イオングループ内の多数の事業会社がもつ顧客IDを一つのアプリに統合しています。 提供開始から約3年で、iAEONは900万人以上の会員を抱え、独自のコード決済サービス「イオンペイ」は836万人 (23年5月時点)が利用しています。
イオンDX
品質改善のためのテスト設計とは?
ChatGPTに聞いてみた 品質改善のためのテスト設計は、ソフトウェアや製品の品質を向上させるための戦略的プロセスです。 以下のポイントに焦点を当てることで、効率的で効果的なテストを計画・実行できます。 1. 目的を明確にする 品質改善の目標を具体化します。 •バグの早期発見: 開発プロセスの早い段階で問題を見つける。 •品質基準の達成: 性能、セキュリティ、使いやすさなど、特定の品質基準を満たすことを目指す。
•ユーザー体験の向上: エンドユーザー視点での満足度向上。 2. 要件の分析 要件を詳細に理解し、それに基づいてテストケースを設計します。 •明示的要件: 仕様書やユーザーストーリーに記載されている内容。 •暗黙的要件: ユーザーが期待する基本的な動作や品質。 3. リスクに基づくテスト設計 製品やシステムのリスクを評価し、重点的にテストすべき箇所を決定します。 •高リスク領域: バグが重大な影響を及ぼす可能性が高い部分。 •変更点: 新機能や修正された箇所はバグが潜む可能性が高い。 4. テスト技法の選択 適切なテスト設計技法を選択します。 •ブラックボックステスト: 入力と出力に基づいてテストケースを作成。 •ホワイトボックステスト: コード構造に基づいてテストケースを作成。 •探索的テスト: 短時間で効果的にバグを発見するためのアドホックな方法。 5. テストケースの設計 効果的なテストケースを作成するには以下を考慮します。 •カバレッジ: 仕様やコードの全体をどれだけ網羅しているか。 •優先順位: テストケースに優先順位をつけ、重要な部分を先にテスト。 •再利用性: 同様の状況で再利用できる汎用的なテストケースを設計。 6. 自動化と手動テストのバランス •自動化: 繰り返しが多いテストや長時間かかるテストに最適。 •手動テスト: ユーザー体験や直感的な操作性を確認するために必要。 7. 継続的改善 テスト設計プロセスを定期的に見直し、以下を実施します。 •振り返り: テスト結果やバグの発生傾向を分析。 •フィードバック: 開発チームや顧客からの意見を反映。 •プロセスの最適化: 効率性と効果を高める方法を模索。 8. 品質メトリクスの活用 テストプロセスの効果を測定し、改善ポイントを特定します。 バグ発見率: テストケースがどれだけバグを発見できたか。 カバレッジ: コードや仕様のどれだけがテストされたか。 テスト完了度: すべての計画したテストケースが実行された割合。 品質改善を目指したテスト設計では、戦略的な計画と継続的な見直しが重要です。 また、チーム全体で品質意識を共有し、改善を進めることが成功への鍵となります。 今回お話しする、 自動化やプロセス最適化が 含まれていて、一安心
イオングループのDX 巨大な規模 膨大なシステム群 グループの独立性 参照: https://www.aeon.info/company/
話したいこと DevOps の導入 巨大システム基盤への自動テスト導入の取り組み 開発と運用を統合 開発サイクルを効率化し、 迅速かつ安定した製品の提供を実現します QAはDevOpsと聞いて 何をするべきか?
自動化の目的とは?
テスト自動化の目的のおさらい テスト自動化の目的は、ソフトウェア開発や運用における テスト作業を効率化し、品質を向上させることです。 以下の具体的な目的があります: 1. テスト効率の向上 •手動で行うテストは時間がかかり、人為的なミスが発生する可能性があります。 自動化することでテストの実行速度が向上し、繰り返し実行する負担が軽減されます。 2. コスト削減
•初期導入コストは高いものの、長期的にはテストにかかる人件費や時間が削減され、コスト効率が向上します。 3. 品質の向上 •繰り返し可能なテストを正確に実行することで、ソフトウェアの欠陥やバグを早期に発見し、リリース前の品質を高めることができます。 4. 再現性と信頼性 •テストスクリプトを使用することで、同じテストを何度でも同じ条件で実行でき、結果が一貫します。これによりテスト結果の信頼性が向上します。 5. 回帰テストの効率化 •新しい機能や変更が既存の機能に影響を与えていないか確認する回帰テストを効率的に行うことができます。 6. 頻繁なリリース対応 •アジャイルやDevOps環境では頻繁なリリースが求められるため、テスト自動化により迅速なリリースサイクルをサポートします。 7. カバレッジの向上 •自動化によって広範囲のテストケースをカバーでき、手動ではテストが難しい領域(例えば、大量データを使ったテストやパフォーマンステストなど) も実行可能になります。 8. 人為的ミスの削減 •手動テストに伴うミスを防ぎ、テスト作業の正確性を高めることができます。 9. チームの負担軽減 •単純で繰り返し作業が必要な部分を自動化することで、テスト担当者は複雑なケースや分析に集中できます。 テスト自動化を導入することで、開発プロセス全体がスムーズになり、ソフトウェアの品質と開発速度の両方を向上させることができます。 ただし、自動化には初期コストやメンテナンスの負担が伴うため、適切な計画と選定が重要です。 ChatGPTに聞いてみた (2回目)
DevOpsとテストの自動化 しかしこちらの有名な書籍によると、 「QAチームなどが作成管理する自動テストは、 ITパフォーマンスと相関関係にない」 とのこと。 その理由(ざっくり自分の理解 • 開発者がテストを作成するとコードがよりテスト可能なものになる • 自動テストを開発者責にするとテストの意識が高まる
• QAチームのテストはE2Eに偏重する
QAチームが作る自動化テストの目的 • E2EによるUIを含めた自動化テスト • 頻繁なリリースに対応 • 人為的ミスの削減 • APIレベルの自動化テスト •
変更/影響範囲の網羅性確認 • 高速なテスト実行 リリース時リグレッションテスト デイリーヘルスチェック
テスト自動化への道 テスト項目の洗い出し ・自動化ツール側が対応しておらず、一部断念した ・既存のテストシナリオからの項目洗い出しはかなり時間がかかる ・テストシナリオの中で実は同じ項目(API)を何度も動作させていると気づく テストスクリプト作成 ・トライ&エラー&エラー&エラー...成功となりがち。そしてできた時の喜びは大きい ・このAPIを動かすには、まず別のAPIを動かして...ということが理解できた ・入力値の変数化を行うために、まず動作確認完了させ必要がある ・テストデータの命名規則をテストデータ作成前に決めておかないと混乱する
・シナリオ構成は表にしておく ・他の人が見てもわかりやすいような構成、命名を心がける ・実施可否の判断は早めに&エスカレーションも迅速に ・日々の成果物を必ず報告する(何してる?と思われないために) ・わからないことはガンガンサポートに問い合わせる シナリオメンテナンス ・テスト環境の変更情報への感度は高くする ・情報共有される場に参加していくことが望ましい ・ノウハウは整理して残しておく APIのテスト自動化を実装したQA担当者の声
テスト自動化カバー率 • APIテスト • リグレッションテスト項目換算 約50% のAPIをカバー • E2Eテスト •
通常リグレッションテスト 85% の項目をカバー • 336(自動化数) / 395(項目数) • フルリグレッション項目 36% の項目をカバー • 336(自動化数) / 930(項目数) ビジネス基盤 (2024年12月末時点)
開発組織の一員として
チームパフォーマンス • Four Keys を意識する • デプロイ頻度 • 変更のリードタイム •
変更失敗率 • デプロイ失敗時の復元時間 • QAが活躍するために • この開発チームに必要な価値、品質を明確にする • 人が本当に見るべき観点に注力する • ツールは使いこなそう
QAとして。イオンにできること。そして社会のために • 生まれたイノベーションを安心、安全に使っていただける品質を目指して • 当たり前品質を迅速にリリースできる状態を作る • 魅力的品質を向上するための環境を作る 2024/12/04 Findy 198Presents
イオンCTOやまけんさんの資料より引用
おわりに
幅広いポジションで積極的に採用中です!! Fin.