测试十四种方法
-
软件测试
是指使用人工或者自动的手段来运行或测定某个软件产品系统的
过程,
其目的是在于检验是否满足规定的
需求或者弄清预期的结
果与实际结果的区别。本文主要描述软件测试的类型。
1 <
/p>
数据和
数据库
完整性测试
数据与数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试
。
数据库完整性原即:
主码完整性:主码不能为空;
外码完整性:外码必须等于对应的主码或者为空。
数据合理性指数据在数据库中的类型,长度,索引等是否建的比较合理。
在项目名称中,数据库和数据库进程应作为一个子系统来进行测试。在测试这些子系统时
,不应将测试对象的用户
界面用作数据的接口。对于数据库管理系统
(DBMS)
,还需要进行深入的研究,以确定可以支
1
持测试的工具和
技
术
< br>。
比如,有两张表:部门和员工。部门中有部门编号,
部门名称,部门经理等字段,主码为部门编号;员工表中有员
工编号,员工所属部门编号
,员工名称,员工类型等字段,主码为员工编号,外码为员工所属部门编号,对应部门
表
。如果在某条部门记录中部门编号或员工记录员工编号为空,他就违反主码完整性原则。如果某个员工所属部门<
/p>
的编号为
##
,但是
##
在部门编号中确找不到,这就违反外码完整性原则。
员工类型如下定义:
0
:职工,
1
:职员,
2
:实习
生。但数据类型为
Int
,我们都知道
Int
占有
4
个字节,如果定义
成
char(1).
就比原来节约空间。
p>
2
白盒测试
白盒测试是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步
调试来判断软件的质量,
一般黑盒测试由项目经理在程序员开发中来实现。白盒测试分为
动态白盒测试和静态白盒测试
2.1
静态白盒测试
利用眼睛,浏览代码,
凭借经验,找出代码中的错误或者代码中不符合书写规范的地方。比如,代码规范中规定,
函数必须为动宾结构。而黑盒测试发现一个函数定义如下:
Function NameGet(){
„.
}
这是属于不符合开发规范的错误。
有这样一段代码
:
if (i<0)
& (i>=0)
„
这段代码交集
为整个数轴,
IF
语句没有必要
I=0;
while(I>100){
J=J+100;
T=J*PI;
}
在循环体内没有
I
的增加
,bug
产生。
2.2
动态白盒测试
利用开发工具中的调式工具进行测试。比如一段代码有
4
个分支,输入
4
组不同的测试数据使
4
组分支都可以走通
而且结果必须正确。
看一段代码
if(I<0){
P1
}else{
P2
}
在调试中输入
I=-1,P1
p>
程序段通过,
P2
程序段未通过,属于动态黑盒测试的缺陷
3.
功能测试
功能测试
指测试软件各个功能模块是否正确,逻辑是否正确。
对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求
。
这种测试的目标是核实
数据的接受、处理和检索是否正确,以
及业务规则的实施是否恰当。此类测试基于黑盒技术,该技术通过图形用户
界面
(GUI)
与应用程序进行交互,并对交互的输出或结果进行分析,
以此来核实应用程序及其内部进程。功能测
试的主要参考为类似于功能说明书之类的文档
。
比如一个对电子商务系统,前台用户浏览商品
-
放入购物车
-
进入结账台
,后台处理订单,配货,付款,发货,这一
系列流程必须正确无误的走通,不能存在任何
的错误。
测试
UI<
/p>
测试指测试用户界面的风格是否满足客户要求,文字是否正确,页面美工是否好看,文字,
图片组合是否完美,
背景是否美观,操作是否友好等等
用户界面
(UI)
测试用于核实用户与软件之间的交互。
UI
< br>测试的目标是确保用户界面会通过测试对象的功能来为
用户提供相应的访问或浏览
功能。另外,
UI
测试还可确保
UI
中的对象按照预期的方式运行,并符合公司或行业
的标准
。包括用户友好性,人性化,易操作性测试。
UI
测试比较主观
,与测试人员的喜好有关
比如:页面基调颜色刺眼;用户登入
页面比较难于找到,文字中出现错别字,页面图片范围太广等都属于
UI
测试
中的缺陷,但是这些缺陷都不太严重。
5.
性能测试
性能测试
主要测试软件测试的性能,包括负载测试,强度测试,数据库容量测试,基准
测试以及基准测试
5.1
负载测试
负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。
在这种测试中,将使测试对象承担不同的
工作
量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持
续正常运行的能力。
负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载
测试还要评估性能特征,例如,响应时间、事务处理速率和
其他
与时间相关的方面。
比如,在
B
/S
结构中用户并发量测试就是属于负载测试的用户,可以使用
webload
工具,模拟上百人客户同时访问
网站,看系统响
应时间,处理速度如何?
5.2
强度测试
强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。这类测试往往可以书写系统要求 的软
硬件水平要求。
实施和执行此类
测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可
能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络
带宽)而
造成的。强度测试还可用于确定测试对象能够处理的最大工作量。
比如:一个系统在内存
366M
< br>下可以正常运行,但是降低到
258M
下不可以运行,告
诉内存不足,这个系统对内存的
要求就是
366M
。
5.3
数据库容量测试
数据库容量测试指通过存储过程往数据库表中插入一定数量的数据,看看相关页面是否能够及时显示数
据。
数据库容量测试使测试对象处理大量的数据,以确定是否
达到了将使软件发生故障的极限。容量测试还将确定测试
对象在给定时间内能够持续处理
的最大负载或工作量。例如,如果测试对象正在为生成一份报表而处理一组数据库
记录,
那么容量测试就会使用一个大型的测试数据库,检验该软件是否正常运行并生成了正确的报表。做这种测试
通常通过书写存储过程向数据库某个表中插入一定数量的记录,计算相关页面的调用时间。
p>
比如,在电子商务系统中,通过
insert
customer
往
user
表中插入
10
000
数据,看其是否可以正常显示顾客信息
列表页面,如果要求达到最多可以处理
100 000
个客户,但是顾客信息列表页面不能够在规定的时间内显
示出来,
就需要调整程序中的
SQL
查
询语句;如果在规定的时间内显示出来,可以将用户数分别提高到
20
000
,
50
000,
100
000
进行测试。
5.4
基准测试
基准测试与已知现有的系统进行比较,主要检验是否与类似的产品具有竞争性的一种测试。
< br>
如果你要开发一套财务系统软件并且你已经获得用友财务系统的性能等数据,你
可以测试你这套系统,看看哪些地
方比用友财务系统好,哪些地方差?以便改进自己的系
统,也可为产品广告提供数据。
5.5
竞争测试
软件竞争使用各种资源(数据纪录,内存等),看他与其他相关系统对资源的争夺能力。比如:一台机器上即 安装
您的财务系统,又安装用友财务系统。当
CPU
占有率下降后,看看是否能够强过用友财务系统,而是自己的系统能
够正常
运行?