测试方法测试类型
-
作者:二毛
使用测试用例的好处主要体现在以下几个方面:
①在开始实施测试之前设计好测试用例,可以避
免盲目测试并提高测试
效率。
②测试用例的使用令软件测试的实施重点突出,目的明确。
③在软件版本更新后只需修正少部分的测试用例
便可开展测试工作,降
低工作强度,缩短项目周期。
④功能模块的通用化和复用化使软件易于开发,
而测试用例的通用化和
复用化则会使软件测试易于开展,
并随着
测试用例的不断精化,
其效率也不断攀
升。
下面将具体介绍几种常用的黑盒测试用例设计方法。
等价类划分法
等价类划分是一种典型的黑盒测试方法,用这一方法设计测试用例完全
不考虑程序的内部结构,
只根据对程序的要求和说明,
即需求规
格说明书。
我们
必须仔细分析和推敲说明书的各项需求,
特别是功能需求。
把说明书中对输入的
要求和
输出的要求区别开来并加以分解。
由于穷举测试工作量太大,以至于无法实际完成,促使我们在大量的可
能数
据中选取其中的一部分作为测试用例。
例如,
在不了解等价分配
计数的前提
下,我们做计算器程序的加法测试时,测试了
1+1
,
1+2
,
1
+3
和
1+4
之后,还有
必要测试
1+5
和
1+6<
/p>
吗,能否放心地认为它们是正确的?我们感觉
1+5
和
1+6
,
与前面的
1+1
,
1+2
都是
很类似的简单加法。
等价类划分的方法是把程序的输入域划分成若干部分,然后从每个部分
中选取少数代表性
数据作为测试用例。
每一类的代表性数据在测试中的作用等价
于
这一类中的其他值,
也就是说,
如果某一类中的一个例子发现了
错误,
这一等
价类中的其他例子也能发现同样的错误;
反之,
如果某一类中的一个例子没有发
现错误,
则这一类中的其他例子也不会查出错误
(
除非等价类中的某些例
子属于
另一等价类,因为几个等价类是可能相交的
)
。使用这一方法设计测试用例,首
先必须在分析需求规格说明的基础上划分
等价类,列出等价类表。
1
、划分等价类和列出等价类表
等价类是指某个输入域的子集合。在该子集合中
,各个输入数据对于发
现程序中的错误都是等效的。
并合理地假
定:
测试某个等价类的代表值就等于对
这一类其他值的测试。<
/p>
因此,可以把全部输入
数据合理地划分为若干等价类,在每一个等价类
中取一个数据作为测试输入条件,
就可以用少量代表性的测试数据取得较好的测
试结果。等价类划分有两
种不同的情况:有效等价类和无效等价类。
<
/p>
有效等价类:指对于程序的规格说明来说是合理的、有意义的输入数据
构成的集合。
利用有效等价类可以检验程序是否实现了规格说明中所规定的功能
p>
和性能。
无效等价类:与有效等价类的定义相反。
设计测试用例时,要同时考虑这两种等价类。因
为软件不仅要能接收合
理的数据,
也要能经受意外的考验。
p>
这样的测试才能确保软件具有更好的可靠性。
下面给出
6
条确定等价类的原则:
①在输入条件规定了取值范围或值的个数的情况
下,可以确立一个有效
等价类和两个无效等价类。
②在输入条件规定了输入值的集合或者规定了“
必须如何”的条件的情
况下,可以确立一个有效等价类和一个无效等价类。
③在输入条件是一个布尔量的情况
下,可确定一个有效等价类和一个无
效等价类。
④在规定了输入数据的一组值
< br>(
假定
n
个
)
,并且程序要对每一个输入值
分别处理的情况下,可确立
n
个有效等价类和一个无效等价类。
⑤在规定了输入数据必须遵守的规则的情况下,
可确立一个有效等价类
(
符合规则
)<
/p>
和若干个无效等价类
(
从不同角度违反规
则
)
。
⑥在确知已划分的等价类中,
各元素在程序处理中的方式不同的
情况下,
则应再将该等价类进一步划分为更小的等价类。
在确立了等价类之后,建立等价类表,列出所有
划分出的等价类如下表所示:
软件测试类型
软件测试是指使用人工或者自动的手段来运行或测定某个软件
产品系统的过程,
其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果
的区别。
本文
主要描述软件测试的类型。
1
数据和数据库完整性测试
数据与数据库完整测试是指测试关
系型数据库完整性原则以及数据合理性测试。
数据库完整性原即:
主码完整性:主码不能为空;
外码完整性:外码必须等于对应的主码或者为空。
数据合
理性指数据在数据库中的类型,长度,索引等是否建的比较合理。
在项目
名称中,数据库和数据库进程应作为一个子系统来进行测试。在测试这些
子系统时,不应
将测试对象的用户界面用作数据的接口。对于数据库管理系统
(DBM
S)
,还需要进行深入的研究,以确定可以支
1
持测试的工具和技术。
比如,
有两张表:部门和员工。部门中有部门编号,部门名称,部门经理等字段,
主码为部门编
号;员工表中有员工编号,员工所属部门编号,员工名称,员工类型等
字段,主码为员工
编号,外码为员工所属部门编号,对应部门表。如果在某条部门记
录中部门编号或员工记
录员工编号为空,他就违反主码完整性原则。如果某个员工所
属部门的编号为
##
,但是
##
在部门编
号中确找不到,这就违反外码完整性原则。
员工类型如下定义:
0
:职工,
1
:职员,
p>
2
:实习生。但数据类型为
Int
,我们都
知道
Int
占
有
4
个字节,如果定义成
char(1
).
就比原来节约空间。
2
白盒测试
白盒测试是基于代码的测试,
测试人
员通过阅读程序代码或者通过使用开发工具
中的单步调试来判断软件的质量,一般黑盒测
试由项目经理在程序员开发中来实现。
白盒测试分为动态白盒测试和静态白盒测试
2.1
静态白盒测试
利用眼
睛,浏览代码,凭借经验,找出代码中的错误或者代码中不符合书写规范
的地方。比如,
代码规范中规定,函数必须为动宾结构。而黑盒测试发现一个函数定
义如下:
Function
NameGet(){
…
.
}
这是属于不符合开发规范的错误。
有这样一段代码
:
if
(i<0)
&
(i>=0)
…
这段代
码交集为整个数轴,
IF
语句没有必要
I=0;
while(I>100){
J=J+100;
T=J*PI;
}
在循环体内没有
I
< br>的增加
,bug
产生。
2.2
动态白盒测试
利用开发工具中的调式工具进行测
试。
比如一段代码有
4
个分支,输入<
/p>
4
组不同
的测试数据使
< br>4
组分支都可以走通而且结果必须正确。
看一段代码
if(I<0){
P1
}else{
P2
}
在调试中输入
I=-1,P1
程序段通过,
P2
程序段未通过,属于动态黑盒测试的缺
陷
3.
功能测试
功能测试指测试软件各个功能模块是否正确,逻辑是否正确。
对测试
对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则
的测试需求。这种
测试的目标是核实数据的接受、处理和检索是否正确,以及业务规
则的实施是否恰当。此
类测试基于黑盒技术,该技术通过图形用户界面
(GUI)
与应
用程序进行交互,并对交互的输出或结果进行分析,以此来
核实应用程序及其内部进
程。功能测试的主要参考为类似于功能说明书之类的文档。
p>
比如一个对电子商务系统,前台用户浏览商品
-
放入购物车
-
进入结账台,后台处
理订
单,配货,付款,发货,这一系列流程必须正确无误的走通,不能存在任何的错
误。
p>
测试
UI
测试
指测试用户界面的风格是否满足客户要求,
文字是否正确,
页面
美工是否
好看,文字,图片组合是否完美,背景是否美观,操作是否友好等等
用户界面
(UI)
测试用于核实用户与软件之间的交互。
UI
< br>测试的目标是确保用
户界面会通过测试对象的功能来为用户提供相应的访问或浏览
功能。另外,
UI
测试
还可确保
UI
中的对象按照预期的方式运行,并符合公司或行业的标准
。包括用户友
好性,人性化,易操作性测试。
UI
测试比较主观,与测试人员的喜好有关
比如:页面基调颜色刺眼;用户登
入页面比较难于找到,文字中出现错别字,页
面图片范围太广等都属于
< br>UI
测试中的缺陷,但是这些缺陷都不太严重。
5.
性能测试
性能测
试主要测试软件测试的性能,
包括负载测试,
强度测试,
数据库容量测试,
基准测试以及竞争测试
5.1
负载测试
负载测
试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。
在这种
测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同
工作量条件下的
性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保