Restaurante La Strada

mc/dc 예제

Posted on

MC/DC가 이 결정을 완료하려면 이러한 각 조건이 결과에 영향을 줄 수 있음을 보여 주어야 하며 이 효과를 나타내는 특정 상태 쌍을 찾아서 이 작업을 수행합니다. 쌍은 해당 한 조건의 값을 제외하고 동일해야 합니다. 예를 들어, 이 예제의 조건 적용 기준을 보장하기 위해 A, B 및 C는 이 예제의 조건 적용 기준을 보장하기 위해 테스트 중에 한 번 이상 “true” 및 한 번 “false”로 평가되어야 하며, 이는 다음 2tes의 경우입니다. ts: 이것은 다음과 같은 결함이 테스트 중인 시스템에서 감지되는 철저한 범위 수준입니다: MCDC 마스킹은 하위 표현식의 조건 마스킹을 차지하여 만족스러운 MCDC 목표의 증가를 허용합니다. MCDC의 고유 원인 정의와 비교할 수 있습니다. 결과적으로 고유한 원인 MCDC 정의를 사용하여 완전한 MCDC 커버리지 미만을 받는 일부 Simulink 모델은 마스킹 MCDC 정의를 사용할 때 더 많은 커버리지를 받습니다. 다음 예제를 고려, 상태 흐름®에 두 개의 입력, 조건 A 및 조건 C, 독립적으로 변경할 수 없습니다: 순전히 구문 재배열 (임시를 사용 하 여 여러 독립적으로 평가 된 조건으로 나누기) 프로그램의 의미체계를 변경하지 않는 변수는 완전한 MC/DC 커버리지를 얻는 데 어려움을 낮출 수 있습니다. [4] MC/DC가 프로그램 구문에 의해 구동되므로 이 것입니다. 그러나 이러한 종류의 “부정 행위”는 단순히 MC/DC의 복잡성을 피하기 위한 것이 아니라 식을 단순화하기 위해 수행될 수 있습니다. 예를 들어 switch 문을 사용하거나 열거 값이 있는 테이블을 인덱스로 사용하여 한 달(윤년 제외)의 일 수를 할당할 수 있습니다.

소스 코드에 따라 필요한 테스트 수는 필요한 범위에 따라 상당히 다를 수 있지만, 즉 최소한의 테스트로 두 가지 방법을 모두 테스트하려고 합니다. 실제로, n 원자 부울 조건으로 결정에 대 한, 우리는 수정 된 조건/결정 범위를 보장 하기 위해 적어도 n +1 테스트를 찾아야 합니다. 이 예제에서 3개의 원자성 부울 조건(A, B et C)이 있으므로 다음 테스트 집합을 선택할 수 있습니다. 그래서, 전체 결정에 대 한, 3 쌍의 테스트 필요 합니다., 즉 4 개의 별개의 상태 상태의 최소. 이 예제의 쌍은 다음과 같이 할 수 있습니다: 그러나 조건 C에 대한 MCDC 마스킹은 조건 A의 값을 조건 C에 대한 독립 쌍에서 변경할 수 있기 때문에 A를 마스킹할 수 있습니다. 하위 표현(A|| B) true: MC/DC용 VectorCAST는 조건식에 대해 두 가지 수준의 확인을 제공합니다. 첫 번째 수준인 MC/DC 분기는 표현식의 각 하위 조건을 추적하여 True 및 False 값으로 테스트되었는지 확인합니다. 두 번째 수준인 등가 쌍은 각 하위 조건이 조건값에 영향을 줄 수 있는지 확인합니다. 이 작업은 식에 대한 진실 테이블을 생성한 다음 테스트된 값을 제외한 모든 값이 일정하게 유지될 때 다른 결과를 생성하는 행 쌍을 찾음으로써 수행됩니다. 실행 하는 동안 두 행이 실행 된 경우 테스트 테스트 테스트 값만 변경 하 여 조건의 값이 변경 됩니다 증명 합니다. 기본적으로 Simulink 적용 범위는 커버리지 분석 중에 마스킹 MCDC 정의를 사용합니다.

Simulink 커버리지 커버리지 분석에 사용되는 MCDC 정의를 변경하는 방법에는 두 가지가 있습니다: MCDC에서 각 조건은 의사 결정 결과에 독립적으로 영향을 미치는 적어도 한 번 평가되어야 합니다. NB: C 스타일 및 ||와 같은 단축 논리 연산자의 문제를 피하기 때문에 첫 번째 논리 연산자로 이러한 식을 나타내기로 선택했습니다.