LIFULL Creators Blog

「株式会社LIFULL(ライフル)」の社員によるブログです。

テスト自動化セミナーへ参加してきました

こんばんは、Androidグループの中村です。

先日、テスト自動化のセミナーに参加してきました。 自動化する時の観点について、テスト自動化研究会のコミッターとしても活躍されている浦山さつきさんから、興味深い話があったので共有したいと思います。

自動化対象選びのポイント「手順が決まっていて実行頻度の高いもの」

  • 繰り返し行われること
  • 面倒くさいと思っていること
  • ミスが起こりやすいところ
  • 手順が決まっているところ
  • 変更が少ないところ

以上が自動化対象選びのポイントとのことです。 面倒くさいと思っているから作業者の集中力が切れてミスする、見誤ってミスする、これってせっかく作業しているのに本末転倒… でも意外とこういうことってありますよね。

あと、プロセスを見直すことで手順を定め、自動化も可能になるかもしれないということは 通常業務の見直しもでき、お得感がありますね。

またまた、変更が少ない箇所を自動化するっていうのは私がこれまで行ってきた業務からもそうだなと感じます。 頻繁に変更されている画面のテストなどを自動化してしまうと、メンテナンスのコストがかかってしょうがないです。

自動化だけが策ではない!

  • 手順が決まっていないと自動化できない
  • 一見すると、自動化に向いた作業でも実はやらなくてもいい作業かもしれない
  • 情報伝達ができていないだけであれば自動化することはない
  • 役に立たないテストや作業を自動化しても意味がない

この観点は、仕事の中で忘れがちではないかなと思います! なんでもかんでも自動化すればよいのではなく、対象をきちんと選別し、効果のある作業を自動化する! これでよりいっそうの仕事効率化がはかれますね。

自動化導入時の3ステップ 「計画 -> 試す -> 広める」

自動化を新たに導入するときには、3ステップ踏むとよいとのことです。

【計画】
  • 関係者を決める 「推進役」「変革の請負人」「組織上層部の支援者」
  • 道具を選ぶ 身近にあるツールや技術を使う、関係者の知見経験を使う
  • 試算する 一時的な生産性の低下は避けられない、どこで巻き返せるのか試算する

試算する要素としては道具にかかるコスト、自動化にかかる時間とコスト、失敗したテストを確認するコスト(なにが原因なのか解析する時間) メンテナンスにかかるコスト、教育にかかるコスト、期待できる効果等があるとのことです。

【試す】
  • パイロットプロジェクトを立ち上げる 自動化した仕組みがうまく適用できるか検証する
  • 実現可能か見極める ここでの数値が広める時の根拠になる

パイロットプロジェクトの効果を見ることで、既存プロセスへの影響を再確認ができ、新しいツールや手順について学習ができるとというメリットがあるとのことです。

【広める】
  • 共有する 成功の根拠を提示して同意をえる 内部からの反発に注意
  • 支援する 最初はパイロットプロジェクトを実行した人が一緒にやる 他の人への教育も行う
  • 見守る 効果を監視する フィードバックをもらい、計画の見直しを行う

ここで注意しないといけないのが「内部からの反発」とのこと…

プロジェクトの目的、役割を考えさせたり、そして…組織上層部の支援者からのトップダウンも効果的とのことです。

Androidグループ

ちなみに、私たちのグループでは Jenkinsを導入しています。

ユニットテストを一定間隔で実行したり、 ビルドを自動化し、デプロイゲートというツールをつかって 企画、制作、開発メンバーがapkをWebからダウンロードし、テストをみんなで行える環境を構築する等を行っています。

まだまだ自動化して効率化できる箇所もあると思います。 浦山さんの話にもあったようにプロセスの見直しをはかり、開発効率をあげて、よりよりアプリを提供していきたいと思っています。

おわり