文章目录
要成为一个成功的软件测试员,需要采用结构化的,目标明确的方法继续测试。
但是有些技术,即使不是程序员也可以掌握使用。这篇文章就来描述一下相关内容
动态黑盒测试
动态是指程序在运行。
黑盒是指不需要深入代码内部。
因此动态黑盒测试又称为行为测试。
有效的动态测试需要软件说明书中的一些定义,或者需求文档上的一些说明。
当没有产品说明书时,我们可以把软件产品本身当作产品说明书来对待。系统的记录软件的功能、设计测试、执行测试结果等。
通过性测试
在设计和执行测试时,总是首先进行通过性测试。
重点在于确认软件至少能做什么,而不会考验其能力。
软件测试员不是想尽办法让软件崩溃,而是运用最简单的、最直观的测试用例。
失效性测试
确信软件在普通情况下能正确运行之后,就可以采取各种手段搞垮软件来找出软件缺陷。存粹为了搞破坏而设计和执行测试用例称为失效性测试或者错误强制测试。
等价类划分
目的是把海量的测试用例减小得很小,但是使过程同样有效。
等价类的目标是把可能的测试用例缩减到可控制且仍然可以测试软件的小范围内。
选择了不完全测试,就选择了冒一定的风险,所i有我们在分类时要足够的仔细。但是等价类的划分可能主观,不过,同样一个复杂的软件并不是只有一种划分结果。
数据测试
对软件的一种认识方式就是把程序分为两个部分:程序和数据。
对数据的测试的关键在于四个部分:边界条件、次边界条件、空值、无效数据。
边界条件
软件往往是很极端的,要么对要么不对。
边界条件类型
软件测试边界时,可以看看以下这些类型:
数值 字符
位置 数量
速度 地点
尺寸
我们需要明确,仅测试边界是不够的,最好测试以下边界的两边。
测试边界
在软件的每一个部分不断寻找边界是极为重要的,寻找的越多,边界就会发现的越多,可能找出的缺陷就越多。
缓存区溢出就是由边界条件缺陷引起的。它是造成软件安全问题的头号原因。
次边界条件
次边界条件也成为内部边界条件,通常在软件内部,最终用户几乎看不见,但是软件测试员仍有必要进行检查。
默认、空白、空置、零值 和 无
这种缺陷在产品说明书中常常忽略,程序员常常遗忘,但在实际情况中常常发生。
非法、错误、不正确 和垃圾数据
这种指垃圾数据。
这是失效性测试的对象。
这一测试在最后一步进行。
状态测试
指通过不同的状态验证程序的逻辑流程。
软件状态指软件当前所处的条件后者模式。
第一步的操作是建立状态转化图,应该表示出以下项目:
软件可能进入的每一种独立状态
从一种状态转入另一种状态所需的输入和条件
进入或者退出某种状态时的设置条件及输出结果。
由于用户正在进行黑盒测试,所以不必了解代码中设置的底层变量。从用户的角度建立状态图即可。
但是对大型软件建立状态图是一件艰巨的事情。下面有五种方法来减少可操作的用例集合。
- 每种状态至少访问一次,如何实现的没有关系,但是每一种状态都必须测试
- 测试看起来是最厂家按和最普遍的状态转换
- 测试状态之间最不常用的分支
- 测试所有错误状态及其返回值
- 测试随机状态转换
竞争条件和时序错乱
主要是面对多任务系统。设计多任务操作系统并步繁琐,但是设计出充分利用多任务的软件才是艰巨任务。
竞争条件很容易让人联想到如下情形:多个进程向重点冲刺,不知道谁会首先到达。
重复、压迫和重负
有些错误需要不断执行同样的操作才能找出来。最典型的就是内存泄露。
压迫测试:让软件在不够理想的条件下进行——内存小、磁盘空间小、CPU速度慢等。目的在于尽可能的限制软件的必要条件。
重负测试:尽量提供条件任其发挥。最大的发掘软件的能力,让它不堪重负。
其他黑盒测试技术
- 像笨拙的用户那样做
- 在已找到的软件缺陷的地方再找找
- 像黑客一样考虑问题
- 凭借经验、直觉和预感