GNATtest ユニットテストハーネスジェネレータ

GNATtestは、ソフトウェアシステムを検証するために、必要なテストケースの開発、管理のために、重要かつ面倒でエラーが発生しやすいプロセスを自動化するために使用できます。

ユニットテストと呼び出しフレームワークの作成と管理は、高信頼性ソフトウェアの開発では欠かせませんが、大規模プロジェクトでは反復的で扱いにくく、手動ではエラーが発生しやすくなります。

パッケージ(モジュール)へのサブプログラムの追加やサブプログラムの仕様(インタフェース)の変更など、開発ならびにメンテナンス中にアプリケーションソフトウェアを変更するには、テストスイートとその呼び出しハーネスの変更が必要となります。GNATtestは、Adaのセマンティクス(サブプログラムのオーバーロード、可視性など)を考慮に入れて、テストされる各サブプログラムのユニットテストのスケルトンとハーネスコードを自動的に作成し、維持することによって、この問題に対処します。これにより、開発者は実際のテストケースを書く作業に集中できます。

GNATtestは、アプリケーションの全体にわたって、ネイティブ、組込にかかわらず、あらゆるソフトウェアに有効なツールで、アジャイルなどの最新の開発手法にも適合します。 これは、DO-178Cなどの安全規格のObjectivesを達成するテスト手順の実装を簡素化するため、高い信頼性、安全性、セキュリティを必要とするシステムに有益です。

安全規格では、ソフトウェア検証プロセスの部分で、要件ベースのテストが強化されています。 各サブプログラムでは低いレベルの要件を直接実装するため、GNATtestが生成したテストハーネスとスケルトンは、アプリケーションの認証エビデンスとなります。 GNATcoverageなどのカバレッジツールと使用すると、GNATtestは組込Adaソフトウェアを検証するためのソリューションを提供します。

Ada言語の高度な機能を使用している場合、GNATtestはオブジェクト指向プログラムを処理し、DO-178Cの補足であるオブジェクト指向と関連技術(DO-332)の新しいオブジェクティブ(objectives)の1つで要求される(Liskov Substitution Principleとして知られている)ローカルサブタイプの一貫性の検証に有効です。

GNATtestは、事前条件、事後条件、不変条件など、Ada 2012の契約(contract)ベースのプログラミング機能も利用しています。