テストを取り巻く背景
テストの工数や工期は開発全体の約4割注1を占めるという調査結果があります参考1、2。実感としてはもっと多いと思われる方もいるでしょう。テスト作業を効率化し、作業時間を短縮するためには、繰り返し作業が多い特徴から、テストツールを使ったテスト自動化が最も有効な解決策と言えます。
テスト自動化の現在
有償・無償の様々なテストツールがありますが、実態として約7割のプロジェクトはテストツールを使っていません参考3。テストツールを導入してもすぐに効果が出ないのが大きな理由の一つです。しかし、機能の改善・拡張に伴い、テストツールは着実に効果を発揮するように進化を続けています(図1)。
図1:主なテストツールカテゴリと普及度
テスト自動化の今後
そこで、今後さらなる進化が期待できるテストツールを紹介しましょう(図1)。
より効果的なGUIテスト自動化
キャプチャ/プレイバックツールは、WebブラウザなどのGUIを使ったアプリケーションを自動テストします。従来はGUI操作を手動で記録しなければなりませんでしたが、テストデータやシナリオ(手順)を外部ファイルに定義するデータ駆動テストやキーワード駆動テスト(図2)によって、手動操作なしでの自動化が実現できるようになりました。
図2:キーワード駆動テスト
テスト管理からALM(Application Lifecycle Management)へ
テスト管理ツールは品質管理、進捗管理などを自動化するとともに、テストの計画、設計、実行、評価という一連の作業を連携できます。また、テストと要件を対応づける要件管理や、継続的インテグレーション(Continuous Integration)ツールとの連携により、開発・管理の一体化を実現できます。さらに最近では、保守・運用まで含めて統合的に管理するALMに発展させることを多くのツールベンダが提唱しています。
テスト設計も自動化
テスト条件抽出や組合せ作成を効率的かつ正確に行うためには、テスト設計技法適用の自動化が必要です。代表的なものにAll-pair法参考4や状態遷移テスト参考5の支援ツールがあります。海外ではモデルベースドテスト(MBT)の研究が進んでいますが参考6、国内でもテスト設計の構造化やモデル化の動きがあり参考7、今後MBTに発展すると考えられます。
現在、NPO法人ソフトウェアテスト技術振興協会(ASTER)では、テストツールのベンダ企業とユーザ企業が共同でテストツール普及のための活動を行っており参考8、NTTデータもユーザ企業として積極的に参画しています。そして、このようなトレンドを踏まえ、NTTデータでは、設計書を基にテスト設計から実行、評価までを自動化することで、テスト工数削減、工期短縮の実現に取り組んでいます参考9。
- 注1製造工程に含まれている単体テストの工数、工期も含め4割程度と見なしています。
参考文献
- 参考1<第2版>ソフトウェア開発データ白書2010-2011~2584プロジェクト
定量データ分析で分かる開発の最新動向(PDF:352ページ, 5,051KB)(外部リンク) - 参考2ソフトウェア開発管理基準に関する調査報告書(ソフトウェアメトリックス調査)(PDF:275ページ, 3,352KB)(外部リンク)
- 参考3ツールの利用率 - 開発支援ツール徹底調査2011 テスト編(ITpro)(外部リンク)
- 参考4Pairwise Testing - Available Tools(外部リンク)
- 参考5状態遷移表設計で品質向上
「テストの効率化」が組込みソフト開発の鍵(キャッツ PerfectPass)(外部リンク) - 参考6モデルベースドテストの技術動向と研究事例(ソフトウエアシンポジウム2007)(PDF:58ページ, 730KB)(外部リンク)
- 参考7「テストアーキテクチャ解説~テストアーキテクチャ設計を実践するには~」(JaSST'12 Tokyo)(外部リンク)
- 参考8テストツールWG(test tool working group)(外部リンク)
- 参考92010年10月28日ニュースリリース