本文章转载于搜狗测试
前期回归
敏捷测试世界里面有一种重要的测试方案:探索式测试。关于探索式测试的定义、基本过程、价值,我们之前有一篇文章已作初步介绍,若有小伙伴感兴趣,详见文章:【敏捷测试】初窥探索测试 。那探索式如何测试呢?——探索式测试的指导方法主要有局部探索式测试法和全局探索式测试法,今天小编将了解到的局部探索式测试法分享给大家~~
什么是局部探索式测试
局部探索式测试法是辅助测试人员在执行测试中即时做出决定,注重指导在测试中如何做抉择、应注意哪些测试细节的方法。
比如:如何决定文本框的输入值;如何理解前后两次输入值之间的关系;如何解释错误消息等
局部探索式测试在测试过程中应注意的内容
1. 用户输入
定义:输入由应用程序外部引发,并导致应用程序执行某些代码
举例:用户单击一个按钮、点击一个tab列表等,导致软件执行某些代码,并以某种方式作出反应,即是一种用户输入
测试用户输入应注意的事项
1)合法输入和非法输入
开发人员喜欢编写正常功能代码,不喜欢编写错误处理代码。所以测试过程中应关注:
①对于非法输入的屏蔽,检查是否实现了正常的功能,是否可以绕过屏蔽
举例:通过编辑web页面HTML源代码修改输入值为错误信息,如果后面的代码不进行检查,软件可能就出现异常
② 在错误输入发生时,应用程序是否给出了合理的响应
③ 当出现错误信息时,仔细阅读每一条错误提示信息,使用提示信息来引导测试挖掘:哪些输入值可以触发其他错误信息?哪些输入值实际上应该导致错误但软件没有报错?
④ 对于通用错误提示信息,比如“崩溃提示信息”,要反复测试相关模块,继续使用刚才引发异常的输入数据或者小修改,查看程序运行状态
2)除常规输入外,测试还需要关注非常规输入,即特殊情况进行的输入
举例:小编之前在测试手机端页面滑动时,常规输入:一般都是单点触控进行左右上下滑动;某次测试发现多点触控滑动时,程序就会出现异常,停止响应
3)默认输入和用户提供的输入
举例:一搜索框,需要检查①默认值搜索②删除默认值的搜索③修改默认值的长度、输入类型等搜索
2. 软件状态
输入会导致应用程序执行某些代码,相关信息会被存储在软件的内部数据结构中,从而改变被测软件的状态。如果再进行相同输入,由于软件状态不同,输出结果也会不同。所以测试需要考虑输入与软件状态关联因素,建议关注一下两点:
1)如果两个或更多个输入条件在某种程度上是相关联的,那么他们应该放在一起测试
2)如果条件变化在某种方式上被累加起来,就必须考虑是否会发生溢出
举例:比如测试一个资讯类app,它可以通过点击不同tab查看不同类型的资讯新闻。那么是否已启动并浏览过tab页,再点tab查看数据加载的结果是不同的。若浏览记录是保存在手机内存的,当加载的数据过多时,有可能会导致内存溢出
3. 代码路径
一连串的代码语句构成了一个代码路径,起始于软件开始运行的语句,终止于一条特定的语句。所以测试人员必须明确知道程序有哪些分支,尽量覆盖所有分支
4. 用户数据
尽量用真实的用户数据测试,因为这些数据中包含测试人员不了解的很多相互关系和结构,有利于发现问题
举例:手机联系人的备份还原功能,测试开始时是通过测试小工具生成大量的测试数据进行验证,但是用户填写联系人的字段不同、不同的手机对应的字段不同,该类数据备份还原后会出现较多问题,是测试工具无法测试到的,所以最好用真实数据进行验证
5. 运行环境
即被测应用程序具体的用户环境,主要包括操作系统及当前的配置。比如:操作系统、操作系统上可能交互的其他应用程序、驱动程序、代码、文件、设置及网络等。
任何可以影响被测试软件行为的因素都是运行环境的一部分,测试中都必须考虑
局部探索式测试的好处
1. 测试人员不需要知道很多信息就可以完成这些任务。
2. 相比随机测试而言,如果测试人员在测试过程中了解了各种可以进行变化的东西,包括输入、软件运行环境等因素,就可以更有的放矢的进行应用软件的探索式测试