継続的E2Eテスト #Seleniumjp

スライド

www.slideshare.net

はじめに

  • 自動テストを継続的に行うのって難しいですよね?
  • 自動テストはキャズムを超えた
  • やり始めるのは簡単だが、継続していくというのは大変
  • 技術的な話というよりも、運用で気をつけてきた点を話す

継続のポイント

  • メンテナンスコストがかかる

メンテナンスコストがかかる

  • テストが動かなくなった
  • NGが多発する
    • テストの分析が走るはず
    • 分析そのものが時間がかかる
      • テストを諦めてしまう
    • SUT updateをする
      • これも時間がかかる
      • リリースサイクルが早いと、メンテナンスコストが追いつかない
    • テスト環境が変わる
      • これを意識しないと大変なことになる
      • 対応してSeleniumそのものバージョンを上げたりする
  • メンテナンスするものはたくさんある

メンテナンスを効率よくするために行っていること

  • 毎日動かす
    • リリースが毎月1回とかでも動かす
    • 動かしていないと大変
    • 変化に敏感になる
  • 不安定を排除する
    • 特にテスト環境
    • WindowsのOSを再起動する
      • 溜まっていくメモリを開放するため
  • 常に調査する
    • OSSのバグなどを敏感に知っておく
    • ナレッジ化して社内の人が知っておくようにする
  • 対応の速さ
    • テストが落ちた時に、次の実行までに解決するようにする
  • メンテナンスしやすい仕組みにする
    • OSSSeleniumでページファクトリーでメンテナンスしやすくするのもそう
    • Updateした時に動作確認をする場所が常にある

テストの価値が低下する と感じる要因

  • デグレが見つけられない
    • テスト設計・実装の見直しを積極的に行う
    • 実行頻度を開発プロセスと同期する
      • 開発者が意識していくと、「テストが○時に動くので、それまでにMRを通そう」となったりする
  • NGが多すぎる

    • 環境起因でのNG
    • メールの表題が毎回同じだと、鈍感になったりする
  • 自由にテスト実行ができない

    • テスト実行環境を複数用意する
    • 自分で直した時に確認できるようにする

テストが継続しない最大の要因 = 担当者がいなくなる

  • 「部署は残っているのですが、担当者がいなくなったので一から作り直しています」とかある
  • 自動テストは属人化する
  • 一つの案件に対して複数人をアサインするようにしている