Understand連携

ソースコードの変更による影響範囲をすぐにテスト

C++testとUnderstand連携


派生開発の現場では、ソフトウェアが大規模化するなかで短納期やコスト削減を要求され、頻繁にソフトウェアの変更、追加を強いられる傾向にあります。 その結果、ソフトウェア全体への影響を考慮しないまま部分的な理解で変更を加えることとなり、予期せぬ「ソフトウェア品質の低下」を引き起こしやすい土壌が作られています。
この「デグレード」のリスクを回避するため、影響範囲に的を絞った効率的なテスト手法を取り入れることで品質を担保しながら派生開発を行うことができるプロセスを作り上げる必要があります。ですが、簡単に実現できるものではありません。

たび重なる変更により、つぎはぎ状態になってしまったコードを読み解くのは非常に時間がかかるうえに、手探りのテストでは抜け漏れを起こす危険性が高いです。とは言え限られた工数で全体をテストしなおすのも現実的ではありません。
では、どのようにしてデグレードのリスクを減らしていくべきでしょうか?

再テスト対象と影響範囲の特定を自動化:Understand連携のご紹介

その解決策としては、「影響分析」と「自動テスト」で的確にデグレードを防ぐことです。 
ソースコード解析ツール「Understand」とテストツール「C++test」を組み合わせて利用すると、ソースコードの変更による影響範囲のみを過不足なくテストすることができます。

Understandで取得した情報を基に、テストが必要な対象、および影響範囲の特定を自動で行うため、漏れのない、無駄のないテストが実現できます。

影響範囲を含めたテストが必要な理由

ソースコードを変更した後、デグレードが発生していないことを確認するために回帰テストを実施することが多いですが、この回帰テストが関数単独のテストである場合、単に回帰テストを実施するだけではデグレードを予防できません。例えば下図のように、ある関数func2()を変更した場合、他の関数を単独で再テストしてもfunc2()の変更が反映されたテストにならないため、デグレードを検出することはできません。

関数単独の範囲のテスト

関数自身のテストが成功しても、その関数に影響される他の関数の動作が保証されたわけではない。

関数単独の範囲のテスト

影響範囲のテスト

変更した関数の影響がある他の関数も含めた結合テストを実施することで動作を保証できる。

影響範囲のテスト

上図の場合は、func1() + func2() + func3()をテストスコープとした結合テストを実施することで、func2()の変更を含めてfunc1()やfunc3()をテストでき、デグレードの有無を検証することができます。 今回のように簡単な例であれば目視でも影響範囲をすぐに特定することができますが、実際のプロジェクトの規模で正確に特定することはとても困難です。しかし、Understand連携ソリューションはプロジェクトの規模に関係なく影響範囲を自動で特定し、すぐに結合テストを実施することができます。

Understand連携ソリューションのトライアル受付中!

Understand連携のソリューションをお試しの方は、弊社担当営業、もしくはお問い合わせフォームにお問い合わせください。

ソースコード解析ツール「Understand」とは

Understandは、大規模なプログラムや複雑なプログラムをすばやく理解するためのさまざまな機能を搭載しています。アーキテクチャから個々の機能まで、あらゆるレベルでソースコードを分析し、プログラムの制御フローや構造、クラス継承、関数や変数の関係など、多彩な角度からソースコードをビジュアル化します。
ソースコード解析ツール「Understand」の詳細はこちら

静的解析・単体テストツールを、まずは無償体験版でお試しください

静的解析ツール・単体テストツールC+testを体験版をお試しください。
すべての機能を無償で14日間ご利用可能、すぐにご評価可能なチュートリアル付属
ご評価を円滑に進めるための、技術的なサポート対応あります

静的解析ツール・単体テストツール C++testに
関するお問い合わせ

  • テクマトリックス株式会社
    東京本社

    ソフトウェアエンジニアリング事業部

    03-4405-7853

メールでのお問い合わせ
parasoft-info@techmatrix.co.jp

CONTACT

製品についてやテクマトリックスについてなど、
こちらよりお気軽にお問い合わせいただけます。