Content deleted Content added
Added overview section heading, RC/DC section |
|||
Line 1:
==Overview== MC/DC requires all of the below during testing:<ref>{{cite journal | title = A Practical Tutorial on Modified Condition/ Decision Coverage |date=May 2001 | journal = NASA | last1 = Hayhurst | first1 = Kelly | last2 = Veerhusen | first2 = Dan | last3 = Chilenski | first3 = John | last4 = Rierson | first4 = Leanna | url = http://shemesh.larc.nasa.gov/fm/papers/Hayhurst-2001-tm210876-MCDC.pdf}}</ref> #Each entry and exit point is invoked
Line 27 ⟶ 30:
Purely syntactic rearrangements of decisions (breaking them into several independently evaluated conditions using temporary variables, the values of which are then used in the decision) which do not change the semantics of a program can lower the difficulty of obtaining complete MC/DC coverage.<ref>{{cite journal | title = The Effect of Program and Model Structure on MC⁄DC Test Adequacy Coverage | last1 = Rajan | first1 = Ajitha | last2 = Heimdahl | first2 = Mats | last3 = Whalen | first3 = Michael | date = March 2003 | url = http://se.inf.ethz.ch/old/teaching/2009-S/0276/slides/fiva.pdf }}</ref> This is because MC/DC is driven by the program syntax. However, this kind of "cheating" can be done to simplify expressions, not simply to avoid MC/DC complexities. For example, assignment of the number of days in a month (excluding leap years) could be achieved by using either a switch statement or by using a table with an enumeration value as an index. The number of tests required based on the source code could be considerably different depending upon the coverage required, although semantically we would want to test both approaches with a minimum number of tests.
==
'''Reinforced condition/decision coverage''' ('''RC/DC''') is a stronger version of the MC/DC coverage criterion, suitable for [[safety-critical system]]s.<ref>{{cite article| title=From MC/DC to RC/DC: formalization and analysis of control-flow testing criteria | first1=S.A. | last1=Vilkomir | authorlink1=Sergiy Vilkomir | first2=J.P. | last2=Bowen | authorlink2=Jonathan Bowen | journal=[[Formal Aspects of Computing]] | volume=18 | number=1 | pages=42–62 | date=2006 | publisher=[[Springer Nature]] | doi=10.1007/s00165-005-0084-7 }}</ref> It was originally proposed by [[Sergiy Vilkomir]] in 2002.<ref>{{cite article| title=Reinforced condition/decision coverage (RC/DC): A new criterion for software testing | first1=S.A. | last1=Vilkomir | authorlink1=Sergiy Vilkomir | first2=J.P. | last2=Bowen | authorlink2=Jonathan Bowen | work=International Conference of B and Z Users | publisher=[[Springer-Verlag]] | series=[[Lecture Notes in Computer Science]] | volume=2272 | pages=291–308 | date=2002 | doi=10.1007/3-540-45648-1_15 }}</ref>
==See also==
*[[Elementary Comparison Testing]]
==
{{reflist}}
==
* [http://www.faa.gov/aircraft/air_cert/design_approvals/air_software/cast/cast_papers/media/cast-10.pdf What is a "Decision" in Application of Modified Condition/Decision Coverage (MC/DC) and Decision Coverage (DC)?]
* [http://www.tc.faa.gov/its/worldpac/techrpt/ar01-18.pdf An Investigation of Three Forms of the Modified Condition Decision Coverage (MCDC) Criterion]
|