Fujitsu Laboratories of Americaと富士通研究所は3月29日、短い期間で小規模な機能実装とソフトウェア提供を繰り返しながら開発を行うアジャイル開発において、テスト工数の肥大化を抑制し開発の効率を向上させるテスト自動生成技術を開発したと発表した。

テスト自動生成技術とは、ソースコードにおいて、変数の取りうる値によって動作が変わる部分を自動的に解析することにより網羅的なテストを実現する技術。これをアジャイル開発に適用する場合、頻繁に繰り返されるソースコードの改版によってテストの規模が肥大化していくという問題があるという。

従来技術をアジャイル開発に導入した場合

そこで今回、改版部分に関連する入力変数に対してのみテストコードを修正することで、増分を抑えることができるテストコード再生成技術を開発。従来の技術では改版の内容に応じて、各テストケースをそのまま再利用するか、新たに再生成したテストケースを追加するか、入れ替えるかなど、テストケース単位で選択していたが、新技術では一つ一つの入力変数単位でテストコードの書き換えを行うため、無駄のないテストケースの再生成が可能となった。

テストコード再生成技術

また、改版部分に関連する入力変数を特定する際は多くのメモリを必要とするが、新技術では、ソースコードの行と関連する入力変数をグラフ経路として表現し、他の行でも部分的に経路を共有することにより、利用するメモリ量を大幅に抑えながら、ソースコード行に関連する入力変数を探索する。

関連入力変数探索方法

新技術を約5000行のオープンソース・ソフトウェアの改版に適用した実験では、テストコードの増加を24分の1に大幅に抑えられることが確認された。両社は社内試行を通じて技術を強化し、2016年度中の実用化を目指す。