软件测试/白盒测试/语法逻辑覆盖之蕴涵项覆盖、唯一真值点覆盖等
本篇笔记会简化书本上的概念,用容易理解的方式来说明。
目录
基础知识
蕴涵项覆盖(Implicant Coverage)
唯一真值点覆盖(Unique True Point Coverage)
近似假值点覆盖(Near False Point Coverage)
多项唯一真值点覆盖(Multiple Unique True Point Coverage)
唯一真值点—近似假值点配对覆盖(Corresponding Unique True Point and Near False Point Pair Coverage)
基础知识
字(literal):子句或子句的否定。
项(term):由逻辑与连接的一组字。
析取范式——Disjunctive Normal Form简称DNF
一个DNF谓词就是由逻辑或连接的一组项,如( a ^ c ) V ( b ^ c )
蕴涵项:DNF谓词中的项。如果一个单独的项为真,意味着这个谓词为真。
极小DNF:每个蕴涵项都是主蕴涵项,而且没有一个蕴涵项是冗余的(可以通过画卡诺图得到)
蕴涵项覆盖(Implicant Coverage)
已知一个 谓词f和非f的DNF表达式,对于f和非f中的每个蕴涵项,TR(测试需求)要求蕴涵项的取值为真。
唯一真值点覆盖(Unique True Point Coverage)
第i个蕴涵项的唯一真值点(UTP)指的是对所有子句赋值,使得只有第i个蕴涵项为真,其余为假。
唯一真值点覆盖(UTPC)要求分别对f和非f的极小DNF表达式每个蕴涵项进行分析,找到每个蕴涵项的唯一真值点。
近似假值点覆盖(Near False Point Coverage)
对于每个蕴涵项的唯一真值点,其中每个字都存在相对应的假值点。某个子句c的近似假值点(NFP)指的是对所有子句赋值,使得谓词f取假,但如果对c取反,其他子句取值不变,该蕴涵项为真(f也为真)。
eg:对于谓词f(a,b,c,d) = ab + cd
蕴涵项 ab 的UTP是:{ TTFF,TTFT,TTTF }
蕴涵项 cd 的UTP是:{ FTTT,TFTT,FFTT }
对于蕴涵项ab :
子句a的NFP是 { FTFF,FTFT,FTTF }
子句b的NFP是 { TFFF, TFFT,TFTF }
对于蕴涵项cd:
子句c的NFP是 { FTFT,TFFT, FFFT }
子句d的NFP是 { FTTF,TFTF, FFTF }
多项唯一真值点覆盖(Multiple Unique True Point Coverage)
已知一个谓词f的极小DNF表达式,对于f中的每个蕴涵项i,选择唯一真值点(UTP)使得不在i中的子句的取值都包括真和假。
eg:还是上面那个例子,对于蕴涵项ab如果我们选取的唯一真值点UTP是FTFT和FTTF,那么就满足了不在ab中的子句c、d取到真假。
类似的,对于蕴涵项cd,我们选择的UTP是 FTTT,TFTT。
因此,对于谓词ab+cd,满足MUTPC的测试用例集为{ FTFT,FTTF,FTTT,TFTT }
唯一真值点—近似假值点配对覆盖(Corresponding Unique True Point and Near False Point Pair Coverage)
已知一个谓词f的极小DNF表达式,对于每个蕴涵项i中的每个子句c,TR包括对于i的一个唯一真值点和i中c的一个近似假值点,并且这两个点的区别只在于c的取值。
eg:还是上面那个例子!
谓词f(a,b,c,d) = ab + cd
蕴涵项 ab 的UTP是:{ TTFF,TTFT,TTTF } ——【1】
蕴涵项 cd 的UTP是:{ FTTT,TFTT,FFTT }
对于蕴涵项ab :
子句a的NFP是 { FTFF,FTFT,FTTF } ——【2】
子句b的NFP是 { TFFF, TFFT,TFTF }
对于蕴涵项cd:
子句c的NFP是 { FTFT,TFFT, FFFT }
子句d的NFP是 { FTTF,TFTF, FFTF }
这是我们第一步的出来的结果,对于蕴涵项ab中的子句a,我们选择【1】中的一个,然后对应选择【2】中的一个。这两个的区别只在于子句a。所以我们选择TTFF和FTFF。
同理,对于子句b,我们选择TTFF和TFFF,对于子句c,选择FTTT和FTFT,对于子句d,选择FTTT和FTTF。
最终得到的满足CUTPNFP的测试集为{TTFF,FTFF,TFFF,FTTT,FTFT,FTTF}。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
