2011年11月、ケン・システムコンサルティング主催の「Xupperユーザ事例紹介セミナー」が開催された。第15回目となる今回のセミナーでは、初の試みとして、通常の事例紹介の前にツール紹介のセッションを実施。
Xupperの最新版である「Xupper Ver9.0」、アクセスのリバースエンジニアリングツール「REVERSE PLANET」、住友電工情報システムのWebシステム開発フレームワーク「楽々FrameworkⅡ」の3製品が、それぞれデモを交えつつ紹介された。
続く事例紹介のセッションでは、エルテックスの山下行雄氏、日本電気の大場彰夫氏が登壇。いずれも「テスト」を主要テーマとした事例であり、システム開発の生産性および品質の両面において、テスト工程が重要な鍵となることを改めて認識させられた。
要件管理とテスト自動化機能拡充でより進化した上流分析・設計ツール
Xupperは、わかりやすいビジネスフロー図やビジネスルールなどを用いて業務を可視化し、エンドユーザーと開発者のコミュニケーションを強力に支援する上流分析・設計ツールだ。
ユーザー要求と、それをシステム化するための要件、その実装を、それぞれの関係をツリー構造やダイアグラムで可視化しながら管理できる。これにより、ユーザ要求がシステムのどの機能で実現できているのかをトレースでき、また、システム機能がどの要求によるものなのかの逆引きも可能だ。テスト工程の自動化を支援するオプション機能も強化されている。 |
これは、フロンテス社のSTAR-ATT(Auto Test Tool) およびHP 社のQTP(QuickTest Professional)との連携で実現する機能となる。Xupperで自動生成したテストシナリオをSTAR-ATT に送り、テストデータと検証ロジックを登録。テストスクリプトを自動生成し、最終的にQTP と連動してテストを自動実行することができる。
既存システムを解析して可視化。修正に伴う影響範囲も把握可能
システムの現状と設計情報がかけ離れている、あるいは設計情報自体が存在しないために、既存システムの修正や保守作業が非常に困難になるケースも珍しくない。とはいえ、手作業で既存システムを把握するのは膨大な時間を要する。REVERSE PLANET は、このような課題に対応し、既存システムを可視化できるツールだ(図2) REVERSE PLANET による可視化の基本的な仕組みとしては、まず可視化したい既存システムの稼働環境から差分データを抽出し、REVERSE PLANETサーバーに自動転送する。サーバー側では自動的に分析が行われ、分析処理されたデータは更新された設計情報としてすべてリポジトリに組み込まれる。 |
REVERSE PLANET はサーバー環境で稼働するため、ホスト(既存システム)側に負担をかけたり、リスクを生じさせる心配もない。クライアント側からは、構造分析と影響分析という2 種類の分析が行える。構造分析機能では、分析した結果をあらゆる角度で参照・検索可能。
また、影響分析機能により、修正による影響範囲を事前に把握し、システムダウンやトラブルを未然に防止することができる。なお、解析結果をXupperのリポジトリへインポートすることも可能だ。
DB定義情報からプロトタイプを自動生成する部品組立型フレームワーク
楽々Framework Ⅱは、Web システム開発の生産性と品質向上を支援するJava ベースのフレームワークだ。「部品組立型開発」をコンセプトとして掲げており、再利用性を考慮した大小様々な粒度のプログラム部品を用意。 |
XupperからFD ファイルとして出力されたデータベース定義情報を取り込むだけで、実際に動くアプリケーション(プロトタイプ)が部品の自動組み立てで生成される。プロトタイプのカスタマイズも、ブラウザ上でドラッグ&ドロップによるレイアウト編集などノンプログラミングで行うことができ、そこまでの段階でアプリケーションは80%程度完成する。
あとは、企業固有の業務ロジックなど、複雑な固有処理のみJavaのプラグインで追加すればよい。このような部品組立型開発やプロトタイプ自動生成の仕組みにより、楽々Framework ⅡはネイティブJava の5 ~ 10 倍という高い開発生産性を発揮。
短期間で容易に品質の高いWeb システムを開発することが可能となる。また、保守の効率化も重視しており、その一例として、プログラムの設定内容から「プログラム仕様書」をワンクリックで自動生成することもできる。
Xupper II/REVERSE PLANET/楽々FrameworkⅡ紹介セッションPDFは下記よりダウンロードできます
日本電気株式会社 様
「リスクゼロ」の実現に向けて知識集約型開発におけるテスト自動化の狙い開発要員の労力を上流工程に集中し、中流から下流は極力自動化することにより高品質化を目指す知識集約型開発。日本電気の大場氏は、以前よりその重要性を説いてきた。本セッションでは、知識集約型開発の中・下流工程で新たに実現可能となったテストシナリオの自動生成および自動テスト実行について解説。従来の「リスク回避型」から「リスクゼロ」のソフトウェア開発への転換に向けた取り組みを紹介した。 |
労働集約型から知識集約型開発へ
最近のアプリケーション開発の傾向として、開発期間の短縮化が挙げられる。シェア獲得のための競争が激化し、他社よりも優位性のあるサービスを早期に提供するために、短期開発のニーズはますます高まっている。
一方で、仕様調整の難易度が高いシステムが増え、上流工程の期間およびそこにかかる費用は増大傾向にある。開発期間の短縮に対応するためには、中流から下流工程の大幅な効率化が不可欠であるのは明らかだ。
開発期間やコストのほかに、開発リソースの課題もある。この数年来、SEは「新3K」のイメージが定着してしまい、不人気職種となりつつある。そのため、優秀なSE リソースの確保が非常に難しく、要員の育成もままならない企業も珍しくない。
こうした現状を打開するために求められているのが、従来の「労働集約型開発」から「知識集約型開発」への転換だ。知識集約型開発とは、開発要員の労力を上流工程や評価試験の設計に注力させ、中流から下流工程はできるだけツールを活用して自動化する開発スタイルである。
維持フェーズにおける効率化のために、設計情報を一元管理し、メンテナンス性の向上やデグレードの抑止も可能とする。
これらを実現するソリューションとして日本電気が推進しているのが、「知識集約型TCO 削減指向AP 開発ソリューション」だ。
仕様のゆらぎを防ぎ、追加・変更にも容易に対応
知識集約型TCO 削減指向AP 開発ソリューションは、様々なアプリケーション開発テクノロジーや開発手法、プロジェクトマネジメントの要素を連携したソリューションとなっている(図1)。 その一要素が、アドバンスドDOA による上流設計だ。これは通常のDOA(データ中心アプローチ)とは異なり、業務視点(ルールベース)のアプローチとデータ中心のアプローチを組み合わせたものである。 |
業務フローによって業務をモデル化することで、IO やデータ項目などの影響ポイント(管理項目)を明確化できる。また、基本設計の確定後、業務要件の成熟度をイテレーション開発で段階的に上げていき、業務フローの要件やアプリケーション構造の確定を実施することで、仕様要件のゆらぎを抑えることが可能となる。
これらはいずれも、すべての設計情報をXupperのリポジトリで一元管理することが前提となっている。設計情報の一元管理(リポジトリ化)により、上流から中流・下流まで一貫して、設計情報を継承することができるのだ。
テスト自動化の真の狙いとは?
例えば仕様の追加・変更時などは、テストの効率化や開発期間短縮のために、すべてのテスト項目をカバーするのではなく、サンプリングでテスト項目を設定する「リスク回避型」のレグレッションテストが行われるケースも少なくない。
しかし、バグなどの問題は往々にしてサンプリングから漏れたところで発生する。そこで、知識集約型TCO削減指向AP開発ソリューションでは、「リスクを回避する」という考え方ではなく、「リスクゼロ」を目指すというスタンスをとっている。
そのために取り入れているのが、テストシナリオの自動生成およびテスト自動実行だ。Xupper Ver9.0 の新機能である自動テスト連携オプションを利用したものだが、元々これは大場氏の要望により開発が始まり、実装されたという経緯がある。
リポジトリの設計情報からテストシナリオを自動生成すれば、手作業で行う場合のような設計書からテスト仕様書への転記の誤りや漏れなどは発生しない。テスト観点の漏れや確認漏れの防止にもつながる。
そして、テスト仕様にあるすべてのテストを自動実行することで、漏れのないレグレッションテストを安価かつ短期間で実現できる。つまり、テスト自動化の目的はテスト工程の効率化や開発期間短縮だけではなく、真の狙いは「リスクゼロ」のソフトウェア開発を実現することにあるということだ。
テストシナリオの自動生成からテスト自動実行の流れ
テストシナリオの自動生成とテスト自動実行は、Xupperとフロンテス社のSTAR-ATT(Auto Test Tool)、HP社のQTP(QuickTest Professional)という3つのツールの連携によって実現されている(図2)。 なお、テストシナリオは画面遷移のパターンをすべて抽出して自動生成されるので、画面遷移図が正しく描けていれば、シナリオの漏れは決して発生しないという。 次に、自動実行用のテストスクリプトを作成するために、Xupperで作成したテストシナリオはSTAR-ATTに渡す。STARATTでは、テストデータと検証ロジックを登録。検証ロジックについては、人間が作業する内容と同じ検査が実現できるよう豊富なコマンドが用意されている。 |
テストシナリオ自動生成からテスト自動実行までのこうした一連の流れについて、セッション終盤では、携帯電話の端末を選んで購入するというサンプルアプリケーションを用いたデモを交えながら紹介された。
大場氏は最後に、こうした取り組みを更に洗練させていくことで、長らく変わっていないAP開発の「高度化」と新3 Kからの脱却を推進し、日本のソフト開発産業の発展に寄与していくと述べ、講演を締めくくった。
日本電気株式会社様の事例PDFは下記よりダウンロードできます
株式会社エルテックス 様
設計・製造・テストシナリオ生成のツール活用による効果と留意点エルテックスでは、スクラッチ開発案件の生産性向上のために、上流設計においてXupper、開発ツールとして楽々Framework IIを活用している。BtoBオークション出品業務のサブシステム開発では、XupperのTQCAssistオプションを用いたテストシナリオの自動生成により、テスト項目の作成作業も効率化。今後は各ツールに習熟することで、生産性および品質のさらなる向上が期待される。 |
エルテックスの生産性向上に向けた取り組み
ECサイトの構築や業務システム開発、マネージドクラウドサービスなどインフラ環境の提供を含めた運用保守、中堅・中小企業向けERP導入支援などのサービスを展開しているエルテックス。
同社では、生産性向上のための取り組みとして、開発標準ガイドラインやコーディング規約の策定、各種ツールを用いた品質管理などのほか、パッケージを活用した効率的な開発を推進している。
特にEC サイト向けには、「Xspeecs(クロススピークス)」、「east EC」といった自社開発のパッケージを有しており、「Commerce 21」の販売・カスタマイズも手がけている。
生産性向上に向けたもう1つの重要な取り組みが、「製造の半自動化」だ。パッケージのカスタマイズでは対応できないスクラッチ開発が必要とされる部分についても、設計や開発等のツールを活用することで、できる限り手作業で作る部分を減らし、生産性と品質を向上することを目指している。
その一環として、2009年より業務システム開発/Webアプリケーション開発基盤の「楽々Framework II」を導入。そして、2010年からは上流設計ツールとしてXupperを採用している。
Xupperと楽々Framework IIを連携させるメリット
エルテックスではスクラッチ開発の大型案件について、上流工程はXupperで設計し、実装はC# ならMDFrame/X、Java の場合は楽々Framework IIを利用することを基本方針としている(図1)。 |
Xupperは、規模が大きく業務の全体像が見えないシステムにおいて、BFD、論理DB、画面などを大まかに決め、ヒアリング、設計、レビューを回しながら、概要から詳細へと固めていくツールとして有効である。
DBの物理設計まで行った後は、楽々Framework II でそのDBフィールドを用いて画面設計を行うことで、DBと画面との対応付けを誤るといったミスを防ぐことができる。
そして、画面操作や項目のチェック、DBアクセスは楽々Framework II でカバーされるため、実装はビジネスロジックだけで済む。エルテックスがXupperと楽々Framework IIをスクラッチ開発における基本方針として取り入れている理由は、そこにあるという。
TQCAssistによるテストシナリオ自動生成の事例
実際にXupperにより上流設計とテストシナリオ自動生成を行い、楽々Framework II で実装した事例として、BtoBオークション出品業務サブシステムがある(図2)。 |
ツール活用の効果と留意点
TQCAssistによるテストシナリオ自動生成の効果としては、まず、テスト項目の作成作業が大幅に削減されたことが挙げられる。
ある程度は手作業が必要となったこともあり、すべてを手作業で作成した場合と比べて削減された工数は約25%に留まったが、エルテックスでは今後、例えばTQCAssist による自動生成に最適な形でBFDを作るなど、ツールに習熟していくことで、50%程度まで削減が可能になると見込んでいるという。
また、TQCAssistを使うことで、人間が見落としやすいルートや考えつかないルートも含めて、BFDのすべてのルートを網羅した全組み合わせのシナリオを生成できる点も大きなメリットだ。
一方で、留意すべき点もある。例えば例外処理などのように、ルールで規定しているものをすべてBFDに書いていくと逆にわかりづらくなるため、省くものがある。このようなBFD に記載されていないルートについては、人手で作成しなければならない。
また、ルートの全組み合わせの中には、あり得ない(実際には通らない)ルートも含まれているため、自動生成されたシナリオからそれらを削除する必要もある。エルテックスでは通常、社内品質計画の標準に従って、工程毎のレビューやテスト項目数と障害の検出計画を立て、品質の造込みを実施している。
ただ、ツールを用いた開発の標準がまだ無い為、この事例では暫定的に通常の約半分のテスト項目でテストを実施した。結果は障害も社内標準の半分しか検出しなかったが、出荷後の障害も殆ど出ていない。
このことからテスト工程の合理化にも効果があったと考えている。この事例での結果を踏まえ、山下氏は最後に「私見」として、XupperおよびTQCAssist、楽々Framework IIを活用した上流設計・製造・テストシナリオ自動生成について、次のようにまとめた。
- 上流工程の設計、製造、テストシナリオ生成の各ツールを用いることで、生産性を上げるとともに、人手を介さないことが品質の向上にもつながる。
- 特に上流が固まれば、製造は自動化することができ、テストシナリオの生成も可能である。
- ツールをより効果的に利用するためには、各ツールの設計思想をよく理解し、習熟しなければならない。
- 開発するシステムも、ある程度はツールに合わせた設計にする必要がある。
- 新規開発から導入するのが望ましい。また、大規模な開発であるほど効果も大きい。
このBtoBオークション出品業務サブシステムを含め、エルテックスがこれまでに手がけたXupper活用案件は5件。まだそれほど多くはないが、今後も様々な案件においてXupperによる上流設計およびテストシナリオ自動生成、楽々Framework IIやMDFrame/Xによる実装について、評価を進めていくという。
株式会社エルテックス様の事例PDFは下記よりダウンロードできます