API テスト自動化
と
テストピラミッド
2020/11/18
#自動化エンジニアのLT会
自己紹介
• 名前 :Tomotaka Asagi
• 主の業務:テスト自動化
• 経歴
• 開発 10年(C++, VB, JAVA, .Net, SQL等)
• テスト10年(商用ツール, JMeter, Selenium, Appium, Jenkins,
Junit 等)
• そもそも、テスト嫌いです。なので、何回かやる必要性がある
操作は全て自動化したがります。
手動テストは嫌いです
なので、自動化してきました。
テスト分析、設計は好きです!
APIテスト自動化
E2E
Integration
Tests
Unit Tests
テストピラミッド
E2E 100%
0%
0%
Manual Tests
Antipattern
10年前
アーキテクチャの進化に伴い
自動テストがしやすくなった
Webやアプリ開発において、Unit Test を自動化してないのは、フレーム
ワークを使ってないに等しい
Integrarition Tests
Unit Tests
ここ数年~
E2E
Integration Tests
Unit Tests
Manual
Tests
Antipattern
遅い
壊れる
不安定
E2Eのテスト自動化が継続しない最大の要因
なんの為に自動化するのか?
以前は、(個人的には面倒だから) コスト削減。
現在は、早いフィードバック
E2E
API Tests
Unit Tests
Exploratory
Testing
2020年
事例
PC/スマホアプリのE2Eテスト自動化
→APIテスト自動化 併用へ
自動テストのシステムを構築
テストType
機能テスト
ストーリーテスト
データ駆動テスト
利用技術
Jenkins
Junit
Selenium
Appium
各種ドライバー
excel
ALL E2E testing
PCアプリ(Java,.Net)
Webアプリ
Androidアプリ
iOSアプリ
外部サーバテスト対象サーバー
テスト対象アプリ
テスト終了まで、数時間
2016年
自動テストのシステムを構築
テストType
機能テスト
ストーリーテスト
データ駆動テスト
利用技術
Jenkins
Junit
Selenium
Appium
各種ドライバー
excel
ALL E2E testing
PCアプリ(Java,.Net)
Webアプリ
Androidアプリ
iOSアプリ
外部サーバテスト対象サーバー
テスト対象アプリ テスト範囲
テスト終了まで、数時間
自動テストのシステム
E2E テスト
機能テスト(アプリとして)
ストーリーテスト
API テスト
機能テスト(APIとして)
データ駆動テスト
利用技術
Jenkins
Junit
Selenium
Appium
各種ドライバー
excel
Java
PCアプリ(Java,.Net)
Webアプリ
Androidアプリ
iOSアプリ
外部サーバテスト対象サーバー
テスト対象アプリ
REST API
テスト範囲
テスト範囲
テスト終了まで、最短で15分に短縮
パラメータパターン網羅
リファクタリング後
テスト範囲を決めUIを通さず
にできる事を考えよう
リファクタリングのとき、よく考え直す事
ScopeーPhaseーLevelーSizeーType
Swagger → テストケース
パラメータのパターンをある程度類推して、大枠のケースを作ってしまう
E2E
API Tests
Unit Tests
Exploratory
Testing

APIテスト自動化とテストピラミッド

Editor's Notes

  • #5 個人的に、今 自分の旬は、APIのテスト自動化
  • #6 理想のテストピラミッド
  • #7 手動テストを、自動化する アンチパターンのアイスクリームコーンタイプになってしまう。 そうすると、重くて、遅くて、壊れやすい自動テストが完成しお、やたら、メンテナンスが大変の自動化となりまうs
  • #9 昨年度 あたりから、Unit Test やってます というのが、異常に増えた
  • #10 ですので、われわれ、その上の部分を担当するパターンが増えてきました。 砂時計型ですね。。 基本的に、このままだと開発スピードが鈍ります。はい、アンチです。
  • #11 まったくもって、信頼できない
  • #13 最近は、APIテストに力を入れてきました。 API 各レベルにおいて、何をどこまでカバーするのか? きめる 理想型に近づくと、スピードとバグが減る 開発へのフィードバックが早くなりますからね。