探索式测试(转载与关荣之路)
探索式测试没有固定的测试用例,它都是用一些测试的思路和一些固定的测试框架以及一些场景来完成测试工作的,通俗来讲就是用一些测试的思想在你的测试过程当中不断的应用,本身就是依据一种策略,所以探索式测试是对传统的通过设计测试用例来进行测试的一种补充。随着敏捷测试在中国越来越多的引入,对一些文档没有太多的讲究,需求变化万千,所以探索式测试在敏捷测试中应用非常广泛,也迎合了这个潮流。
手工测试
软件缺陷的根源:来自软件开发本身
软件缺陷:程序员引入的缺陷
运行环境导致的缺陷
缺陷预防和检测
1、设计更好的设计规范
2、实施代码审核制度
3、运行代码静态分析工具
4、运行单元测试工具(自动化测试居多)
以上几点方式有些根本性问题
1、开发人员只能是个糟糕的测试者
2、处于静止状态的软件
3、缺乏数据
缺陷检测
1、自动化测试(selenium、QTP工具):通过编写代码来测试一个应用或者程序,适合与测试一些固定流程不变或者用来验证以前没有问题的模块依旧没有问题
2、手工测试:使用程序的用户界面,手工输入数据进行测试
关于自动化测试(局限)
1、需要测试人员编写代码—开发人员
2、花费太多的时间来开发测试代码,而减少了测试项目的时间
3、自动化测试可以重复执行很多次
4、自动化测试适合在测试环境中运行
5、预言家的难题:如何才能知道被测软件确定完成了他应完成的任务?
被测软件是否输出了正确的结果?
在运行中是否会带来副作用?(自动化本身会带来一些垃圾数据,并且在执行过程当中会带来一些额外的开销,会影响正式使用系统)
自动化测试擅长找到的问题
1、程序崩溃
2、系统死机
3、程序刮起
4、突发异常
5、原有能用的功能出现问题
手工测试
1、由人来动手进行测试
2、手脑并用,充分发挥测试人员的聪明才智
3、设计出真实的用户情况
4、在真实的用户环境中使用真实的用户数据
5、可以识别出显而易见的缺陷和难以察觉的缺陷
6、善于发现应用程序业务逻辑相关的错误
手工测试缺点
1、手工测试很慢
2、不可反复使用
3、发现问题后也不能重现
4、测试人员的水平决定可手工测试的质量
5、使用细化的测试用例进行测试,则缺少变通(外包公司)
建议:
1、测试用例不要使用太细节的描述,而是笼统的描述一些用户使用场景
2、手工测试也可以使用自动化测试工具
探索式测试
完全抛开测试用例,使用定义的比较笼统的测试用例,则称之为探索式测试
特点:
1、根据收集到的信息,天马行空,自由发挥
2、测试结果、测试实例和测试文档在测试执行时创建
3、探索式测试适用于“敏捷开发过程”
4、测试人员有可能没有测试重点
探索式测试方法
1、局部探索式测试法
针对测试对象的局部内容进行测试的策略,例如:一个页面、一个输入框等的测试策略。
2、全局探索式测试法
使用测试用例集来确定软件是否已经满足正式发布所需要达到的质量标准。
测试集中的测试用例都是相互有联系的整体
确定可如何对软件进行探索式测试的整体方向
传统的测试和探索式测试
1、两者的关系为互补关系,而不是对立关系
2、传统测试通过收集来的各种信息和文档,编写出正式的测试用例,测试人员根据测试用例来执行。
3、在执行正式测试用例的同时,可以使用探索式测试来让测试用例更加的丰富和富有变化,提高测试代码的覆盖率,找到更多的bug。
测试的目标
所有的重要任务都完成了,而剩下没做的事情是比较次要的,我们做到这一点就可以尽早尽可能地降低发布风险。
测试的方法
测试是一个不停进行抉择的过程。测试人员必须理解运行测试用例时和分析现有信息所实涉及的各种复杂性,这有助于从多种可行方案中做出正确的选择。
局部探索式测试
局部探索式测试法
测试人员不需要知道很多信息就可以完成测试任务,局部测试的重点是把测试经验、专业知识、软件在操作环境下如何构建和运行的知识结合在一起,使我们在测试过程中做出正确的决定。
测试的原则
1、把测试工作简化为先在所有输入(或者运行环境等)的全体集合中选择一个子集,然后在输入时使用选中的子集,最后通过推理认定是否这些输入的已经足够多了。
2、最终产品发布后,在进行测试已经无法提高已发布代码的质量了。
3、对于无限的测试,我们唯一的希望寄托于我们选择了正确的输入和其他测试决策。
4、随机测试不是好的测试方法,因为他缺少必要的策略