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
APIテスト、どうやっていますか?
Search
CUONG MAI
February 27, 2024
150
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
260
DevOpsにおけるAPIテスト
maicuong
0
370
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
220
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
650
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
A Soul's Torment
seathinner
6
3.1k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
The Cult of Friendly URLs
andyhume
79
6.9k
Google's AI Overviews - The New Search
badams
0
1.1k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Building the Perfect Custom Keyboard
takai
2
810
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
970
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
270
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.
ご静聴 ありがとうございました!