既然选择远方,便只顾风雨兼程……
测试覆盖率之一——测试覆盖率分类
上一篇 /
下一篇 2008-12-08 23:10:11
/ 个人分类:测试覆盖率系列
关于覆盖率,网络上最常见的两个词应该是“
测试覆盖率”(
Test Coverage)和”
代码覆盖率“(Code Coverage)。今天就来探探这两个东西。
51Testing软件测试网0NV{dA](YI 在测试里面,一般会将测试覆盖率分为两个部分,即”需求覆盖率“和”代码覆盖率“。可以看到,代码覆盖率其实是测试覆盖率的一部分而已。其中,最常讨论和关心的是”代码覆盖率“,代码覆盖率又分为程序语句和代码行覆盖,
分支覆盖和
条件覆盖。对于这些概念,我们逐个解释。
51Testing软件测试网?xkbOlp 需求覆盖率:如果需求已经定义好,这个时侯我们就需要考虑需求覆盖率了。这个时候需要注意的是,这里的需求不仅仅是指功能需求,还要包括性能需求。衡量需求覆盖率的最直观的方式是我们有多少功能点,我们有多少性能点要求,这些将作为分母;我们写了多少测试用例,覆盖了多少模块,多少功能点,我们的
性能测试用例考虑了待测程序多少性能点,这些作为分子。
51Testing软件测试网;sqKLC!I;} 代码覆盖率:为了更加全面的覆盖,我们可能还需要测试程序的流程,我们可能会考虑到一个函数的数据的输入与输出,甚至是每一行代码的执行情况,代码的每一条逻辑和分支,这个时候我们的测试执行情况就以代码覆盖率来衡量,这也是我们常在
单元测试中念叨的覆盖率覆盖率的问题。
Z"T0PxLt|6`![0 语句覆盖率:换个名字叫做代码行覆盖率,这就是监视每行代码是否在用例(当然之所有的)中是否被执行到,准确点说是我们的用例里面大概执行了百分之多少的语句/代码行数。需要注意的是,即使所有的语句都被执行到,也不一定执行到了所有的路径。比如有五条语句:ABCDE,如果我们执行了用例覆盖了ABCDE,另外一个用例这个时候我们覆盖了所有语句,但是可能还存在一个路径(如ABC)没有执行,例如:
h3wfRg+P \
Z2}z0public verifyToken(string yourname, string yourtitle)
51Testing软件测试网/{X.|
sW`8T{
E"y6b0@d"Qa0Df0A output(”Hello, my dear friends“);
@;nns&J1r:ZMh
[0B if(yourname == "uniquestudiowcd")
+VZ G\'X`
d5Gpm9T `5OF0 {
}x{iUMl0C output("Hello, Aaron");
51Testing软件测试网?8u2@*X5}-Df"f1TWR }
51Testing软件测试网4O,ILM8VE$p1@-ZiID if(yourtitle == "tester")
,ii0[*Sl:ShFu|0 {
51Testing软件测试网2pG5Amf WE output("Hello, my dear tester");
51Testing软件测试网']^|MD }
51Testing软件测试网)_4N"Yk6f x}