2017/7/1に行われた、Selenium Committer Day 2017 – connpassに行ってきました。

ゲストスピーカー編のレポートはこちら。

Selenium Committer Day 2017参加レポートその1〜ゲストスピーカー編 | テストウフ

今回はスポンサーセッションと公募セッションの内容についてメモ書き&雑感です。

なお、見出しはイベントページからのコピペです。敬称略、実際の講演時刻と異なる場合がありますのでご了承ください。

※意図的にミスリードしてる箇所はありませんので、誤りがあったら指摘いただけると本当に嬉しいです。

Toshiya Komoda (DeNA) [スポンサーセッション] E2E自動テストの長期運用に耐えるための5つの手法 (Five methods to sustain long-term operation of E2E auto tests) 15〜20min

5年ほど自動テストを運用してきて、「どうすれば長期運用に耐えられる自動テストができるのか」という内容でした。

その手法として5つ挙げられていて、先の4つは

  • Periodic execution of all test suites(=とにかく高頻度にぶん回し続ける)
  • Define clear process to execute test cases(=ある程度割り切る)
  • Improve test debuggability(=デバッグしやすくする)
  • Make tests loosely coupled with SUT(=テスト対象とテストの実装を疎結合にする)

です。

私も数年の自動テスト運用の経験があるので、なるほどそうだよなーと思う点ばかりです。

ただ、2番のある程度割り切る=オールグリーンに固執しすぎない、というのはあまり周りでは聞かない話。でも納得は出来ます。テスト環境のレスポンスなどでどうしても不安定になりがちなテストケース(もしくはスイート)に対して「なんとかする」のは、多くの場合技術的には可能。でも、その数%を追い求めるコストよりも、もっと品質に寄与できることが他にあるんじゃないの?と考えたほうが良いですよね。

また、4番目のテスト対象とテストを疎結合にする話では、自然言語処理を使ってサイト上のフォームに適切な値を設定してくれるような工夫をされているそうです。

これはICST2017で発表されていた論文[Using Semantic Similarity for Input Topic Identification in

Crawling-based Web Application Testing]3※PDF注意 のアルゴリズムを実装したものだそう。

こういう、発表された論文を読んですぐ取り入れてみて結果につなげる流れ、会社として強いなと勝手に感心してました。

そんなDeNAさん、自動テスト運用を続けていくための手法最後のひとつが

良いテストエンジニアが居ること

ということで、良いエンジニア募集中だそうです。

KazuCocoa (Cookpad) [スポンサーセッション] Let’s step into the OSS community 15〜20min

appiumのrubyバインディングのメンテナンスをされているKazuCocoaさんのセッション。

クックパッドさんに入社してから、OSSへの貢献姿勢が変わったそうです。その様子を、実際にGitHubの草の生え方を年別に出して「どんどん増えてます」という形でわかりやすく見せてくれました。

入社前はOSSには基本的には使うだけだったところ、入社後はクックパッドさんにおけるOSSへの取り組み方に影響を受け、自身もコミットをするようになった、と。

最初はタイポを直すところとか、スペルミスとか、そういった小さなところをプルリク送ってみる。「たったそれだけしても・・・」と思うかもしれないが、それも貢献。

慣れてくるとだんだんもっと大きな貢献が出来るようになる。

また、プルリクを送ることだけがOSSへの貢献ではなく、フォーラムで質問することや、その質問に答えること。こういった(=Selenium Comitter Day等)イベントに参加することも、OSSへの貢献になる。

みんなで盛り上げていこう!

・・・もうココまで聞いて「あーそうだよなー自分も貢献したいなー」と、完全にSelenium関係なく心動かさていました。

誤字1字直すだけでもいいから(というかそのくらいしか今の技術力では出来ないかもしれませんが)、自分も何らかのOSSに貢献を始めようと思います。

Tomotaka Asagi (Human Crest) [スポンサーセッション] 継続的E2Eテスト (Continuous E2E Testing) 15〜20min

ヒューマンクレストの浅黄さんのセッション。

自動テストを継続的に行うには、ということで、たまたまDeNAさんのセッションと被ってしまったと。

自動テストにおいて、メンテを効率よく行うには

  • 毎日動かす
  • 不安定を排除する
  • 常に調査
  • 対応の速さ
  • メンテナンスしやすい仕組みにする

ことが大事。

自動テストを行っていて、テストの価値が下がったなーと感じる要因は

  • デグレが見つけられない
    • テスト設計・実装の見直しを積極的に行う
    • 実行頻度を開発プロセスと同期する
  • NGが多すぎる
    • テスト実行環境によるNGをなくす
  • 自由にテスト実行ができない
    • テスト実行環境を複数用意する

でも、テストが継続しなくなる最大の要因はというと・・・担当者がいなくなること。(ここで会場から同意の雰囲気が漏れてくる)

自動テストって属人化しやすい。

・・・そこで!

ヒューマンクレストさんのサービスLynx(リンクス)-Webサイト・アプリ運用自動化サービスを使おう!

Kenichiro Ota (SHIFT) [公募セッション] Windows Application DriverでWindowsアプリも自動テスト^_^ (Automate Windows app test with Windows Application Driver) 15〜20min

SHIFT太田さんの公募セッションは、Windows Application Driverを使ってみた話です。

WindowsApplicationDriverは、Seleniumのような感覚でWindowsのネイティブアプリを動かすことが出来る、Microsoft謹製のツール。

私も何度か触ってみて、とりあえずGithubでWatchしている状態です。

Microsoft/WinAppDriver: Windows Application Driver

Webの自動化をしようと思うとSeleniumを使うことが多いですが、ことデスクトップアプリケーションの自動化になると、ちょうど良いものが無かった状態でした。

そこにWindowsApplicationDriverが登場して、

  • OSS
  • Win32AppからWPFとかUWPまで使える
  • Seleniumのナレッジが使える
  • Microsoftのメンバーがメインのコミッタで、OSSとしてきちんと進んでいる

というメリットがあり、これはSeleniumユーザーにとっても色々役に立ちそうだなという印象。

ただ、日本語環境だと使えないメソッドがあったり、IDの取り方等で細かい問題があったりして、今は太田さんがサンプルを少しずつ直しているそうです。

なので、皆使ってみてどんどんプルリクしましょう。

太田さんの名言「クソだと思ったら(プルリクを)投げつけろ」