Data-driven Frameworks

ノンプログラマのための
Selenium de DDT
はじめの一歩
Satsuki Urayama
うらやま さつき
• 所属:テスト自動化研究会(STAR)、しなてす
• 出没:WACATE
おいしいものがあるところ
• ノンプログラマ / テストやってます
いわゆる協力会社メンバーです
• 携わったシステム:
顧客管理(Java/web)
広告管理(web)、組込み、
証券取引(web)
M
ノンプログラマの環境・制約
• 自動化は当たり前?
• 自動化していきたい?
事情は
いろいろ
• 手動テスト全盛?
• テストなのに開発ツール入れるの?
• OSSツールの使用も承認制?
• 工数は?効果は??
M
いつまで手でやってるの?
【このおはなしの対象】
• 自動化に挑戦したいマニュアルテスター
• ちょっとした工夫で解決できることに
時間を割いている人に心当たりがある人
自動化したいテストケース
【例】
• バリデーションチェック後に表示されるエラーメッセー
ジの確認
• 登録情報によって変わる割引サービスの適用
• 購入金額による手数料の確認
刺身にたんぽぽ乗っけるようなテスト。
例題
未入力の場合
0~100の半角数字以外を入力した場合
エラーメッセージが表示される
例題:テストケース
【手順】
①「順番」のテキストボックスに値を入力する
(同時にテーマ名にも任意の文字列を入力する)
②「テーマの追加」ボタンを押す
③エラーメッセージが表示されることを確認する
項番
内容
入力値
1
エラーメッセージ
1
全角数字
順番は、0から100の範囲で入力してください。
2
範囲外の半角 101
数字
順番は、0から100の範囲で入力してください。
3
全角ひらがな あ
順番は、0から100の範囲で入力してください。
4
半角英字
A
順番は、0から100の範囲で入力してください。
5
htmlタグ
<b>1</b>
順番は、0から100の範囲で入力してください。
6
記号
;
順番は、0から100の範囲で入力してください。
7
未入力
未入力
順番を入力してください。
STEP1:記録する
項番
内容
入力値
エラーメッセージ
1
全角数字
1
順番は、0から100の範囲で入力してく
2
範囲外の半角
数字
101
順番は、0から100の範囲で入力してく
3
全角ひらがな
あ
順番は、0から100の範囲で入力してく
4
半角数字
A
順番は、0から100の範囲で入力してく
5
htmlタグ
<b>a</b>
順番は、0から100の範囲で入力してく
6
記号
;
順番は、0から100の範囲で入力してく
7
未入力
未入力
順番を入力してください。
値を変えただけの
テストケースを作っていく
STEP2:値違いのケースを作る
• テストケースとテストスイート(htmlファイル)を
出力するマクロを作成
※某社H島さんのツールをインスパイアしました。ありがとうございました。
STEP3:実行する
ね、簡単でしょ?
Very easy.
M
データ駆動テスト(data driven testing)
スクリプト作成技術の1つ。
テスト入力と期待結果をテーブルやスプレッド
シートに格納し、1つの制御スクリプトでテーブ
ル中の全テストを実行するもの。キャプチャ/プレ
イバックツールのような、テスト実行ツールのア
プリケーションで使うことが多い。
(JSTQB Glossaryより)
テスト自動化の3世代
レベル1
Linear Script Frameworks
Data-driven Frameworks
レベル2
レベル3
Functional Decomposition
Frameworks
Keyword-Driven Frameworks
Model-based Framework
TABOK Segment 2: Macroscopic Process Skills Skill Category
4: Test Automation Frameworks
あれもやりたい これもやりたい
• 仕様を整理しないと
• 文字列比較は曖昧でもいい
• エビデンス残したい
• 画面に表示された値を使いたい
遅延評価
学習
• 文字列の一部を取り出したい
• 現在日付を使いたい
• いろんなブラウザでテストしたい
• 実施前に環境を初期化したい
!!
!!!!!!!!
• 実施時間帯によって操作を変えたい
• 無人の時間帯に実行したい
などなど……
M
まず、やってみよう
ご清聴ありがとうございました
M