seleniumその1
第3回 日本Seleniumユーザーコミュニティ勉強会
http://seleniumjp.connpass.com/event/24206/
上記に参加してます。
メモ※リアルタイムに記載してるので個人的メモです。
意識違いがあっても気にしないでほしい。
■Seleniumデザインパターン & ベストプラクティス■
いきなり作ってはいけない。
→汚いコードになる、メンテナンスが難しくなる。
・UIマップを作る(似たプロパティを作成)
・似た機能をライブラリ化する。
いけてない例
二回実行したらエラーになるテストコード
アンチなデザパタ
record and playbook
自動取得等で撮ったもの→一回だけでメンテナンス難しい。
すぐ動くが
spaghettiパターン
複数のパターンを依存関係があったりする。
構造化されていない。
不要になったパターンがある場合に関係ないテストもエラーになる
chain linked
テストコード自体はDRYテストパターンで構造化しているが、テストケースかんで依存関係がある
big ball of bud
スパゲッティパターンにハーモニックパターンを適用し、テストコード感は独立している。
ただ、構造化されていないので、何か帰ると全部失敗することがある
保守困難なGod class
改善
DRYテストパターン
必要なコードは1カ所にまとめる。
テストコード重複が減る。
メンバー全体に意識共有が必要
HERMETICテストパターン
依存関係を廃止するパターン
外部への依存関係を廃止する
並行実行等可能になる。
テスト時間の増加や設計の必要が発生する。
ランダム実行順序原則
ランダムに実行することという原則
実例
テスト自動化もテスト駆動かもふくめてやはり方針は一緒
・何度も実行できる
改善パターンとしては
・コメントを自動生成するライブラリを作る
→タイムスタンプを使うこともあるが、UUIDなど組み合わせるなどで一意性を担保する
・振る舞いをテストする
write once test everywhereパターン
test tool independence パターン
■「Selenium実践入門」で学ぶテスト自動化の世界■
セレニウムとは
昔はCIってあんまりなかった。
商用のツールが大きかった
開発プロセスから分離された自動テストツールが多かった
(専用エディタ、DB等々)
2011年ごろから
商用とオープンソースの衰退が変わった
CIテストツールが増えた
circleci
travis CI
jenkins
・ユーザ企業からの発信事例が増えた
・selenium web driverも安定している
開発プロセスと統合された自動テストが増えているエディタやgitなど密接な連携ができるようになっている。
セレニウム実践入門(最近出たよ!)
チートシート作成
APIドキュメントではわからないノウハウが入っている
ファイル代アログやHTTPヘッダなど
マイナー機能も網羅
gebグルービーのラッパーライブラリ
gebでよく見るグルービーの文法もあるよ!
fluentlenium
javaのラッパーライブラリ
サイボウズさんの事例
段階ごとに何を作るか、QAと開発の役割分担を明確にした。