软件测试的基本方法和测试理论
-
动态黑盒测试
不深入代码细节的软件测
试方法。常被称为行为测试,因为测试的是软件在使用过程
中的实际行为。
首先,从产品说明书获知测试对象的软件的输入和应该得
到的输出。
接下来,开始定义测试案例。
测试案例:
指进行实验用的输入,以及测试软件用的程
序。
选择测试案例是软件测试
员最重要的任务。不正确的选择可能导致测试量过大或者过
小,
甚至测试目标不对。
准确评估风险,
把不可穷近的可能性减少到
可以控制的范围是成功
的诀窍。
测试基本方法:通过测试
vs
失败测试
通过测试:确认软件至少能做什么,而不考验其能力。
失败测试:纯粹为了破坏软件而设计和执行的测试案例,也称为迫使出错测试。蓄意
p>
攻击软件的薄弱环节。
在设计和执行测试案例时
,总是首先进行通过测试。在破坏性试验之前看看软件基本
功能是否实现是很重要的,否
则在正常使用软件时就会奇怪为什么有那么多的软件缺陷。
常见的测试案例就是设法迫
使软件出现错误提示信息。产品说明书可能会给出这样的
功能要求,
针对这个问题的测试可能是通过测试也可能是失败测试。
可能两者都是。
不用去
刻意区分,重要的是找到软件缺陷!
选择测试案例:等价分配
等价分配:
是指分步骤地把过多
(无限)
< br>的测试案例减小到同样有效的小范围的过程。
也称等价划分。
等价分配技术提供了一个选择哪些数值、舍弃哪些数值的
系统方法。
等价类别或者等价区间是
指测试相同目标或者暴露相同软件缺陷的一组测试案例。在
寻找等价区间时,想办法把软
件的相似输入、输出、操作分成组。这些组就是等价区间。
等价分配的目的是把可能
的测试案例组合缩减到仍然足以测试软件的控制范围。因为
选择了不完全测试,就要冒一
定的风险。如果为了减少测试案例的数量过度进行等价分配,
测试的风险就会增加。
p>
另外,
等价区间的划分没有一定的标准,
只
要足以覆盖测试对象就行
了。
数据测试
软件由数据(包括键盘输
入、鼠标单击、磁盘文件、打印输出等等)和程序(可执行
的流程、转换、逻辑和运算)
两个最基本的要素组成。
对数据进行软件测试,就
是在检查用户输入的信息、返回结果以及中间计算结果是否
正确。
主要根据下列原则来进行等价分配,以合理减少测试案例:
边界条件、次边界条件和<
/p>
无效数据。
1.
边界条件测试
程序在处理大量中间数值时都是对的,但是可能在边界处出现错误。比如数组的
[0
]
元
素的处理。想要在
Basic
p>
中定义一个
10
个元素的数组,如果使用<
/p>
Dim data(10) As Integer
,
则定义的是一个
11
个元素的数组,在赋初值时再使用
For i =1 to
10 ...
来赋值,就会产生权
限,因为程序忘记了处理
p>
i
=
0
的
0
号元素。
边界条件是指软件计划的操作界限所在的边缘条件。
数据类型:数值、字符、位置、数量、速度、地址、尺寸等,都会包含确定的边界。
p>
应考虑的特征:第一个
/
最后一个、开
始
/
完成、空
/
满、最慢
/
最快、相邻
/
最远、最小值
/
最大值、超过
/
在内、最短
/
最长、最早
/
最迟、最高
/
最低
。这些都是可能出现的边界条件。
根据边界来选择等价分配中
包含的数据。然而,仅仅测试边界线上的数据点往往不够
充分。
提出边界条件时,
一定要测试临近边界的合法数据,
即测试最后
一个可能合法的数据,
以及刚超过边界的非法数据。以下例子说明一下如何考虑所有可能
的边界:
-------------------------------------------------
-------------------------------
如果文本输入域允许输入<
/p>
1
-
255
个字
符。
尝试:
输入
1
个字符和
255
个字符
(合法区间)
,
也可以加入
254
个字符作为合
法测试。
输入
0
个
字符和
256
个字符作为非法区间。
---------------------------
--------------------------------------------------
---
如果程序读写软盘
尝试:保存一个尺寸极小,甚至只有一项的文件。
然后保存一个很大的
——
刚好在软盘容量限制之内的文件。
保存空文件。
保存尺寸大于软盘容量的文件。
<
/p>
----------------------------------------
----------------------------------------
如果程序允许在一张纸上打印多个页面
尝试:只打印一页
打印允许的最多页面
打印
0
页
多于所允许的页面(如果可能的话)
---------------------------
--------------------------------------------------
---
-----------
--------------------------------------------------
-------------------
2.
次边界条件测试
上面所讲的是普通的边界条件,在产品说明书中有定义,或者在软件的过程中确定。
但有些边界在软件内部,
最终用户几乎看不到,
但是软件测试仍
有必要检查,
这样的边界条
件成为次边界条件或者内部边界条件
。
寻找这样的边界条件,
不要求软件测试员成为程序员
或者具有阅读源代码的能力,但是确实要求大体了解软件的工作方式。
2
的乘方和
ASCII
表是这样的两个例
子:
-------------
--------------------------------------------------
-----------------
2
的乘方
术语
范围或值
位
bit
0
或
1
双位
doublebit
0
~
15
字节
Byte
0~255
字
word
0~65,535
p>
或者
0
~
4,29
4,967,295
千
K
1,024
兆
M
1,048,576
亿
1,073,741,824
万亿
1,099,511,627,776