扩展测试(冒烟、回归、探索性、随机测试)
冒烟测试和回归测试
冒烟测试:
大规模测试之前,针对程序主功能或者说是基本功能可以正常运行,具备可测性,同时也是提测标准。
自动化冒烟测试:
属于测试驱动开发。
开发完成编码后,都需要进行验证,测试可以提供一个自动化冒烟测试的脚本,让开发自行验证代码基本功能是否正常。
回归测试
回归测试是由于软件的修改或变更,对这个修改或者变更的部分以及可能影响的模块,范围地进行测试。
回归测试的目的是发现原来正常的模块因变动产生新的缺陷--回归缺陷,保持原来正常的其他模块不受到修改的模块的影响
在单元测试、集成测试、系统测试、中,如果发生了改动和变更,都需要进行回归测试
随机测试
这个随机测试的随机可不是随便找个功能进行测试的意思。
它可以是对重要的功能进行重复测试、对一些发现重大BUG的模块或者功能进行重复测试。
也可以是对一些异常状况但是不知道原因,进行测试。
那随机在哪里? 随机在用例上。
使用工具来实现对数据的随机。从而定位错误位置。
先了解一个无限猴子定理:
一只猴子在随机地在键盘上敲击,那它能敲出莎士比亚的文章的概率是多少?想想就知道很小很小。
但是如果测试次数达到1000万呢,是不是概率就很大了。
那我输入的次数够大,是不是也在模拟真实用户的输入?是不是真的可能输出了个莎士比亚的文章,然后正好导致了一个错误?
随机测试也叫 monkey test
所以说随机测试是为了发现边缘性错误
、隐藏错误
。
那么具体是怎么实现?
使用随机数据生成工具
Monkey Runner Tool
UI/Application Exerciser Monkey
3.1 优点
(2)对程序没有偏见。
(3)只要速度越快,效率就越高,覆盖点就越大。
3.2 缺点
(1)寻找漏洞的精度不高。因为随机嘛,那其实概率测中概率可以很低也可以很高。
还有一个大猩猩测试gorilla test
是对程序进行重复性测试,也叫折磨测试。应用程序的一个模块被反复测试,以确保它正确工作,并且在模块中没有发现任何错误。
我个人感觉有点类似redis的缓存击穿、缓存穿透