apiとe2eテスト #entapihack
TRANSCRIPT
![Page 1: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/1.jpg)
APIとE2Eテスト@nihonbuson
2016.02.10 #entapihack
![Page 2: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/2.jpg)
自己紹介
• @nihonbuson
• ブロッコリー
• #entapihack は3回とも参加
• テストエンジニア
![Page 3: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/3.jpg)
第1回にて…
![Page 4: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/4.jpg)
アンケート
• テストエンジニアの人?
• E2Eテストを自動化している人?(Seleniumとか)
• テストが嫌いな人?
![Page 5: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/5.jpg)
テストエンジニアが無い!
今日のアンケートには…
![Page 6: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/6.jpg)
E2Eの自動テストの課題点
![Page 7: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/7.jpg)
課題点
• 初期導入コストが高い
• 失敗の連鎖が起きやすい
• 仕様変更に対するメンテナンスコストが高い
![Page 8: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/8.jpg)
失敗の連鎖とは成 功
失 敗
失 敗 ?
失 敗 ?
• 前のテストが失敗した場合、後ろのテストが失敗(不具合発生)なのか分からない。
• 例)新規予約で失敗→予約確認は成功?失敗?
![Page 9: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/9.jpg)
解決策
• 新規予約のテスト
• 予約のデータが入っている状態で予約確認のテスト
![Page 10: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/10.jpg)
解決策
• 新規予約のテスト
• 予約のデータが入っている状態で予約確認のテスト
前処理
![Page 11: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/11.jpg)
http://example.selenium.jp/reserveApp/
![Page 12: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/12.jpg)
• 画面の仕様が変更になったら?
• 保存するDBの仕様変更があったら?
![Page 13: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/13.jpg)
その解決策がAPI
![Page 14: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/14.jpg)
解決策
• 新規予約のテスト
• 予約のデータが入っている状態で予約確認のテスト
ここをAPIで!
こっちは要修正
![Page 15: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/15.jpg)
前処理の利点・欠点
セットアップ の頻度
画面の 仕様変更
DBの 仕様変更 開発の手間
手作業 ✕ 毎回操作する
◎ 強い
◎ 強い
◎ 変わらない
画面操作 の自動化
◎ 初回のみ操作
✕ 弱い
◎ 強い
◎ 変わらない
DB ◎ 初回のみ操作
◎ 強い
✕ 弱い
◎ 変わらない
API ◎ 初回のみ操作
◎ 強い
◎ 強い
✕ 要API作成
![Page 16: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/16.jpg)
欠点はあるけれど…
• 既にAPIを提供している場合には価値あり!⇒むしろ使わなきゃ損!
• APIを検討&既にE2Eテストをしている場合 ⇒提案してみては?
![Page 17: ApiとE2Eテスト #entapihack](https://reader031.vdocuments.site/reader031/viewer/2022021919/5877c5691a28ab39588b5749/html5/thumbnails/17.jpg)
テストも含めて楽しいAPIを!