「DevOps時代のテスト自動化カンファレンス」に行ってきた!

このエントリーをはてなブックマークに追加
こんにちは。
inomata@QAです。

最近、また自動テストがにぎわってる感じなので、情報収集のために、「@IT編集部主催:DevOps時代のテスト自動化カンファレンス 冬の陣」というのに行ってきました。

時代はDevOps。求められているのは柔軟性と速さ!そこで品質を保つにはテストを自動化するしかない!
という内容でした。
今から数年前の自動テストといえば、テストを繰り返すことで大幅なコスト削減!
というような触れ込みでしたが、時代は変わり「スピーディーかつ安定した品質のために」と変わったようです。

では各セッションのレポートです。


・基調講演 リクルートSUUMO流DevOpsの捕らえ方と実践(株式会社リクルート住まいカンパニー)
これは自動テストというより、DevOpsに対する取り組みの話でした。
こちらではDevOpsをOpsDevと捉えてプロセスを組んでいるとのこと。
OpsDevとは、運用がないがしろにならないように、要件定義や企画といった上流工程から運用プランを決めて開発を行うという方法です。
このような考えにいたったのは、開発終了→運用設計という工程だったので、運用に関する品質低下、あとから運用の仕組みを組むのが難しかった。という経緯があった見たいです。
ここでいう運用とは、監視やリカバリだけでなく、開発プロセスやリリースサイクル、そこに必要なツール、体制も含まれます。
一言で言えば「リリース後にどう過ごすか」のプランです。
この開発終了→運用設計というプロセスで、痛い目を見た人は結構いそうな気がします。
本セッションで話されていた方はインフラ畑の方で、これはまさにインフラならでは目線ですね。

また、仕組み化もそうだが、文化を作ることが大切。文化にを作るとメンバー全員が自然に改善へと動き、さらに良い仕組みが生まれると話されていました。
この考えは海外では良く議論されるそうです。
ちなみに別のセッションでの話題ですが、ツールが定着しないパターンというのがあって、それはトップダウンで導入されたもの、声の大きい人がリードしたもの。だそうです。
反対に、現場から発生した仕組み定着する。とのこと。これは良くも悪くもその通りで、仕組み改善において意識しなくてはいけない要素だと感じます。


・DevOpsが求めるスピードと品質を両立するためのテスト戦略はどうあるべきか?(日本アイ・ビー・エム株式会社)
DevOpsに耐えうるテストの課題には以下の5つがあるとのことです。
1.数多くのビルドをいかにテストするか
2.多様化する環境(スマートデバイスとか)にどうやって対応するか
3.テストの待ち時間をどうやって短縮するか(テストを早く実行できるか)
4.テスト資産をいかに効率よく作成・メンテナンスできるか
5.テスト環境の構築・運用を効率化できるか

それに大して、以下のような解決策を提示していました。
1、2両方とも繰り返しテストを行う必要があり、これは自動テストの得意とするところです。なので自動テストを作りましょう。
3,4,5はテスト環境を仮想環境で作ってしまって、必要なものを必要な数だけ用意しすれば効率的にテストができる。

ものすごく簡単な紹介ですが、このあたりツールベンダーさんのお話なので。。

ソリューションはともかく、課題に関しては誰もが感じていることだと思います。
弊社でもテストを効率よく、早く実行するためにAWSを複数用意してテストを並列実行したりしています。まあ、課題は山積みですが。
ただ、全部いりツールを導入すれば一環した環境が出来上がるわけですから、クライアントが動かないー、とかテストケースの管理がー、
とか個々の問題やツール間の連携の問題はある程度解消するのかもしれません。また大人数の組織の場合サポートや教育面も考えると、商用ツールを検討する価値は十分にあると思います。


・コベリティ社内開発チームが挑む、テスト自動化と技術革新(コベリティジャパン株式会社)
静的解析ツールのベンダーさんが、自社製品の品質向上のために行った事。という話でした。
テストツールの品質って相当プレッシャーがかかりそうですね。。。

自動テストを行うために、専門のスキルを持つ人を用意して自動テストを推進していったとのこと。
この中で興味深かったのが、自動テスト作成の基準を設けたという話です。
自動テストを作成するにあたって、最初から全部なんてできないので、以下の基準を設けた。
・新規のコードである
・リスクの高いコード(新規のコードから呼び出される、など新規のコードに関連するコード)
・関連のないコードはやらない!

全部の機能はテストできないので、何を自動テストの対象とすべきか?というのは一定の答えはありませんが、これで成功したのは間違いないといっていました。
特に自動化しない機能というのは、決めるのが難しいと思います。これに対して、「テストを作ったらそれがバグを見つけるかどうかが重要。デッドコードをテストしても仕方ない」とのこと。
上記の基準に従えば、自動テストは足りなくても、無駄な作業はしなくて済みそうです。


・テスト自動化を成功させる秘訣とは?(マイクロフォーカス株式会社)
自動的な基本事項をおさらいしたセッションでした。
自動テストは回数を多くこなすのが得意です。今日、モバイルの波が来ていてこれに関するテストが必要になってきています。
モバイルとなると、異なる環境で同じテストを繰り返しますから、これは自動テストが得意な分野です。
なんとなく、自動テストの流行が来てると感じていると感じていましたが、その背景としてはモバイルの波があるみたいですね。
ちなみに、テスト回数が4回以上になると、手動テストより自動テストの方がコストが低くなるそうです。

テスト自動化導入に関してポイントを。
自動化を行う前に必ず目的を設定しなければならない。でないと手段の目的化になる。
自動化を行うにはスクリプトのメンテナンス、環境整備、etcやることがいっぱいある。なので専門のチームで取り組んだほうが良い。
自動化に適したテストは以下の通り
-繰り返す必要があるテスト
-複数環境(OS、ブラウザ)のテスト
-入力項目、データ量が多いテスト
-パッチリリース時に定期的に行うテスト
-機能テスト

スクリプトはモジュール化させて再利用できるように。このあたりは開発と同じ。

自動化がうまく行かないパターンとしては、上記に反する行いのほかに、属人化というのがある。
担当者の異動で自動テストが抜け落ちないように、プロセス化、文化としてチーム全体に定着しないといけない。

と改めて基本をおさらいできる内容でした。


全体の所感ですが、来場した方々は、自動化導入をはじめる方が多いみたいでした。webアプリ系の場合は、OSSなど自動テストの環境に恵まれているのに対し、その他のソフトウェアに関しては自動化を始めるにあたって敷居が高いみたいです。このあたり、われわれがノウハウを積極的に配信するべきですね。


次の記事
« Prev Post
前の記事
Next Post »
Related Posts Plugin for WordPress, Blogger...