Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
APIテスト、どうやっていますか?
Search
CUONG MAI
February 27, 2024
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
APIテスト、どうやっていますか?
CUONG MAI
February 27, 2024
More Decks by CUONG MAI
See All by CUONG MAI
事例から学ぶAPIテスト ~観点別で考えてみよう~
maicuong
0
300
DevOpsにおけるAPIテスト
maicuong
0
430
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Darren the Foodie - Storyboard
khoart
PRO
4
4k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
620
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
How to Talk to Developers About Accessibility
jct
2
580
GitHub's CSS Performance
jonrohan
1033
470k
Evolving SEO for Evolving Search Engines
ryanjones
0
330
Transcript
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. APIテスト、どうやっていますか?
マイ マイクオン
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. マイ マイクオン
2011 来日 2012 横浜国立大学入学 2016 大学卒業、 HC入社 現在: RakAPIt Leader Profile
会社概要 会社名 本社 役員
設立 社員数 認証資格 株式会社ヒューマンクレスト 神奈川県横浜市西区みなとみらい2-2-1 横浜ランドマークタワー26階 代表取締役 取締役 取締役 2002年12月16日 156名(2020年4月)※グループ連結 ISO27001(情報セキュリティマネジメントシステム) 渡辺義孝 宮本由布樹 浅黄友隆
None
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. ・
APIテストの現状 ・ APIテストのメリット ・ APIテストでの課題 ・ 事例紹介 + 観点 + 事例 + プロセス Agenda
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. 2019
APIテスト ~現状~ Software Testing USD 40 billion API Testing USD 661.69 million 出典:https://www.verifiedmarketresearch.com 出典:https://www.gminsights.com/ 1.65%
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. 2020~2026
Software Testing : 伸び率6% APIテスト ~現状~ 出典:https://www.gminsights.com/
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. 2020~2026
API Testing : 伸び率19.82% APIテスト ~現状~ 出典:https://www.verifiedmarketresearch.com
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •
早期に結合テストを開始できる 内部結合テストで、画面を通さずにテストすることによって、テストによる結果 フィードバックを、圧倒的に早くする APIテストのメリット 出典:https://www.stickyminds.com/article/shift-left-approach-software-testing
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •
UIからの操作ではテストしにくいケースであっても APIなら直接テストできる APIテストのメリット
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •
自動化に向いている – UIと比較して作りが単純である – テスト資産のメンテナンスの容 易さ – 遅い、壊れる、続かない E2Eの 自動テスト >< APIテスト:より安定 APIテストのメリット 出典:https://www.mostafableu.com/blog/test-automation/
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •
理由その1: そもそもAPIテストが知らない APIテストで何ができるか知らない なぜAPIテストをやっていない?
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •
理由その2: APIテストはやった方がいいのは知っているが、ど うやればいいのか分からない なぜAPIテストをやっていない?
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •
理由その3: APIテストのやり方はなんとなく知っているが、時間 がかかりそうだからやらない なぜAPIテストをやっていない?
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. 様々なテストができるようです
• Functionality testing • Reliability testing • Load testing • Creativity testing • Security testing • Proficiency testing • API documentation testing • Negative Testing • ... APIテスト
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. 私たちは分かりやすいように、このような分け方をし
ています。 APIテスト
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. 結合
APIテスト ~White Box Testing~ Request Response
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. APIテスト
~Black Box Testing~ Request Parameterの正常系 Parameterの異常系 メソッド データ形式(schema validation) その他 Response Status Code Response Header Response Body データ形式(schema validation) Body内容 エラーメッセージ その他 API
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •
テストスコープ ◦ 内部結合 AWSで構築されたもの EC2 → Log確認 RDS → Log確認 ◦ API の Component Test ▪ 正常系 ▪ 異常系 事例1
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •
どうやった? ◦ 内部結合 アーキテクチャ図、プログラムフロー → (EC2⇄EC2、EC2⇄RDS)観点だし、テストケース作成 テストケース毎に実行 → Response確認、EC2・RDSのLog確認 ◦ Component Test API仕様書 →パターンを抽出 →パターンを組み合わせ、テストケース作成 →テストケース毎に実行 →Response確認 事例1
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •
大変だったこと ◦ 内部結合 暗黙仕様が多い →レビュー時間がかかる ◦ Component Test 組み合わせるのは大変 テストケースが多い→実行は大変 • 分かったこと テストチームの独立性が高いほど、White box Testingは難しくなる →計画段階から関わるのは理想 組み合わせテストは大変、繰り返し作業が多いため、自動化はした方が良い 事例1
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •
テストスコープ ◦ シナリオテスト APIレイヤーでビジネスロジックを確認したい 事例2
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •
どうやった? ◦ シナリオテスト あらゆる資料を読み込み、全体システムを把握 →ユースケース図を作成 →シナリオを作成 →実行 →Response確認、DB確認 事例2
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •
大変だったこと ◦ シナリオテスト UIはまだできていないため、システムを理解するのは大変 データ準備は大変 • 分かったこと APIテストは早期にビジネスロジックの確認に役立つ APIテストは再利用性が高い 事例2
Test Data Testcase List Test Result Implementation /Execution Analytics/ Design
Analytics/ Design 私たちはどうやっているか? Specification Report
Test Data Testcase List Test Result Implementation /Execution Analytics/ Design
Analytics/ Design 私たちはどうやっているか? Specification Report Swaggerを読み込み、 テストデータを自動生成
Test Data Testcase List Test Result Implementation /Execution Analytics/ Design
Analytics/ Design 私たちはどうやっているか? Specification Report 組み合わせ ・全組み合わせ ・All - pairs → 自動生成 SwaggerからAssertion自動生成
Test Data Testcase List Test Result Implementation /Execution Analytics/ Design
Analytics/ Design 私たちはどうやっているか? Specification Report テストケースを選択 →実行ボタン 複数テストケース実行可
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. ・
APIテストの現状 ・ APIテストのメリット ・ APIテストでの課題 ・ 事例紹介 + 観点 + 事例 + プロセス まとめ
Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved.
ご静聴 ありがとうございました!