テスト自動化が進まない原因を考える


概要

私が勤務している職場では、5年くらい前からテスト自動化の話が定期的に出てきて、その都度何らかの対策を行っていますが、
未だにテスト自動化が全く出来ていません。
その原因と対策を考えてみます。

前提

  • システム担当者は、テスト自動化の必要性・有用性は理解している(はず・・・)
  • システム担当以外(営業とか)の人も有用性は理解している(していて欲しいな)
  • テスト自動化で確認したい事は、
    • 画面AからCまで遷移できる
    • 自動入力された値がDBに登録されている
    • DBに登録されている値が想定通り

どんな時にテスト自動化の話が出てきた?

  • サイトAに機能追加をしたところ、サイトAでは問題なく想定通りの動作をしていたけど、 いつの間にかサイトBが動かなくなっていたとき。(利用者の問い合わせでサイトBの不具合を知ったとき)
  • ブラウザのバージョンアップでサイトが動かなくなっていたが、気が付くまでに数週間要したとき。
  • マスタデータの更新を行ったとき。(車の情報、郵便番号、電話番号などのマスタ更新)

自動化で使用したツール

Selenium

自動化が進まない原因

私が勤務している職場では、下記のような原因が考えられます。

  • 一人のエンジニアが複数サイトの案件を同時並行で対応しているため、テストコードの修正まで手が回らない
    • テストコードの修正は、開発期間に考慮されないことが多い
    • 「直ぐに対応出来ないから暇なときに修正しよう」と対応を後回しにすると、時間とともにテストコードの修正が億劫になる。そして放置・・・(私だけかも)
    • 不特定多数の人が1つのサイトに対して修正を行っているので、誰かがテストコードの修正を怠ると、修正が終わるまで待ち状態になり、そして誰もやらなくなる。
  • 自動化の必要性は理解しているが、それを運用していくノウハウがない
  • テストコードの作成は評価して貰えるが、テストコードの運用は評価して貰えない。
    • テストコードをしっかりと運用しますと言っても、それ当たり前の事だから他の事してと言われる。(それはそうなんだけど・・・)
    • 評価して貰えない事に時間を費やすぐらいなら、評価して貰える別の事に時間を割いた方が良いよね!ってなる。(私だけかも)

愚痴っぽくなってしまいました。

どうしたら良いのか(対策)

自動化を試みても定着しない現状と、人力で何とかなってる現状から、私の職場に自動化は必要は無いのかもしれませんが、
どうしたら自動化の導入と運用が定着するか、考えてみました。

  1. テストコードの修正が必要な場合は、修正に必要な工数を開発期間として考慮して貰う。
  2. ツールでテストを行う範囲(導入するサイトなど)が適切か再考する。
  3. テスト自動化の良いところ・悪いところを知り、自社サイトに適したツール・運用方法を導入する
  4. テスト自動化について情報収集を行い、社内共有を行いノウハウを蓄積する
  5. テストコードの運用についても評価して貰える体制にしたい(個人的要望)

今後の予定

まずは、上記の3.と4.について取り組もうと考えています。
やっぱり導入しないって流れるになるかもしれませんが・・・