論文(PDF: 823K) - JaSSTソフトウェアテストシンポジウム

ソフトウェアテストシンポジウム 2006
JaSST’06: Japan Symposium on Software Testing 2006
サービス連携システム向けテストツールの一提案
住友 千紗†
吉田 英嗣†
山本 恭弘†
横山 和俊†
†(株)NTT データ 技術開発本部 〒104-0033 東京都中央区新川 1-21-2
E-mail:
あらまし
†{ sumitomoc, yoshidaei, yamamotoysd, yokoyamakz }@nttdata.co.jp
サービス指向アーキテクチャの基盤技術であるビジネスプロセスエンジンは,複数の Web サービスの連携
情報を記述したビジネスプロセスを解釈・実行し,Web サービスを連携させたサービス連携システムを実現する.誤ったビジネ
スプロセスの実行は,実行される Web サービスの提供者全員に損失を与える恐れがあるため,ビジネスプロセスの品質向上は
重要な課題である.我々は,Java などで開発されたシステムのテストで用いられている手法を,サービス連携システムのテスト
に適用した.その結果,レビュー稼動や修正稼動の削減,後工程での故障の発生防止およびテスト工程の稼動削減および品質向
上に効果があることがわかった.
キーワード SOA:Service-Oriented Architecture,ビジネスプロセス,静的検証,動的検証
A proposal of a testing tool for service-integrated systems
Chisa SUMITOMO†
Eiji YOSHIDA† Yasuhiro YAMAMOTO†
and Kazutoshi YOKOYAMA†
†Research and Development Headquarters NTT DATA Corporation 21-2 , Shinkawa 1-chome , Chuo-ku, Tokyo,
104-0033 Japan
E-mail:
†{ sumitomoc, yoshidaei, yamamotoysd, yokoyamakz }@nttdata.co.jp
Abstract In service-oriented architecture (SOA), a business process engine is commonly used to integrate web services by
executing a business process, a description of how to integrate web services. Since executing a wrong business process may
cause losses to every provider of executed web services, improvement of business process quality is one of the most significant
challenges. In this paper, we have applied a technique used for testing a Java-based system to test business processes using
the specifications of web services included in the processes as executed services. As a result, we found that running cost was
decreased and quality was improved.
Keyword SOA:Service-Oriented Architecture,BusinessProcess,Static verification, Dynamic verification
1. は じ め に
近 年 , サ ー ビ ス 指 向 ア ー キ テ ク チ ャ (SOA :
Service-Oriented Architecture) [1] の 基 盤 技 術 と し て ,
手法を,サービス連携システムのテストに適用するこ
とにより,システム品質が向上し開発工数も削減した
事例を報告する.
ビ ジ ネ ス プ ロ セ ス エ ン ジ ン [2] が 注 目 さ れ て い る .ビ ジ
ネ ス プ ロ セ ス エ ン ジ ン は , 複 数 の Web サ ー ビ ス [3] の
2. サ ー ビ ス 連 携 シ ス テ ム の テ ス ト
連 携 情 報 を 記 述 し た ビ ジ ネ ス プ ロ セ ス [4] を 解 釈・実 行
本 章 で は Web サ ー ビ ス と ビ ジ ネ ス プ ロ セ ス の 特 徴
し , Webサ ー ビ ス を 連 携 さ せ た サ ー ビ ス 連 携 シ ス テ ム
について示すとともに, サービス連携システムにおい
を実現する.ビジネスプロセスエンジンを用いたサー
て要求されるテストの課題を示す.
ビス連携システムでは,ビジネスプロセスの記述を変
2.1. Web サービス
更 す る だ け で Web サ ー ビ ス の 連 携 を 変 更 で き る た め ,
Web サ ー ビ ス は ,コ ン ピ ュ ー タ シ ス テ ム の 機 能 に 標
ビジネスの変化に柔軟に対応できるという利点がある
準のインタフェースを持たせ, 他のコンピュータシス
[5] .一 方 ,誤 っ た ビ ジ ネ ス プ ロ セ ス の 実 行 は ,実 行 さ
テ ム か ら 利 用 可 能 に し た も の で あ る .Web サ ー ビ ス は ,
れ る Webサ ー ビ ス の 提 供 者 全 員 に 損 失 を 与 え る 恐 れ が
入 出 力 イ ン タ フ ェ ー ス の 仕 様 [6] に つ い て の み 公 開 さ
あるため,ビジネスプロセスの品質向上が重要な課題
れていることが多い.
となっている.しかし,現状のビジネスプロセスモデ
2.2. ビジネスプロセス
リングツールでは,記述したビジネスプロセスに対す
ビジネスプロセスは 図 1エラー! 参照元が見つかり
る 文 法 検 証 を 実 施 で き る 程 度 で あ る . 本 稿 で は , Java
ま せ ん 。に 示 す よ う に ,開 始 ノ ー ド( S),終 了 ノ ー ド( E),
などで開発されたシステムのテストで用いられている
制 御 フ ロ ー で 結 合 さ れ る Web サ ー ビ ス 呼 出 ノ ー ド
(N1,N2,N3,Ne), 実 行 条 件 (遷 移 条 件 )を 評 価 す る 判 断 ノ
図 1
ビジネスプロセスの例
ー ド( N4,N5),お よ び そ れ ら の 実 行 順 序 を 指 定 す る 遷
移(実線矢印:通常遷移,破線矢印:例外遷移)の集
【 課 題 1 】 Web サ ー ビ ス は ソ ー ス コ ー ド が な く , イ
合 で あ り , BPEL4WS [7] と い っ た ビ ジ ネ ス プ ロ セ ス 記
ン タ フ ェ ー ス 等 の 仕 様 の み 与 え ら れ る . Web サ ー ビ
述 言 語 に 従 い XML 形 式 で 記 述 さ れ る . ま た , 以 下 の
スを呼び出すビジネスプロセスに対しては,文法検
特徴を持つ.
証 に 加 え て ,Web サ ー ビ ス の 仕 様 と の 整 合 性 を 静 的
(1) ビ ジ ネ ス プ ロ セ ス の 開 始 に は 入 力 を , 終 了 に は 出
にテストする必要がある.しかし,レビューによる
検 証 で は , ビ ジ ネ ス プ ロ セ ス が 利 用 す る Web サ ー
力を定義することができる.
(2) Web サ ー ビ ス 呼 出 ノ ー ド に は 呼 出 対 象 の Web サ
ビス数の増加に伴い, 検証漏れが発生する恐れがあ
ー ビ ス に 与 え る 入 力 お よ び Web サ ー ビ ス か ら の
る.したがって,検証漏れを防止し,早い段階で潜
出力を定義する.
在エラーを検出するために,人手を介さずに自動的
(3) ビ ジ ネ ス プ ロ セ ス の 開 始 に 与 え る 入 力 お よ び
Web サ ー ビ ス か ら の 出 力 は , ビ ジ ネ ス プ ロ セ ス
に検証することが求められる.
【 課 題 2 】誤 っ た 順 序 に 基 づ く Web サ ー ビ ス の 実 行
上 で 定 義 さ れ た 変 数 に 格 納 す る こ と が で き る .変
は ,連 携 対 象 と な る Web サ ー ビ ス の 所 有 者 全 員 に 損
数は, 判断ノードにて遷移条件の判断に利用する
失を与える恐れがあるため,システム全体の動作テ
ことができる.
ス ト と し て , ビ ジ ネ ス プ ロ セ ス 上 の パ ス ( Web サ ー
(4) Web サ ー ビ ス で 発 生 し た 例 外 を , 遷 移 条 件 の 判
ビスの実行順序) をすべてテストすることが求めら
断 に 利 用 す る こ と が で き る( エ ラ ー ! 参 照 元 が 見
れる.しかし, ビジネスプロセス上のパスは, ビジ
つ か り ま せ ん 。 に お け る 破 線 矢 印 ).
ネ ス プ ロ セ ス 上 の Web サ ー ビ ス 呼 出 ノ ー ド や 判 断
(5) 利 用 す る Web サ ー ビ ス は 互 い に 独 立 し て 動 作 し
ノードの数, 判断ノードのネスト数に従って膨大な
ており, 連携はビジネスプロセスによってのみ行
数となるため,試験項目やテストケースの漏れの発
われる.
生やテスト工数の増加が懸念される.したがって,
試験項目やテストケースの自動生成およびテスト
2.3. サービス連 携 システムのテストにおける課 題
サ ー ビ ス 連 携 シ ス テ ム で は , 他 者 提 供 の Web サ ー
の自動実行の実現が求められる.
ビスをビジネスプロセスの記述により連携させるため,
一般のシステムのテストと比較して,以下の二つの特
3. ビ ジ ネ ス プ ロ セ ス 設 計 試 験 支 援 ツ ー ル biz∫
徴的な課題がある.
3.1. biz∫の概 要
我 々 は ,2.3 で 述 べ た 二 つ の 課 題 を 解 決 す る た め ,ビ
S
ジ ネ ス プ ロ セ ス の 設 計 試 験 支 援 ツ ー ル 「 biz ∫ 」 を 開 発
し て い る .biz∫ の 構 成 を 図 2 エ ラ ー ! 参 照 元 が 見 つ か
りません。に示す.
N1
biz∫ は Eclipse ベ ー ス の ツ ー ル で あ り , ビ ジ ネ ス プ
ロセスの設計・製造・試験工程の支援/自動化を実現
Exception Ea
す る こ と で ,開 発 効 率 化 を 目 指 し て い る .biz∫ の 各 機
x>0 and y<0
(N4)
Yes
能の概要を説明する.
No
N2
N3
Ne
Yes
E
x>0(N5)
No
①ビジネスプロセス定義
biz∫Studio
Eclipseによる
プロセスモデルの作成・変更
③実行可能
プログラム
自動生成
実行可能な
ΣServフロー
自動化
自動化
検索
②ビジネスプロセス設計
biz∫Repository
設計文書
設計文書
ソース・バイナリ
ソース・バイナリ
既存サービス/
コンポーネントの
蓄積
図 2
(1)
迅速な
システム化
自動化
自動化 ④試験実施
biz∫Tester
テストケース・テストデータの自動
生成およびテスト自動実行
図 3
ビジネスプロセスエディタ例
biz∫ の 構 成
biz∫ Studio/ biz∫ Repository
(a) ビ ジ ネ ス プ ロ セ ス エ デ ィ タ
ビジネスプロセス設計を支援するエディタである.
本エディタ上でフローの記述単位・実行単位である
Webサ ー ビ ス 呼 出 ノ ー ド , 遷 移 , 遷 移 条 件 , 入 出 力 デ
ータ等を定義することで,ビジネスプロセスを設計す
る こ と が で き る . そ の 際 , biz∫ Repositoryに 格 納 さ れ
て い る 既 存 の Webサ ー ビ ス を 検 索 し , 状 態 に 割 り 当 て
る こ と で , そ の Webサ ー ビ ス を 呼 び 出 す 状 態 を 定 義 で
き る .画 面 例 を 図 3 エ ラ ー ! 参 照 元 が 見 つ か り ま せ ん 。
に示す.
(b) 静 的 検 証 機 能
図 4
検証結果画面
(c) プ ロ グ ラ ム 生 成 機 能
課題 1 を解決する機能として,エディタで記述した
エディタで記述したビジネスプロセスから,ビジネ
ビ ジ ネ ス プ ロ セ ス と Webサ ー ビ ス の 整 合 性 を 自 動 的 に
スプロセスエンジン上で動作するフロープログラムを
静的検証する機能を提供する.それに加えて,一般の
生成する.現在は,当社で開発した複数の情報システ
ソースコードに対する静的検証機能と同様に,記述し
ムを接続し,高信頼な連携サービスを提供するための
たビジネスプロセスに対して,各要素のスキーマやプ
プ ラ ッ ト フ ォ ー ム で あ る Σ Serv® [5] 上 で 実 行 可 能 な フ
ロジェクト特有の規約との整合性検証機能,遷移条件
ロープログラムを生成する.
や各要素に対する制約に対する設定した値の妥当性検
証機能も実現している.ビジネスプロセスに対して検
証機 能 を 実行 する と ,エ ラ ー内 容 が 一覧 表示 さ れ る(
図 4 参 照 ).
図 5
テスト項目一覧
ブやドライバおよび生成されたフロープログラムをΣ
Serv® 上 に 配 備 し , 試 験 を 自 動 実 行 す る . biz ∫ Tester
では,フロー遷移の確認を行うテストだけでなく,サ
ーバントの入出力値とユーザが設定したデータの整合
性を確認するテストも実施できる.テスト結果は,テ
スト項目ごとにテスト項目エディタ上で表示する.テ
スト実行画面例を 図 7エラー! 参照元が見つかりませ
ん。に示す.
3.2. 課 題 への対 処
3.2.1. 事 前 条 件 と 事 後 条 件
前 節 で 述 べ た 機 能 の 中 で ,2.3 に お け る 課 題 を 解 決 す
図 6
テストケース一覧
る,特徴的な機能の詳細について説明する.近年,
OWL-S [8] に 代 表 さ れ る よ う に , Webサ ー ビ ス の 事 前
条 件 , 事 後 条 件 , 発 生 例 外 と い っ た Web サ ー ビ ス の 詳
細仕様を記述・公開する方法が提案され普及しつつあ
る . そ こ で 本 稿 で は Web サ ー ビ ス の 仕 様 と し て , 表 1
エラー! 参照元が見つかりません。や 表 2エラー! 参
照元が見つかりません。に示すような入出力インタフ
ェース, 発生例外, 事前条件, 事後条件を利用するこ
とにより, 従来に比べて精度の高い整合性検証と厳密
な絞込みを行えるテストケース設計を実現する.事前
条 件 と は , 対 象 の Web サ ー ビ ス を 呼 び 出 す 時 点 で 真 に
な っ て い な け れ ば な ら な い 条 件 で あ り ,Web サ ー ビ ス
実 行 の 前 提 を 示 す .ま た 事 後 条 件 と は ,Web サ ー ビ ス
の 実 行 に 成 功 し た 場 合 に 満 足 さ れ る 条 件 で あ り , Web
図 7
(2)
テスト結果画面例
biz∫ Tester
(a) テ ス ト 項 目 , テ ス ト ケ ー ス 自 動 生 成 機 能
ビ ジ ネ ス プ ロ セ ス 上 の 隣 接 す る 2 つ の Webサ ー ビ ス
サービス実行の効果を宣言する.
3.2.2. Web サ ー ビ ス 仕 様 と の 整 合 性 検 証
課 題 1 を 解 決 す る た め , Webサ ー ビ ス の 仕 様 記 述 を
用 い た , ビ ジ ネ ス プ ロ セ ス と Webサ ー ビ ス の 整 合 性 検
証機能を開発した.実現した整合性検証機能を以下に
間のパスをテスト項目とする.テスト項目の抽出観点
示 す ( 詳 細 は , [9] を 参 照 の こ と ).
を複数条件網羅と例外補足として,ビジネスプロセス
(a) 入 出 力 イ ン タ フ ェ ー ス の 検 証
の全パス検索を実施し,ビジネスプロセスのテスト項
ビジネスプロセス上の入出力パラメータの数および
目を自動生成する.また,ビジネスプロセスをリンク
そ れ ぞ れ の 型 が Web サ ー ビ ス の 入 出 力 イ ン タ フ ェ ー
網羅またはパス網羅検索し,各テスト項目を消化でき
スの定義と一致しているかを検証する.
るテストケースを自動生成する.テスト項目一覧例を
(b) 発 生 例 外 の 検 証
図 5に,テストケース一覧例を 図 6に示す.
(b) テ ス ト 実 行 機 能
Σ Serv®上 で は , 定 義 さ れ た ビ ジ ネ ス プ ロ セ ス か ら
生成されたフロープログラムにしたがって,クライア
Web サ ー ビ ス の 仕 様 で 記 述 さ れ て い る 発 生 例 外 に 基
づき, ビジネスプロセス上で当該発生例外に基づく遷
移が定義されているかを検証する.
(c) 事 前 条 件 , 事 後 条 件 , 遷 移 条 件 の 組 合 せ
ントから要求を受け取ったり,プログラムコンポーネ
全 パ ス に 対 し て Webサ ー ビ ス 間 の 事 前 条 件・事 後 条 件
ントを順次呼び出したりして,ビジネスプロセスを走
や遷移条件の組合せを抽出する.それらの組み合わせ
行させ,結果を返却する.したがって,テストケース
を 数 理 計 画 ソ ル バ ー [10] [11] [12] に よ っ て 解 く こ と に
に従った試験を実行するためには,クライアントとな
よって,遷移不可能な遷移を検出する.
るドライバと,プログラムコンポーネントとなるスタ
3.2.3. ビ ジ ネ ス プ ロ セ ス テ ス ト 支 援
ブ が 必 要 で あ る . biz∫ Testerで は , ユ ー ザ が 設 定 し た
課題 2 を解決するため,ビジネスプロセスから全パ
入出力データをもとに,それらを送受信するスタブや
スを網羅するテスト項目とそれらを消化するテストケ
ドライバを自動生成する.そして,自動生成したスタ
ー ス を 自 動 生 成 す る 機 能 を 開 発 し た . そ の 際 , Web サ
ービス仕様である出力パラメータ,事前条件,事後条
をつけることにより,図 8に示すグラフ表現を作成
件を考慮して実行不可能な遷移パスをテストケースか
することができる. 図 8に示すグラフ表現に対し,
ら除外し,テストすべきテストケースの絞込みを実現
ビジネスプロセスの開始から終了に至るパスの集
する.
合を表現するパス式を導出する.一般に知られてい
(1) テ ス ト ケ ー ス 設 計 手 順
る グ ラ フ の ノ ー ド 削 減 ア ル ゴ リ ズ ム [13] を 利 用 す る
本稿で提案するテストケース設計の手順を以下に
こ と で , 式 (1)を 得 る こ と が で き る .
a(f + g)k + a(c + d + e) h * i + abj
示す.
【 手 順 1】 隣 接 Web サ ー ビ ス 間 の パ ス の 作 成
(1)
式 (1) で + は or を 表 し , 例 え ば , a(f + g)k で afkま
ビ ジ ネ ス プ ロ セ ス 上 の 隣 接 す る 2 つ の Webサ ー ビ
た agkの パ ス を 表 す . ま た * は ル ー プ を 表 し , h * は h
ス 間 の パ ス (A → B)を 考 え る .A → B上 に 判 断 ノ ー ド が
を 0 回 以 上 任 意 に 繰 り 返 す こ と を 表 し て い る .ま た ,
ある場合, 判断ノードから遷移条件の全ての組合せ
式 (1) に 示 す パ ス 式 に お い て , ル ー プ 回 数 を 制 限 す
の 集 合 (C A → B ) を 抽 出 す る . 判 断 ノ ー ド が な い 場 合 ,
ることによりパス式から有限のテストケースの集
C A → B は 空 集 合 と す る .そ し て ,C A → B の 各 要 素 に , A
合を得ることができる.
の 事 後 条 件 と Bの 事 前 条 件 を 追 加 す る . C A → B が 空 集
合 の 場 合 , A の 事 後 条 件 と Bの 事 前 条 件 を 持 つ 要 素
表 1
N1 の Web サ ー ビ ス 仕 様
を C A→ B に 追 加 す る .
【 手 順 2】 パ ス 式 の 作 成
す べ て の 隣 接 す る Web サ ー ビ ス 間 に 手 順 1 の 処
理 を 適 用 し ,ビ ジ ネ ス プ ロ セ ス の 開 始 か ら 終 了 に 至
るすべてのパスを表現するパス式を作成する.
Case1
x, y
x
y< 0
x+ y= 0, y< 0
Ea, Eb
入力
出力
事前条件
事後条件
発生例外
【 手 順 3】 代 入 ・ 条 件 リ ス ト の 作 成
パス式より, テストケースを抽出し, ビジネスプ
表 2
N3 の Web サ ー ビ ス 仕 様
ロ セ ス の 入 力 , テ ス ト ケ ー ス 上 の 各 Web サ ー ビ ス
の 出 力 , テ ス ト ケ ー ス の 遷 移 条 件 か ら ,変 数 へ の デ
ータの代入・条件判定順序を表すリストを作成する.
【 手 順 4】 テ ス ト ケ ー ス の 実 行 可 能 性 検 証
代入・条件リストに存在するすべての条件を数理
計画ソルバーによって解く.解が存在しなければ,
実行不可能であり, 当該テストケースをテスト対象
Case1
x, y
x
x< 0
y< 0
-
入力
出力
事前条件
事後条件
発生例外
表 3
Case2
x, y
x
y< 0
x+ y> 0
Ea, Eb
Case2
x, y
x
y> 0
x+ y> 0
-
C N1 → N3
から除外する.
上 記 手 順 で は , 判 断 ノ ー ド の 条 件 だ け で な く Web サ
ービスの出力パラメータ, 事前条件, 事後条件という
制約も考慮されている.よって判断ノードの遷移条件
のみを考慮して作成したテストケース集合に比べ,提
案手法では,実行不可能な遷移パスが除外されたテス
トケース集合を作成することができる.
(2) テ ス ト ケ ー ス 設 計 例
(1) の 処 理 を 図 1 エ ラ ー ! 参 照 元 が 見 つ か り ま せ ん 。
に適用した場合の例を以下に示す.
【 手 順 1】 図 1 エ ラ ー ! 参 照 元 が 見 つ か り ま せ ん 。
の N1 か ら N3 間 の 遷 移 (N1 → N3)を 考 え る . N1 の 事
後条件が 表 1エラー! 参照元が見つかりません。の
Case2 に 示 す x + y> 0, N3 の 事 前 条 件 が 表 2 エ ラ ー !
識別子
c
d
e
条件
x≦ 0, y< 0, x + y> 0, y> 0
x≦ 0, y≧ 0, x + y> 0, y> 0
x> 0, y≧ 0, x + y> 0, y> 0
【 手 順 3】式 (1) に 含 ま れ る adhiの パ ス を 検 証 す る こ
と を 考 え る . 但 し , a,d,h,iの 各 遷 移 条 件 が 表 1 エ ラ
ー ! 参 照 元 が 見 つ か り ま せ ん 。の Case2, 表 2 エ ラ ー !
参 照 元 が 見 つ か り ま せ ん 。 の Case2 の 仕 様 と ビ ジ ネ
スプロセス上の判断ノードより 表 4であり, ビジネ
ス プ ロ セ ス の 開 始 ポ イ ン ト (S) に お け る 入 力 が x, y
で あ る と す る .表 4 と ビ ジ ネ ス プ ロ セ ス の 入 力 , Web
サ ー ビ ス の 出 力 を 遷 移 順 序 に 従 い 並 べ ,表 5 に 示 す
代 入 ・ 条 件 リ ス ト を 作 成 す る .さ ら に 表 5 の リ ス ト
の 先 頭 か ら , ビ ジ ネ ス プ ロ セ ス の 入 力 お よ び Web サ
参 照 元 が 見 つ か り ま せ ん 。 の Case2 に 示 す y> 0 で あ
ービスの出力の変数がどの条件式で利用されるか
れ ば , C N1→ N3 は 表 3 エ ラ ー ! 参 照 元 が 見 つ か り ま せ
を考え, 変数名を別名に置き換える.置き換えた表
ん。のようになる.
【 手 順 2】 す べ て の 隣 接 す る Web サ ー ビ ス 間 に 上 記
の 処 理 を 適 用 し ,各 組 合 せ の 集 合 の 各 要 素 に 識 別 子
を 表 6に示す.
【 手 順 4】 表 6 に 存 在 す る す べ て の 条 件 を 数 理 計 画
ソルバーによって解く. 表 6では,x1, x2, x3, x4, y1
の 解 は 存 在 し な い た め , adhiの パ ス は 実 行 不 可 能 で
発効率化についての評価を行った.評価アプリケーシ
あり,テスト対象外となる.
ョ ン で あ る Aシ ス テ ム を 例 と し て 挙 げ , biz∫ の 適 用 方
法 と ,実 際 に biz∫ を 利 用 し て 開 発 を 実 施 す る こ と に よ
る 効 果 に つ い て の 評 価 を 行 っ た . Aシ ス テ ム の 構 成 概
S
要 を 図 9 に 示 す . 評 価 段 階 で は , Webサ ー ビ ス 仕 様 と
の整合性検証およびテストケース削除機能は実装され
a
ていなかったため,それ以外の静的テスト(検証)機
N1
f
g
能はおよびテスト項目・テストケース生成機能,テス
c de
b
N2
Ne
k
図 8
E
4.2. 評 価 アプリケーション概 要
評価アプリケーションとして A システムを例に挙げ,
N3
biz∫ が ど の よ う に 利 用 可 能 か を 検 討 し ,そ の 結 果 か ら
h
j
ト実行機能に関する評価について報告する.
i
パスのグラフ表現
実 際 に biz∫ に よ り 開 発 を 実 施 し て 適 用 に 対 す る 効 果
(開 発 効 率 化 の 程 度 )を 評 価 し た .
A システムは,複数のシステム間の業務連携を可能
とするシステムである.A システム内には複数の他シ
ステムとの接続を制御するシステムがあり,その制御
シ ス テ ム 内 に 存 在 す る Σ Serv®を 利 用 し た ワ ー ク フ ロ
表 4
パス条件リスト
条件
y< 0
x≦ 0, y≧ 0, x + y> 0, y> 0
y> 0, x + y> 0, x≦ 0
x + y> 0, x> 0
a
d
h
i
表 5
代入・条件リスト
ー制御機能サーバにより他システムとの接続制御が行
われる.つまり,ワークフロー制御機能サーバが,各
システムとの接続を行うためのコンポーネントなどを
組み合わせたシステムとなっている.
本評価では,A システム全体における,ワークフロ
ー 制 御 機 能 の 開 発 に つ い て ,biz∫ を 利 用 し た 場 合 の ビ
ジネスプロセスの設計工程からテスト工程における稼
動および成果物の品質の観点で評価した.
A システム開発における設計工程からテスト工程の
S
a
N1
d
N3
h
N3
i
表 6
S
a
N1
d
N3
h
N3
i
変数
x, y
条件
y< 0
x
x≦ 0, y≧ 0, x + y> 0, y> 0
流れは,以下である.
(1) フ ロ ー プ ロ グ ラ ム 設 計 書 作 成
分 岐 条 件 ,変 数 や 呼 び 出 す コ ン ポ ー ネ ン ト を 検 討 し ,
ビジネスプロセスを設計する.そして,その結果を設
計書として文書化する.
x
y> 0, x + y> 0, x≦ 0
x
x + y> 0, x> 0
(2) 設 計 書 レ ビ ュ ー
設計書が要件を満たしているかを確認する.
別名置換済代入・条件リスト
変数
x 1, y 1
条件
y1<0
ΣServ
x2
x 2 ≦ 0, y 1 ≧ 0, x 2 + y 1 > 0, y 1 > 0
x3
y 1 > 0, x 3 + y 1 > 0, x 3 ≦ 0
x4
ワークフロー制御システム
x 4 + y 1 > 0, x 4 > 0
Aシステム
4. 評 価
4.1. 評 価 の目 的
biz∫ の 実 ア プ リ ケ ー シ ョ ン 適 用 性 と biz∫ に よ る 開
図 9
A システム構成概要
(3) プ ロ グ ラ ム 製 造
プログラム設計書の記載事項を把握し,それに基づ
で利用することによって発生防止が可能な問題の割合
は ,全 体 の 71%で あ っ た( 図 11 エ ラ ー ! 参 照 元 が 見 つ
いてプログラムを生成する.
か り ま せ ん 。 参 照 ). 検 出 し た 問 題 の 内 容 は , プ ロ グ
(4) セ ル フ チ ェ ッ ク , ソ ー ス レ ビ ュ ー
ラム設計やコーディングでの誤り,データ定義エラー
ソースレビューチェックリストを基に,まず担当者
等であり,主なエラー原因は,ケアレスミスの様な単
が自己チェックし,仕様の反映漏れを防ぐ.レビュー
純なエラーであった.これらのことから,本機能によ
時は,設計書およびソースレビューチェックリストを
り ,本 来 UTで 発 生 す る エ ラ ー を 未 然 に 防 ぐ こ と が 可 能
用いて確認を行う.
であると考えられる.
(5) 試 験 項 目 票 の 作 成
静的検証機能により,各工程での問題の摘出漏れを
プロジェクトで決められた抽出観点に基づいて,テ
少なくすることが出来,それにより,後工程で発生し
ス ト 項 目 を 作 成 す る .biz∫ に お け る テ ス ト 項 目 一 覧 に
ていたエラー(故障)を大幅に防止することが可能と
相当する.
なるため,品質の向上および修正稼動の削減が見込め
(6) 試 験 項 目 票 レ ビ ュ ー
る.さらに静的検証に掛かる稼動は,無視してもかま
プログラム設計書に記載された機能に対する試験
わない時間で終わるため,レビュー前に本機能を利用
項目の網羅性,及びソースレベルでの機能実現に対す
することで,問題を事前に発見・修正でき,レビュー
る試験観点の有効性をチェックし,試験項目票の抽出
稼動の削減も見込める.
レベルを確認する.また,異常系についてのチェック
4.3.2. ビ ジ ネ ス プ ロ セ ス テ ス ト 実 行 支 援 機 能
も行う.
評価プロジェクトに対してテスト項目自動生成機
(7) 試 験 手 順 書 の 作 成
試 験 項 目 を 消 化 す る テ ス ト ケ ー ス を 作 成 す る . biz
能を適用した結果,テスト項目抽出基準に従ってコン
ディションカバレッジで抽出されることと網羅率が
∫におけるテストケース一覧に相当する.
100%で あ る こ と を 確 認 し た .同 様 に テ ス ト ケ ー ス 自 動
(8) 試 験 手 順 書 の レ ビ ュ ー
生成機能を適用した結果,抽出された試験項目がすべ
テストケースが全テスト項目を網羅しているかを確
て テ ス ト ケ ー ス に 含 ま れ て い る こ と を 確 認 し た .ま た ,
認する.
フロープログラムすべての試験項目およびテストケー
(9) テ ス ト プ ロ グ ラ ム 作 成
ス を 抽 出 し PDFで 出 力 す る ま で の 時 間 を 計 測 し た 結 果 ,
スタブやドライバを生成する.
(10)
試験実施
(5) で 生 成 し た ス タ ブ と ド ラ イ バ を 用 い た デ バ ッ ガ
どちらの場合も,従来と比較して 9 割以上短縮できる
こ と が わ か っ た ( 図 12 参 照 ) .
次に,評価プロジェクトに対してテスト実行機能を
による試験を実施する.
適用し,試験実行に要する時間を計測した.ただし,
(11)
biz∫ で は ,テ ス ト 項 目 抽 出 ,テ ス ト ケ ー ス 抽 出 ,テ ス
試験結果レビュー
上記試験に於ける試験実施方法の正当性,及び試験
ト実行(スタブ・ドライバ生成含む)を一連の操作で
結果確認の妥当性等をレビュー検証し,試験に問題が
行 う た め ,そ れ ら の 操 作 時 間 も 含 ん で い る .そ の 結 果 ,
なかった事の確認を行う.
全テスト項目の消化時間を,従来と比較して 9 割以上
4.3. 結 果 と考 察
短 縮 で き る こ と が わ か っ た ( 図 12 参 照 ).
4.3.1. 静 的 検 証 機 能
(1) 抽 出 ( 防 止 ) 可 能 な PD 工 程 で の エ ラ ー 割 合
(5)(7)(9)(10)の 作 業 に 要 し た 時 間 の み を 計 測 し た が ,本
た だ し ,本 評 価 で は ,4.2 で 述 べ た テ ス ト 工 程 の う ち ,
評価プロジェクトにおける開発成果物のレビュー
来なら自動生成されたテスト項目やテストケース,テ
によって検出された問題のうち,本機能によって発生
スト結果のレビューを実施する必要がある.全体のレ
防 止 が 可 能 な 問 題 の 割 合 は 全 体 の 11 %で あ っ た ( 図
ビュー時間も含めた場合の評価は今後実施する予定で
10 エ ラ ー ! 参 照 元 が 見 つ か り ま せ ん 。参 照 ).検 出 し た
あるが,従来と比較して 5 割~7割程度の削減になる
問 題 は PD工 程 で 混 入 す る 割 合 が 高 く ,主 な 内 容 は ,設
と想定している.
計 誤 り や 表 現 上 の 記 述 不 良 で あ り ,主 な エ ラ ー 原 因 は ,
ビジネスプロセステスト実行支援機能を利用する
基本的な部分での確認不足等などであった.これらの
ことで,テスト項目の抽出からテスト実行に至る全フ
ことから,本機能により,主に軽微なエラーを発見で
ェーズで稼働を削減することができる.それにより,
きると考えられる.
仕様変更等による再試験実施の稼動を減らすことがで
(2) 抽 出 ( 防 止 ) 可 能 な M・ UT 工 程 で の エ ラ ー 割 合
きるだけでなく,試験実施者は仕様と製造成果物の整
評 価 プ ロ ジ ェ ク ト に お け る M・UTに お け る 故 障 の 原
合性の確認に集中することができ,品質の向上にも寄
因 と な っ て し ま っ て い た 問 題 の う ち ,本 機 能 を PD工 程
与できる.
防止可能
11%
防止不可能
89%
図 10
防 止 可 能 な エ ラ ー の 割 合 (PD 工 程 )
抽出不可能,
29%
抽出可能,
71%
図 11
防 止 可 能 な エ ラ ー の 割 合 ( M・ UT 工 程 )
100
90
80
比率(%)
70
テスト実行
スタブ・ドライバ生成
テストケース生成
テスト項目生成
60
50
40
30
20
10
0
従来
図 12
biz∫
各機能の実行時間の割合
5. 今 後 の 課 題 ・ 展 開
現在,本稿で提案したテスト機能を実装したプロト
タ イ プ を 開 発 中 で あ り ,当 社 の プ ロ ジ ェ ク ト に 適 用 し ,
本手法を評価する予定である.今後は,ソフトウェア
テストを効率よく進められるモデル設計手法やテスト
自動実行手法,性能試験工程の自動化技術の開発やさ
らに上位工程での成果物検証技術の開発を進めていく
予定である.
文
献
[1] D. Krafzig et al, “Enterprise SOA”, printice hall,
pp.1-2, November 2004.
[2] M. Kloppmann et al, Business process choreography
in WebSphere: Combining the power of BPEL and
J2EE,
http://www.research.ibm.com/journal/sj/432/kloppm
ann.html
[3] Ethan Cerami, Web サ ー ビ ス エ ッ セ ン シ ャ ル ズ , オ
ラ イ リ ー ・ ジ ャ パ ン , pp4-5,2002.
[4] Tony Andrews et al, ”Business Process Execution
Language for Web Services (BPEL4WS) Version
1.1”,
ftp://www6.software.ibm.com/software/developer/lib
rary/ws-bpel.pdf , May 2003.
[5] 吉 田 英 嗣 , 横 山 和 俊 , 松 田 栄 之 , “サ ー ビ ス 連 携 プ
ラ ッ ト フ ォ ー ム Σ Serv”, pp.47-49,NTT 技 術 ジ ャ
ー ナ ル , 2003 年 7 月 号
[6] Erik Christensen et al, ”Web Services Description
Language (WSDL) 1.1”, World Wide Web
Consortium, March 2001.
[7] Matjaz B. Juric et al, ”Business Process Execution
Language For Web Services”, Packt Publishing,
September 2004.
[8] OWL-based Web service ontology,
http://www.daml.org/services/owl-s/1.0/
[9] 山 本 恭 弘 , 吉 田 英 嗣 , 坂 田 祐 司 , 横 山 和 俊 , ” サ
ービス連携システムにおけるテスト設計手法の
提 案 ”, pp.47-49, FOSE2005, November 2005.
[10] lp solve -Mixed Integer Programming (MIP) solver-,
http://groups.yahoo.com/group/lp solve/
[11] GLPK
(GNU
Linear
Programming
Kit),
http://www.gnu.org/software/glpk/glpk.html
[12] cream, http://bach.istc.kobe-u.ac.jp/cream/
[13] Boris Beizer, ソ フ ト ウ ェ ア テ ス ト 技 法 , 日 経 BP
出 版 セ ン タ ー , pp. 346-347,1994.