CASE 1 導入の経緯 マルチプラットフォームに対応し、シナリオが流用できる柔軟性を評価
当社では、HEMS(Home Energy Management System)のソフトウェア検証の自動化に「SKYATT」を活用しています。近年、HEMSは大きく進化しており、当社では宅内に設置されるコントロールパネルだけではなく、Windowsアプリケーションやスマートフォンアプリ、Webブラウザ版など、さまざまなプラットフォームのコンソールを提供しています。また、省エネ支援などのサービス化も進み、ソフトウェアは年に4~5回のアップデートを重ねながら機能充実を図るというリリース形態に変化しています。これに伴って、アップデートが行われるたびに同じテストを実施する必要が出てくるので、検証にかかる工数は増加する一方でした。
この環境の変化に対応するため、テスト自動化チームを編成。現在、Sky株式会社から約20名のエンジニアが検証作業に携わってくれているので、自動化チームにも加わってもらいました。
ひと口に自動化と言っても、単なる「自動操作」とテスト結果の判定までを行う「自動検証」では、位置づけが大きく異なります。結果判定も含めて自動化できれば、実行工数は大幅な削減が見込める反面、テストシナリオの作成に手間が掛かり逆に工数が増えるケースもあります。このため、テスト用スクリプトを一つひとつ書いてシナリオを作成しなければいけない従来の自動化ツールでは、投資効果が見いだせずにいました。一方「SKYATT」は、マルチプラットフォームに対応していてシナリオが流用できるので、他社製のツールと比較して大きなアドバンテージがあると感じました。また、プラットフォームが異なる複数のデバイスを行き来するようなテストが実行できるという点も高く評価しました。
CASE 2 試験導入 「何を自動化するか」を見極めながら、テスト設計することで高い効果に
「SKYATT」によるテスト自動化で、どの程度の効果が得られるのかを検証するため、実際に発売される製品のテストで試験導入(トライアル)を行うことになりました。テスト自動化に取り組むときに重要なのが「何を自動化するか」を見極めることです。例えば、あるデバイス上で操作を実行し、その結果を外部のエミュレーターで視認して判定するといった場合や、ユーザビリティを向上させる使用性テストなどは、テスト工程のどこかで人が関わらなければならないため自動化には不向きです。
逆に、ヒューマンエラーが起きやすい繰り返し操作による信頼性テストや、人の手では難しいタイミング系のテストなどは、効率化はもとより品質の向上も見込めるため、効果は大きいと言えます。特に、過去バージョンと同じテストを実施する箇所なら、シナリオが流用できるので大きな効率化につながると思います。また、これはテスト設計を進めるなかで感じたことですが、自動化によってテストカバレッジが高められるということも、効果の一つとして挙げられます。従来は、QCDの観点で実施を見送っていたテストも、設計に組み込むことができました。
効率化や品質向上という導入効果と、シナリオ作成工数のバランスを考慮してテスト設計を行うこと。それさえできていれば、「SKYATT」は日本語ベースでシナリオが作成できるので、作業者のスキルを問わないということも大きなメリットだと思います。
テスト自動化のネックになるシナリオ作成工数が、既存ツールと比較して約50%削減できました。
CASE 3 導入の効果 シナリオ作成工数が半減するなど具体的な数値につながる効果を実感
トライアルでは、既存の自動化ツールと比較してシナリオ作成にかかる工数が約50%も削減できました。とはいえ、実際はシナリオ作成を含む1回目のテストの実績工数だけを見ると、手作業と比べて大きく差が出るものではありません。しかし、2回目、3回目と繰り返すとその効果がはっきりと現れます。さらに5回目、6回目と継続してテストを実施すれば、十分に投資が回収できます。その上で、年間どのくらいの商品に適用でき、何人月の工数削減が見込めるかをシミュレーションしました。
他社製のツールとも比較しながら、当社が取り扱っている製品や拡張される予定のサービスの特性を踏まえて、私どもが目指す自動化には「SKYATT」が最も適していると判断しました。
そのほか、毎回最初からシナリオを作成する手間を省くため、テストで頻繁に行う基本操作については、操作ごとにシナリオを小分けにしてエクスポートしておき、より流用しやすいように整理しました。このようなシナリオ作成工数を削減するノウハウは、「SKYATT」を使い込むほど蓄積されていくと思います。
CASE 4 今後の展望 発売前に行う検証だけではなく、発売後の継続的なテスト実施も検討
IoTの普及と発展に伴って、今後は当社の製品開発においてもソフトウェアが占める比重が増えていきます。また、さまざまなモノがネットワークでつながり連携していくでしょう。
例えば、当社のHEMS製品の中には、他社製スマートスピーカーと連携する機能が搭載されているものがあります。しかし、このようなIoT機器は不定期にファームウェアがアップデートされることが多く、我々が認知していないアップデートが行われたり、突然仕様が変更されたりすることも少なくありません。
ですから今後は、発売前に実施する品質保証としてのソフトウェア検証だけではなく、発売後にも継続的にテストを行うことも考えています。「SKYATT」を「仮想ユーザー」に見立てて常時自動テストを繰り返すことで、「これまでは問題がなかった箇所に急に不具合が発生した」というときに、いち早く察知できるのではないかと思っています。このような活用によって早期に問題点が見つけられるようになると、開発部門やカスタマーサービス部門と連携し、不具合を改修したり、ユーザーに素早く情報を発信したりといった対応につなげられるのではないかと期待しています。
導入事例一覧へ戻る