Slide 1

Slide 1 text

Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. APIテスト、どうやっていますか?
 マイ マイクオン
 


Slide 2

Slide 2 text

Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. マイ マイクオン
 
 2011 来日
 2012 横浜国立大学入学
 2016 大学卒業、 HC入社
 現在: RakAPIt Leader
 
 Profile


Slide 3

Slide 3 text

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


Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. ・ APIテストの現状
 
 ・ APIテストのメリット
 
 ・ APIテストでの課題
 
 ・ 事例紹介
 + 観点
   + 事例
   + プロセス
 
 Agenda


Slide 6

Slide 6 text

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%


Slide 7

Slide 7 text

Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. 2020~2026
 Software Testing : 伸び率6%
 
 
 APIテスト ~現状~
 出典:https://www.gminsights.com/ 


Slide 8

Slide 8 text

Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. 2020~2026
 API Testing : 伸び率19.82% 
 APIテスト ~現状~
 出典:https://www.verifiedmarketresearch.com 


Slide 9

Slide 9 text

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


Slide 10

Slide 10 text

Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. • UIからの操作ではテストしにくいケースであっても APIなら直接テストできる
 APIテストのメリット


Slide 11

Slide 11 text

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


Slide 12

Slide 12 text

Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. • 理由その1:
 そもそもAPIテストが知らない
 APIテストで何ができるか知らない
 なぜAPIテストをやっていない?


Slide 13

Slide 13 text

Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. • 理由その2:
 APIテストはやった方がいいのは知っているが、ど うやればいいのか分からない
 なぜAPIテストをやっていない?


Slide 14

Slide 14 text

Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. • 理由その3:
 APIテストのやり方はなんとなく知っているが、時間 がかかりそうだからやらない
 なぜAPIテストをやっていない?


Slide 15

Slide 15 text

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


Slide 16

Slide 16 text

Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. 私たちは分かりやすいように、このような分け方をし ています。
 
 
 APIテスト


Slide 17

Slide 17 text

Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. 結合
 
 
 APIテスト
 ~White Box Testing~
 Request
 Response
 


Slide 18

Slide 18 text

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


Slide 19

Slide 19 text

Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. ● テストスコープ
 ○ 内部結合
 AWSで構築されたもの
 EC2 → Log確認
 RDS → Log確認
 ○ API の Component Test
 ■ 正常系
 ■ 異常系
 事例1


Slide 20

Slide 20 text

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


Slide 21

Slide 21 text

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


Slide 22

Slide 22 text

Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. ● テストスコープ
 ○ シナリオテスト
 APIレイヤーでビジネスロジックを確認したい
 事例2


Slide 23

Slide 23 text

Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. ● どうやった?
 ○ シナリオテスト
    あらゆる資料を読み込み、全体システムを把握
    →ユースケース図を作成
    →シナリオを作成
    →実行
    →Response確認、DB確認
 事例2


Slide 24

Slide 24 text

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


Slide 25

Slide 25 text

Test Data
 Testcase List
 Test Result
 Implementation
 /Execution
 Analytics/
 Design
 
 Analytics/
 Design
 私たちはどうやっているか?
 Specification
 Report


Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

Test Data
 Testcase List
 Test Result
 Implementation
 /Execution
 Analytics/
 Design
 
 Analytics/
 Design
 私たちはどうやっているか?
 Specification
 Report
 テストケースを選択 →実行ボタン 複数テストケース実行可

Slide 29

Slide 29 text

Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. ・ APIテストの現状
 
 ・ APIテストのメリット
 
 ・ APIテストでの課題
 
 ・ 事例紹介
 + 観点
   + 事例
   + プロセス
 
 まとめ


Slide 30

Slide 30 text

Copyright © 2020 HumanCrest Co., Ltd. All Rights Reserved. 
 
 ご静聴
 ありがとうございました!