Prosperity and InSPIRE

最新技術レビューから時事ネタ、ユーモラスな小話まで、
幅広いコンテンツをPro-SPIRE独自の切り口で
発信していきます!

テスト自動化プロジェクト

2016.02.13

部署:イノベーション 推進センター, 役職:副センター長, 氏名:岩本 光弘

プロジェクト:テスト自動化プロジェクト

new_career02

プロジェクトについて

1.プロジェクトが始まったきっかけ

5年以上お世話になっている組込みメーカーのお客様から相談を受けたのがきっかけです。

このお客様の製品ラインナップは豊富でベースソフトをラインナップごとにカスタマイズして年に4から6回の頻度でリリースします。このような性質のためカスタマイズしたモジュール以外にも影響がないことを確認するテストに非常に多くの工数を割いていました。

しかし、『割いている工数に見合う品質が確保できていないため、テスト実施の工数を削減して、品質を高めるための活動に工数を割きたい。そのためにテストを自動化できないか?』と相談を頂いたのです。

2.概要

お客様の製品は組込み製品ですがWEBのインターフェースを備えていて、WEBブラウザから製品の設定やリソースの使用状況をモニタリングできる仕組みを持っていました。このWEBシステムのGUIテストを自動化し、製品の品質向上活動に時間を増やすことがこのプロジェクトの目的でした。

我々はWEBシステムのテスト自動化をサポートするツールとしてOSSのSeleniumを、継続的インテグレーションツール として同じくOSSのJenkinsを使い環境を構築しました。

3.大変だったこと/思わぬアクシデント

お客様から依頼されたテストケースは14,000件。

普通にテストスクリプトを手で書いていたのでは工数が掛かり過ぎお客様が望む予算内で収まりません。そこで、テスト仕様書を読み取りテストスクリプトをある程度自動生成するアプリケーションを作成しました。

自動生成したテストスクリプトは我々の作業を約60%補完しお客様の望む予算と納期に収めることができました。

Google ChromeやFirefoxなど最近のブラウザは再起動時に自動アップデートされます。そのために、SeleniumのWebDriverの振る舞いが変わってしまい、成功していたテストが失敗に終わるようなことが度々起こりました。

また、SeleniumのWebDriver自身もヴァージョンアップします。ヴァージョンによっては上手く動いてくれない機能もありました。これらの組み合わせをコントロールするのが大変でした。

4.自動化の魅力

seleniumを使ったWEBシステムのテスト自動化の魅力は成果が分かりやすいところですね。具体的には色々ことが可視化されるところです。

私がツイツイみてしまうのがテストが流れる様子です。ブラウザが独りでに立ち上がり画面を遷移していく様子を見ると気持ちが良いですね。自分の分身が頑張ってテストしているようで。元々linuxのブート時にブートログが端末に流れる様子を見るのも好きなんです。コンピュータが一生懸命仕事しているように見えて。それと同じかもしれませんね。

5.評価された/されるポイント

上記のような困難を乗り越え無事にリリースできました。

テストケース14,000件を人手で実施いたときは4から5人月かかって実施していましたが、自動化することで48時間で全てのテストを実行させることができるようになりました。これによりテスト自動化にかかった費用は6回実施すれば回収することができ、なおかつ、品質向上の為の時間を十分確保できるようになりました。 その効果として、不足していたテストを2000件見つけることができました。

我々はお客様の依頼でシステムを導入しますが、導入すこと自体が目的ではありません。そのシステムを導入したことによりお客様が本来取り組むべき仕事に集中できる環境を手に入れる支援をすることが最終目的です。

その意味で今回のテスト自動化のシステムはテストスクリプトをお客様自身でメンテナンスできるように指導し、維持できるところまでご支援したところを非常に高く評価して頂きました。お客様の方でこの仕組を利用してオフショアを上手く活用しさらなるコスト削減にも成功していると聞いています。