やらなイカ?

たぶん、iOS/Androidアプリの開発・テスト関係。

Selenium勉強会@サイボウズに行ってきました #selenium_cybozu

10/20にサイボウズ株式会社さんで開催された『Selenium勉強会@サイボウズ』に行ってきました。

connpass.com

以下、メモ残したものだけ。内容すべて拾ってはいないので注意。

Selenium Conference 2015 参加報告

サイボウズの宮田さんより。

  • Selenium Conferenceは今年で5回目。今回はポートランドで開催。
  • 初日はワークショップ、2・3日目はセッション。セッション動画は公開されている
  • ランチ時も含めて、参加者間での議論も活発だった

面白かったセッションの紹介

  • FacebookのSimonさんのKeynote
  • Selenideの話
    • Selenide == Javaで書かれたSeleniumクライアントラッパー
    • smart waiting: shouldHave()で画面遷移・描画を待ってくれる
    • collection
    • automated screenshot
    • sizzle selectors
    • profiler
    • fast setVelue: JSでsetValueを置き換える(setValueの実行が遅いのを改善)
  • Selenium Grid Auto scale
    • AWSで構築
    • hub一つで、250並列
    • hub二つで、500並列
    • ネットワーク帯域を増やして、1000並列

テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもよという話

ビズリーチの渡辺さんより、テンプレートエンジンMixer2がSeleniumによるテストと親和性が高いという話。

  • Mixer2は、Javaで書かれたテンプレートエンジン
  • DSLでなく、htmlのspan id/class指定を置き換えるエンジン -> SeleniumXPath書かずに済む
  • XHTMLJavaのObject変換が双方向 -> テストコード側では、パースして得たJava Objectに対してassertを書くことができる

SikuliXを知っていますか?

小原さんより、SikuliXの紹介と、Seleniumとの連携について。

  • sikulixからseleniumを呼ぶ
  • sikulixをライブラリとして使う
  • sikulix IDEで簡単にコードを書いたり、実行できる
  • Sikuliの開発をMITから引き継いだ時、xをつけてsikulixになった

本当にメンテナブルなSeleniumの運用について考えてみた

一休.comの赤坂さん

  • Seleniumのテストは、リグレッションテスト向けに書いて実行している
  • テストケースは30、8並列で実行
  • 本番環境は5〜7分、ステージングでは8〜10分
  • 最低限のシナリオ
  • 運用していくためにはどうするか
    • Page object design patternは手段の一つ
    • メンテナを増やす
      • 説明会、ドキュメント、継続的にアウトプット、自分でメンテしないで機能を実装した担当者にやらせる
      • フォローは喜んでやる

kintone開発を支えるSeleniumテスト

ふたたびサイボウズの宮田さん。kintoneの開発での実例。

  • 自動テストは一度壊れて放棄。『継続的デリバリー』を読んで再チャレンジ
  • テストケースは1000くらい
  • QAがテスト設計、PGが自動化実装
  • Java + WebDriver
  • 新機能追加時に受け入れテストも書いている
  • 既存機能は、手の空いた時に追加。優先順位はリスクを考慮してQAが決定
  • メインブランチに変更が入るたびテスト実行。落ちたらチャットで晒しあげられる
  • メンテナンス性
    • page object
    • 失敗時にスクショを撮る。動画も試したがリソースが辛かったのでやめた
  • コード品質を高める
  • 安定性の向上:リトライ回数。画面遷移待ちなどはラッパー(Selenideなど)でサポートされている
  • 実行時間;余計なテストは作らない、単体テスト等でカバー
  • IE, Safariはやってない

継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化

継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化

Seleniumデザインパターン & ベストプラクティス

Seleniumデザインパターン & ベストプラクティス