(この記事は、開発元Parasoft社 Blog 「Automate the tool qualification process, so you can focus on developing high-quality software」2018年4月24日の翻訳記事です。)
DO178B/C(航空宇宙)、ISO26262(自動車)、EN-50128(鉄道)、IEC 61508(機能安全)など、安全性が重要なソフトウェア開発のための規格は、ソフトウェア開発に使用するツールの結果が正確で予測可能であることの証明を製造者に要求します。そのようなエビデンスを提供するプロセスはツール認定と呼ばれ、必須のプロセスではあるものの、しばしば面倒で時間がかかる作業であり、多くの組織が計画に失敗しています。
最終的な成果物は文書という形での証明ですが、認定プロセスは、単に山のように大量の文書を作成することだけでは終わりません。この記事では、Parasoftが新しく提供するC/C++test用認定キットを利用する方法を紹介します。このキットには、自動化を導入し、ツール認定取得に要する時間と労力を軽減する便利なツールウィザードが含まれています。
1. 使用するツールが認証済みであることの確認
ツールを選択する段階からツール認定を開始するべきです。使用しているツールがTÜV SÜDなどの機関によって認証済みであることを確認します。これにより、ツール認定に関する労力が大幅に削減されます。Parasoft C/C++testは、ホストベースおよび組み込みターゲットの両方で、IEC 61508およびISO 26262規格による機能安全に対してTÜV SÜDの認証を受けています。C/C++testは静的解析、ユニットテスト、およびカバレッジに関する安全規格の要求を満たし、認定への道をスムーズにします。
2. ツール認定の手作業を減らす
従来、ツール認定は、テスト、開発ツールの文書化など、認証審査に通るための大量の手作業を意味していました。このような文書偏重のプロセスでは、人手による解釈や仕上げが必要となり、時間がかかり、人為的なエラーが発生しやすくなります。
Parasoftは、認定キットを使用してプロセスに自動化を取り入れることで、この問題を解決します。自動化による生産性の向上と人為エラーの削減は、常にParasoftの事業の中核です。そのため、Parasoft C/C++testのツール認定プロセスにも、同じ理念を適用しました。認定キットは、直感的なワークフローでユーザーをガイドし、必要になる労力を大幅に削減します。
認定キットを使用する利点は次のとおりです。
- ツールの使っている部分だけに認定の範囲を自動的に縮小する
- 認定に必要なテストを可能な限り自動化する
- 手作業によるテストを可能な限り効率的に扱い、結果を自動テストと統合する
- 厳密に認定対象だけを(不足もなく)報告する、監査に提出可能な文書を自動生成する
使うものだけを認定する
ISO 26262を要求する自動車プロジェクトを行っているときに、開発者にDO-178B / Cの認定資料をより分けさせたりするべきでしょうか?ツールスイートの一部のみを使用している場合はどうなるでしょうか?開発製品で使用されていない機能を評価するために余分な作業をする必要はありません。認定の作業負荷を軽減するには、テスト、レポート作成、文書化の範囲を縮小することが重要です。
以下の例は、ISO 26262の認証の一部としてMISRA C 2012規格への準拠をチェックするために使用されているC/C ++testのユースケース(静的解析)だけを選択した例です。するとツールは、認定スイートのうち、この機能に必要な一部分のみを選択します。
ユーザーはオプションを選択解除して、プロジェクトに必要な範囲をさらに絞り込むことができます。選択すると、以降はその観点からのテストおよび文書だけが使用され、表示されます。
テスト自動化と解析の活用
テスト自動化ツールを認定する際に有利な点があるとすれば、それはツールを使用してツール自体のテストを自動化できることです。ツール認定を取得するには、認定キットにも記載されているように、テストを実行し、結果を検証する必要があります。これを可能な限り自動化することは、できるだけ負担を軽減するための鍵です。どんな開発ツールでも手動テストは避けられませんが、その場合も最大限に効率化されます。詳細なステップごとの指示が提示され、結果を入力すると、認定記録の一部として保存されます。
Parasoft C/C++testは、ビルドごとにすべてのテスト結果を収集して格納します。テストは他のタイプのプロジェクトと同じように実行されます。これらの結果は、Parasoft認定キットのテストステータスウィザードに表示され、結果の包括的な概要を提供します。
認定プロセスを集中化、集約、自動化することで、コンプライアンスの進捗状況を手動で追跡する負担が大幅に削減されます。
既知の欠陥の扱い
すべての開発ツールには既知のバグがあり、それを文書化していないベンダーは、ユーザーの規格準拠に向けた努力に貢献できません。しかし、既知の欠陥に関しては、単に欠陥を文書化するだけでは十分ではありません。ツール認定を取得するには、プロジェクトでツールを使用した結果に欠陥が影響を与えていないという証拠を提出する必要があります。認証審査員が納得するよう、既知の欠陥ごとに緩和策を提示し、文書化する必要があります。
可能な限り既知の欠陥の処理を自動化することは、ツールベンダーの責任です。結局のところ、ベンダーは、自分たちのバグへの対処を顧客に求めていることになるのですから。Parasoft C/C++testの認定キットには、次のように、既知の欠陥に対する緩和策の記録を自動化するウィザードが含まれています。
必要な文書作成を自動化する
ツール認定の最終成果物は文書、それも大量の文書です。実行されたすべてのテストとその結果、すべての既知の欠陥とその緩和策、手動テストの結果、そして例外がすべて記録され、報告されます。認定キットとしてただドキュメントだけを単独で提供するベンダーもあるかもしれませんが、自動化の仕組みがなければ、コンプライアンスを文書化するのは非常に面倒です。
いっぽう、C/C++testの認定キットを使用すると、必須のドキュメントがワークフローの一部として生成されます。
- ツール分類レポート (必要な認定を決定し、ユーザーが選択したユースケースに基づいてC / C++testの最大の安全レベル分類を提示)
- ツール認定計画 (C/C++testを安全関連開発プロジェクトで使用するために認定する方法を記述する)
- ツール認定レポート (C/C++testがツール認定計画に従って認定されていることを示す)
- ツール安全マニュアル (安全性が重要なプロジェクトにおいて、C/C++testを安全に、すなわちISO 26262、IEC 61508などの安全基準に準拠しながら使用する方法を記述する)
プロジェクトの開始時に認定の範囲が絞り込まれているため、これらの各文書では、使用しているツールの機能に必要な記述だけが生成されます。自動化と認定の範囲を狭めることは、文書化の負担を大幅に軽減します。
まとめ
自動車、航空宇宙、鉄道、機能安全分野における安全性が重要なソフトウェアプロジェクトのためのツール認定は、負担が大きいプロセスです。認定の範囲を縮小し、できるだけ多くのプロセスを自動化することは、認定の作業量と煩雑さを減らすための鍵です。C/C++testのParasoft認定キットは、認定プロセスをできるだけ負担なく効率的なものにすることで、お客様の負担を大幅に軽減し、お客様が品質の高い製品の提供に専念できるようにします。