最近在补测试理论基础,在一本书中看到了正向测试思维和反向测试思维,这个词语有点懵,但直觉告诉自己,自己测试过程中肯定在用,但这个概念叫法,自己还不清楚,赶快扫盲:
A.正向及逆向测试设计:
1.设计目的:实现测试设计的完整性和全面性。
2.概念:
网上找了下这两个的概念,感觉比较正式的解释如下:
正向测试设计就是试图验证软件是工作的,即软件的功能是按照预先设计的执行的,以正向思维,针对系统的所有功能,逐个验证其正确性;
反向测试设计就是认为软件有错的情况下去测试这个软件。
3.理解:
以等价类为例,通常会设计有效等价类和无效等价类,比如:年龄参数,其取值为Age>=18,其有效等价类即Age>=18的值(Age=18,19,40,是采用边界值的方式选取数据,整体也是有效等价类),
无效等价类即Age<18,则有效等价类即为正向测试设计,而无效等价类即为反向测试设计,也叫逆向测试设计。
通俗一句话:测试设计不仅要设计程序能正确处理的用例,还要设计程序不能正确处理的用例,不能正确处理也即程序的异常处理,如果从流程上讲,即要覆盖正常流和异常流的测试。
扩展:
B.进行用例设计时,会进行区分哪些部分重点设计,进而设计高测试覆盖率的测试用例(针对高覆盖率的,同样要采用更多的测试设计方法)?
识别测试对象时,可从以下方面考虑:
1.哪些功能是软件的特色?
2.哪些功能是用户最常用的?
3.如果系统可以分块卖的话,哪些功能块在销售时最昂贵?
4.哪些功能出错将导致用户不满或索赔?
5.哪些程序是最复杂、最容易出错的?
6.哪些程序是相对独立,应当提前测试的?
7.哪些程序最容易扩散错误?
8.哪些程序是全系统的性能瓶颈所在?
9.哪些程序是开发者最没有信心的?
除以上之外,如果前期的产品需求已定义了高、中、低优先级,同样作为测试设计的输入参考之一,通常,实际工作中,也是主要的参考源。
参考至:https://blog.csdn.net/thinkmore1314/article/details/15506029