現場で負担になっているテスト設計とテスト準備。従来自動化は無理だと思われていた分野だが、最近になってこれらの作業を支援するテストツールが現れ始めた。知られざるそんな機能から、特に便利なものを紹介する。

 雑誌「日経SYSTEMS」は2011年、テストツールに関する大規模な調査を実施した。そこで分かったのが、現場のニーズとテストツールの機能に大きな開きがあることだ。

 特に目立ったのが「テスト設計」と「テスト準備」に関する現場の負担。図1に挙げたのは、調査に寄せられた代表的な声である。テストケースの洗い出しやテストデータの準備を大きな負担と感じている回答者は全体の6割を超える一方で、そうした作業をテストツールで自動化している例はほとんど見られなかった。テスト設計やテスト準備の自動化に、あきらめムードさえ漂っている状況だった。

図1●「テスト設計」と「テスト準備」が現場の負担に
雑誌「日経SYSTEMS」が実施した調査によると、6割を超える現場が「テスト設計」と「テスト準備」を負担だと答えている。テストツールの利用もほとんど進んでいない分野である
[画像のクリックで拡大表示]

 では、本当にテスト設計やテスト準備といった作業を自動化するのは難しいのか。実は、テストツールの進化は目覚ましく、自動化のカバー範囲は着実に広がっている。日本IBMの金元隆志氏(Rational IT CTP)は「現場のニーズを常に取り込む努力をしている。その進化はテスト設計やテスト準備といった、これまで自動化が難しかった作業にも広がっている」と説明する。

 ここでいうテスト設計とは、テストの対象や範囲の決定、テストの手順(シナリオ)や合否基準などのテストケースの作成、そのテストケースの絞り込みといった作業を指す。テスト準備は、テスト環境の構築やテストデータの作成などの作業だ。以下では、それらの負担を解消する便利機能を八つ紹介する。別掲記事では、米Microsoftでテスト現場の最前線に立つ責任者に、テスト自動化の現状と課題についても聞いた。

“プロの眼”でテスト設計を支援

 便利機能の(1)~(3)は、テスト設計に関する機能である。いずれも“プロの眼”でテスト設計を支援する機能といえる。

便利機能(1)
UML設計書からテスト範囲を洗い出す

 複雑なシステムになると、どこまでをテスト範囲にすればよいのか悩むもの。システム連携が多い、一部の機能だけ改修したいといったテストでは「テスト範囲が広すぎれば工数は膨らみ、狭すぎればテストケースの漏れにつながる」という悩みと、現場は常に向き合わなければならない。

 一つ目の機能はそんな悩みを解消してくれる機能である。UML設計書からテスト範囲を洗い出す機能だ。

 米Lattixの「Lattix」が持つ機能は、UML設計書を入力情報として、クラス同士やメソッド同士の依存関係を分析する。その結果を基に、テスト範囲を決定できる(図2)。これまでソースコードを対象に分析するテストツールはあったが「ソースコードが出来上がるのはプロジェクトの後半。この段階でテスト範囲が分かっても、人の手配や工数の確保が難しくなる」(同ツールを販売するテクマトリックス システムエンジニアリング事業部 ソフトウェアエンジニアリング技術部 ソフトウェアエンジニアリング技術課 課長 今井 敦氏)。

図2●UML設計書からテストすべき範囲を自動で洗い出す
複雑なシステムになると、どこまでテストしたらよいのか悩むもの。米Lattixの「Lattix」を使うと、クラス同士やメソッド同士の依存関係を分析してテストすべき範囲を自動で洗い出せる
[画像のクリックで拡大表示]

 2011年秋のバージョンアップで、LattixはUML設計書からテスト範囲を分析できるようになった。Enterprise ArchitectやRational Rhapsodyといったモデリングツールで作成したクラス図を取り込み、クラス同士、メソッド同士の依存関係の数を集計する。この数値の挙がった箇所を、テスト範囲として特定する、というわけだ。