标签:
软件测试方法分为静态和动态测试,而动态测试又可以采用黑盒和白盒测试法。针对每种测试方法的原则来设计测试用例,从而找出软件中潜在的错误和缺陷。
一、黑盒测试:在完全不考虑软件内部结构和特性情况下,测试软件的外部特性。
1、边界值分析:边界值法设计测试用例,应选取正好等于、刚刚大于或小于边界值的值作为测试数据,基本思想是在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量值,比如月份对应变量可以用枚举型,还有一些程序是多个独立变量的函数,而且这些变量受物理量的限制,则很适合边界值分析。
2、 等价类划分:把所有可能输入数据划分若干部分,从每部分中选取少数有代表性数据作为测试用例。划分等价类时分为合理的有意义的输入数据即有效等价类,还有不合理无意义的无效等价类,然后为每个等价类规定唯一编号,设计一个新的测试用例,使其尽可能覆盖尚未被覆盖的等价类,直至所有有效等价类和无效等价类都被覆盖为止。
以三角形问题说明采用等价类划分方法的测试用例设计,三边abc作为输入,满足足:C1:1<=a<=200,C2:1<=b<=200,C3:1<=c<=200,C4:a<b+c,C5:b<a+c,C6:c<a+b,输出为由这三条边确定的三角形类型:等边、等腰、不等边或非三角形。如果输入不满足这些条件任一个,则输出提示消息,如“b的取值不在容许范围”;如果取值abc满足C1、C2、C3,三条边相等输出等边;恰两条边相等输出等腰;没有两条边相等,输出不等边;如果C4、C5、C6有一不满足,则输出非三角。
二、白盒测试
1、 语句覆盖:设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。这里的“若干个”,意味着使用测试用例越少越好。语句覆盖率的公式可以表示如下:
语句覆盖率=可执行的语句总数/被评价到的语句数量 x 100%
举一个简单的例子,我们看下面的被测试代码:
int foo(int a, int b)
{
return a / b;
}
假如我们的测试人员编写如下测试案例:
TeseCase: a = 10, b = 5,测试人员的测试结果会告诉你,代码覆盖率达到了100%,并且所有测试案例都通过了。然而遗憾的是,我们的语句覆盖率达到了所谓的100%,但是却没有发现最简单的Bug,比如当我让b=0时,会抛出一个除零异常。
2、判定覆盖:运行被测程序,使得程序中每个判断真假分支至少经历一次,Yes和No至少执行一个。
3、条件覆盖:运行被测程序,使得程序中每个条件的可能取值至少经历一次,a>5和b<0取值可能至少满足一个。
4、判定/条件覆盖:结合判定和条件覆盖,程序中每个判断真假分支至少经历一次,每个条件的可能取值至少经历一次。
5、条件组合:设计足够的测试用例,运行被测程序,使得每个判断的所有可能条件取值组合至少执行一次。
6、路径覆盖:覆盖程序中所有可能的路径,好处是可以对程序段进行彻底的测试,但路径是以分支的指数级别增加的。
好的测试用例可以发现软件中至今没有发现的错误,软件测试也占了软件开发的很重要一部分,一步步积累。
标签:
原文地址:http://blog.csdn.net/u010097777/article/details/46119929