More Related Content
PPTX
Power BI 初心者さんのDAX・メジャー「モヤモヤ」晴れるまで PDF
PDF
PDF
エラー・バジェットによるリスク管理 Managing risk with error budgets PDF
PPTX
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら PDF
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話 PDF
[論文紹介] 機械学習システムの安全性における未解決な問題 What's hot
PPTX
どうやらテスト駆動型開発は死んだようです。これからのCI PPTX
Product ManagerとProduct Ownerの役割の違いについて PDF
PPTX
Startup finace 2018 ② ベンチャーファイナンスの型 PDF
PPTX
PPTX
カスタムブロックで自作モジュールをUIFlow対応にする PDF
PPTX
【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月) PDF
PDF
パタン・ランゲージを用いてスクラムの本質をひもとく PDF
Yahoo! JAPANが持つデータ分析ソリューションの紹介 #yjdsnight PDF
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション PDF
ネ申Excelと事務情報化 (関西オープンフォーラム2017) PPTX
【SQiP2016】楽天のアジャイル開発とメトリクス事例 PPTX
Wacate2018 winter jstqb-al-ta PPTX
PPTX
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ PDF
Similar to Selenium2でつくるテストケースの構成について
PPTX
PPTX
PDF
海外のSeleniumカンファレンスではどんな発表がされているのか2014 PDF
G*workshop 2011/11/22 Geb+Betamax PDF
PPTX
PDF
Playframework1でSeleniumテスト PPTX
PPT
テスト自動化ツール[Selenium]を検討してみて PDF
PDF
「Selenium実践入門」で学ぶテスト自動化の世界 PDF
PPTX
Selenium WebDriver + python で E2Eテスト自動化 PDF
OSC京都 2015 LT 「テスト自動化の闇と向き合う」 PDF
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス PPTX
WEB開発動作テストの自動化 を行うSeleniumの紹介 PDF
PDF
PDF
PPTX
Selenium2でつくるテストケースの構成について
- 1.
- 2.
なにを発表するの?
最近、Selenium2 +Ruby + RSpec でブラウザ
テストの自動化に取り組んでます
「ブラウザテスト」?
ここでは「テスターがブラウザを操作して眼で結果
を確認する行為」という意味で使います
具体的にどんなことをやってるのかを紹介し
ます。
(主にテストケースの構成について話します)
- 3.
- 4.
- 5.
- 6.
現状のテストケースの構成
spec
├ features
│ ├機能A
│ └ 機能B
├ fixtures
│ ├ 機能A
│ └ 機能B
├ operators
│ ├ 機能A
│ └ 機能B
├ pages
│ ├ 機能A
│ └ 機能B
└ support
テストシナリオ
テストデータ
ページに対する定型操作をまとめたクラス
ページクラス
一般的なユーティリティクラス
- 7.
なんで色々わかれてるの?
メンテナンス性向上のためです
テストにメンテナンス性って大事なの?
書いて1回実施してOKつけば終わりじゃん。
そんなことないです。
そもそも、手動のテストケースでもメンテ
ナンス性は大事です。メンテナンスするか
ら。
そして自動テストの場合はもっと大事です。
なんでこの構成なの?
- 8.
メンテナンス性が大事な理由
自動テストがある =長期保守プロダクト
1回テスト書いて流して納品すればOK!なプロ
ジェクトなら、そもそもテスト自動化しない
長期保守 = 将来プロダクト改修がある
機能追加、バグフィックス、環境移行…
プロダクト改修 = テスト実施 = テスト改修
変更したらテストしなきゃ危険
機械は「最新仕様をふまえてよしなに読み替えて
テスト」できない
- 9.
- 10.
- 11.
この部分の説明です
spec
├ features
│ ├機能A
│ └ 機能B
├ fixtures
│ ├ 機能A
│ └ 機能B
├ operators
│ ├ 機能A
│ └ 機能B
├ pages
│ ├ 機能A
│ └ 機能B
└ support
テストシナリオ
テストデータ
ページに対する定型操作をまとめたクラス
ページクラス
一般的なユーティリティクラス
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
ページクラスの内容
そのページが提供する機能 (publicメソッド)
メールアドレス入力欄に引数で受け取った値を入力
する
登録ボタンをクリックする
エラーメッセージ表示領域に出力されてる文字列を
取得する
ページ内要素の特定 (plivateメソッド)
メールアドレス入力欄・登録ボタン・エラーメッ
セージ表示領域etc… を具体的にCSSセレクタや
XPathで指定する
(これがないとページ操作できない)
- 20.
- 21.
- 22.
なので こうしてます
spec
├ features
│├ 機能A
│ └ 機能B
├ fixtures
│ ├ 機能A
│ └ 機能B
├ operators
│ ├ 機能A
│ └ 機能B
├ pages
│ ├ 機能A
│ └ 機能B
└ support
テストシナリオ
テストデータ
ページに対する定型操作をまとめたクラス
ページクラス
一般的なユーティリティクラス
- 23.
- 24.
この部分の説明です
spec
├ features
│ ├機能A
│ └ 機能B
├ fixtures
│ ├ 機能A
│ └ 機能B
├ operators
│ ├ 機能A
│ └ 機能B
├ pages
│ ├ 機能A
│ └ 機能B
└ support
テストシナリオ
テストデータ
ページに対する定型操作をまとめたクラス
ページクラス
一般的なユーティリティクラス
- 25.
予備知識
「ユーザを新規作成する」だけでも、「どんな内容で作
成したいか」は色々あります
設定項目の例
ユーザ名
苗字
苗字かな
名前
名前かな
パスワード
メールアドレス
携帯
PC
性別
生年月日
住所
郵便番号
都道府県
市区町村
丁目&番地
マンション名
電話番号
携帯
自宅
テスト上の要求
必須項目のみ指定してユーザ作成したい
全項目指定してユーザ作成したい
「苗字」を最大文字数にしてユーザ作成したい
「名前かな」に漢字を入力して結果を見たい
携帯とPCのメールアドレスに同じ文字列を入力
して結果を見たい
マンション名が空のユーザを作成したい
削除テスト用の適当なユーザを作成したい
ユーザを100人作成したい(内容は何でもいい)
etc…
- 26.
- 27.
困ります
可読性・メンテナンス性
「そのケースのテスト観点としては不要だけど、
入れざるを得ない項目」が多い(マンション名の例)
「ケースAとケースBで指定する入力値の違い( = テスト観点)
は何か?」が読み取りづらい
ある項目が指定されてないとき、その理由が分かり辛い
データ作成だけが目的だから、必須項目以外空にした?
バリデーションテストのために空にした?
ヒューマンエラー?
入力項目が増減するたび、全テストケースの修正が必要
仕様に詳しくないと 入力値を指定できない
「なんでもいいから適当なユーザつくりたい」ときでも、
「何が必須項目か&どんな入力値が許可されてるのか」
を知らないとつくれない
- 28.
- 29.
- 30.
- 31.
なので こうしてます
spec
├ features
│├ 機能A
│ └ 機能B
├ fixtures
│ ├ 機能A
│ └ 機能B
├ operators
│ ├ 機能A
│ └ 機能B
├ pages
│ ├ 機能A
│ └ 機能B
└ support
テストシナリオ
テストデータ
ページに対する定型操作をまとめたクラス
ページクラス
一般的なユーティリティクラス
- 32.
- 33.
Editor's Notes
- #5 ・Selenium2 = Selenium WebDriver
・「Selenium = Firefox のアドオン。キャプチャ&リプレイツール」って認識が主だと思いますが、少し違います。が、それには深く触れません。
- #7 詳しくはこれから説明します
- #9 ・機械は~のくだり
・別に手動テストでもテスト改修しなきゃいけないけど、実施が人間の場合は「とりあえずテストしてケースは後で直す」ができなくはない
- #13 ・メールアドレス入力欄に “めあど” と入力して登録ボタン押下し、表示されるエラーメッセージが正しいか確認するテスト
- #15 ③について
・「この要素はどうすれば特定できるか」とか、「特定したこの要素をどうやれば操作できるか」とかを知らないと、テストが書けない
- #17 ・Google翻訳を整形したので、合ってると思います
・検索するといくつか解説が見つかります。日本語のも何個かあります。
- #22 ・単に「プログラム言語から使える」という Selenium2 のメリットを享受できるようになっただけですが…
・③について。現状の「テストケースもページクラスも1人で書いてる状態」にはあまり関係ないですが、他社では「ページクラスは開発や社員のテストエンジニアが書き、テストケースはアルバイトが量産する」といった事例もあるそうです。
- #23 ・operators
・実際のテストではひとことで「ユーザ登録する」といっても「項目1~10に値を入れる → ボタンA押下する → ボタンB押下する …」みたいに操作が多いので、定番操作をまとめるために作ってます。
- #27 ・マンション名が空のケースについて
・「マンション名が空でも登録できること」のテストを行うためには 必須項目(苗字etc)が正しく入力されてる必要があるので、こうなります
- #28 ・「なんでもいいから適当なユーザつくりたい」という場合は結構多いです
・ユーザ削除テストでつかうユーザがほしい
・ユーザと紐付く他データ(コミュニティとか)のテストでつかうユーザがほしい
・ユーザ100人いるときの動作テストをしたいetc…