莱芜网站建设公众号建设,电商网站开题报告,遵义新蓝外国语学校网站建设,用户登录界面设计我举一个简单的例子来解释一下语句覆盖#xff0c;分支覆盖#xff0c;条件覆盖以及路径覆盖的相关知识#xff0c;如果有不对的地方#xff0c;恳请各位同行指正#xff1a;举例说明#xff1a;if Atrue and Btrue then Action1if Ctrue or Dtrue then Action2这是一个很…我举一个简单的例子来解释一下语句覆盖分支覆盖条件覆盖以及路径覆盖的相关知识如果有不对的地方恳请各位同行指正举例说明if Atrue and Btrue then Action1if Ctrue or Dtrue then Action2这是一个很简单的例子也就是当A和B都为真的情况下执行Action1Action1执行好以后再次判断只要A或者B有一个为真那么就执行Action2当Action2执行完成后整个程序算是执行完成了:分析见图(pic 01)语句覆盖顾名思义让程序中的每个语句都cover到。在这个例子中也就是要符合两个Positive条件1. A true and B true2. C true or B true根据上图所示符合有两个条件的都可以实现语句覆盖比如A true, B true, C true, D true就可以实现最大的语句覆盖了看到图我们可以知道实际上A和B有一种情况C和D有三种情况1*33所以语句覆盖的例子除了有上面提示的一个例子外还可以有以下两个罗列如下2. A true, B true, C true, D false3. A true, B true, C false, D true这个例子中选择任何一个(比如1)都可以覆盖整个语句实现最大的语句覆盖率分支覆盖(判定覆盖)把程序中所有判定的分支尽可能得到体验。这句话说白了就是两个条件的真真假假都得考虑到也就是以下四种情况在case中都需要cover到1. A true and B true 真positive (见图pic 011种情况)2. A true and B true 假negative (见图pic 013种情况)3. C true or B true 真positive (见图pic 013种情况)4. C true or B true 假negative (见图pic 011种情况)典型的两个例子如Atrue, Btrue, Cfalse, DtrueAfalse, Btrue, Cfalse, Dtrue当然我们如果再深入考虑下去其实不只这一对case可以覆盖所有的条件还有很多对的case可以覆盖其实就是符合上述1234的条件就行很容易就可以看出13 24组合14 23组合完全覆盖到了算下来(1×3)*(3*1)(1*1)*(3*3)1813 24组合1. Atrue, Btrue, Cfalse, DtrueAfalse, Btrue, Cfalse, Dtrue2. Atrue, Btrue, Ctrue, DfalseAfalse, Btrue, Cfalse, Dtrue3. Atrue, Btrue, Ctrue, DtrueAfalse, Btrue, Cfalse, Dtrue4. Atrue, Btrue, Cfalse, DtrueAtrue, Bfalse, Cfalse, Dtrue5. Atrue, Btrue, Ctrue, DfalseAtrue, Bfalse, Cfalse, Dtrue6. Atrue, Btrue, Ctrue, DtrueAtrue, Bfalse, Cfalse, Dtrue7. Atrue, Btrue, Cfalse, DtrueAfalse, Bfalse, Cfalse, Dtrue8. Atrue, Btrue, Ctrue, DfalseAfalse, Bfalse, Cfalse, Dtrue9. Atrue, Btrue, Ctrue, DtrueAfalse, Bfalse, Cfalse, Dtrue14 23组合10. Afalse, Btrue, Cfalse, DtrueAtrue, Btrue, Cfalse, Dfalse11. Atrue, Bfalse, Cfalse, DtrueAtrue, Btrue, Cfalse, Dfalse12. Afalse, Bfalse, Cfalse, DtrueAtrue, Btrue, Cfalse, Dfalse13. Afalse, Btrue, Ctrue, DfalseAtrue, Btrue, Cfalse, Dfalse14. Atrue, Bfalse, Ctrue, DfalseAtrue, Btrue, Cfalse, Dfalse15. Afalse, Bfalse, Ctrue, DfalseAtrue, Btrue, Cfalse, Dfalse16. Afalse, Btrue, Ctrue, DtrueAtrue, Btrue, Cfalse, Dfalse17. Atrue, Bfalse, Ctrue, DtrueAtrue, Btrue, Cfalse, Dfalse18. Afalse, Bfalse, Ctrue, DtrueAtrue, Btrue, Cfalse, Dfalse条件覆盖每个判断中的每个条件的可能取值至少满足一次. 说条件覆盖的时候不要看上面的两幅图了。这里的条件参数有四个A,B,C,D也就是说A,B,C,D可能的条件至少要满足一次1. A false, B false, C false, D false2. A true, B true, C true, D true这两个用例已经覆盖了条件测试的所有的条件当然你同样可以展开来2*2*2*2 16可以设计出16对上面所列的测试用例这里就不一一列出来了1. A true, B false, C false, D falseA false, B true, C true, D true2. A false, B true, C false, D falseA true, B false, C true, D true3. A false, B false, C true, D falseA true, B true, C false, D true……………………路径覆盖要求覆盖程序中的所有可能路径见如下图(Pic 02)如上图所示所有的路径包括13142324示例1Afalse, Btrue, Cfalse, Dfalse (1,3)Afalse, Btrue, Cfalse, Dtrue (1,4)Atrue, Btrue, Cfalse, Dfalse (2,3)Atrue, Btrue, Cfalse, Dtrue (2,4)和前面的条件覆盖分支覆盖一样这仅仅是其中一组cover全面覆盖率例子如果有兴趣的朋友可以继续写下去。