ビジネス TOP導入事例 > 株式会社ビービーシステム

株式会社ビービーシステム

 印刷用ページを表示する印刷用ページを閉じる

掲載日: 2014 年 1 月 20 日

Microsoft Visual Studio の自動 UI テストでクラウド向けアプリケーションのテストを自動化
「変化し続ける環境での継続的デリバリー」を可能にする体制の確立へ

写真:株式会社ビービーシステム

株式会社ビービーシステム

最新テクノロジーとコンサルティング、独自製品の組み合わせによって、顧客企業の BPR を支援し続けている株式会社ビービーシステム。ここでは同社が提供している Microsoft Office 365 向けのオンライン サービスのテストに、Visual Studio の自動 UI テストが活用されています。頻繁に発生するクラウド環境の変化に対応するため、テスト ケースをコード化し、自動実行するというアプローチを採用したのです。これによって 1 回のテストに費やされる工数を 1/3 ~ 1/5 にまで削減。テスト内容の "ぶれ" や "漏れ" をなくすことでテスト品質も大幅に向上し、修正すべき箇所の特定も迅速に行えるようになり、リリース スピードも向上しています。また環境変化に伴うテストのほか、正常動作を確認する簡易テストも毎日実施。予防保守的なテストを含むテスト自動化で、製品の継続的デリバリーを可能にする体制が確立されつつあります。

<導入の背景とねらい>
数千ものテスト項目を複数の環境で実施
作業負担軽減と安定性確保が重要課題に

株式会社ビービーシステム
プロダクト・サービス本部
部長
遠藤 修平 氏

最近では企業向けアプリケーションも、クラウド環境への移行が急速な勢いで進んでいます。同時に、アプリケーション ライフ サイクルの考え方も大きく変化しつつあります。クラウド対応のアプリケーションの場合、クラウド側のプラットフォームや Web ブラウザーのバージョンアップにより動作環境が変化してしまうため、一度リリースした後も頻繁に動作テストを行う必要が生じるからです。また環境変化に伴うコード修正の機会が増えれば、機能拡張/強化へのハードルも低くなります。クラウド時代のアプリケーションは、短いサイクルで変化し続けることを宿命付けられていると言えるでしょう。

ここで大きな問題になるのが、頻繁に発生する動作テストの作業負担です。動作テストの作業項目は多岐にわたり、コーディングよりも負担が大きくなるケースが珍しくありません。これを頻繁に行う必要が生じれば、大きなコスト要因になってしまいます。また毎回のテストに時間がかかってしまえば、タイムリーなリリースを継続することも困難になり、最終的にはアプリケーションの品質低下にもつながりかねません。このような課題を、Visual Studio の自動 UI テストによって解決しているのが、株式会社 ビービーシステム (以下、BBS) です。

同社は、最新のテクノロジーとコンサルティングを融合した「ソリューション」と、独自の情報/通信技術を結集した「プロダクト」によって、顧客企業の BPR を支援し続けている IT 企業。大阪と東京に設置された本社を拠点に、自社パッケージ ソフトの開発および販売や Windows プラットフォームの構築・受託システム開発などを展開しています。また、2009 年以降は、クラウド サービス事業にも注力し、Office 365 向けオンライン サービスの提供も行っています。

その代表的な製品が「ExLook Online」です。これはスマートフォンや携帯電話で Microsoft Exchange Online 上にある各種情報にアクセスするためのオンライン サービスであり、サーバー構築などの初期投資を抑えながら利用者の生産性と利便性を向上できるものとして人気を博しています。また Exchange Online に対応した「階層型アドレス帳 AddressLook (以下、AddressLook)」も、日本企業の組織構造に適した階層型アドレス帳を実現できることが高く評価され、数多くの日本企業が採用、1 万 3,000 人規模で活用している大手企業も存在します。さらに 2013 年 11 月には、Microsoft Outlook Web App (OWA) をスマートフォンやタブレットで使用する際の安全性や利便性を高める「OWAsmartLook」や、Exchange Online と連携して Web 型グループ スケジューラと階層型アドレス帳を提供する「GroupLook for Microsoft Office 365 (以下、GroupLook)」もリリースしています。

「Office 365 向けのオンライン サービスも、以前は手作業でテストを行っていました」と言うのは、株式会社ビービーシステム プロダクト・サービス本部 部長の遠藤 修平 氏です。そしてその作業は「とてもしんどいものでした」と語ります。BBS では Office 365 や Web ブラウザーのバージョンアップが行われるたびに、これらの製品のユーザー インターフェイス (UI) テストを行っていますが、テスト項目は数千に上り、それらを複数の Web ブラウザー上で実行する必要があるからです。「私どものオンライン サービスは、4 バージョンの Microsoft Internet Explorer (IE) と、Firefox、Chrome、合計 6 種類の Web ブラウザーに対応しています。そのため毎週のように Web ブラウザーの環境が変化し、その度に動作テストを行う必要があります。また Office 365 のアップデートにも、3 か月に 1 回程度の頻度で対応しなければなりません」。

1 回のテストに必要な工数は、製品によっても異なりますが、平均して 1 ~ 1.5 人月程度だったと遠藤 氏は振り返ります。しかし問題は作業負担の大きさだけではありません。人手によるテスト作業ではテスト内容の "ぶれ" や "漏れ" も発生しやすく、テスト品質が不安定になりやすいのだと指摘します。さらにテスト担当者がレポートを提出するまでテストの進捗状況を把握できないのも、大きな問題だったと言います。「このままではコストが増大するのはもちろんのこと、製品品質の維持も難しくなります。テストへのアプローチを根本から変える必要があると考えました」。

<導入の経緯>
まず 3 か月かけてテスト ケースを精査
ナレッジ蓄積でその後の展開が容易に

株式会社ビービーシステム
プロダクト・サービス本部
チームリーダー
舩曳 真司 氏

そのための手段として BBS が着目したのが、Visual Studio の自動テスト機能でした。同社は古くからマイクロソフト テクノロジーを積極的に活用しており、Visual Studio も長年にわたって使用し続けています。Visual Studio 2010 からは「コード化された UI テスト (自動 UI テスト)」が実装されていますが、これを活用することでテストの省力化が図れると考えたのです。

実際の活用が始まったのは 2013 年 3 月。同年 1 月から開発が始まっていた GroupLook のテストへの適用が最初でした。まず過去のテスト ケースを精査し、それらの内容を明確に定義し直すことで、テストの自動化が行いやすい形にしていく作業が進められていきました。

「人間が実施するために作成されたテスト ケースは、内容があいまいなことが多く、そのままでは自動化できません」と語るのは、株式会社ビービーシステム プロダクト・サービス本部 チームリーダー 舩曳 真司 氏です。たとえば「テストの成功/失敗」とはどういうことなのか、感覚的な記述だけで済まされてしまい、明確な定義がなされていないケースも珍しくないと指摘します。また自然言語で記述されたテスト ケースは、テスト担当者によって異なる解釈がなされることも少なくありません。「テストを自動化するには、このようなあいまいさを排除し、機械的なロジックへと変換しなければなりません。これを 1 つずつ積み上げていくことが、まず最初に必要だったのです」。

この作業に要した期間は約 3 か月。自動 UI テストの使い方を調べながら作業を進めたため、予想以上に時間がかかったと舩曳 氏は振り返ります。しかしこれによってナレッジを蓄積したことで、その後の展開は容易になったと言います。

GroupLook におけるテスト自動化が十分な効果を発揮していることを確認したうえで、2013 年 9 月には OWAsmartLook への適用を開始。その翌月には AddressLook と ExLook Online での利用も開始しています。最初のハードルに比べ、その後のハードルが著しく低くなっていることが、この展開スケジュールからも見て取れます。複数のアプリケーションで共通したテスト項目も少なくないため、これらを共有することで、展開のスピードアップを図れた側面もあると舩曳 氏は語ります。

テスト コードは、テスト ケースを作成し、それに基づく基準操作を記録することで、Visual Studio によって自動生成されます。このテスト コードのパラメーターを変更することで、ユーザー アカウントやアクセス先の URL などを切り替えながら、同じテストを何度も繰り返し実行できるのです。テスト コードの実行はテスト用のクライアントで行われ、その結果が Microsoft Team Foundation Server に自動的に蓄積されます。この結果を見ることで、どこまでテストが成功したのか、どの部分で問題が発生したのかがわかるようになっています。現在では環境変化が起きた時のフル テストのほか、正常性を確認するための簡易テストも毎日実行されています。

<導入効果>
テスト 1 回あたりの作業負担は 1/3 ~ 1/5 に
予防的なテスト実施で品質維持も容易に

「テストの自動化によって、作業負担は大幅に軽減しました」と遠藤 氏。テストの実行は、ボタンを 1 回クリックするだけで行えるようになったと説明します。もちろんテスト結果のチェックや修正箇所の判定などは人間が行う必要があり、テスト ケースの修正が必要になることもあるため、テストの作業負担がゼロになることはありません。しかし 1 回あたりの作業負担は、以前に比べて 1/3 ~ 1/5 程度まで減少しています。「1 年間では 12 人月程度の工数を削減できると試算しています」。

しかしそれ以上に重要なのが、テスト精度の向上です。機械的にテストを行うことで、テスト内容の "ぶれ" や "漏れ" がなくなったのです。「たとえば SQL インジェクションを防止するためのテストでは、入力フィールドにさまざまな文字列を入力する必要がありますが、コード化されたテストならすべてのパターンをしらみ潰しに実行するのも簡単です」と説明するのは舩曳 氏です。テスト ケースの解釈が担当者によって変わってしまうという問題も、完全に解消されていると言います。

問題発生時の再現性も高まりました。Visual Studio の自動 UI テストでは、テスト実施時の環境も自動的に記録されるため、同じ環境での再テストが容易なのです。また問題発生時のレポートの内容も定型化されたため、問題の所在も発見しやすくなっています。その結果、問題発見から修正、リリースまでの期間も短縮されました。たとえば AddressLook の修正版リリースは、テスト自動化以前は 1 ~ 2 か月かかっていましたが、現在は早ければ 2 日程度でリリース可能になっていると言います。また修正による影響確認のためのテストも自動化されているため、修正が他の問題を引き起こす危険性も回避できるようになっています。

開発エンジニアの時間をテストに費やす必要性が小さくなったことも、大きなメリットです。以前は動作環境が変化するごとに、アプリケーションの内容に詳しい開発エンジニアが、修正箇所を特定するためのテスト ケースを作成かつ実施する必要がありました。しかし今では、自動化のために作成されたテスト ケースに、開発エンジニアのノウハウが集約されています。そのため開発エンジニアがテストに参加しなくても、漏れのないテスト結果を確実に、開発エンジニアにフィードバックできるのです。

さらに遠藤 氏は、「テストに対する考え方も変わりました」と語ります。BBS では Office 365 のオンライン サービスに対し、正常性を確認するためのテストを毎朝実行していますが、これが予防保守の意味合いを持つようになっているのだと説明します。

「クラウド環境では常に何かが変化しており、"クラウドは生き物" だということを身をもって感じています。私どもはテストを自動化することで、このような変化し続ける環境でも、継続的なデリバリーを可能にする体制を築き始めていると言えます。これによって製品品質の維持も容易になっています」。

テスト自動化環境の構成イメージ [拡大図] 新しいウィンドウ

<今後の展望>
他製品や SI 案件への展開も計画
テスト駆動型のアジャイル開発を目指す

テストに使用するクライアント環境は既に仮想化されていますが、今後はこれを自動生成することが検討されています。「テスト用クライアントの OS も、Windows XP、Windows Vista、Windows 7、Windows 8 と多岐にわたっており、その上で 6 種類の Web ブラウザーを動かす必要があります」と舩曳 氏。このようにパターンの多い環境を手作業で毎回構築するのは現実的ではありませんが、Team Foundation Server と Microsoft System Center を組み合わせて活用すれば、仮想マシンの自動展開も手軽になるはずだと言います。「現在は仮想化したクライアント環境を複数のテストで使い回していますが、毎回クリアな環境でテストできるようになれば、テストの精度をさらに高められると思います」。

テスト自動化を他の製品へと広げていくことも計画されています。また SI 案件への展開も考えられており、2013 年 10 月には一部の SI 案件での試行が始まっています。標準的なテスト ケースを作成し、これを自動実行することで、客先に置けるテスト作業の効率化と、品質の担保が容易になると期待されています。

テストの自動化を契機に、テスト駆動型のアジャイル開発へと移行することも検討されています。現在の BBS の開発手法はウォーターフォール型ですが、開発スピードの面で限界を感じていると遠藤 氏は語ります。スピードを高めるためのアプローチとして、既に設計フェーズと開発フェーズを一体化するという取り組みが行われていますが、これにテスト フェーズも組み込んでしまうことで開発サイクルをさらに短期間で回せるようになり、クラウド時代に適したスタイルになるはずだと言います。

テスト自動化のノウハウを社外に提供することも視野に入っています。具体的なテスト内容は製品や案件によって変わってきますが、方法論やノウハウは再利用可能です。対象となる案件数が増えていけば、共通して使えるテスト ケースも多くなり、その蓄積も大きな財産になると遠藤 氏は指摘します。

「Visual Studio によるテスト自動化は、最初のハードルは決して低いものではありませんが、その後は著しい効果をもたらします。しかもテスト コードやノウハウの蓄積によって、より高い効果が得られるという特長もあります。これをいち早く取り入れ、ノウハウを確立することは、クラウド時代のスピード感に追随していくうえで、重要な意味を持つ取り組みになると言えるでしょう」 (遠藤 氏)。

サービス パンフレット

ダウンロード

Download File 5612-SE1.pdf

PDF ファイル 1,198 KB
Adobe Reader を利用して PDF ファイルを閲覧・印刷することができます。ダウンロードはこちら 外部サイトへ移動するため、別ウィンドウで開きますからできます。

ソリューション概要

プロファイル

株式会社ビービーシステムleave-msは、1988 年に設立された IT 企業です。最新のテクノロジーとコンサルティングを融合した「ソリューション」と、独自の情報/通信技術を結集した「プロダクト」によって、顧客企業の BPR を支援し続けています。社名の由来は宇宙の始まりと言われる「Big Bang」。社員 1 人 1 人 の可能性を最大限に引き出すことで Big Bang を起こし、 "無" から "有" を生み出すことを経営方針に掲げ、新しい時代を築き上げるための努力を日々重ねています。

導入メリット

  • テストの作業負担が大幅に削減。テスト 1 回あたりの作業工数は、以前に比べ 1/3 ~ 1/5 程度に工数削減を実現
  • テストの "ぶれ" や "漏れ" もなくなり、テスト品質も向上し、問題発生時の再現性も高まった
  • 正常動作確認のための簡易テストを毎日行えるようになったことで、予防保守も可能になった。これにより、常に変化し続けるクラウド環境でも、アプリケーション品質の維持が容易になった

ユーザーコメント

「"クラウドは生き物" であり、常に何かが変化しています。テストの自動化はこのような環境の中で、製品の継続的デリバリーを可能にするための重要な手段です」

株式会社ビービーシステム
プロダクト・サービス本部
部長
遠藤 修平 氏

  • 日本のデジタルトランスフォーメーション浸透度は? (新規ウィンドウで開きます)
  • IT 担当者向け Microsoft 365 オンライン セミナー公開中! (新規ウィンドウで開きます)
  • オンデマンド配信中! Microsoft Tech Summit 2017 Online (新規ウィンドウで開きます)

本ケーススタディに記載された情報は初掲載時のものであり、閲覧される時点では変更されている可能性があることをご了承ください。
本ケーススタディは情報提供のみを目的としています。Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。

ページのトップへ