等效法
明确测试的目标,一般适合用到的范围是,制定被测试的对象是在满足某个条件的区间内的所有数据。
案例设计方法:从其中区间数据段中选择任意一个或者两个数据,只要这个数据满足了,那么其他的数据就是满足的。
范例
1
:在登陆某系统需要验证用户名,要求是长度是最小是
6
位,最长是
14
位,名字中可以包含数字,但是不能以数字开头,可以包含各种符号,不能包含中文。
1
、随意字母组合成一个
12
位的姓名,测试是否可以通过验证。
2
、随意生成一个长度
12
位的姓名,测试是否可以通过验证
3
、测试以任意一个数字打头
12
位的姓名,测试是否可以通过验证
4
、测试姓名长度为
12
位且包含中文情况,测试是否可以通过验证
5
、测试长度不满足条件情况下,是否通过验证
6
、如果长度不满足,是以数字开头的,提示信息验证
7
、如果长度不满足,姓名中包含中文的,提示信息验证……
注:这个可能比较简单,但是说明一个问题:为什么随意生成一个
12
位姓名的
,
其实你选择
8
位姓名长度或者
10
位姓名长度是一样的,所以这种情况下考虑采用等效方法比较合适。
范例
2
:要求选择
1~12
之间进行调整,手机的背光就会随着数值的变化而变化。总体的是数值越大越暗。
测试案例设计:清晰记忆
1
的情况,然后随意调整一个数值,因为要求是变化了,至于变化成什么样子,变暗到什么程度才正确,没有明确的指标数值,所以只需要记住临街点
1
的情况,然后随意调整一个数据,然后和当前调整后的数据进行比较。
注:没有明确的说明,只是含糊的结果,但是总体的结果是在变化,那么这个时候比较适合使用等效法。
因果分析法
需要有一定的程序基础,了解程序的架构,就是当问题发生以后,能够有效的补充相关的案例或者筛选相关的案例。因果分析的核心是从自己的理解去分析问题所在的真正原因。
范例
1
:删除磁盘上某个文件失败,分析原因:如果是管理员权限,那么可以随意删除,无论这个文件的属性是只读的还是存档的,那么如果不能删除磁盘文件,除非是坏道上的文件。分析完成以后,使得测试案例设计有针对性,而不是盲目的将所有的文件格式都去尝试一次。
范例
2
:假设我们用
Excel
作一个计算,结果和我们用计算器计算的结果不同。分析原因:
Excel
的计算函数单独运算没有错误,然后插入一行,结果错误了,说明插入行时导致计算错误,那么插入一行怎么会引起函数计算错误呢?原因是由于插入行后,导致传给计算函数的区域没有更新,所以造成计算结果错误,那么这个
Bug
就很明确了。
范例
3
:假设我们平常在做讲座的时候发现在某台机器上就会死机。这是一种现象。分析原因:为什么在这台机器上死,在其他机器上不死。原因有两个,第一个先找系统原因,是否是我们的产品在当前这个系统下有
Bug,
经过验证没有,那问题出在那里?其实演示产品需要的是硬件的支持,那就是显卡,如果显卡内存不够大,可能导致某些演示文件死。
注:因果分析需要有广泛的知识面,使得我们在分析的时候能够拓宽面积,模糊的定位问题。
范例
4
:用户给我发送一个文件,打印的时候发现是乱码。后来逼迫无奈,就让用户将这个文件传真给我。这是现象。分析原因:为什么打印出现乱码?问题基本定位,系统字库不够,系统下打印驱动问题,打印虚拟内存问题,操作系统问题,软件本身问题?最后问题经过验证,最终归结为在此操作系统下,打印驱动程序有问题,使得文件不能正常打印。
注:问题需要先框定范围,不要乱了套路。
逻辑分析法
在逻辑分析方面,也需要有一定的程序理解能力。从程序逻辑和日常常识去判断问题。逻辑分析法其实就一堆假设的罗列,推论出系列结果的假设,然后将假设反推翻,问题就可以暴露出来。无论那种方法都是通过表现去分析问题的实质的。
范例
1:
我们在做
MP3
播放器快进和快退测试中,要考虑的同步问题,就是我们液晶显示屏上出现的歌词进度,时间进度和我们耳朵听到的进度不同。我们分析一下,为什么出现不同步现象,为什么其他的能同步,就某一个或者某几个不能同步。首先我们了解同步的算法:快进和快退是按照当前歌曲的数据流来计算应该到那里,它是以当前歌曲的数据流为系数,然后进行的一些调整,那么出现不同步的原因是由于系数不同造成的,所以考虑到同步问题,我们需要找不同格式不同数据流的歌曲,这样问题容易暴露,容易清楚的定位问题的真正原因
边界数值分析法
在测试案例执行的过程中,所有调节的数据都需要考虑到边界数值的测试方法,但是需要注意,边界数值的测试不是枚举,只是抽样的方法。