要成为一个成功的软件测试员,需要采用更结构化的、目标明确的方法继续测试。
本文粗略描述动态黑盒测试的结构化过程
目录
1.动态黑盒测试
拿到需求文档或产品说明书
定义测试用例 test-case
2. 通过性测试和时效性测试
3. 等价类划分
4. 数据测试
边界条件VS测试边界
次边界条件
默认、空白、空值、零值和无
非法、错误、不正确和垃圾数据
5.状态测试
测试软件的逻辑流程
建立状态转换图
减少要测试的状态及转换的数量
重复、压迫和重负
6.其他黑盒测试技术
模拟笨拙的用户那样
在已经找到的软件缺陷的地方再找找
像黑客一样考虑问题
凭借经验、直觉和预感
1.动态黑盒测试
测试在运行中的程序,称为动态测试;不深入代码细节测试软件的方法称为动态黑盒测试。
又称为行为测试,测试软件在使用过程中的实际行为。
拿到需求文档或产品说明书
有效的动态测试的前提:需求文档或产品说明书
好的产品说明书会提供细节信息,输入了A输出B,操作C得到D.
定义测试用例 test-case
选择正确的测试用例,不正确的选择会导致测试量过大或过小。
在没有产品说明书时使用探索模式。了解软件、设计测试、执行测试同时进行。
2. 通过性测试和时效性测试
这是测试软件的两种基本方法。
确认软件至少能做什么。并不需要想尽办法让软件崩溃,使用简单、直观的测试用例。
确信软件在普通的情况下能正确运行之后,就可以采取各种手段搞垮软件来找出软阿金缺陷了
3. 等价类划分
等价类划分技术提供了一个选择有关数值、舍弃无关数值的系统方法。
将相似输入、相似输出、相似操作的分在一组
等价类划分的目标是把可能的测试用例集缩到可控制且仍然足以测试软件的小范围内。因此选择了不完全的测试,就要冒一定的风险,所以选择分类时要必须仔细。
4. 数据测试
对软件最简单的认识 数据+程序。
数据的等价类划分的关键原则是:边界条件、次边界条件、空值和无效数据
边界条件VS测试边界
最小值、最大值,最快、最慢,最低、最高;
- 边界内部的数据点
- 边界上的两个数据点
- 边界的两边再往上一点点
- 边界之外的数据点,=越界数据点
越界测试通常是对于最大值+1或者加一个很小的数,对最小值减一或者很小的数。
次边界条件
默认、空白、空值、零值和无
非法、错误、不正确和垃圾数据
5.状态测试
软件状态是指软件当前所处的条件或者模式。
软件测试员必须测试程序的状态及其转换。如 画图程序,一旦选中一个选项,使软件改变了外观,就是改变了软件的状态。
测试软件的逻辑流程
建立状态转换图
- 状态转换图应该表示以下项目
- 软件可能进入的每一种独立状态
- 从一种状态转入另一种状态所需的输入和条件
- 进入或者退出某种状态时的设置条件及输出结果
减少要测试的状态及转换的数量
每种状态之间的组合多而繁杂,减少测试分支的方法如下:
- 每种状态至少访问一次
- 测试看起来最普遍的状态转换
- 测试最不常用的分支
- 测试所有错误状态及其返回值
- 测试随机状态转换
重复、压迫和重负
重复测试,可能需要几次,也可能是成千上万次。可以采用自动化测试。
压迫测试,在硬件条件不充足的条件下运行,内存小、磁盘空间少,Cpu速度慢等
或者使用其他软件抢占资源。
重负测试,尽量提供条件任其发挥,从而尽可能的处理大文件。最大化的挖掘软件的能力,让其不堪重负。
6.其他黑盒测试技术
模拟笨拙的用户那样
他会做出令人永远无法想不到的举动路径,他们会输入程序员无法理解的数据。
他们会在中途变卦,退回去执行其他操作。
他们会发现开发小组完全遗漏的软件缺陷。
在已经找到的软件缺陷的地方再找找
找到的软件缺陷也多,就说明那里的软件缺陷也多,可能是由于程序员过于匆忙交付。。。。
程序员只倾向于修复暴露出来的bug,不多也不少。
如果软件是启动终止循环255次导致崩溃,那么拿回来软件重新测试的时候,同样要测试256次以上,在这个范围内既有可能存在其他的内存泄漏问题。
像黑客一样考虑问题
没有软件是100%安全的。