ポスター発表 - Top SE

トップエスイー修了制作
機能テストによるリバースエンジニアリングとテス
トファーストによるシステム統合開発方法の提案
日本電信電話株式会社
伊山 宗吉
iyama.muneyoshi@lab.ntt.co.jp
開発における問題点
手法を参考にしたアプローチ
類似の二つの既存システムを活用し,ソフトウェ
ア開発を伴う統合案件では,既存システムが過
去に変更・拡張を繰り返してきたことで仕様が
不明確になっているケースが多い.それ故に顧
客からの要求仕様の不備・漏れや,開発者の
理解不足・誤りによる設計不備が生じ,結果,
開発したシステムに不具合が発生する.
先にテストコードを書いて開発を行う「テスト駆
動開発」を参考にしたアプローチを提案する.
本提案では,機能テストを駆動の対象とする.
要件定義の段階で機能テスト項目を作成して,
既存システムに対して実行する.得られた結果
を比較することで仕様の差異を明らかにする.
アプローチ
必要機能を洗い出す
既存シス
テムの資料
機能テスト項目を作成
テスト観点を関係者(顧客含む)で議論
⇒ 機能テスト項目に反映
要求定義
機能テストを用いて既存システムの仕様を分析
(リバースエンジニアリングと組合せる),既存
システム間で仕様を比較
凡例
参照
作成・追加・
変更
機能テスト
項目
仕様の詳細
&比較結果
二つの既存システムの差分から,統合システ
ムの仕様を顧客と議論⇒ 機能テスト項目に反
映
設計
実装・テ
スト
受け入れ
テスト
仕様の詳細と比較結果から設計書作成
(設計項目と機能テスト項目の紐付けを行う)
設計書
設計書に基づき,且つ機能テストを
パスするように実装
機能テストを基にテスト項目を作成
受け入れ
テスト項目
受け入れテストを実施
シミュレーションによる評価
既存システムの仕様の認識不足・誤りによって不具合
が発生した事例に対して,提案プロセスを適用した場合
の効果を机上でシミュレーションした.その結果,事例で
は総合テストや受け入れテストで発覚した機能の不具
合を,要求定義の段階で発見することができ,後工程で
の手戻りを防止することができた.事例では不具合対応
に合計2ヶ月程度の期間を要したが,提案したプロセス
の適用により,対処期間を4分の1(2週間)程度に短縮
できた.
①提案したプロセスでは前倒し ②提案したプロセスでは発生
: しない作業(の期間)
で実施する作業(の期間)
原因調査
対処議論
改修
≒1:3
再テスト
左図のように,あらかじめ顧客を含むステークホルダ間
でテストの方針(テスト実施条件,準正常系・異常系とし
て考慮しておくべき入力や操作のパターン,テスト項目
の粒度 等)を議論し,二つの既存システムに対して共
通の機能テスト項目を作成し,実行する.機能テスト(ブ
ラックボックステスト)では観測できない仕様はリバース
エンジニアリングを組合せて分析する.テストと分析の
結果を比較することで仕様の差異や改善点を明らかに
する.この情報を基に顧客と統合後のシステムのある
べき仕様を議論することで設計すべき内容とテストすべ
き内容が具体化され,かつ設計項目とテスト項目の紐
付けを容易に行うことが可能になる.実装者は作成され
た機能テストをパスするようにシステムを実装すること
で,処理や動作の妥当性を確保しながら開発を進める
ことができる.
課題と総括
■課題
・提案したプロセスでは,要求定義以降の品質は向上する
が,要求定義に期間と工数を要する.
・ユーザの要求や機能仕様とテスト項目の紐付けが容易な
一方で,ソースコードとの関連が弱くなる.また,機能テスト
ではブラウザなどの画面操作を介したテストが主になるため,
通常のテスト駆動に比べて自動テストの難易度が高い.
■総括
提案したプロセスを事例に対して適用した机上シミュレー
ションで,問題の防止を確認することが出来た.
今後,ツール統合の案件に携わる際に本稿のプロセスを提
案し,具体的な効果を確認する.また,今回の提案内容は
対処のスコープを限定して検討したものであるため,今後は
他のシステム統合事例の情報収集と分析を通じて,対策の
検討範囲を広げる.
国立情報学研究所
トップエスイー
トップエスイー: サイエンスによる知的ものづくり教育プログラム
National Institute of Informatics
~サイエンスによる知的ものづくり教育プログラム~
文部科学省科学技術振興調整費
産学融合先端ソフトウェア技術者養成拠点の形成