Enviar pesquisa
Carregar
20161218 selenium study4-part1
•
0 gostou
•
891 visualizações
N
Naoya Kojima
Seguir
For Selenium Advent Calender 12/2
Leia menos
Leia mais
Engenharia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 13
Baixar agora
Baixar para ler offline
Recomendados
TDDの「なぜ」に答える! (Answer in "why" of TDD)
TDDの「なぜ」に答える! (Answer in "why" of TDD)
seichi23
Myweekdays and testing
Myweekdays and testing
ryuji koyama
Unit testで定時帰宅!
Unit testで定時帰宅!
Funato Takashi
自動テストによって生み出される価値
自動テストによって生み出される価値
Shuji Yamada
Acceptance testは開発者がつくるべき(公開版)
Acceptance testは開発者がつくるべき(公開版)
Ken Muryoi
テストの運用について #m3dev
テストの運用について #m3dev
Kazuhiro Sera
20161203 selenium adventcalender
20161203 selenium adventcalender
Naoya Kojima
20161218 selenium study4
20161218 selenium study4
Naoya Kojima
Recomendados
TDDの「なぜ」に答える! (Answer in "why" of TDD)
TDDの「なぜ」に答える! (Answer in "why" of TDD)
seichi23
Myweekdays and testing
Myweekdays and testing
ryuji koyama
Unit testで定時帰宅!
Unit testで定時帰宅!
Funato Takashi
自動テストによって生み出される価値
自動テストによって生み出される価値
Shuji Yamada
Acceptance testは開発者がつくるべき(公開版)
Acceptance testは開発者がつくるべき(公開版)
Ken Muryoi
テストの運用について #m3dev
テストの運用について #m3dev
Kazuhiro Sera
20161203 selenium adventcalender
20161203 selenium adventcalender
Naoya Kojima
20161218 selenium study4
20161218 selenium study4
Naoya Kojima
What’s Next For Selenium?
What’s Next For Selenium?
Naoya Kojima
Automated Analytics Testing
Automated Analytics Testing
Naoya Kojima
20170710 hifive-test-meetup
20170710 hifive-test-meetup
Naoya Kojima
JJUG CCC 2017 Spring LT about JPA
JJUG CCC 2017 Spring LT about JPA
Naoya Kojima
JJUG CCC 2017 Spring LT about Twice Submit
JJUG CCC 2017 Spring LT about Twice Submit
Naoya Kojima
20161222 selenium adventcalender
20161222 selenium adventcalender
Naoya Kojima
20161212 selenium adventcalender
20161212 selenium adventcalender
Naoya Kojima
jjug_night_20161121
jjug_night_20161121
Naoya Kojima
Azureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめよう
Naoya Kojima
Mais conteúdo relacionado
Mais de Naoya Kojima
What’s Next For Selenium?
What’s Next For Selenium?
Naoya Kojima
Automated Analytics Testing
Automated Analytics Testing
Naoya Kojima
20170710 hifive-test-meetup
20170710 hifive-test-meetup
Naoya Kojima
JJUG CCC 2017 Spring LT about JPA
JJUG CCC 2017 Spring LT about JPA
Naoya Kojima
JJUG CCC 2017 Spring LT about Twice Submit
JJUG CCC 2017 Spring LT about Twice Submit
Naoya Kojima
20161222 selenium adventcalender
20161222 selenium adventcalender
Naoya Kojima
20161212 selenium adventcalender
20161212 selenium adventcalender
Naoya Kojima
jjug_night_20161121
jjug_night_20161121
Naoya Kojima
Azureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめよう
Naoya Kojima
Mais de Naoya Kojima
(9)
What’s Next For Selenium?
What’s Next For Selenium?
Automated Analytics Testing
Automated Analytics Testing
20170710 hifive-test-meetup
20170710 hifive-test-meetup
JJUG CCC 2017 Spring LT about JPA
JJUG CCC 2017 Spring LT about JPA
JJUG CCC 2017 Spring LT about Twice Submit
JJUG CCC 2017 Spring LT about Twice Submit
20161222 selenium adventcalender
20161222 selenium adventcalender
20161212 selenium adventcalender
20161212 selenium adventcalender
jjug_night_20161121
jjug_night_20161121
Azureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめよう
20161218 selenium study4-part1
1.
キーワード駆動テストを実践した話 まずは作ってみた編
2.
実践の背景 定期的に同じ操作のテストを繰り返していた 約
30 時間 依頼通りに値が設定されてることを検証する必要があった 約 20 時間 テストデータは間違いなく入力する必要があった 間違えたらやり直し 間違いなく入力されていることを検証(受入)する必要があった テストコードを書ける人がいなかった
3.
ビジネス要求 同じテスト内容を何度も繰り返し入力したくない 受入検証で誤ったテストを発見するような運用はやめたい
例え誤りを発見しても、迅速に修正、短時間で再実行したい テストコードを書けない人でも自動テストを実装出来るようにしたい
4.
機能要求 1つのテストケースで何度も同じテストを実施出来なければならない テストは自動実行される必要がある
テストの実施中にテストの合否を誤りなく判定しなければならない 誤りがあったテストケースだけを実行出来る仕組みが必要である キーワード駆動テスト手法を採用しなければならない さらに、テストケース表は自然言語で記述される必要がある
5.
ユースケース テストケース取り込み、実行、合否判定、結果報告 POI
TestNG DataProvider 、Suite、Assertion、Report 実行有無の判定処理の追加 Maven キーワード駆動テスト専用のテストケース表の作成 テスト対象への自然言語による操作を、テストシステムが処理可能な形に変換する テストケース表の作成
6.
作ったもの1 テストシステムの構造 テストシステムビルダー テストランナー テストケースローダ キーワードエンジン テストケースファイル テストステップファイル ロケータ
リポーター
7.
作ったもの2 テストケースファイル
8.
作ったもの3 テストステップファイル
9.
成果 同じ内容のテストを繰り返し操作しなくて済むようになった 受入検証ではテスト結果と証跡を確認するだけで済むようになった
テストシステムが意図した通りに動作することが保証されている為 誰でも自動テストを実装出来るようになった さらに ちょっとしたテストデータの変更にも対応できるようになった
10.
課題1 適切なキーワードの実装方法が分からなかった 汎用性の高いキーワードはテストケースが長くなり、テストケースが短くする為に キーワードの独自性を強めると汎用性に欠けて再利用性の低いキーワードが増えて しまった
非常に脆いテストになった WebElementの変更を伴う改修があると、テストケース表毎にロケータを書き直す必 要があった
11.
課題2 テストの実装よりテストシステムの実装に工数を取られた マルチブラウザのテストを独自に実装する必要があった
ブラウザのバージョンアップに合わせて、対応するドライバのバージョンに合わせるのが大変だっ た ブラウザの種類によりスクリーンショットの範囲が異なる ブラウザ間の差異の比較が出来なかった 失敗したテストの原因を特定する為に適切なロギングを設計する必要があった テストの実行を並列化出来ず、実行に時間が掛かってしまった テストの実行により画面を占有されてしまい、別の端末が必要になった 正しいテストシステムの構造、必要な機能が分からなかった テストシステムの目的が不明確だった
12.
対応方針1 適切なキーワードの実装方法 自分で考えた
保守性と拡張性の為に、オブジェクトとして実装する キーワード駆動テストを実践している方に聞いた システムテストでは、対象とするドメインの用語をキーワードとすると良い デザインパターンからヒントを得た クラス階層と機能階層を分離するBridgeパターン オブジェクトをコマンド化するCommand パターン…etc オブジェクト設計方法からヒントを得た ICONIXのドメイン分析手法から、オブジェクトを抽出、設計する手法を参考にする 非常に脆いテスト テストケース表のロケータが、テスト対象システムと同期する様にする
13.
対応方針2 テストシステムの実装に工数を取られた 以下をPitaliumに委譲する
マルチブラウザテスト対応 スクリーンショットの範囲補正、取得 テストログ(stacktrace含む)取得 テストのマルチスレッド実行 以下をJava Service Wrapperを利用してdaemon(サービス)化する Selenium Grid Node / Selenium Grid Hub 正しいテストシステムの構造、必要な機能 JUnitやSeleniumを使わないテストシステムの構造を参考にする テストシステムの目的を明確化する OOADの実践プロセスを参考に、要求に応じた設計をする
Baixar agora