什么是动态黑盒测试?
不深入代码细节的测试软件方法称为动态黑盒方法,测试员不必知道程序如何运行,内部逻辑是怎样的,测试员只需要输入数据、接受输出、检验结果。
定义测试用例
测试用例是指进行测试时使用的特定输入,以及测试软件的过程步骤,选择测试用例是软件测试员最重要的任务
测试软件有两种基本方法:通过性测试 test-to-past 和失效性测试 test-to-fail
在设计和执行测试用例时,总是首先进行通过性测试,在失效性之前对软件进行通过测试,确保软件功能实现,为了破坏软件设计和执行的测试用例称为失效性测试,但其通常不会出现
等价类划分
选择测试用例的方法称为等价类划分,其是指分步骤地把海量的测试用例集减德很小,但过程同样有效,
例子,如测试了1+1,1+2,1+3和1+4就没必要再测试1+5 ,1+6等
对数据测试的关键原则进行等价划分,能合理减少测试用例。原则:边界条件、次边界条件、空值和无效数据。
测试边界条件
测试临近边界的有效数据,测试最后一个可能有效的数据,同时测试超过边界的无效数据
缓冲区溢出是边界条件缺陷引起的,它是造成软件安全问题的头号原因。
次边界条件
有些边界是在软件内部,用户几乎看不到的,但是几乎看不到的,这样的边界条件我们称为次边界条件
例子: 某种通信协议支持256条命令。经常用到的15条命令是软件编码的4位数据发送,余下的不常用的命令,软件会发送更长的位数的编码数据,此时,就要考虑临近边界的14、15、16和临近字节边界的254、255、256.
默认、空白、空值、零值和无
根本没有输入任何内容,可能单单按了Enter键,程序员也经常遗忘,测试员要注意
非法、错误、不正确和垃圾数据
数据测试的最后一种类型是垃圾数据。这是失效性数据测试的对象
状态测试
软件是另一方面通过不同的状态验证获得程序的逻辑流程,注意:测试员必须测试程序的状态及其转换
测试软件的逻辑流程
软件日益复杂化,而程序的分支数量呈指数式增长,对于软件测试,解决的办法是运用等价划分技术选择状态和分支
建立状态转换图
状态图应该表示出以下项目
1.软件可能进入的每一种独立状态
2.从一种状态转入另一种状态所需的输入和条件
3.进入或者退出某种状态的设置条件及其结果
减少要测试的状态及转换的数量有以下5中实现方法:
1.每种状态至少访问一次
2.测试看起来最常见和最普遍的状态转换
3.测试状态之间最不常用的分支
4.测试所有错误状态及其返回值
5.测试随机状态转换
失败状态测试
竞争条件和时序错乱
以下是面临竞争条件的例子情形
*两个不同的程序同时保存和打开同一文档
*共享同一台打印机、通信端口和其他外围设备
*当软件处于读取或者改变状态时按键或者单机鼠标
*同时关闭或启动软件多个实例。
*同时使用不同的程序访问一个共同的数据库
重复、压迫和重负
重复测试是不断执行同样的操作,最简单的是不停地启动、关闭程序。还可以反复读写数据或者反复选择同一个操作。要想找出一个软件缺陷,可以 需要几次或上千上万,反复进行这些操作的原因是检查是否存在内存泄漏
压迫测试是使用软件在内存小、磁盘空间少、cpu速度慢、调制调节器速度低等
重负测试与压迫测试相反,其让软件处理尽可能大的数据文件
其他黑盒测试技术
1.像笨拙的用户那样做
2.在已经找到的软件缺陷地方再找找
3.象黑客一样考虑问题