软件测试毕业设计论文
从软件产业的发展初期到目前的大型软件开发过程,软件测试已成为其中一个不可分割的部分。随着软件规模的日益增大,软件测试问题也日益突出,现代社会对软件的依赖越来越强,高可信软件测试有着广泛的需求,基于缺陷模式的软件测试技术作为高可信软件的重要保证,可以大大降低软件的缺陷密度,提高软件的可信性。本文从测试的基本概念入手,深入剖析软件测试相关理论
关键词:软件测试;软件测试的分类;软件测试方法;测试用例;测试工具;
1软件测试的发展史 (3)
2软件测试的基础理论 (4)
2.1软件测试的定义 (4)
2.2软件测试的描述 (4)
2.3软件测试的目的 (5)
2.4软件测试的原则 (5)
3软件测试的内容 (5)
3.1验证(verification) (5)
3.2确认(validation) (6)
4软件测试的分类 (6)
4.1角度分类 (6)
4.2阶段细分 (6)
5软件测试流程 (7)
5.1软件测试活动 (7)
6软件测试用例方法 (7)
6.1测试用例设计的基本原则 (7)
6.2设计测试用例应注意哪些问题 (8)
6.3测试用例的作用 (8)
6.4测试用例设计方法 (8)
6.4.1等价类划分 (8)
6.4.1.1划分等价类 (8)
6.4.2边界值 (11)
6.4.2.1定义 (11)
6.4.2.2与等价划分的区别 (11)
6.4.3错误推测法 (14)
6.4.3.1定义 (14)
6.4.4因果图 (14)
6.4.4.1定义 (14)
6.4.5判定表 (15)
6.5.5.1定义 (15)
6.5.5.2判定表的建立步骤 (16)
7 软件测试工具 (16)
7.1功能测试工具 (16)
7.2性能测试工具 (16)
7.3测试管理工具 (16)
7.4其他测试工具 (16)
8参考文献 (17)
9致谢 (18)
1
软件测试的发展史
●20世纪60年代(软件工程建立前),为表明程序正确而进行测试。
●1972年在北卡罗来纳大学举行了首届软件测试正式会议。
●1975年John Good Enough和Susan Gerhart在IEEE上发表了《测试数据选
择的原理》的文章,软件测试被确定为一种研究方向。
●1979年,Glenford Myers的《软件测试艺术》,对测试做了定义:测试是为
发现错误而执行的一个程序或者系统的过程。
●20世纪80年代早期,“质量”的号角开始吹响。软件测试定义发生了改变,
测试不单纯是一个发现错误的过程,而且包含软件质量评价的内容。制定了各类标准。
●1983年,Bill Hetzel在《软件测试完全指南》中指出:测试是以评价一个
程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。
●20世纪90年代,测试工具盛行起来。
●1996年提出的测试能力成熟度TCMM(Testing Capability Maturity Model)、
测试支持度TSM(Testability Support Model)、测试成熟度TMM(Testing Maturity Model)。
●到了2002年,Rick和Stefan在《系统的软件测试》一书中对软件测试做了进一步定义:
测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命过程。
2软件测试的基础理论
2.1软件测试的定义
软件测试使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
●测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,
可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;
●这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和
有效性;
●没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。
2.2软件测试的描述
测试是软件开发过程的重要组成部分, 是用来确认一个程序的品质或性能是否符合开
发之前所提出的一些要求。软件测试的目的, 第一是确认软件的质量, 其一方面是确认软件做了你所期望的事情(Do the right thing), 另一方面是确认软件以正确的方式来做了这个事件(Do it right);第二是提供信息, 比如提供给开发人员或程序经理的反馈信息, 为风险评估所准备的信息;第三软件测试不仅是在测试软件产品的本身, 而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题, 这说明此软件开发过程很可能是有缺陷的。
2.3软件测试的目的
●测试是为了发现程序中的错误而执行程序的过程;
●测试是确保最终用户的产品符合用户的需求;
●成功的测试是发现了至今为止尚未发现的错误的测试;
2.4软件测试的原则
●尽早地进行软件测试,并把软件测试贯穿整个软件生命周期
●软件测试应追溯
●测试应由第三方来构造
●穷举测试时不可能,要遵循good-enough原则
●必须确定预期输出结果
●必须彻底检查每个测试结果
●充分注意测试中的群集现象
●其他值得注意到规律和经验
3软件测试的内容
3.1验证(verification)
验证(verification)是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件做了你所期望的事情。(Do the right thing)
●确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的
过程;
●程序正确性的形式证明, 即采用形式理论证明程序符号设计规约规定的过
程;
●评市、审查、测试、检查、审计等各类活动, 或对某些项处理、服务或文件
等是否和规定的需求相一致进行判断和提出报告。
3.2确认(validation)
确认(validation)是一系列的活动和过程, 目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件(Do it right)
●静态确认, 不在计算机上实际执行程序, 通过人工或程序分析来证明软件
的正确性;
●动态确认, 通过执行程序做分析, 测试程序的动态行为, 以证实软件是否
存在问题。
4软件测试的分类
4.1角度分类
从是否关心软件内部结构和具体实现的角度划分(按测试分类)
●白盒测试
●黑盒测试
●灰盒测试
从是否执行程序的角度
●静态测试
●动态测试
4.2阶段细分
从软件开发的过程按阶段划分有
● 单元测试 ● 集成测试 ● 确认测试 ● 系统测试 ● 验收测试 ● 回归测试 ● Alpha 测试 ● Beta 测试
5软件测试流程
5.1软件测试活动
软件测试活动包括:制定测试计划、测试设计开发和开发、执行测试、评估测试
6软件测试用例方法
6.1测试用例设计的基本原则
制定测试计划
测试设计开发
实施软件测试
评 审 版本发布
新版本测试准备阶段
未通过评审
●用成熟测试用例设计方法来指导设计;
●测试用例的正确性;
●测试用例的代表性;
●测试结果的可判定性;
●测试结果的可再现性;
●足够详细、准确和清晰的步骤;
6.2设计测试用例应注意哪些问题
●不要把测试用例设计等同于测试输入数据的设计;
●不要强调测试用例设计得越详细越好;
●不要追求测试用例设计“一步到位”;
●不要将多个测试用例混在一个用例中;
●不要让没有测试经验的人员设计测试用例;
6.3测试用例的作用
●有效性:有效地节省时间和资源,提高测试效率;
●避免测试的盲目性,使得软件测试的实施重点突出、目的明确;
●可维护性,降低工作强度,缩短项目周期;
●可复用性,使得测试过程事半功倍;
●可评估性:程序代码质量的量化标准应该用测试用例的通过率和测试数目来
进行评估;
●可管理性,测试用例是测试人员在测试过程中的重要参考依据,便于对测试
工作进行有效的管理;
6.4测试用例设计方法
6.4.1等价类划分
6.4.1.1划分等价类
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。
1)有效等价类
是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用
有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
2)无效等价类
与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。
举例说明:
某程序规定:"输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算… "。用等价类划分方法为该程序进行测试用例设计。
分析题目中给出和隐含的对输入条件的要求:
(1)整数(2)三个数(3)非零数(4)正数
(5)两边之和大于第三边(6)等腰(7)等边
如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一:
1)如果不满足条件(5),则程序输出为 " 非三角形 " 。
2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。
3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。
4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。
列出等价类表并编号
输入条件输
入
三
个
整
数
有效等价类型
号
码
无效等价类号码整数
1 a为非整数一
边为 b为非整数
非整数 c为非整数
两边为 a,b为非整数
非整数 b,c为非整数
a,c为非整数
三边a,b,c均为非整数
12
13
14
15
16
17
18
三个数
2 只给a
只给一边只给b
只给c
只给ab
只给一边只给b,c
只给ac
给出三个以上
19
20
21
22
23
24
25
非零数
3 a为0
一边为零 b为0
c为0
a,b为0
只给一边 b,c为0
a,c为0
三边a,b,c均为0
26
27
28
29
30
31
32
正数 4 a<0 33
一边<0 b<0
a<0
a<0且b<0 二边<0 a<0且c<0 b<0且c<0 三边均<0:a<0且b<0且c<0 34
35
36
37
38
39
输出条件构成
一般
三角
形
a+b>c
b+c>a
a+c>b
5
6
7