スライド
www.slideshare.net
はじめに
- 自動テストを継続的に行うのって難しいですよね?
- 自動テストはキャズムを超えた
- やり始めるのは簡単だが、継続していくというのは大変
- 技術的な話というよりも、運用で気をつけてきた点を話す
継続のポイント
- メンテナンスコストがかかる
メンテナンスコストがかかる
- テストが動かなくなった
- NGが多発する
- テストの分析が走るはず
- 分析そのものが時間がかかる
- テストを諦めてしまう
- SUT updateをする
- これも時間がかかる
- リリースサイクルが早いと、メンテナンスコストが追いつかない
- テスト環境が変わる
- これを意識しないと大変なことになる
- 対応してSeleniumそのものバージョンを上げたりする
- メンテナンスするものはたくさんある
メンテナンスを効率よくするために行っていること
- 毎日動かす
- リリースが毎月1回とかでも動かす
- 動かしていないと大変
- 変化に敏感になる
- 不安定を排除する
- 特にテスト環境
- WindowsのOSを再起動する
- 溜まっていくメモリを開放するため
- 常に調査する
- OSSのバグなどを敏感に知っておく
- ナレッジ化して社内の人が知っておくようにする
- 対応の速さ
- テストが落ちた時に、次の実行までに解決するようにする
- メンテナンスしやすい仕組みにする
テストの価値が低下する と感じる要因
- デグレが見つけられない
- テスト設計・実装の見直しを積極的に行う
- 実行頻度を開発プロセスと同期する
- 開発者が意識していくと、「テストが○時に動くので、それまでにMRを通そう」となったりする
NGが多すぎる
- 環境起因でのNG
- メールの表題が毎回同じだと、鈍感になったりする
自由にテスト実行ができない
- テスト実行環境を複数用意する
- 自分で直した時に確認できるようにする
テストが継続しない最大の要因 = 担当者がいなくなる
- 「部署は残っているのですが、担当者がいなくなったので一から作り直しています」とかある
- 自動テストは属人化する
- 一つの案件に対して複数人をアサインするようにしている