SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Selenium2でつくるテストケースの
構成について
2014/06/19
徳田 ゆい
なにを発表するの?
 最近、Selenium2 + Ruby + RSpec でブラウザ
テストの自動化に取り組んでます
 「ブラウザテスト」?
 ここでは「テスターがブラウザを操作して眼で結果
を確認する行為」という意味で使います
 具体的にどんなことをやってるのかを紹介し
ます。
(主にテストケースの構成について話します)
もくじ
 Selenium2って何?
 デモ
 現状のテストケースの構成
 メンテナンス性向上の工夫
 テストシナリオとページ操作の分離
 テストシナリオとテストデータの分離
Slenium2って何?
 OSSのブラウザテストツール
 プログラム言語でテストスクリプトを書いて使う
 何ができるの?
 手動テストの代替
 手動テストで行うのと同様に、実際にWebブラウザを起
動して操作できる
 ボタン押したり、文字列を入力したり取得したりetc
 特徴・メリット
 ブラウザテストツールのデファクトスタンダード
 情報&使用経験者の数が多い
 開発が活発
 幅広いOS/ブラウザ/言語に対応
デモ
現状のテストケースの構成
spec
├ features
│ ├ 機能A
│ └ 機能B
├ fixtures
│ ├ 機能A
│ └ 機能B
├ operators
│ ├ 機能A
│ └ 機能B
├ pages
│ ├ 機能A
│ └ 機能B
└ support
テストシナリオ
テストデータ
ページに対する定型操作をまとめたクラス
ページクラス
一般的なユーティリティクラス
 なんで色々わかれてるの?
 メンテナンス性向上のためです
 テストにメンテナンス性って大事なの?
書いて1回実施してOKつけば終わりじゃん。
 そんなことないです。
 そもそも、手動のテストケースでもメンテ
ナンス性は大事です。メンテナンスするか
ら。
 そして自動テストの場合はもっと大事です。
なんでこの構成なの?
メンテナンス性が大事な理由
 自動テストがある = 長期保守プロダクト
 1回テスト書いて流して納品すればOK!なプロ
ジェクトなら、そもそもテスト自動化しない
 長期保守 = 将来プロダクト改修がある
 機能追加、バグフィックス、環境移行…
 プロダクト改修 = テスト実施 = テスト改修
 変更したらテストしなきゃ危険
 機械は「最新仕様をふまえてよしなに読み替えて
テスト」できない
メンテナンス性向上のために
 大きくわけて以下2点を心がけてます
① テストシナリオとページ操作の分離
② テストシナリオとテストデータの分離
 上記2点について、それぞれ発表します
①テストシナリオと
ページ操作の分離
②テストシナリオと
テストデータの分離
この部分の説明です
spec
├ features
│ ├ 機能A
│ └ 機能B
├ fixtures
│ ├ 機能A
│ └ 機能B
├ operators
│ ├ 機能A
│ └ 機能B
├ pages
│ ├ 機能A
│ └ 機能B
└ support
テストシナリオ
テストデータ
ページに対する定型操作をまとめたクラス
ページクラス
一般的なユーティリティクラス
予備知識:ベタ書きの恐怖
ページに何か入力するテスト
入力項目5個×10ページ
困ります
① 可読性・メンテナンス性が低い
 同じようなことがあちこちに大量に書いてある
 HTMLが変更されたら、テストコードをすべて
修正しなくてはならない
② 対象のHTML&Selenium2の操作 を知ら
ないとテストが書けない
 「テストシナリオを考えられる」だけじゃテ
ストが書けない
対処法
 テストシナリオとページ操作の分離
=> PageObjectデザインパターン
…というのがあります
PageObjectデザインパターン
 Selenium公式で推奨されてるデザインパターン
https://code.google.com/p/selenium/wiki/PageObjects
 publicメソッドはページが提供するサービスを表す
The public methods represent the services that the page offers
 ページの内部を露出させないようにしよう
Try not to expose the internals of the page
 一般的に、アサーションを行わない
Generally don't make assertions
 メソッドは他のページオブジェクトを返す
Methods return other PageObjects
 ページ全体を表す必要はない
Need not represent an entire page
 同じアクションに対して結果が異なる場合は別なメソッ
ドとしてモデル化する
Different results for the same action are modelled as different
methods
具体的にどういうこと?
 「テストシナリオ」と
「テスト対象のページを表現するクラス」
を分離する
 テストシナリオ内では、直接ページ操作を
行わない
(すべてページクラスのAPIを通す)
テストシナリオn
テストシナリオ⑥
テストシナリオ⑥
テストシナリオ⑥
図にするとこんな感じ
テスト対象
ページ
ページクラス
テストシナリオ①
テストシナリオ②
テストシナリオ③
テストシナリオ④
テストシナリオ⑤
テストシナリオ⑥
ページクラスの内容
 そのページが提供する機能 (publicメソッド)
 メールアドレス入力欄に引数で受け取った値を入力
する
 登録ボタンをクリックする
 エラーメッセージ表示領域に出力されてる文字列を
取得する
 ページ内要素の特定 (plivateメソッド)
 メールアドレス入力欄・登録ボタン・エラーメッ
セージ表示領域etc… を具体的にCSSセレクタや
XPathで指定する
(これがないとページ操作できない)
テストケースの内容
 テスト手順
① テスト対象ページを開く
② メールアドレス入力欄に “めあど” と入力す
る
③ 登録ボタン押下する
 合否判定
 エラーメッセージ入力欄に “メールアドレスが
不正です” と表示されていればOK
どう変わるの?
① 可読性・メンテナンス性
 テストシナリオ中に、テスト手順/合否判定に関係ない
部分がなくなる
 HTMLが変更されても、ページクラスだけ直せばいい
② 対象のHTML&Selenium2の使い方 を知らなくて
もテストが書ける
 データ入力したければ それ用のメソッドを呼べばいい。
テストシナリオだけ考えれば、「データ入力するため
に、具体的にどうやって画面要素を特定し、どんな操
作が必要か」を知らなくてもテストが書ける。
なので こうしてます
spec
├ features
│ ├ 機能A
│ └ 機能B
├ fixtures
│ ├ 機能A
│ └ 機能B
├ operators
│ ├ 機能A
│ └ 機能B
├ pages
│ ├ 機能A
│ └ 機能B
└ support
テストシナリオ
テストデータ
ページに対する定型操作をまとめたクラス
ページクラス
一般的なユーティリティクラス
①テストシナリオと
ページ操作の分離
②テストシナリオと
テストデータの分離
この部分の説明です
spec
├ features
│ ├ 機能A
│ └ 機能B
├ fixtures
│ ├ 機能A
│ └ 機能B
├ operators
│ ├ 機能A
│ └ 機能B
├ pages
│ ├ 機能A
│ └ 機能B
└ support
テストシナリオ
テストデータ
ページに対する定型操作をまとめたクラス
ページクラス
一般的なユーティリティクラス
予備知識
 「ユーザを新規作成する」だけでも、「どんな内容で作
成したいか」は色々あります
 設定項目の例
 ユーザ名
 苗字
 苗字かな
 名前
 名前かな
 パスワード
 メールアドレス
 携帯
 PC
 性別
 生年月日
 住所
 郵便番号
 都道府県
 市区町村
 丁目&番地
 マンション名
 電話番号
 携帯
 自宅
 テスト上の要求
 必須項目のみ指定してユーザ作成したい
 全項目指定してユーザ作成したい
 「苗字」を最大文字数にしてユーザ作成したい
 「名前かな」に漢字を入力して結果を見たい
 携帯とPCのメールアドレスに同じ文字列を入力
して結果を見たい
 マンション名が空のユーザを作成したい
 削除テスト用の適当なユーザを作成したい
 ユーザを100人作成したい(内容は何でもいい)
 etc…
これらの内容をすべて
テストケース内に書くと
必須項目だけ指定するケース 全項目指定するケース マンション名が空のケース
入力値の指定だけでこれだけ書かなきゃいけない
(このあとにやっとテストケースを書ける)
困ります
 可読性・メンテナンス性
 「そのケースのテスト観点としては不要だけど、
入れざるを得ない項目」が多い (マンション名の例)
 「ケースAとケースBで指定する入力値の違い( = テスト観点)
は何か?」が読み取りづらい
 ある項目が指定されてないとき、その理由が分かり辛い
 データ作成だけが目的だから、必須項目以外空にした?
 バリデーションテストのために空にした?
 ヒューマンエラー?
 入力項目が増減するたび、全テストケースの修正が必要
 仕様に詳しくないと 入力値を指定できない
 「なんでもいいから適当なユーザつくりたい」ときでも、
「何が必須項目か&どんな入力値が許可されてるのか」
を知らないとつくれない
対処法
 テストシナリオとテストデータ(入力値
セット)を分離する
 テストシナリオ中では「○○用の入力値セッ
ト」を呼び出すだけ
 「基本となる入力値セット」を用意する
 必須項目のみ && 入力許容値のみ のセット
 これを元にバリエーションを増やす
具体的にはこんな感じ
どう変わるの?
 可読性・メンテナンス性
 「基本の入力値セット」があるので、その他のセッ
トでは「そのテスト観点に必要な部分」だけ指定す
ればいい
 項目の増減があっても「基本の入力値セット」だけ
修正すればいい
 仕様に詳しくなくても 入力値を指定できる
 「なんでもいいからユーザが100人ほしい」なら、
「基本の入力値セット」を使えばいい
なので こうしてます
spec
├ features
│ ├ 機能A
│ └ 機能B
├ fixtures
│ ├ 機能A
│ └ 機能B
├ operators
│ ├ 機能A
│ └ 機能B
├ pages
│ ├ 機能A
│ └ 機能B
└ support
テストシナリオ
テストデータ
ページに対する定型操作をまとめたクラス
ページクラス
一般的なユーティリティクラス
まとめ
 QAチームでは現在、ブラウザテストの自動化
に取り組んでます
 Selenium2という便利ツールを使ってます
 自動テストは手動テスト以上にメンテナンス性
が大事です
 なので以下に気をつけてます
 テストシナリオとページ操作の分離
 テストシナリオとテストデータの分離
以上です。

Weitere ähnliche Inhalte

Was ist angesagt?

Azureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめようAzureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめようNaoya Kojima
 
海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014Nozomi Ito
 
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介Yuki Okada
 
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化Nozomi Ito
 
Selenium IDE for primer
Selenium IDE for primerSelenium IDE for primer
Selenium IDE for primeryasukoS
 
「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界Nozomi Ito
 
ブラウザテスト自動化入門
ブラウザテスト自動化入門ブラウザテスト自動化入門
ブラウザテスト自動化入門takahiro sakuma
 
JustTechTalk#10 React開発における自動テスト実践
JustTechTalk#10 React開発における自動テスト実践JustTechTalk#10 React開発における自動テスト実践
JustTechTalk#10 React開発における自動テスト実践JustSystems Corporation
 
kintoneチームを支えるSeleniumテスト
kintoneチームを支えるSeleniumテストkintoneチームを支えるSeleniumテスト
kintoneチームを支えるSeleniumテストJumpei Miyata
 
Selenium boot campの紹介
Selenium boot campの紹介Selenium boot campの紹介
Selenium boot campの紹介Nozomi Ito
 
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンスNozomi Ito
 
20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料Hiroko Tamagawa
 
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトークSeleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトークY Watanabe
 
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオンkyon mm
 
Selenium Antipatterns
Selenium AntipatternsSelenium Antipatterns
Selenium AntipatternsJumpei Miyata
 
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #SeleniumjpSeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #SeleniumjpYahoo!デベロッパーネットワーク
 
はじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio OnlineはじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio OnlineKazushi Kamegawa
 
エンタープライズ開発でのSelenium活用事例
エンタープライズ開発でのSelenium活用事例エンタープライズ開発でのSelenium活用事例
エンタープライズ開発でのSelenium活用事例isaac-otao
 
はじめてのTeam foundation server執筆裏話
はじめてのTeam foundation server執筆裏話はじめてのTeam foundation server執筆裏話
はじめてのTeam foundation server執筆裏話Kazushi Kamegawa
 

Was ist angesagt? (20)

Azureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめようAzureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめよう
 
海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014
 
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
サイボウズがWebアプリ自動テスト に活用しているossツールの紹介
 
Selenium勉強会
Selenium勉強会Selenium勉強会
Selenium勉強会
 
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
 
Selenium IDE for primer
Selenium IDE for primerSelenium IDE for primer
Selenium IDE for primer
 
「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界
 
ブラウザテスト自動化入門
ブラウザテスト自動化入門ブラウザテスト自動化入門
ブラウザテスト自動化入門
 
JustTechTalk#10 React開発における自動テスト実践
JustTechTalk#10 React開発における自動テスト実践JustTechTalk#10 React開発における自動テスト実践
JustTechTalk#10 React開発における自動テスト実践
 
kintoneチームを支えるSeleniumテスト
kintoneチームを支えるSeleniumテストkintoneチームを支えるSeleniumテスト
kintoneチームを支えるSeleniumテスト
 
Selenium boot campの紹介
Selenium boot campの紹介Selenium boot campの紹介
Selenium boot campの紹介
 
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
 
20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料
 
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトークSeleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
 
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
 
Selenium Antipatterns
Selenium AntipatternsSelenium Antipatterns
Selenium Antipatterns
 
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #SeleniumjpSeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
 
はじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio OnlineはじめてのTeam Foundation ServerとVisual Studio Online
はじめてのTeam Foundation ServerとVisual Studio Online
 
エンタープライズ開発でのSelenium活用事例
エンタープライズ開発でのSelenium活用事例エンタープライズ開発でのSelenium活用事例
エンタープライズ開発でのSelenium活用事例
 
はじめてのTeam foundation server執筆裏話
はじめてのTeam foundation server執筆裏話はじめてのTeam foundation server執筆裏話
はじめてのTeam foundation server執筆裏話
 

Ähnlich wie Selenium2でつくるテストケースの構成について

Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化JustSystems Corporation
 
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストテストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストOhishi Mikage
 
JAZUG女子部 第2回勉強会 ハンズオン
JAZUG女子部 第2回勉強会 ハンズオンJAZUG女子部 第2回勉強会 ハンズオン
JAZUG女子部 第2回勉強会 ハンズオンKana SUZUKI
 
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめhakoika-itwg
 
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テストはこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テストSeiji KOMATSU
 
異業種でのテスト自動化の実際
異業種でのテスト自動化の実際異業種でのテスト自動化の実際
異業種でのテスト自動化の実際Satsuki Urayama
 
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストTsutomu Chikuba
 
Selenium 触ってみよう
Selenium 触ってみようSelenium 触ってみよう
Selenium 触ってみようOda Shinsuke
 
自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介Shinsuke Matsuki
 
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアルCOD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアルMasayuki Ozawa
 
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦urasandesu
 
超簡単!!なTestLinkの使い方
超簡単!!なTestLinkの使い方超簡単!!なTestLinkの使い方
超簡単!!なTestLinkの使い方Cake YOSHIDA
 
テストコードのリファクタリング
テストコードのリファクタリングテストコードのリファクタリング
テストコードのリファクタリングShuji Watanabe
 
Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案
Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案
Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案Kazunori Sakamoto
 
Qs information20110615
Qs information20110615Qs information20110615
Qs information20110615Kei Nakahara
 

Ähnlich wie Selenium2でつくるテストケースの構成について (20)

Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化
 
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストテストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
 
JAZUG女子部 第2回勉強会 ハンズオン
JAZUG女子部 第2回勉強会 ハンズオンJAZUG女子部 第2回勉強会 ハンズオン
JAZUG女子部 第2回勉強会 ハンズオン
 
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
 
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テストはこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
 
異業種でのテスト自動化の実際
異業種でのテスト自動化の実際異業種でのテスト自動化の実際
異業種でのテスト自動化の実際
 
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテスト
 
Selenium 触ってみよう
Selenium 触ってみようSelenium 触ってみよう
Selenium 触ってみよう
 
自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介
 
Selenium
SeleniumSelenium
Selenium
 
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアルCOD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
 
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
 
Qs info 002
Qs info 002Qs info 002
Qs info 002
 
超簡単!!なTestLinkの使い方
超簡単!!なTestLinkの使い方超簡単!!なTestLinkの使い方
超簡単!!なTestLinkの使い方
 
Qs info002
Qs info002Qs info002
Qs info002
 
テストコードのリファクタリング
テストコードのリファクタリングテストコードのリファクタリング
テストコードのリファクタリング
 
Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案
Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案
Webアプリの動的部分に着目したグレーボックス統合テストとテンプレート変数カバレッジの提案
 
CruiseControl.NET設置
CruiseControl.NET設置CruiseControl.NET設置
CruiseControl.NET設置
 
Nds#24 単体テスト
Nds#24 単体テストNds#24 単体テスト
Nds#24 単体テスト
 
Qs information20110615
Qs information20110615Qs information20110615
Qs information20110615
 

Selenium2でつくるテストケースの構成について

Hinweis der Redaktion

  1. ・Selenium2 = Selenium WebDriver ・「Selenium = Firefox のアドオン。キャプチャ&リプレイツール」って認識が主だと思いますが、少し違います。が、それには深く触れません。
  2. 詳しくはこれから説明します
  3. ・機械は~のくだり  ・別に手動テストでもテスト改修しなきゃいけないけど、実施が人間の場合は「とりあえずテストしてケースは後で直す」ができなくはない
  4. ・メールアドレス入力欄に “めあど” と入力して登録ボタン押下し、表示されるエラーメッセージが正しいか確認するテスト
  5. ③について ・「この要素はどうすれば特定できるか」とか、「特定したこの要素をどうやれば操作できるか」とかを知らないと、テストが書けない
  6. ・Google翻訳を整形したので、合ってると思います ・検索するといくつか解説が見つかります。日本語のも何個かあります。
  7. ・単に「プログラム言語から使える」という Selenium2 のメリットを享受できるようになっただけですが… ・③について。現状の「テストケースもページクラスも1人で書いてる状態」にはあまり関係ないですが、他社では「ページクラスは開発や社員のテストエンジニアが書き、テストケースはアルバイトが量産する」といった事例もあるそうです。
  8. ・operators  ・実際のテストではひとことで「ユーザ登録する」といっても「項目1~10に値を入れる → ボタンA押下する → ボタンB押下する …」みたいに操作が多いので、定番操作をまとめるために作ってます。
  9. ・マンション名が空のケースについて  ・「マンション名が空でも登録できること」のテストを行うためには 必須項目(苗字etc)が正しく入力されてる必要があるので、こうなります
  10. ・「なんでもいいから適当なユーザつくりたい」という場合は結構多いです  ・ユーザ削除テストでつかうユーザがほしい  ・ユーザと紐付く他データ(コミュニティとか)のテストでつかうユーザがほしい  ・ユーザ100人いるときの動作テストをしたいetc…