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

APIテスト、どうやっていますか?

Avatar for CUONG MAI CUONG MAI
February 27, 2024
150

 APIテスト、どうやっていますか?

Avatar for CUONG MAI

CUONG MAI

February 27, 2024

Transcript

  1. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. マイ マイクオン


    
 2011 来日
 2012 横浜国立大学入学
 2016 大学卒業、 HC入社
 現在: RakAPIt Leader
 
 Profile

  2. 会社概要 
 会社名 
 本社 
 
 役員 
 


    
 設立
 社員数
 認証資格
 株式会社ヒューマンクレスト
 神奈川県横浜市西区みなとみらい2-2-1
 横浜ランドマークタワー26階
 代表取締役
 取締役
 取締役
 2002年12月16日
 156名(2020年4月)※グループ連結
 ISO27001(情報セキュリティマネジメントシステム) 
 
 
 
 
 渡辺義孝
 宮本由布樹
 浅黄友隆
 
 
 
 
 

  3. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. ・

    APIテストの現状
 
 ・ APIテストのメリット
 
 ・ APIテストでの課題
 
 ・ 事例紹介
 + 観点
   + 事例
   + プロセス
 
 Agenda

  4. 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%

  5. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. 2020~2026


    Software Testing : 伸び率6%
 
 
 APIテスト ~現状~
 出典:https://www.gminsights.com/ 

  6. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. 2020~2026


    API Testing : 伸び率19.82% 
 APIテスト ~現状~
 出典:https://www.verifiedmarketresearch.com 

  7. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •

    早期に結合テストを開始できる
 内部結合テストで、画面を通さずにテストすることによって、テストによる結果 フィードバックを、圧倒的に早くする
 
 
 APIテストのメリット
 出典:https://www.stickyminds.com/article/shift-left-approach-software-testing

  8. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •

    UIからの操作ではテストしにくいケースであっても APIなら直接テストできる
 APIテストのメリット

  9. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •

    自動化に向いている
 – UIと比較して作りが単純である
 – テスト資産のメンテナンスの容 易さ
 – 遅い、壊れる、続かない E2Eの 自動テスト
 >< APIテスト:より安定
 APIテストのメリット
 出典:https://www.mostafableu.com/blog/test-automation/

  10. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •

    理由その1:
 そもそもAPIテストが知らない
 APIテストで何ができるか知らない
 なぜAPIテストをやっていない?

  11. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •

    理由その2:
 APIテストはやった方がいいのは知っているが、ど うやればいいのか分からない
 なぜAPIテストをやっていない?

  12. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •

    理由その3:
 APIテストのやり方はなんとなく知っているが、時間 がかかりそうだからやらない
 なぜAPIテストをやっていない?

  13. 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テスト

  14. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. 結合


    
 
 APIテスト
 ~White Box Testing~
 Request
 Response
 

  15. 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

  16. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •

    テストスコープ
 ◦ 内部結合
 AWSで構築されたもの
 EC2 → Log確認
 RDS → Log確認
 ◦ API の Component Test
 ▪ 正常系
 ▪ 異常系
 事例1

  17. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •

    どうやった?
 ◦ 内部結合
 アーキテクチャ図、プログラムフロー 
 → (EC2⇄EC2、EC2⇄RDS)観点だし、テストケース作成
 テストケース毎に実行
 → Response確認、EC2・RDSのLog確認
 ◦ Component Test
 API仕様書
 →パターンを抽出
 →パターンを組み合わせ、テストケース作成
 →テストケース毎に実行
 →Response確認
 事例1

  18. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •

    大変だったこと
 ◦ 内部結合
 暗黙仕様が多い
 →レビュー時間がかかる
 ◦ Component Test
 組み合わせるのは大変
 テストケースが多い→実行は大変
 • 分かったこと
 テストチームの独立性が高いほど、White box Testingは難しくなる
 →計画段階から関わるのは理想
 組み合わせテストは大変、繰り返し作業が多いため、自動化はした方が良い
 
 
 事例1

  19. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •

    テストスコープ
 ◦ シナリオテスト
 APIレイヤーでビジネスロジックを確認したい
 事例2

  20. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •

    どうやった?
 ◦ シナリオテスト
    あらゆる資料を読み込み、全体システムを把握
    →ユースケース図を作成
    →シナリオを作成
    →実行
    →Response確認、DB確認
 事例2

  21. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. •

    大変だったこと
 ◦ シナリオテスト
    UIはまだできていないため、システムを理解するのは大変
    データ準備は大変
    
 • 分かったこと
 APIテストは早期にビジネスロジックの確認に役立つ
 APIテストは再利用性が高い
 事例2

  22. Test Data
 Testcase List
 Test Result
 Implementation
 /Execution
 Analytics/
 Design


    
 Analytics/
 Design
 私たちはどうやっているか?
 Specification
 Report

  23. Test Data
 Testcase List
 Test Result
 Implementation
 /Execution
 Analytics/
 Design


    
 Analytics/
 Design
 私たちはどうやっているか?
 Specification
 Report
 Swaggerを読み込み、 テストデータを自動生成
  24. Test Data
 Testcase List
 Test Result
 Implementation
 /Execution
 Analytics/
 Design


    
 Analytics/
 Design
 私たちはどうやっているか?
 Specification
 Report
   組み合わせ  ・全組み合わせ  ・All - pairs   → 自動生成 SwaggerからAssertion自動生成
  25. Test Data
 Testcase List
 Test Result
 Implementation
 /Execution
 Analytics/
 Design


    
 Analytics/
 Design
 私たちはどうやっているか?
 Specification
 Report
 テストケースを選択 →実行ボタン 複数テストケース実行可
  26. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. ・

    APIテストの現状
 
 ・ APIテストのメリット
 
 ・ APIテストでの課題
 
 ・ 事例紹介
 + 観点
   + 事例
   + プロセス
 
 まとめ

  27. Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. 


    
 ご静聴
 ありがとうございました!