局部探索式测试法

任何一个错综复杂的缺陷都与功能无异。

局部探索式测试法有一个好处是测试人员不需要知道很多信息就可以完成这些任务。重点是把测试经验、专业知识,软件在操作环境下如何构建和运行的知识结合在一起,使我们在测试中做出正确决定。

根据软件的各种属性,可以分为5种:输入(input)、状态(state)、代码路径(code path)、用户数据(user data)和执行环境(execution environment)。这些都是探索型测试人员在测试时必须关注的。

用户输入

用户输入分为原子输入与抽象输入。单击按钮,字符串或整数4等就属于原子输入,简单到不能再简单,都属于单个的事件。有些原子输入是相互关联的,关联的原子输入合并成一个抽象输入。示例:某个长度这样一个抽象的输入来表示1~32768之间的任何一个原子输入长度值。

所有软件从基本面上来说都是相同的,都会执行四个基本任务,即接收输入产生输出存储数据进行运算

输入大致从两面影响软件质量:1.各种输入之间会相互影响,从而造成软件失效;2.输入这些值时的先后顺序也会导致问题。

测试方向大致分为合法/非法输入常规/非常规输入默认或用户提供的输入使用输出来指导输入选择。

状态

输入导致内部变量的数值发生变化,内部变量所有可能的取值组成了软件的状态空间,状态空间中包含无数的状态,它们控制着软件接收一个输入后究竟会产生一个正确反应还是一个错误反应,从而产生软件缺陷。

状态具有临时性与长期保存两个属性,一般称为数据辖域。数据辖域是检验软件是否正确地实现 的一个重要测试。示例:某软件接收一个信用卡号输入,该卡应该只局限于当前使用,不能被存储起来重复利用,我们必须再次运行该程序,验证该卡没有被错误地当成是一个需要被长期保存的状态。

测试方向:使用状态信息来帮助寻找相关的输入,使用状态信息来辨识重要的输入序列。

代码路径

在测试过程中,输入影响程序状态,,程序状态变化影响代码规定的逻辑(分支或循环),从而产生软件缺陷

测试方向:单元测试

用户数据

一个软件必定有存储,有存储就会有数据,从某种角度上考虑模拟真实的用户数据很难。模拟的数据可能不会导入软件缺陷,但真实的数据可能就会产生缺陷。

随着真实用户数据库被不断地添加和修改,长年累月积累的数据会变的非常多,在软件开发中,测试阶段是有限的,所以测试人员要在很短的时间内一下产生接近真实环境数据。功能完善后,还要进行性能测试

运行环境

软件经过一系列测试最终达到发布标准了么,没有,还要不得不考虑运行环境,可能在测试环境下没有缺陷,但其他环境下呢,非纯净环境或原有线上环境更新某包或新软件在新的运行环境中等等,运行环境也是很难测试的点。

有位测友遇到的问题,测试环境和预上线环境更新包,经测试所有新老功能都没问题,但在实际环境线上更新时,问题就来了,老功能不能使用,以上两个环境都验证过,确定没有问题,但就是线上环境不行,研发测试加班排查,最后检查是因为某配置文件没更新。由此可以环境测试与分析也是重点及难点

你可能感兴趣的:(局部探索式测试法)