Skip to content

Commit ad9844e

Browse files
authored
feat: tool_req__docs_saf_attr_fmea_failure_effect (#655)
1 parent a9b9eee commit ad9844e

3 files changed

Lines changed: 180 additions & 9 deletions

File tree

docs/internals/requirements/requirements.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1125,7 +1125,7 @@ Testing
11251125

11261126
.. tool_req:: Failure Effect
11271127
:id: tool_req__docs_saf_attr_fmea_failure_effect
1128-
:implemented: NO
1128+
:implemented: YES
11291129
:tags: Safety Analysis
11301130
:version: 1
11311131
:satisfies: gd_req__saf_attr_feffect[version==1]

src/extensions/score_metamodel/metamodel.yaml

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -679,8 +679,9 @@ needs_types:
679679
plat_saf_dfa:
680680
title: Platform Dependent Failure Analysis
681681
mandatory_options:
682-
failure_id: ^.*$
683-
failure_effect: ^.*$
682+
failure_id: ^.+$
683+
# req-Id: tool_req__docs_saf_attr_fmea_failure_effect
684+
failure_effect: ^.+$
684685
sufficient: ^(yes|no)$
685686
status: ^(valid|invalid)$
686687
# req-Id: tool_req__docs_common_attr_description
@@ -699,8 +700,9 @@ needs_types:
699700
title: Feature DFA (Dependent Failure Analysis)
700701
mandatory_options:
701702
# req-Id: tool_req__docs_saf_attr_dfa_failure_id
702-
failure_id: ^.*$
703-
failure_effect: ^.*$
703+
failure_id: ^.+$
704+
# req-Id: tool_req__docs_saf_attr_fmea_failure_effect
705+
failure_effect: ^.+$
704706
# req-Id: tool_req__docs_saf_attrs_sufficient
705707
sufficient: ^(yes|no)$
706708
status: ^(valid|invalid)$
@@ -729,8 +731,9 @@ needs_types:
729731
title: Component DFA (Dependent Failure Analysis)
730732
mandatory_options:
731733
# req-Id: tool_req__docs_saf_attr_dfa_failure_id
732-
failure_id: ^.*$
733-
failure_effect: ^.*$
734+
failure_id: ^.+$
735+
# req-Id: tool_req__docs_saf_attr_fmea_failure_effect
736+
failure_effect: ^.+$
734737
# req-Id: tool_req__docs_saf_attrs_sufficient
735738
sufficient: ^(yes|no)$
736739
status: ^(valid|invalid)$
@@ -759,7 +762,8 @@ needs_types:
759762
mandatory_options:
760763
# req-Id: tool_req__docs_saf_attr_fmea_fault_id
761764
fault_id: ^.*$
762-
failure_effect: ^.*$
765+
# req-Id: tool_req__docs_saf_attr_fmea_failure_effect
766+
failure_effect: ^.+$
763767
# req-Id: tool_req__docs_saf_attrs_sufficient
764768
sufficient: ^(yes|no)$
765769
status: ^(valid|invalid)$
@@ -790,7 +794,8 @@ needs_types:
790794
mandatory_options:
791795
# req-Id: tool_req__docs_saf_attr_fmea_fault_id
792796
fault_id: ^.*$
793-
failure_effect: ^.*$
797+
# req-Id: tool_req__docs_saf_attr_fmea_failure_effect
798+
failure_effect: ^.+$
794799
# req-Id: tool_req__docs_saf_attrs_sufficient
795800
sufficient: ^(yes|no)$
796801
status: ^(valid|invalid)$
Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
..
2+
# *******************************************************************************
3+
# Copyright (c) 2026 Contributors to the Eclipse Foundation
4+
#
5+
# See the NOTICE file(s) distributed with this work for additional
6+
# information regarding copyright ownership.
7+
#
8+
# This program and the accompanying materials are made available under the
9+
# terms of the Apache License Version 2.0 which is available at
10+
# https://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# SPDX-License-Identifier: Apache-2.0
13+
# *******************************************************************************
14+
15+
16+
.. test_metadata::
17+
:id: test_metadata__failure_effect
18+
:partially_verifies_list: tool_req__docs_saf_attr_fmea_failure_effect
19+
:test_type: requirements_based
20+
:derivation_technique: requirements_based
21+
22+
Tests that every Safety Analysis (FMEA and DFA) has a mandatory,
23+
non-empty `failure_effect` attribute.
24+
25+
26+
.. Negative: `feat_saf_fmea` without `failure_effect` — warning expected.
27+
28+
.. feat_saf_fmea:: Missing failure_effect
29+
:id: feat_saf_fmea__test__no_failure_effect
30+
:fault_id: FMEA_01
31+
:sufficient: yes
32+
:status: valid
33+
:expect: feat_saf_fmea__test__no_failure_effect: is missing required attribute: `failure_effect`.
34+
35+
Some content.
36+
37+
38+
.. Positive: `feat_saf_fmea` with `failure_effect` — no warning expected.
39+
40+
.. feat_saf_fmea:: With failure_effect
41+
:id: feat_saf_fmea__test__with_fe
42+
:fault_id: FMEA_02
43+
:failure_effect: Unintended actuation of the analysed element
44+
:sufficient: yes
45+
:status: valid
46+
:version: 1
47+
:expect_not: required attribute: `failure_effect`
48+
49+
Some content.
50+
51+
52+
.. Negative: `comp_saf_fmea` without `failure_effect` — warning expected.
53+
54+
.. comp_saf_fmea:: Missing failure_effect
55+
:id: comp_saf_fmea__test__no_failure_effect
56+
:fault_id: FMEA_03
57+
:sufficient: yes
58+
:status: valid
59+
:expect: comp_saf_fmea__test__no_failure_effect: is missing required attribute: `failure_effect`.
60+
61+
Some content.
62+
63+
64+
.. Positive: `comp_saf_fmea` with `failure_effect` — no warning expected.
65+
66+
.. comp_saf_fmea:: With failure_effect
67+
:id: comp_saf_fmea__test__with_fe
68+
:fault_id: FMEA_04
69+
:failure_effect: Unintended actuation of the analysed element
70+
:sufficient: yes
71+
:status: valid
72+
:version: 1
73+
:expect_not: required attribute: `failure_effect`
74+
75+
Some content.
76+
77+
78+
.. Negative: `feat_saf_dfa` without `failure_effect` — warning expected.
79+
80+
.. feat_saf_dfa:: Missing failure_effect
81+
:id: feat_saf_dfa__test__no_failure_effect
82+
:failure_id: DFA_01
83+
:sufficient: yes
84+
:status: valid
85+
:expect: feat_saf_dfa__test__no_failure_effect: is missing required attribute: `failure_effect`.
86+
87+
Some content.
88+
89+
90+
.. Positive: `feat_saf_dfa` with `failure_effect` — no warning expected.
91+
92+
.. feat_saf_dfa:: With failure_effect
93+
:id: feat_saf_dfa__test__with_fe
94+
:failure_id: DFA_02
95+
:failure_effect: Unintended actuation of the analysed element
96+
:sufficient: yes
97+
:status: valid
98+
:version: 1
99+
:expect_not: required attribute: `failure_effect`
100+
101+
Some content.
102+
103+
104+
.. Negative: `comp_saf_dfa` without `failure_effect` — warning expected.
105+
106+
.. comp_saf_dfa:: Missing failure_effect
107+
:id: comp_saf_dfa__test__no_failure_effect
108+
:failure_id: DFA_03
109+
:sufficient: yes
110+
:status: valid
111+
:expect: comp_saf_dfa__test__no_failure_effect: is missing required attribute: `failure_effect`.
112+
113+
Some content.
114+
115+
116+
.. Positive: `comp_saf_dfa` with `failure_effect` — no warning expected.
117+
118+
.. comp_saf_dfa:: With failure_effect
119+
:id: comp_saf_dfa__test__with_fe
120+
:failure_id: DFA_04
121+
:failure_effect: Unintended actuation of the analysed element
122+
:sufficient: yes
123+
:status: valid
124+
:version: 1
125+
:expect_not: required attribute: `failure_effect`
126+
127+
Some content.
128+
129+
130+
.. Negative: `plat_saf_dfa` without `failure_effect` — warning expected.
131+
132+
.. plat_saf_dfa:: Missing failure_effect
133+
:id: plat_saf_dfa__test__no_failure_effect
134+
:failure_id: DFA_05
135+
:sufficient: yes
136+
:status: valid
137+
:expect: plat_saf_dfa__test__no_failure_effect: is missing required attribute: `failure_effect`.
138+
139+
Some content.
140+
141+
142+
.. Positive: `plat_saf_dfa` with `failure_effect` — no warning expected.
143+
144+
.. plat_saf_dfa:: With failure_effect
145+
:id: plat_saf_dfa__test__with_fe
146+
:failure_id: DFA_06
147+
:failure_effect: Unintended actuation of the analysed element
148+
:sufficient: yes
149+
:status: valid
150+
:version: 1
151+
:expect_not: required attribute: `failure_effect`
152+
153+
Some content.
154+
155+
156+
.. Negative: `failure_effect` is empty string — warning expected.
157+
158+
.. feat_saf_fmea:: Empty failure_effect
159+
:id: feat_saf_fmea__test__empty_failure_effect
160+
:fault_id: FMEA_05
161+
:failure_effect:
162+
:sufficient: yes
163+
:status: valid
164+
:expect: feat_saf_fmea__test__empty_failure_effect: is missing required attribute: `failure_effect`.
165+
166+
Some content.

0 commit comments

Comments
 (0)