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と開発の役割分担を明確にした。