開発の自動化

ソフトウェア生産技術革新

レビュー支援試験稼働削減真の上流工程へのシフトを実現する
TERASOLUNA Simulator
NTTデ ー タ で は シ ス テ ム 開 発 を 行 う た め の 自 動 化 ツ ー ル 群 と し て
TERASOLUNA Suiteを推進しており，社内実績では大きな削減効果を上げています．しかし，試験について目を向けるとまだ多くの手間と工数が掛かっており，生産性向上の可能性が残されている状況です．本稿では解決の １ つの取り組みとして，結合試験の稼働を丸ごと削減することを目指して研究開発を進めているTERASOLUNA Simulatorを紹介します．

自動化の場合の結合試験

この際，処理の複雑さがレビュアの許容限界を超えていなければ，十分な

か ね こ

たけひこ

金子 武彦
NTTデータTERASOLUNA Simulator

コーディングの自動化ツールを適用

バリエーションを頭の中に用意でき，前述のような複雑な設計情報であっした開発では，「設計どおりのソース一般的には設計情報の品質を確保するたとしても設計時に十分に設計品質をコード」が常に自動生成されており，ことができます．しかし，処理の複雑確認できるようにサポートするのが生成されたソースコードが「設計どおさがレビュアの許容限界を超えた場TERASOLUNA Simulatorで す． 設りに動くか」を確認する必要はありま合，十分なバリエーションを考えられ計情報が複雑であった場合，十分なせん．しかし，誤った業務仕様のままず，一般的には十分な設計品質を確保

データバリエーションを想定すること設計書を作成してしまうなど入力したできません（図 １ ）．このようにして（レビュー作業の①）が困難であった

設計情報自体が誤っている可能性は残設計時に設計誤り（レビュー漏れ）がり，想定したデータバリエーションがされており，「設計自体の正しさを動発生するケースが多く，この設計誤りどのように動作するのかを頭の中でシかして確認すること」が自動化ツールを検出するために結合試験を行っていミュレーションすること（レビュー作

適用時の結合試験の役割となっていまるといえます．

業の②）が困難であったりしますが，す．裏を返すと，「レビューで設計自TERASOLUNA Simulatorは ① と ②体の正しさを十分確認できれば，結合の作業を自動で実施することで漏れの試験を丸ごと削減することができる」といえます．
レビュー時には以下の内容を実施している

設計時のレビュー分析①頭の中でデータバリエーションを用意する②①のデータが入力された場合，どのように動作するかを設計時のレビューを分析すると，以頭の中でシミュレーションする下の作業を実施しています．
① レビュアの頭の中で必要なデータバリエーションを用意する③頭の中の期待される結果と同じかを確認する
しかし…

② ①のデータが入力された場合，どのように動作するかを頭の中でシミュレーションする③ シミュレーション結果が，頭の中の期待する結果と同じかを確認する

20

NTT技術ジャーナル 2014.10

設計情報

融資実行日が基準月の月末日付と同一日もしくは過去日であり，かつ2009/3/31よりも未来日であるかつ基準前月末のローン残高が2000万円以上の場合，基準月前月末時点のローン残高の 2 ％と前年の所得税払込額を比較し少額である金額を出力する．ただし…

複雑な処理を見せられてもレビュア・顧客の理解が追い付かない．

図1

設計時のレビュー分析

特 集■データバリエーションない確認を実現します．具体的には必計 情 報 か ら 生 成 す る か と い う と，要なデータバリエーションを自動生成

TERASOLUNA Simulatorが 自 動

TERASOLUNA Suiteを適用した場し，さらにはそれらがどのように動作生成するデータバリエーションは，ビ合，設計情報がすべてロジカルに読みす る か を す べ てTERASOLUNA

ジネスロジックに対する入力値のこと取れる情報になっているため，これらSimulatorが 自 動 で 実 行 し て く れ まであり，ビジネスロジックの設計内容を基にチェックや分岐，演算，編集なす．レビュアはその実行結果（レポーを確認できるような情報である必要がどの内容を読み取り，そこからこれらト）と頭の中の期待される結果との突あります．例えば，チェック処理が妥のデータバリエーションを自動生成し合（レビュー作業の③）を実施するだ

当になされているかを確認するため，ます．データバリエーションの自動生

けで，動作させた場合の観点も含めてチェックでエラーとなるバリエーショ

成をするには多くの課題があります

設計の正しさを確認することができる

ンや正常にとおるバリエーションが必が，それについては後述します．

ようになります（図 ２ ）．ただし使い要となります．また，設計条件におけ■シミュレート

勝手や性能など非機能を中心に確認でるしきい値を意識したバリエーション

シミュレートとは，データバリエーきない観点もあります．なども該当します．このように結果をションをビジネスロジックに流した場確認することで設計の妥当性が確認で合，どのような出力結果となるかを導きるバリエーションのことを指します．

き出すことです．ツールの名前にも含

また，これらの情報をどのように設まれるシミュレートは通常疑似実行の

次に TERASOLUNA Simulator の詳細を紹介します．

（a） シミュレータ適用前

設計時実行したら…
動作結果
設計書

レビュー

試験時

テスト項目
生成

設計情報
テスト
項目表

テストケース
生成

データ
バリエーション
レビュア

テスト
項目表

人が確認
テスト
ケース表

レビュア

試験実施

バリエーション考慮漏れが多々発生しがち

試験は手間も工数もかなり掛かる

・環境設定
・事前データ設定
・実行・証跡取得 など

試験
結果人が確認 レビュア（b） シミュレータ適用後
設計時に試験で確認すべき観点も確認でき，手間も少ない

設計時

自動生成

シミュレート
動作結果
データ
バリエーション

設計書

図2

レポート

設計書とレポートをレビュー

レビュア

TERASOLUNA Simulatorの概要

NTT技術ジャーナル 2014.10

21

ソフトウェア生産技術革新意味となりますが，本ツールでは疑似■データバリエーション生成の課題ります．

実行ではなく実際のプログラムソース

・挙 動を確認しながらレビューでデータバリエーションは設計情報か（ビジネスロジック）に対して実行しきるため，レビュー品質が向上しら生成しますが，設計情報を正しく解ています．これは，疑似実行による実ます．

析しないと期待どおりのデータバリ

行結果は，実際のプログラムソースで・動 作することで分かる誤りを設計エーションを生成することはできませ実行した結果と異なる動作をするので時点で検出できるため，手戻り工ん．代表的な課題を表に示します．こはないかとの不安が拭えないためで数が削減されます．

こでは，設計情報が自然言語と想定しす．なお，通常，設計段階ではプログ・今 までなかったレポートをレた場合，充足すべきパターンが定義しラムソースは存在していないため実際ビューする作業が増えます．

づらいため便宜上プログラム要素で記に動作させることは難しいのですが，② 試験工程における効果載しています．赤字は難易度が高い

TERASOLUNA Suiteを適用してい・レ ポートで確認済みのデータバリ要素を表しており，ループやデータる場合は設計した時点で設計どおりにエーションは再度試験で確認しな

ベースをいかに扱うかは難易度が高い

動くプログラムソースが存在している

くて良いため，試験工数を削減すと判断しています．また，ここにはなため，実際のプログラムソースで実行ることができる見込みです．

い切り口ですが境界値を意識したデー

上記効果を考慮すると設計工程はレタを出力させる点も難易度が高いです．

することが可能となります．

■レポートのレビュー時の課題

また，ここまでビジネスロジックにポートをレビューする工数が増えるも対するシミュレートを中心に記載してのの，データバリエーションを考え，レポートはレビュアや顧客にとってきましたが，TERASOLUNA Simulator

動きをシミュレートする時間が削減さ見やすいものでなければなりません．

は，数年かけて研究開発していくことれるため最終的な工数は± ０ となるこ

見やすさは人によって違いはあります

で最終的に画面遷移も含めてシミュとを想定しています．一方，試験工程が，①情報量が無駄に多過ぎず品質をレートを行うレベルまでつくる予定とにおける効果は試験の大幅な削減を見確認するのに必要かつ十分な量に絞らなっています．

込んでいるため，処理結合支援，機能れていること，②人が設計誤りや漏れ■レポート

結合試験などを大幅に削減できる見込を確認しやすいように，入力データバ

みです．

リエーションどうしの関係が意味をレポートとは，システムの入力とそれに対応する出力を見やすく表現した情報であり，人間にとって見やすいこ課持って表現されていることが重要で

題

す．②の具体例としては，各入力デーとが非常に重要となります．なぜなら現在研究開発中のTERASOLUNA

タバリエーションがどのような観点を

設計レビューの目的は設計内容の正しSimulatorの課題を以下に示します．

確認するためのものかが表現されていさの確認であり，その確認はレビュアの判断でしか行うことができません．
そのためレビュアがレポートを見て誤ることなく判断するために見やすくする必要があります．

期待される効果① 設計工程における効果・デ ータバリエーションを考え，動きをシミュレートする時間が減

22NTT技術ジャーナル 2014.10

表

データバリエーション生成の課題

項目属性

int/String/double，null，キャストなど

データ構造

配列 ・ リスト ・ 構造体など

変数

変数 ・ 定数 ・ 環境変数 ・ セッション情報など

制御構造分岐，ループなど

各種処理

チェック，編集，演算，コール，帳票編集など

文字列操作

部分参照，結合，文字数など

外部情報

データベース，ファイルなど

Java依存Exception，アノテーション，継承，クラスなど

特 集を解決するカギと考えています．
例えば…

どれだけのバリエーションが必要か？
20以上

エラー

20（エラー 1 ）整数MAX値超え
整数MAX値20（エラー 1 下限）

15（正常 1 ）19（正常 1 上限）
17（中央値）
15（正常 1 下限）

20未満

正常

15以上
15未満
10（正常 2 ）10以上

エラー10未満9（エラー 2 ）※対象は整数とする

図314（正常 2 上限）
12（中央値）10（正常 2 下限）

整数
0−1
整数以外
XXXX
null
1.1

今後の展望
TERASOLUNA Simulator は 2014年度より本格着手しており，今年度末で基礎部分の構築を終え，2015年度には，ツールを実用レベルにしていく方向で研究開発しています．

9（エラー 2 上限）
整数MIN値
整数MIN値超え

データバリエーションの量と質に対する課題ることや，レポートが確認しやすい順ションを確認すれば十分なのか明確な番 ・ カテゴリに分かれていることなど答えはありません．今回の場合，デーが挙げられます．

タバリエーションが多すぎてもレ

また，TERASOLUNA Simulator

ビューしづらいため量と質のバランスを利用するシーンはレビュアがレをどうするかは難しい問題となります．

ビューする際と顧客が内容を確認する

なお余談ではありますが，品質を確２ つのシーンを想定しており，各利用

認 す べ き バ リ エ ー シ ョ ン でシーンに応じて必要なレポートの形態

TERASOLUNA Simulatorで は 決 しは異なります．レビュアはすべてのて出力することができないバリエー

データバリエーションを漏れなく確認ションがあります．それは設計漏れとするのに必要な形態が望ましく，顧客して設計情報にそもそも定義されてい向けは顧客が確認したい点をピンポイない処理のバリエーションです．これ

ントで即時に見られるような形態が見については，レビュー時に漏れているやすさにつながります．

ことを指摘いただくほかありません．

■データバリエーションの量と質■膨大な処理時間に対する課題に対する課題本取り組みは，すべてを完璧に実行

システム品質を確認するために必要

すると膨大な処理時間を要することがなデータバリエーションがどのような想定されます．そのため，最終的にはものか，明確な定義がないことも課題

処理時間をいかに抑えるかが課題となの １ つです（図 ３ ）．TERASOLUNA

ります．解決方法は，①ロジックを改Simulatorはレビュアや顧客の頭の中善し高速化する，②高いコンピュータにどのようなシステムをつくりたいかパワーを利用して高速化する，③完璧の答えがあり，その答えどおりに設計を求めず人の知識で補うことを前提とできているかを確認するためのツールしたツールとする，の ３ つがあります．

ですが，どれだけのデータバリエー③も含めて考えることが現実的な問題

金子 武彦
今回のTERASOLUNA Simulatorは自動化の取り組みにおける可能性の一部であり，ほかにも革新を起こしていけるアイデアは多々あります．NTTデータとしては，今後も自動化でソフトウェア開発における革新を起こしていきたいと思いますのでどうぞご期待ください．

◆問い合わせ先NTTデータ
技術開発本部
ソフトウェア工学推進センタ
E-mail case-nttgjournal kits.nttdata.co.jp

NTT技術ジャーナル 2014.1023