自動テストを進めるうえで直面する2つの課題と環境変化
セッションの前半で、浅黄氏は自動テストを取り巻く課題について説明した。「自動テストについて時系列で考えた時に2つの山があります。始めるときの山と継続するときの山です」
自動テストをいざ始めようとしても、最初の山を登れない場合が少なくない。ツール選定に3カ月かかってやっと始めるのでは息切れしてしまうのだ。
「自動テストを始めるときの最初の山を越えるためには、初期構築をいかに素早くできるかがすごく大事だと思っています」
もう1つの継続する山を超えるには、テストをリファクタリングできるかが重要になる。UIの自動テストは不安定になりがちで、失敗し続けるテストは、誰も見ないテストになる。放置すれば、誰もメンテナンスできないテストになってしまう。
さらに浅黄氏は、ソフトウェア開発の激しい環境変化についても言及した。こうした変化が自動テストを後押しするのだという。まずは、ウォーターフォールからアジャイルへの開発プロセスの変化だ。これまでのウォーターフォールでは開発フェーズとテストフェーズで分かれていたのが、アジャイルではスプリント中に何度もテストを回すため自動テストが必須になる。
もう1つはテクノロジーの変化である。商用ツール全盛の時代から、オープンソースソフトウェアが普及し、さらにSaaSが当たり前になってきている。最近ではテスト自動化ツールを検討する場合も、SaaSを何社かとオープンソースソフトウェアを比較することが多いだろう。そこでは安定性と素早く進められるかどうかがポイントになる。
3つ目はテストに対する期待の変化だ。テストが、実施するものから実行されているものという感覚に切り替わってきている。さらにテストはバグを見つけるだけでなく、開発者やプロダクトオーナー、チーム全体がフィードバックを得るためのもの、品質を確認するものになってきている。
「この3つの環境変化を考えると、やはり自動テストはどうしてもやらなきゃいけないものだと思っています」
なお実際の事例について紹介する前に、浅黄氏はヒューマンクレストで利用している自動テストのテクノロジーについて簡単に紹介してくれた。
「当社では、テストの自動化のためにSeleniumからJUnit・OpenCVまで幅広いツールを使っています。そのため、自動テストを行おうと思ったときには、悩むことなくすぐに始められるようになっています」