17
APIE2Eテスト @nihonbuson 2016.02.10 #entapihack

ApiとE2Eテスト #entapihack

Embed Size (px)

Citation preview

Page 1: ApiとE2Eテスト #entapihack

APIとE2Eテスト@nihonbuson

2016.02.10 #entapihack

Page 2: ApiとE2Eテスト #entapihack

自己紹介

• @nihonbuson

• ブロッコリー

• #entapihack は3回とも参加

• テストエンジニア

Page 3: ApiとE2Eテスト #entapihack

第1回にて…

Page 4: ApiとE2Eテスト #entapihack

アンケート

• テストエンジニアの人?

• E2Eテストを自動化している人?(Seleniumとか)

• テストが嫌いな人?

Page 5: ApiとE2Eテスト #entapihack

テストエンジニアが無い!

今日のアンケートには…

Page 6: ApiとE2Eテスト #entapihack

E2Eの自動テストの課題点

Page 7: ApiとE2Eテスト #entapihack

課題点

• 初期導入コストが高い

• 失敗の連鎖が起きやすい

• 仕様変更に対するメンテナンスコストが高い

Page 8: ApiとE2Eテスト #entapihack

失敗の連鎖とは成 功

失 敗

失 敗 ?

失 敗 ?

• 前のテストが失敗した場合、後ろのテストが失敗(不具合発生)なのか分からない。

• 例)新規予約で失敗→予約確認は成功?失敗?

Page 9: ApiとE2Eテスト #entapihack

解決策

• 新規予約のテスト

• 予約のデータが入っている状態で予約確認のテスト

Page 10: ApiとE2Eテスト #entapihack

解決策

• 新規予約のテスト

• 予約のデータが入っている状態で予約確認のテスト

前処理

Page 11: ApiとE2Eテスト #entapihack

http://example.selenium.jp/reserveApp/

Page 12: ApiとE2Eテスト #entapihack

• 画面の仕様が変更になったら?

• 保存するDBの仕様変更があったら?

Page 13: ApiとE2Eテスト #entapihack

その解決策がAPI

Page 14: ApiとE2Eテスト #entapihack

解決策

• 新規予約のテスト

• 予約のデータが入っている状態で予約確認のテスト

ここをAPIで!

こっちは要修正

Page 15: ApiとE2Eテスト #entapihack

前処理の利点・欠点

セットアップ の頻度

画面の 仕様変更

DBの 仕様変更 開発の手間

手作業 ✕ 毎回操作する

◎ 強い

◎ 強い

◎ 変わらない

画面操作 の自動化

◎ 初回のみ操作

✕ 弱い

◎ 強い

◎ 変わらない

DB ◎ 初回のみ操作

◎ 強い

✕ 弱い

◎ 変わらない

API ◎ 初回のみ操作

◎ 強い

◎ 強い

✕ 要API作成

Page 16: ApiとE2Eテスト #entapihack

欠点はあるけれど…

• 既にAPIを提供している場合には価値あり!⇒むしろ使わなきゃ損!

• APIを検討&既にE2Eテストをしている場合 ⇒提案してみては?

Page 17: ApiとE2Eテスト #entapihack

テストも含めて楽しいAPIを!