プログラミング初心者がSeleniumでUIテスト自動化した話


はじめに

aptpodという会社で、QA(品質保証)チームで各製品のテスト等を行っています。
テスト効率化のために、Seleniumを使用してUIテスト自動化を行った際の話を書いて行きたいと思います。

テスト自動化については、色んな方々が記事を書かれているので、本記事ではプログラミング初心者がどんな事をして
UIテスト自動化を行ったのかを書いて行きたいと思います。

参考にしたもの

書籍

Selenium実践入門 ――自動化による継続的なブラウザテスト

Webページ

そもそも、Seleniumとはなんぞや?というレベルから始まったので、この手のページは大変お世話になりました。

何を書いたら動くのかが全然わからなかった私に取っては、大変有り難い存在でした。
使用言語は、Pythonを使用しましたので、Python部分を何度も調べました。
それでもわからなかったものは、諦めました。。

やってみたこと

環境構築

前述したとおり、プログラミングの経験なんてほぼ皆無なので、PythonやSeleniumの実行環境を使用しているWindows環境でまずは挫折しました。Macでの環境構築についての記事が多く出てくるので、ほとんど何を書いてあるのかわからずで、それをWindowsでどうすれば
良いのかが最初の難関でした。

解決策

社内で誰も使用していない、MacBookがあったので、そちらを使用して解決。
* その時は、まずは動かしてみたい一心だったので安易な解決をしました。

簡単な事から始めてみた

環境構築は出来たので、これからはソースコードを書いて動かしていくことにしました。
1. Googleに接続する
2. 検索みる
3. Google閉じる

たったこれだけでしたけど、動いた時は嬉しかったですね。
なんと便利な!!!という気分です。

もちろん、これだけでは、UIテストなんて出来ないので、ほんの僅かな一歩目でした。

実践

いよいよ、弊社製品を用いて、動かしてみることにしました。
動かした製品は、『VISUAL M2M』という製品になります。

自動化で出来るようになった操作

  • Basic認証/ログイン実行⇒ログアウトまで自動化する
  • ボタンやリンクのクリック操作する
  • 各画面でのスクリーンショットを撮影する
  • 文字入力で検索する
  • ファイルのアップロードやインポートをする

結果

良かったこと

  • 当時のテスト項目書の45%程度は自動化が出来るようになった
  • プログラミングをもっと勉強したくなった
    • ProgateでPythonの勉強始めました
  • 実際にやってみたことで、新しい経験が積めた
    • 手動でのテストがゼロにならないことを実証出来た

悪かったこと

  • 現在、自動化については止まってしまっている
    • ソースコードのメンテナンスが容易で無くなってしまった
      • element をXpath指定で作成していたため、実態のソースコードが変化すると毎回メンテナンスが必要になった
        • css指定等では動かなかったので・・・
    • 開発側と連携をしていけば、もっと効率良く出来るかもしれない

最後に

今回の経験で、テスト関連の勉強会に参加していると登壇者の方が、仰る「QAもプログラミングが出来たほうが良い」という言葉が凄く納得出来ました。
全てのテストが自動化出来るわけでは無いですが、実践してみることで新しい考え方:パターンが増えたかと思います。
しかも、プログラミングの勉強を始めるといった気持ちも芽生えたほど、良い経験になったと思います。

恥ずかしながら、弊社では、UIテスト自動化は完全に止まってしまいましたが、今後また再開したいと考えています。
WebのUIだけでなく、スマホアプリ等のテスト自動化についても踏み込んで行きたいと思います。