問題タブ [mc-dc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - 変更された条件 /Java の判定カバレッジ分析ツール
Javaで変更された条件/決定カバレッジ分析のためのオープンソースツールはありますか.
私はcobertaを見てきましたが、条件付きのカバレッジしか提供していないようです。
ここで説明されている分析の実行に興味があります
http://sunnyday.mit.edu/papers/dupuy.pdf
http://en.wikipedia.org/wiki/Modified_condition/decision_coverage
MC/DC カバレッジ基準を満たすには、テスト中に以下のすべてが少なくとも 1 回は真である必要があります[1]。
code-coverage - MC/DC固有の原因定義の遵守を証明
MC/DC に関する次の論文を読んでいます: http://shemesh.larc.nasa.gov/fm/papers/Hayhurst-2001-tm210876-MCDC.pdf。
私はソースコードを持っています:Z := (A or B) and (C or D)
と次のテストケース:
上記のテスト ケースが一意の原因定義に準拠していることを証明したいと思います。
マスクされたテストを排除することから始めました。
A or B = F T T T T
C or D
つまり、最初のテスト ケースをとしてマスクしF and (C or D) = F
ます。C or D = T T F T T
つまり、3 番目のテスト ケースをA or B
asからマスクし(A or B) and F = F
ます。
次に、次のことを決定しましたMC/DC
。
に必要なテスト ケースA or B
:
F F
(最初のケース)T F
(5件目)F T
(2 番目または 4 番目のケース)
に必要なテスト ケースC or D
:
F F
(3番目のケース)T F
(4番目または5番目のケース)F T
(2番目のケース)
に必要なテスト ケース(A or B) and (C or D)
:
T T
(2 番目、4 番目、または 5 番目のケース)F T
(最初のケース)T F
(3番目のケース)
論文によると、この例は独自の原因定義に準拠していません。F T F T
代わりに、2 番目のテスト ケースを からに変更することを提案していT F F T
ます。
私は再び決定MC/DC
しましA or B
た:
F F
(最初のケース)T F
(5件目)F T
(4番目のケース)
次に、両方の例の違いを示す次の独立ペアの表を紹介します (38 ページ)。
最初の例では、表示される独立ペアが 1 つではなく 2 つの変数を変更することは理解していますが、独立ペアをどのように計算しているかはわかりません。
列では、テスト ケース テーブルの行から取得したA
と推測できます。独立ペアは、変更された同じテスト ケースとして計算されます( )。F F T F
A
A
T F T F
ただしB
、 の列では、F F T F
もう一度選択します。B
私の考えでは、これは's column:に等しいはずF T F T
です。代わりに。
残りの手紙は同じジレンマを示しています。
また、D
の最初の例の列では、 の独立ペアが であることを示していF T F T
ますT F F F
。これは、最初の値から独立ペアを計算し、別の場所から選択していることを証明しているという私の理論を台無しにします。
誰かがそのような独立ペアテーブルをどのように (そしてどこから) 構築するかをよりよく説明できますか?
testing - 変更された条件/判定カバレッジを持つテスト ケースの最小セット
修正された条件/判定カバレッジに関して、理解できない質問があります。
したがって、式が((A || B) && C)
あり、タスクが最小数のテスト ケースである場合、100% MD/DC を受け取ります。
と の最小数のテスト ケースを使用して、2 つの部分に分割し(A || B)
ます(X && C)
。
「-」は、コンパイラによって評価されないため、どの値であっても問題ないことを意味します。
したがって、これらを組み合わせると、これが最小限のテスト ケース セットとして得られます。
しかし、グーグルで検索すると、これもセット{{F, T}, T} = T
に含まれています。このセットの一部を他のテストで個別にテストしたため、同意しませんか?
したがって、4 番目のテスト ケースがセットに追加するものを見逃しているようですが、なぜそれが必要なのか誰かが説明してくれたらうれしいです。
automation - 任意のスクリプト言語を使用して、入力として論理式から MCDC 真理値表を生成する自動化は可能ですか?
各信号定義とともに論理式をツールに入力として与えると、ツールはMCDC
真理値表 (で使用Avionics V&V
) を生成できるはずです。可能であれば、タイミングと堅牢性も実装できますか?
元:
##ツールへの入力入力:
ツールの期待される出力
unit-testing - 条件に対して MCDC を実行中 (A && B && C) || D
コードを完全にカバーするためにいくつかのテスト ケースを作成する必要がある状況があります。特定のブランチで、次のような状況になりました if((A && B && C) || D)
しかし、これでは MCDC のテスト ケースの組み合わせを取得できません。