スポンサーリンク

【機能安全技術】構造テスト (IEC 61508-7)

スポンサーリンク

機能安全に触れる機会があり、技術・手法群についてもとても勉強になりそうであったため、一つずつ理解していきたい

IEC 61508-3:2010 附属表B

IEC 61508-3:2010 附属表Bにおいて、要求安全度水準に従って採用すべき技術・手法が規定されている。

以下の表はIEC 61508-3:2010 附属表Bより引用

https://kikakurui.com/c0/C0508-3-2014-01.html
評価説明
HRこの安全度水準には、技法又は手段を使用することを強く推奨する。この技法又は手段を使用しない場合は、使用しない理論的根拠について、附属書Cを参照して安全計画時に詳述しなければならず、またアセッサと合意しなければならない。
Rこの安全度水準には、HR推奨より低い推奨事項としての技法又は手段が望ましい。
技法又は手段を使用することに関しては、推奨も反対もしない。
NRこの安全度水準には、技法又は手段を使用することを積極的には推奨しない。この技法又は手段を使用する場合は、使用する理論的根拠について、附属書Cを参照して安全計画時に詳述しなければならず、またアセッサと合意することが望ましい。

表B.2− 動的解析及び動的テスト

https://kikakurui.com/c0/C0508-3-2014-01.html
ID技術及び手段(a)参考文献SIL 1SIL 2SIL 3SIL 4
1境界値解析からのテストケース実行IEC 61508-7のC.5.4RHRHRHR
2エラー推定からのテストケース実行IEC 61508-7のC.5.5RRRR
3エラーシーディングからのテストケース実行IEC 61508-7のC.5.6RRR
4モデルベーステストケース生成からのテストケース実行IEC 61508-7のC.5.27RRHRHR
5性能 モデリング  IEC 61508-7のC.5.20RRRHR
6同値クラス及び入力分割テストIEC 61508-7のC.5.7RRRHR
7a構造テストの範囲 (エントリ点) 100% b)IEC 61508-7のC.5.8HRHRHRHR
7b構造テストの範囲 (ステートメント) 100% b)IEC 61508-7のC.5.8RHRHRHR
7c構造テストの範囲(分岐) 100% b)IEC 61508-7のC.5.8RRHRHR
7d構造テストの範囲(条件, MC/DC) 100% b)IEC 61508-7のC.5.8RRRHR

IEC 61508-7:2010

IEC 61508-7:2010にて ”構造テスト” は以下の定義が示されている

C.5.8 構造テスト

注記1 この技術及び手法は,JIS C 0508-3の表B.2で引用されている。

目的:プログラム構造の幾つかのサブセットを実行するテストを適用する。

説明:プログラムの解析に基づき,大きな割合(大抵,あらかじめ目的として定められている。)を占めるプログラムコードを実行するために,一連の入力データを選ぶ。コードカバレッジ(E.13参照)は,要求する厳密さの水準によって次のように異なる。全てのケースにおいて,選択するカバレッジメトリックを100 %目標とすることが望ましい。100 %の範囲を達成できない場合は,100 %を達成できない理由をテスト報告書に文書化する(例えば,ハードウェアの問題が発生したときだけに入力する防御的コード)。次に示す最初の4技術は,JIS C 0508-3の表B.2の推奨事項として特に記述しており,テストツールによって広く支援されている。残りの技術も考慮に入れてもよい。

− エントリー点(コールグラフ)カバレッジ 全てのサブプログラム(サブルーチン又は機能)を1回以上(これは,最小限に厳格な構造的カバレッジ値である。)コールしていることを確実にする。 注記2 オブジェクト指向言語には,動的ディスパッチングによって呼び出すことができる,多様型の各種変異型(上書きされるサブプログラム)に適用する同一名のサブプログラムが幾つかある。これらの場合,上書きされる全てのサブプログラムを個々にテストすることが望ましい。
− ステートメント コード内の全てのステートメントを,1回以上実行したことを確実にする。 − 分岐 全ての分岐の両端をチェックすることが望ましい。ただし,幾つかの種類の防衛的コードに対しては実行が難しい場合がある。
− 複合条件 複合条件付き分岐(すなわち,AND/ORによってリンクしている分岐)における,全ての条件を実行する。MC/DC(modified condition/decision coverage,参考文献DO-178B)を参照。
− LCSAJ 線形コードシーケンス及びジャンプは,ジャンプによって終了する,条件付きステートメントを含むコードステートメントの線形シーケンスである。多くの潜在的サブパスは,その前のコードの実行によって課せられる入力データに対する制約のために,実行不可能となる。
− データフロー 実行経路,例えば,同一変数を書き込み,かつ,読み込むパスを,データ使用に基づいて選択する。
− 基礎パス 全ての経路が含まれる,開始から終了までの有限パスの最小セットの一つ(この基礎セットの中でパスの重なり合う組合せによって,プログラム部分を通るパスを形成することができる。)。全ての基礎パスのテストは,エラー位置を突き止めるために有効であることが示されている。

参考文献: The Art of Software Testing, second edition. G. J. Myers, T. Badgett, T. M. Codd, C. Sandler, John Wiley and Sons, 2004, ISBN 0471469122, 9780471469124 Software engineering: Update. Ian Sommerville, Addison-Wesley Longman, Amsterdam; 8th ed., 2006, ISBN 0321313798, 9780321313799 Software Engineering. Ian Sommerville, Pearson Studium, 8. Auflage, 2007, ISBN 3827372577, 9783827372574 RTCA, Inc. document DO-178B and EUROCAE document ED-12B, Software Considerations in Airborne Systems and Equipment Certification, dated December 1, 1992

https://kikakurui.com/c0/C0508-4-2012-01.html

詳説

各コードカバレッジの説明は以下が分かりやすかったです

コードカバレッジ 7つの種類とコード例を紹介!知っておくべき落とし穴| Qbook
以前のコラムで、ソースコードのカバレッジについてご紹介しました。その中でC0、C1、C2といったカバレッジ基準について解説しましたが、それ以外にも目的や用途に合わせたカバレッジ基準が存在します。 カバレッジ基準、特にコードカバレッジはシステムの品質を考える上では知っておくべき考え方ですが、カバレッジに固執しすぎると起こ...

求める安全度水準に基づいて、要求されるカバレッジの網羅性・テスト強度が上がります。SIL4では、MC/DCカバレッジを求められます

作成する単体テストの規模に直結することから、ソフトウェア開発初期に安全要求水準が更新され次第、単体テスト用の工数は見直されるべきです

タイトルとURLをコピーしました