评审的时候比较关注用例对测试需求的拨备覆盖率率,一般指的广度,深度这一块是否需要把握?

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
提高测试用例覆盖率的分析方法
下载积分:600
内容提示:提高测试用例覆盖率的分析方法
文档格式:PDF|
浏览次数:405|
上传日期: 00:33:21|
文档星级:
该用户还上传了这些文档
提高测试用例覆盖率的分析方法
官方公共微信软件测试用例 【范文十篇】
软件测试用例
<项目名称>
功能测试用例
用例编号 项目名称 模块名称 项目承担部门 用例作者 完成日期
本文档使用部门 评审负责人 审核日期 批准日期
一、 功能测试用例
此功能测试用例对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求。这种测试的目标是核实数据的接受、处理和检索是否正确,以及业务规则的实施是否恰当。主要测试技术方法为用户通过GUI(图形用户界面)与应用程序交互,对交互的输出或接受进行分析,以此来核实需求功能与实现功能是否一致。
性能测试是一种对响应时间、事务处理速率和其他与时间相关的需求进行测试和评估。性能测试的目标是核实性能需求是否都已满足。可以分为以下几种进方式来组织进行测试。
预期性能测试用例
通常系统在设计前会提出一些性能指标,这些指标是性能测试要完成的首要工作,针对每个指标都要统写多个测试用例来验证是否达到要求,根据测试结果来改进系统的性能。预期性能指标通成以单用户为主。
用户并发测试是性能测试最主要的部分,主要是通过增加用户数量来加重系统负担,以检验测试对象能接收的最大用户数来确定功能是否达到要求。
大数据量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。大数据量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。
强度测试也是性能测试是的一种,实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。
负载测试也是性能测试中的一种。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
兼容性测试
在大多数生产环境中,客户机工作站、网络连接和数据库服务器的具体硬件规格会有所不同。客户机工作站可能会安装不同的软件例如,应用程序、驱动程序等而且在任何时候,都可能运行许多不同的软件组合,从而占用不同的资源。
范文二:● 统一过程(UP)是一种用例驱动的迭代式增量开发过程,每次迭代过程中主要的工作流 包括捕获需求、分析、设计、实现和测试等。这种软件过程的用例图(Use Case Diagram)是通过(19) 得到的。
(19)A. 捕获需求 B. 分析 C. 设计 D. 实现 ——
A,用例用于描述需求
● 关于原型化开发方法的叙述中,不正确的是(20)。 (20)A. 原型化方法适应于需求不明确的软件开发 B. 在开发过程中,可以废弃不用早期构造的软件原型 C. 原型化方法可以直接开发出最终产品 D. 原型化方法利于确认各项系统服务的可用性 ——
● CMM 模型将软件过程的成熟度分为 5 个等级。在(21) 使用定量分析来不断地改进 和管理软件过程。
(21)A. 优化级 B. 管理级 C. 定义级 D. 可重复级 ——
A,● 软件(22) 的提高,有利于软件可靠性的提高。 (22)A. 存储效率 B. 执行效率 C. 容错性 D. 可移植性 ——
C,只有容错性与可靠性有关
● 下列叙述中(36)是正确的。
(36)A.压迫测试:提供条件任软件发挥,最大限度地发掘软件的能力
B.重复测试:使软件在不够理想的条件下运行,观察软件对外部资源的要求和依赖的程度 C.重复测试:不断执行同样的操作,这种反复测试的主要原因是看内存是否不足 D.完整 C/S 体系结构测试,只包括网络运行和性能测试 ——
● 以下关于功能测试用例的意义的叙述,正确的是(38) 。 ① 避免盲目测试并提高测试效率
② 令软件测试的实施重点突出、目的明确
③ 在回归测试中无需修正测试用例便可继续开展测试工作 ④ 测试用例的通用化和复用化使软件测试易于开展
(38)A.①、②、③ B.①、③ C.②、③ D.①、②、④ —— D
● 用边界值分析法,假定 X 为整数,10≤X≤100,那么 X 在测试中应该取(40) 边界值。
(40)A.X=10,X=100 B.X=9,X=10,X=100,X=101 C.X=10,X=11,X=99,X=100 D.X=9,X=10,X=50,X=100 ——
最小的,最大的,比最小的小1,比最大的大1 (41)不是易用性测试包括的内容。
(41)A.安装测试 B.界面测试 C.菜单测试 D.文档测试
(42)不是文档测试包括的内容。
(42)A.合同文档 B.开发文档 C.管理文档 D.用户文档 ——
● 针对用户手册的测试,(43)描述不正确。
(43)A.准确地按照手册的描述使用程序 B.检查每条陈述 C.修改错误设计 D.查找容易误导用户的内容 C
● 阅读下列流程图:
当用判定覆盖法进行测试时,至少需要设计(44) 个测试用例。 (44)A. 2 B. 4 C. 6 D. 8 —— B
● WEB 应用链接测试不包括(45)。
(45)A.无链接指向的页面 B.错误的链接
C.客户端与服务器端的链接速率 D.不存在的页面文件 ——
C,这里的链接指超级链接的测试
● 在某大学学籍管理信息系统中,假设学生年龄的输入范围为 16~40,则根据黑 盒测试中的等价类划分技术,下面划分正确的是(46) 。 (46)A. 可划分为 2 个有效等价类,2 个无效等价类
B. 可划分为 1 个有效等价类,2 个无效等价类 C. 可划分为 2 个有效等价类,1 个无效等价类 D. 可划分为 1 个有效等价类,1 个无效等价类 ——
B,负无穷--16 16-40 40--正无穷
● 以下各项中,(47)属于安装测试应关注的内容。 ① 安装手册的评估② 安装选项和设置的测试
③ 安装顺序测试 ④ 修复安装测试与卸载测试
(47)A.①、②、③ B.③、④ C.②、③、④ D. ①、②、③、④ ——
D,所有内容都是安装测试内容,
● 下面关于软件测试的说法,(48)是错误的。 (48)A.软件测试就是程序测试
B.软件测试贯穿于软件定义和开发的整个期间 C.需求规格说明、设计规格说明都是软件测试的对象 D.程序是软件测试的对象
● 关于白盒测试与黑盒测试的最主要区别,正确的是(49)。 (49)A.白盒测试侧重于程序结构,黑盒测试侧重于功能 B.白盒测试可以使用测试工具,黑盒测试不能使用工具 C.白盒测试需要程序员参与,黑盒测试不需要 D.黑盒测试比白盒测试应用更广泛 —— A
● 软件测试按实施组织分,测试应该包括以下的(50) 。
① 开发方测试② 用户方测试③ 第三方测试④ 验收测试⑤ 确认测试 (50)A.①、②、③ C.①、②、④ B.③、④、⑤ D.①、②、③、④、⑤ ——
● 以下各项中,(51)属于需求说明书的评测内容。 ①系统定义的目标是否与用户的要求一致 ②设计的约束条件或限制条件是否符合实际
③是否考虑过软件需求的其他方案
④软件的行为与它必须处理的信息、必须完成的功能是否一致 (51)A.①、②、④ C.②、③、④ B.①、③、④ D.①、②、③、④ ——
●关于对第三方测试的描述,正确的观点是(52) 。
(52)A.既不是用户,也不是开发人员所进行的测试就是第三方测试 B.第三方测试也称为独立测试,是由相对独立的组织进行的测试 C.第三方测试是在开发方与用户方的测试基础上进行的验证测试
D.第三方测试又被称为β测试 —— B
● 以下控制流程图的环路复杂性 V(G)等于(54) 。
(54)A.4 B.5 C.6 D.1
● 通过疲劳强度测试,最容易发现(55)问题。
(55)A.并发用户数 B.内存泄漏 C.系统安全性 D.功能错误 ——
疲劳测试容易发现内存泄露
● 针对下列程序段,对于(A,B,C)的取值,以下(56)测试用例组合能够满足语 句覆盖的要求。
IF ( ( A + 10 ) = 2 OR ( B -20 ) < 3 ) THEN C = 0
IF ( ( A+30 ) > 10 AND ( C - 30 ) < 0 ) THEN B = 30
(56)A.(2,30,1) B.(-20,0,30) C.(-30,20,30) D.(2,20,3) ——
每条语句至少执行一次
● 针对下列程序段,对于(A,B)的取值,以下(57)测试用例组合能够满足条件覆盖的 要求。
IF ( ( A - 10 ) = 20 AND ( B + 20 ) > 10 ) THEN C = 0 IF ( ( A - 30 ) < 10 AND ( B - 30 ) < 0 ) THEN B = 30 ①A=50 B=-10 ②A=40 B=40 ③A=30 B=-10 ④A=30 B=30 (57)A.①② B.③④ C.①④ D.②④ ——
每一判定语句中的每个逻辑条件的可能值至少满足一次 ● 针对逻辑覆盖有下列叙述,(58)是不正确的。
(58)A.达到 100%DC 要求就一定能够满足 100%SC 的要求
B.达到 100%CC 要求就一定能够满足 100%SC 的要求 C.达到 100%CDC 要求就一定能够满足 100%SC 的要求 D.达到 100%MCDC 要求就一定能够满足 100%SC 的要求 —— B
● 下列叙述中,(60)是正确的。
(60)A.白盒测试又称为逻辑驱动测试
B.穷举路径测试可以查出程序中因遗漏路径而产生的错误 C.一般而言,黑盒测试对结构的覆盖比白盒测试高
D.必须根据软件需求说明文档生成用于白盒测试的测试用例 ——
白盒通过代码逻辑来测试
● 广义的软件测试包括(64) 。
(64)A.单元测试、集成测试、确认测试和系统测试 B.确认、验证和测试
C.需求评审、设计评审、单元测试和综合测试 D.开发方测试、用户测试和第三方测试 —— B
● GB/T 16260 将软件的内部(外部)质量属性划分为六大质量特性,分别是(65)(65)A.功能性,可靠性,易用性,效率,维护性和可移植性 B.功能性、可靠性、易用性、效率、稳定性和可移植性 C.功能性、可靠性、安全性、效率、易用性和可移植性 D.功能性、可靠性、兼容性、效率、稳定性和可移植性 ——
● 软件内部/外部质量模型中,以下(66)不是功能性包括的子特性。 (66)A.适合性 B.准确性 C.稳定性 D.互操作性 —— C
● 《GB/T 18905 软件工程 产品评价》中确定的通用评价过程包括四个方面,其 中有关“规定评价”部分包含的内容有(67) 。 (67)A.选择度量、建立度量评定等级、确立评估准则 B.指定质量模型、选择度量、建立度量评定等级 C.选择度量、建立度量评定等级、制定评价计划 D.确定产品类型、选择度量、建立度量评定等级 A
● 下列测试工具中,使用(68)执行自动化负载压力测试,使用(69)执行代码 静态结构分析,使用(70)执行网络测试。 (68)A.SmartBits C.Quick Test Professional B.Logiscope D.LoadRunner
(69)A.SmartBits C.Quick Test Professional B.Logiscope D.LoadRunner
(70)A.SmartBits C.Quick Test Professional
B.Logiscope D.LoadRunner
68、D,LoadRunner,负载压力测试,我用过 69、B,Logiscope,代码分析软件 70、A,SmartBits 网络分析软件
1. 在软件生命周期的哪一个阶段,软件缺陷修复费用最低
(A)需求分析(编制产品说明书)
(D)产品发布 2. 单元测试中用来模拟
(A) 父模块
(B)子模块
(C)驱动模块
(D)桩模块
被测模块调用
者的模块是
(A)随机地选取测试数据;
(B)取一切可能的输入数据作为测试数据;
(C)在完成编码以后制定软件的测试计划;
(D)选择发现错误可能性大的数据作为测试数据。
4. 侧重于观察资源耗尽情况下的软件表现的系统测试被称为
(A)强度测试
(B)压力测试
(C) 容量测试
(D)性能测试 5. 必
(A)单元测试
(B)集成测试
(C) 确认测试
(D)验收测试 6. 软件测试员究竟做些什么。
(A)软件测试员的目的是发现软件缺陷
(B)软件测试员的目的是发现软件缺陷,尽可能早一些
(C)软件测试员的目的是发现软件缺陷,尽可能早一些,并确保其得以修复 (D)软件测试员的目的是发现软件缺陷,尽可能早一些,并将其得以修复 7. 下
(A)因果图法是建立在决策表法基础上的一种白盒测试方法;
(B)等价类划分法是边界值分析法的基础;
(C)健壮性等价类测试的测试用例要求在有效等价类中取值;
(D)在任何情况下做黑盒测试皆应首先考虑使用错误推断法。 8. 不
(A)模块接口测试
(B)局部数据结构测试
(C) 路径测试(D)用户界面测试
9. 划分软件测试属于白盒测试还是黑盒测试的依据是
(A)是否执行程序代码
(B)是否能看到软件设计文档
(C)是否能看到被测源程序
(D)运行结果是否确定 10. 下
(A)测试计划
(B)测试用例
(C) 程序流程图
(D)测试报告
11. 几乎没有产品计划、进度安排和正规的开发过程的软件开发模式是
(A)大棒模式
(B)边写边改模式
(C) 瀑布模式 (D)快速原型开发模式
12. 如果某测试用例集实现了某软件的路径覆盖,那么它一定同时实现了该软件的
(A)判定覆盖
(B)条件覆盖
(C) 判定/条件覆盖
(D)组合覆盖 13. 下
(A)测试不能证明软件的正确性;
(B)测试员需要良好的沟通技巧;
(C)QA与testing属于一个层次的概念;
(D)成功的测试是发现了错误的测试。 14. 对
(A)连接速度测试
(B)链接测试
(C)平台测试
(D)安全性测试 15. 在
(A)采用黑盒测试,辅之以白盒测试;
(B)采用白盒测试,辅之以黑盒测试;
(C)只使用黑盒测试;
(D)只使用白盒测试。
16. 使用白盒测试方法时,确定测试数据的依据是指定的覆盖标准和
(A)程序的注释(B)程序的内部逻辑(C)用户使用说明书(D)程序的需求说明
17下列___不是软件自动化测试的优点
(A)速度快、效率高
(B)准确度和精确度高(C)能提高测试的质量
(D)能充分测试软件 18. 配置测试
(A) 是指检查软件之间是否正确交互和共享信息
(B) 是交互适应性、实用性和有效性的集中体现
(C) 是指使用各种硬件来测试软件操作的过程
(D) 检查缺陷是否有效改正
19.下列各项中___不是一个测试计划所应包含的内容
(A)测试资源、进度安排
(B)测试预期输出
(C)测试范围
(D)测试策略 20
(A)同事审查
(B) 公开陈述
(D) 编码标准和规范
名词解释:
1、 Beta测试:Beta测试是从用户角度进行的测试,是由软件的多个用户在一个或者多个
用户的实际使用环境下进行的测试。它是在开发者无法控制的软件环境下进行的软件现场应用。
2、黑盒测试: 黑盒测试也称功能测试或数据驱动测试,前提是已知产品所具有的功能,通
过测试来检测每个功能是否都正常使用。
(白盒测试又称为结构测试逻辑驱动测试或基于程序的测试。对程序的逻辑路径进行测试。
单元测试又称模块测试,是对源程序中每一个程序单元进行测试,检查各个模块是否正确实现了规定的功能,从而发现模块在编码中或算法中的错误.该阶段涉及编码和详细设计的文档.)
3、 软件缺陷----软件中含有符合下面5 条规则之一的问题称为软件缺陷:
◆软件未达到产品说明书标明的功能。
◆软件出现产品说明书指明不会出现的错误。
◆软件功能超出产品说明书指明的范围。
◆软件未达到产品说明书未指出但应达到的目标。
◆软件测试人员或用户认为软件难以理解,不易使用,运行速度缓慢等问题。 4、 测试用例:就是将软件测试的行为活动,做一个科学化的组织归纳。为特定目标而开发
的一组测试输入、执行条件和预期结果,其目标可以是测试某个程序路径或核实是否满
足某个特定的需求。
5、测试的配置管理: 配置管理的目的是建立和维护在软件生命周期中软件产品的完整性和一致性。一般来说,软件测试配置管理包括4个最基本的活动:(1)配置标识;(2)变更控制;(3)配置状态报告; (4)配置审计。
1、 如何划分等价类?
1).在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
2).在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,则可以确立一个有效等价类和一个无效等价类。
3).在输入条件是一个布尔量的情况下,可以确立一个有效等价类和一个无效等价类。 4).在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可以确立n个有效等价类和一个无效等价类。
5).在规定了输入数据必须遵守的规则的情况下,可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
6).在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
2、软件验收测试应完成哪些主要测试工作?
1)文档资料的审查验收 2)功能测试 3)性能测试 4)强化测试
5)性能降级执行方式测试 6)检查系统的余量要求 7)安装测试 8)用户操作测试
三角形,则提示“等边三角形”。给出程序伪代码、控制流程图、找出基本测试路径。 答:
1. Program triangle2 2. Dim a,b,c As Integer 3. Dim IsATriangle As Boolean
4. Output(“Enter 3 integers which are sides of a triangle”) 5. Input(a,b,c)
6. Output(“Side A is ”,a) 7. Output(“Side B is ”,b) 8. Output(“Side C is ”,c)
9. If (a<b+c) AND(b<a+c)AND(c<a+b) 10. Then IsATriangle =True 11. Else IsATriangle =False 12. EndIf
13. If IsATrangle
14. Then if(a=b)AND (b=c)
15. Then Output(“Equilateral”)
If(ab)AND(ac)AND(bc)
Output(“Scalence”)
Output(“Isosecles”)
21.Else Output(“NOT a Triangle”)
23.End triangle2
圈复杂度是 5。
(项目名称)
文档编写人签字:___________
测试负责人签字:__________ __
研发部经理签字:
XXXXXXXXXX公司软件测试组
XXXX年XX月
目的 ............................................................................................................................................... 1 项目概要 ....................................................................................................................................... 1 项目简介 ....................................................................................................................................... 1 功能测试用例................................................................................................................................ 1 4.1 4.2 5 6
功能模块A........................................................................................................................... 1 功能模块B ........................................................................................................................... 3
性能测试用例................................................................................................................................ 4 其他测试类型................................................................................................................................ 5
[编写测试用例目的。]
2 项目概要
3 项目简介
[XXX项目的简要介绍,包括项目背景、系统架构、测试环境和测试注意事项等。]
4 功能测试用例
4.1 功能模块A
[用例编号:功能模块的拼音缩写+编号,如“供应商管理”:GYSGL-001; 用例名称:建议采用“测试项-测试子项(或测试主题)”的方式]
第 2 页 共 9 页
4.2 功能模块B
第 3 页 共 9 页
5 性能测试用例
第 4 页 共 9 页
6 其他测试类型
第 5 页 共 9 页
第 6 页 共 9 页
范文四:用例书写规范
测试用例是执行测试工作的依据,不仅能有效的保障知识传递和测试的管理;更重要的是能确保测试的系统性和全面性。我们写测试用例就是为了在测试中尽可能多的发现软件存在的问题,尽可能的减少缺陷的遗漏,通过事前预防保障软件的质量。
该规范的目的是为用例设计人员提供测试用例编写的指导,提高编写的测试用例的可读性、合理性,及可执行性。使测试人员可以更好的执行测试,进而提高软件的质量。
一、 用例写作要点
1、 用例编号
测试用例编号是由字母和数字组合而成的,用例的编号应该具有唯一性,易识别性,比如可以采用统一的约定,产品编号_ST_系统测试项名_系统测试子项名_编号。这样看到编号就可以知道是做的什么测试,测试的对象是什么,也方便维护。
例如CMP系统中登陆模块的功能测试用例命名为:CMP_ST_GN_login_001。
2、测试项目
你现在这个测试用例所测的项目名,可以是测试用例所属的大类,被测需求,被测的模块,或者是被测的单元。
例如:权限管理模块
3、用例标题
测试标题是对测试用例的简单描述。用概括的语言描述该测试用例的测试点。每个测试用例的标题不能够重复,因为每个测试用例的测试点事不一样的。
例如:手机在没有SIM卡的情况下,拨打119.
4、重要级别
重要级别分为高中低三等:
高:保证系统基本功能、重要特性、实际使用频率比较高的用例;
中:重要程度介于高和低之间的测试用例
低:实际使用频率不高,对系统业务功能影响不大的模块或功能的测试用例。
注意:一般情况下,重要级别为高的测试用例,一个测试子项里有且仅有一个,大多数都是重要级别为中的测试用例。因为一般我们会进行一个系统测试预测试项,如果重要级别为高的太多,则就失去了预测试的实际意义。
5、预置条件
就是执行当前测试用例的前提描述,如果不满足这些条件,则无法进行测试。
例如要进行CMP的登录测试:预置条件应该有:网络正常,系统正常,数据库连接成功,服务器环境已经启动成功
6、测试输入
测试用例执行时,需要输入的外部信息。
例如:某一个文件,数据记录等
7、操作步骤
执行当前测试用例所要经过的操作步骤,需要给出每一步操作的详细描述,测试人员根据测试用例操作步骤,完成测试用例的执行
例如要进行CMP的登录测试的测试步骤:
1、打开火狐浏览器
2、在浏览器URL中输入地址:http://192.168.30.142:18080/cmp
3、在用户名文本框中输入:super
4、在密码文本框中输入:super
5、点击登录按钮或者按回车键
8、预期结果
当前测试用例的预期输出结果,用来与实际结果比较,如果相同则该测试用例通过,否则该测试用例失败。
例如:成功登录系统,界面元素正确
9、作者:谁写的
10、创建日期:写用例的日期
11、修改日期:最后一次修改用例的日期
12、测试结果:执行用例后的结果Pass、Fail、Block
最主要必不可缺的事前8个写作要点,需要融汇掌握
二、用例分类
用例计划分为三类:业务流程用例、单功能用例、集成测试用例。
业务流程用例
业务流程用例是为了测试软件是否能完成用户正常的业务处理流程,及对异常业务流程的控制处理是否完善而设计的用例。
此类用例要求覆盖到用户所有可能的业务流程,并且需要尽可能多的设计一些实际中因为误操作或不熟悉业务而出现的异常的业务流程。梳理出流程后,为每个流程编写一个测试用例。一个业务的所有流程构成该业务的流程测试用例文档。
单功能用例
单功能用例针对某一个单独的功能编写,是为了测试功能对正常数据、异常数据、空数据的处理控制存储是否正确而设计的用例。
此类用例是根据等价类划分法、边界值分析法、错误推测法等方法确认出测试数据,进
而设计出相对完备的测试用例的过程。此类用例的测试数据要求覆盖正常数据范围、异常数据范围、及空数据;每个单独的功能都要编写一个测试用例。一个页面所有功能构成一个单独的功能测试用例文档。
集成测试用例
集成测试用例是为了测试不同开发组提交的程序之间模块接口及数据传输处理是否正确而设计的测试用例。
此类用例主要用来测试维护数据的模块对被主功能模块使用的数据的维护控制是否正确,同时测试主功能模块对基础模块准备的数据的调用处理是否正确。此类用例要求覆盖所有的调用接口,及所有的基础数据状态。每个需要集成测试的功能单独构成一个集成测试用例文档。
三、用例编写原则
A、功能或流程划分时,一定要简单、清晰,一个测试用例只检查一个功能点或一个流程;否则测试用例会比较混乱,降低了可读性。
B、测试用例要有一个简单直观的名字,有助于读者对测试用例的理解。
C、测试用例的步骤描述要简单、清晰,一步就是一步。比如:第一步,用户登陆;第二步,用户点击“用户信息”;第三步,用户修改姓名为“张&三”;第四步,用户点击保存。这有利于提高用例的可操作性。
D、测试用例的数据要明确,特别是输入数据和期望结果。比如,测试准备数据:用户:张三,李四,王二。在排序后用例的预期结果为:李四,王二,张三。这样,用例在执行时,很清晰,有很高的可操作性,执行者对于执行结果是否正确也非常清楚。
E、测试用例需要保障唯一性,即功能用例之间不存在重叠,流程用例不存在包含关系。没有重复、冗余的测试用例,满足相应的行业标准。
F、描述要清晰、包括特定的场合、对象和术语,没有含糊的概念和一般性的描述。应尽量避免不确定的用词,如:如果、若、否则、大概、可能等。
G、测试用例中保证异常用例的比例达到75%以上。
H、测试用例应确保覆盖详细设计中的所有功能。单功能用例要覆盖所有数据操作处理的功能点;流程用例要尽可能的覆盖程序的各种路径,考虑存在跨年、跨月的数据,兼顾各种业务变化的可能。
I、对于无输入的操作,应该详细描述其具体的操作步骤和结果.。
J、测试用例需要保障数据的正确性和操作的正确性.首先保证测试用例的数据正确,其次预期的输出结果应该与测试数据发生的业务吻合.操作的预期结果应该与程序发生的结果吻合。
K、容错性(健壮性)测试:程序能够接受正确数据输入并且产生正确(预期)的输出,输入非法数据(非法类型、不符合要求的数据、溢出数据等),程序应能给出提示并进行相应处理。把自己想象成一名对产品操作一点也不懂得客户在进行任意操作。
L、压力测试:输入10条记录运行各个功能,输入30条记录运行各个功能,输入50条记录运行,进行测试。
M、完整(安全)性测试:对未经授权的人使用软件系统或数据的企图,系统能够控制的程度,城西的数据处理能够保持外部信息(数据库或者文件)的完整。
如何编制软件测试用例 如何设计编制软件测试用例
一、测试用例是软件测试的核心
二、什么叫测试用例
三、编制测试用例
四、测试用例在软件测试中的作用
五、相关问题
随着中国软件业的日益壮大和逐步走向成熟,软件测试也在不断发展。从最初的由软件编程人员兼职测试到软件公司组建独立专职测试部门。测试工作也从简单测试演变为包括:编制测试计划、编写测试用例、准备测试数据、编写测试脚本、实施测试、测试评估等多项内容的正规测试。测试方式则由单纯手工测试发展为手工、自动兼之,并有向第三方专业测试公司发展的趋势。
一、测试用例是软件测试的核心
软件测试的重要性是毋庸置疑的。但如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公司探索和追求的目标。每个软件产品或软件开发项目都需要有一套优秀的测试方案和测试方法。
影响软件测试的因素很多,例如软件本身的复杂程度、开发人员(包括分析、设计、编程和测试的人员)的素质、测试方法和技术的运用等等。因为有些因素是客观存在的,无法避免。有些因素则是波动的、不稳定的,例如开发队伍是流动的,有经验的走了,新人不断补充进来;一个具体的人工作也受情绪等影响,等等。如何保障软件测试质量的稳定?有了测试用例,无论是谁来测试,参照测试用例实施,都能保障测试的质量。可以把人为因素的影响减少到最小。即便最初的测试用例考虑不周全,随着测试的进行和软件版本更新,也将日趋完善。
因此测试用例的设计和编制是软件测试活动中最重要的。测试用例是测试工作的指导,是软件测试的必须遵守的准则。更是软件测试质量稳定的根本保障。
二、什么叫测试用例
测试用例(Test Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。
目前有以下一些解释:
"A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement." - IEEE Standard 610 (1990)
"Test cases are ways of stating how we will verify what the system actually does, and therefore they should be tracked and maintained as requirements. We introduce the notion of requirements type to separate these different expressions of requirements." - RUP
不同类别的软件,测试用例是不同的。不同于诸如系统、工具、控制、游戏软件,管理软件的用户需求更加不统一,变化更大、更快。笔者主要从事企业管理软件的测试。因此我们的做法是把测试数据和测试脚本从测试用例中划分出来。测试用例更趋于是针对软件产品的功能、业务规则和业务处理所设计的测试方案。对软件的每个特定功能或运行操作路径的测试构成了一个个测试用例。
三、编制测试用例
着重介绍一些编制测试用例的具体做法。
1、测试用例文档
编写测试用例文档应有文档模板,须符合内部的规范要求。测试用例文档将受制于测试用例管理软件的约束。
软件产品或软件开发项目的测试用例一般以该产品的软件模块或子系统为单位,形成一个测试用例文档,但并不是绝对的。
测试用例文档由简介和测试用例两部分组成。简介部分编制了测试目的、测试范围、定义术语、参考文档、概述等。测试用例部分逐一列示各测试用例。每个具体测试用例都将包括下列详细信息:用例编号、用例名称、测试等级、入口准则、验证步骤、期望结果(含判断标准)、出口准则、注释等。以上内容涵盖了测试用例的基本元素:测试索引,测试环境,测试输入,测试操作,预期结果,评价标准。
对测试用例划分等级有很多感触:许多时候当开发部门应客户需要或发现严重bug而快速发布一个新版本时,要求在限定的时间内快速测试以确保系统基本功能正常时,有些测试人员不知如何从现有的测试用例中挑选测试用例,更有甚者还是按顺序测试。所以一定需要划分级别,方便BVT或上述的测试。具体参加:《快速划分测试用例的优先级》
2、测试用例的设置
我们早期的测试用例是按功能设置用例。后来引进了路径分析法,按路径设置用例。目前演变为按功能、路径混合模式设置用例。
按功能测试是最简捷的,按用例规约遍历测试每一功能。
对于复杂操作的程序模块,其各功能的实施是相互影响、紧密相关、环环相扣的,可以演变出数量繁多的变化。没有严密的逻辑分析,产生遗漏是在所难免。路径分析是一个很好的方法,其最大的优点是在于可以避免漏测试。
但路径分析法也有局限性。在一个非常简单字典维护模块就存在十余条路径。一个复杂的模块会有几十到上百条路径是不足为奇的。笔者以为这是路径分析比较合适的使用规模。若一个子系统有十余个或更多的模块,这些模块相互有关联。再采用路径分析法,其路径数量成几何级增长,达5位数或更多,就无法使用了。那么子系统模块间的测试路径或测试用例还是要靠传统方法来解决。这是按功能、路径混合模式设置用例的由来。
3、设计测试用例
测试用例可以分为基本事件、备选事件和异常事件。设计基本事件的用例,应该参照用例规约(或设计规格说明书),根据关联的功能、操作按路径分析法设计测试用例。而对孤立的功能则直接按功能设计测试用例。基本事件的测试用例应包含所有需要实现的需求功能,覆盖率达100%。
设计备选事件和异常事件的用例,则要复杂和困难得多。例如,字典的代码是唯一的,不允许重复。测试需要验证:字典新增程序中已存在有关字典代码的约束,若出现代码重复必须报错,并且报错文字正确。往往在设计编码阶段形成的文档对备选事件和异常事件分析描述不够详尽。而测试本身则要求验证全部非基本事件,并同时尽量发现其中的软件缺陷。
可以采用软件测试常用的基本方法:等价类划分法、边界值分析法、错误推测法、因果图法、逻辑覆盖法等设计测试用例。视软件的不同性质采用不同的方法。如何灵活运用各种基本方法来设计完整的测试用例,并最终实现暴露隐藏的缺陷,全凭测试设计人员的丰富经验和精心设计。
四、测试用例在软件测试中的作用
1、指导测试的实施
测试用例主要适用于集成测试、系统测试和回归测试。在实施测试时测试用例作为测试的标准,测试人员一定要按照测试用例严格按用例项目和测试步骤逐一实施测试。并对测试情况记录在测试用例管理软件中,以便自动生成测试结果文档。
根据测试用例的测试等级,集成测试应测试那些用例,系统测试和回归测试又该测试那些用例,在设计测试用例时都已作明确规定,实施测试时测试人员不能随意作变动。
2、规划测试数据的准备
在我们的实践中测试数据是与测试用例分离的。按照测试用例配套准备一组或若干组测试原始数据,以及标准测试结果。尤其象测试报表之类数据集的正确性,按照测试用例规划准备测试数据是十分必须的。
除正常数据之外,还必须根据测试用例设计大量边缘数据和错误数据。
3、编写测试脚本的"设计规格说明书"
为提高测试效率,软件测试已大力发展自动测试。自动测试的中心任务是编写测试脚本。如果说软件工程中软件编程必须有设计规格说明书,那么测试脚本的设计规格说明书就是测试用例。
4、评估测试结果的度量基准
完成测试实施后需要对测试结果进行评估,并且编制测试报告。判断软件测试是否完成、衡量测试质量需要一些量化的结果。例:测试覆盖率是多少、测试合格率是多少、重要测试合格率是多少,等等。以前统计基准是软件模块或功能点,显得过于粗糙。采用测试用例作度量基准更加准确、有效。
5、分析缺陷的标准
通过收集缺陷,对比测试用例和缺陷数据库,分析确证是漏测还是缺陷复现。漏测反映了测试用例的不完善,应立即补充相应测试用例,最终达到逐步完善软件质量。而已有相应测试用例,则反映实施测试或变更处理存在问题。
五、相关问题
1、测试用例的评审
测试用例是软件测试的准则,但它并不是一经编制完成就成为准则。测试用例在设计编制过程中要组织同级互查。完成编制后应组织专家评审,需获得通过才可以使用。评审委员会可由项目负责人、测试、编程、分析设计等有关人员组成,也可邀请客户代表参加。
2、测试用例的修改更新
测试用例在形成文档后也还需要不断完善。主要来自三方面的缘故:第一、在测试过程中发现设计测试用例时考虑不周,需要完善;第二、在软件交付使用后反馈的软件缺陷,而缺陷又是因测试用例存在漏洞造成;第三、软件自身的新增功能以及软件版本的更新,测试用例也必须配套修改更新。
一般小的修改完善可在原测试用例文档上修改,但文档要有更改记录。软件的版本升级更新,测试用例一般也应随之编制升级更新版本。
3、测试用例的管理软件
运用测试用例还需配备测试用例管理软件。它的主要功能有三个:第一、能将测试用例文档的关键内容,如编号、名称等等自动导入管理数据库,形成与测试用例文档完全对应的记录;第二、可供测试实施时及时输入测试情况;第三、最终实现自动生成测试结果文档,包含各测试度量值,测试覆盖表和测试通过或不通过的测试用例清单列表。
有了管理软件,测试人员无论是编写每日的测试工作日志、还是出软件测试报告,都会变得轻而易举。
开发一个软件产品,会发布多个版本,伴随着测试用例(Test case)的不断维护, 使测试用例不断完善并与产品功能、特性(features)的变化保持一致,所以测试用例是和产品版本相关联的。特别是对提供软件服务的软件产品,多个版本常常共存,为客户提供服务,这时多个版本的测试用例也是并存的,所以在新建、修改、删除测试用例时要十分小心,并有相应的规则。
根据产品特性和test case一致性,分下面几种情况分别处理:
1. 产品特性没变,只是根据Late Discovery Bug 或 Remedy Ticket 来完善 test case,只有这时候可以修改Test case, 也就意味着当前修改的test case,对目前和以前的版本都有效。
2. 原有产品特性发生了变化,不是new feature, 而是enhanced features(功能增强), 这时候原有的 test case 只对先前版本(如version 1.0、2.0) 有效,而对新的版本(如 version 3.0)无效,
这时绝不能修改 test case ,只能增加新的 test case,这一点很重要。原有的 test case 依然对原有版本有效(如version 1.0、2.0)。
3. 原有功能取消了,这时只要在新版本上使之对应的test case置为inactive(无效)。
4. 完全新增加的特性,大家比较清楚,增加对应的、新的测试用例。
这样,新旧版本的相同测试用例得到一致的维护,测试用例数也不会成几、十几倍的增加,可以真正保证 test case 的完整性、有效性!
范文六:软件测试用例及其编写
91404部队李军锋栾静
[摘要]软件测试在软件开发过程中的重要性已经被人们普遍认可,然而作为测试工作的核心,测试用例的编写的重要性,往往被不少人忽略。本文结合笔者工作实际,对测试用例的概念、价值及其编写的原则和策略进行深入解析,以期引起人们对测试用例的重视,同时对测试人员起到指导性作用。[关键词]软件测试测试用例
随着计算机和软件在各行业中应用的日益广泛和深入,使得系统对软件的依赖性越来越强,导致软件的失效在整个计算机系统失效中的比例也越来越大,软件故障正逐渐成为导致计算机系统失效和停机的主要因素。软件测试是发现软件缺陷的主要手段。软件质量的重视程度越高,软件测试工作在软件开发过程中就越重要,其地位因此得到了前所未有的提高。
然而由于“软件测试是为了发现程序中的错误而执行程序的过程”这一行业基本公认的软件测试目的的驱使,有不少测试人员直奔结果而去,往往忽略了测试用例这一重要的环节,认为用例一旦执行完成,便没有多大价值了,于是有些人提出没有必要设计详细的测试用例,用
测试的checklist即可。
实际上,如何测试,用什么方式来测试,在什么环境和什么样的条件下进行测试,如何控制测试的工作量和避免重复的测试等,各种应该考虑的因素在测试工作中如何协调和同步都应该在测试用例中充分体现出来。测试用例是制订测试过程的基础,在软件测试工作中处于重中之重的地位。
1.关于测试用例1.1什么是测试用例简单的说,测试用例就是设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的执行结果。如果程序在这种情况下不能正常运行,而且这种问题会重复发生,那就表示软件有缺陷,必须将这个问题标示并记录,通知开发人员进行修改,在修改完成的下一个测试版本中,必须利用同一个用例来测试这个问题,确保该问题已经修改完成。
软件测试是有组织性、步骤性和计划性的,而设计测试用例的目的,就是未来能将软件测试的行为转换为可管理的模式,软件测试是软件质量管理中最实际的行动,同时也是耗时最多的一项。基于时间因素的考虑,软件测试行为必须能够加以量化,才能进一步让管理阶层掌握所需要的测试过程,而测试用例就是将测试行为具体量化的方法之一。
1.2测试用例的构成
一个完整的测试用例应该至少由以下几部分构成:(1)用例ID:唯一标识一个用例的编号;(2)用例名称:一个有字面明显意义的名字表示的测试用例的名称;
(3)用例描述:用简要的语言描述本测试用例要测软件的哪项特性或代码模块之类;
(4)前提条件:用例执行必备的前提条件,包括硬件、软件、测试工具、执行测试的特殊要求等;
(5)结束准则:测试用例正常或异常终止的条件;(6)测试步骤:详细描述测试执行时的步骤;(7)预期结果:测试预期的执行结果;(8)实际结果:预留空项,由测试执行人员如实填写;(9)判断准则:判断测试用例通过与否的依据[2]。根据不同的要求,有时还需要有用例的设计人员、审核人员、创建时间和测试环境等。其中创建时间一般可测试管理系统自动生成,测试环境如测试所需的软硬件资源和网络资源等,则是写在软件测试用例集的前面以及测试计划或方案中。
1.3测试用例的价值
AlanPage曾经提到“缺陷与测试用例是测试人员的中心世界”,对于测试人员来说,用例犹如开发人员设计的代码,不同之处是用例并不属于软件的一部分,而是为软件提供的一种服务。同时,测试用例也是测试执行过程的中心,是执行人员的工作依据,用例设计的好坏直接影响整个测试工作的效率和质量。如图1所示,测试用例在测试执行阶段处于中心位置。
使用测试用例进行测试的好处主要体现在以下几个方面:(1)在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率;
(2)测试用例的使用令软件测试的实施重点突出、目的明确;(3)在软件版本更新后只需修正少部分的测试用例便可开展测试工作,降低工作强度、缩短项目周期;
(4)功能模块的通用化和复用化使软件易于开发,而相对于功能模块的测试用例的通用化和复用化则会使软件测试易于开展,并随着测试用例的不断精化,其效率也不断提高。
图1测试用例在测试执行阶段的中心位置
2.编写有效的测试用例
有效的测试用例是检查软件错误和缺陷的有力手段和重要保障,编写时应注意以下几个方面。[4]
(1)规范测试用例的文档
编写测试用例文档应有符合内部规范要求的模板。测试用例文档一般由简介和测试用例两大部分组成。简介部分描述测试目的、测试规范、定义术语、参考文档、概述、测试环境等。测试用例部分按照上文提到的基本构成部分,逐一列述各测试用例。
(2)确定测试用例的设置
早期的测试用例是按照功能设置,后来引进了路径分析法,按路径设置用例。目前演变为按功能、路径混合模式设置用例。
(3)关注测试用例的设计
测试用例可以分为基本事件、备选事件和异常事件。设计基本事件的用例应该根据关联的功能、操作采用路径分析法设计,对孤立的功能直接按功能设计。基本事件的测试用例应包含所有需要实现的需求功能,覆盖率达100%。
设计备选事件和异常事件的用例要复杂和困难很多。可以采用软件测试的基本方法,等价类划分法、边界值分析法、正交实验法、错误推测法、因果图法、逻辑覆盖法等等进行用例设计。同时,灵活运用各种基本方法来设计完整的测试用例,并最终发现软件隐藏的的缺陷,离不开测试设计人员的丰富经验和精心设计。
同时,要设计有效的测试用例,至少应遵循以下几点:①测试需求覆盖率100%,保证完整性;②对测试环境、用户环境、模拟开发环境,以及它们之间的差别进行描述,即进行环境差异性分析;
③让其他人可以看懂并能够执行所设计的测试用例;④对于标准的用例模板,在充分考虑实际的情况下,可以参考甚至使用。
3.测试用例的编写原则
测试用例的编写应遵循一定的原则,避免随意性,以保证测试用例的质量。
3.1用例编写应遵循的要求(1)系统性
系统业务流程要能够完整说明整个系统的业务需求,系统由几个子系统组成以及它们之间的关系;模块业务流程要能够清楚说明子系统内部功能、重要功能点,以及它们之间的关系。
(2)连贯性
对于系统业务流程来说,各个子系统之间是如何连接在一起,如果需要接口,各个接口是否正确;如果依靠页面链接,页面链接是否正确;同级模块和上下级模块是如何构成一个子系统的,内部功能接口是否连贯。
表1测试用例编写原则
输入界面后的数据应与测试文档所记录的数据一致;预期结果应与测试数据发生的业务吻合;符合正常业务惯例;测试数据应符合用户实际工作业务流程;兼顾各种业务变化的可能;要符合当前业务的行业法律、法规。
(5)虚拟性人名、地名、电话号码等应具有模拟功能,要符合一般的命名惯例而不允许出现与现实知名人士、小说人名雷同的情况。
(6)可操作性
测试用例中应写清测试的操作步骤,不同的操作步骤有相对应的操作结果。
对于具体类型的测试用例,一般应该遵循的原则如表1所示。3.2测试用例的编写策略
测试用例编写策略是指组织和编写有效的测试用例的方法和技巧。一般可以根据测试用例的设计方法,遵循测试用例的编写原则,针对系统的特点编写有效的测试用例。但在具体实施过程中,还需要遵循一些有效地测试用例编写策略,才能达到最佳的测试效果。
测试用例编写策略可以从不同的角度分类,从测试内容角度可以分为流程用例和功能点用例。其中流程用例是针对业务流程编写的测试用例,通常采用场景法。功能点用例是针对具有功能点编写的测试用例,可以采用等价类划分、边界值、因果图等方法。
根据测试的策略又可以分为通过性测试用例和实效性测试用例。通过性测试用例主要是为了检验需求是否可以实现,一般采用等价类划分等方法。实效性测试用例主要为了尽可能多的发现缺陷,一般采用错误推测法、边界值分析等测试方法。
在具体的项目中,要灵活应用不同的测试策略。对于业务流程比较重要的系统,首先要考虑用场景法编写流程用例,要求覆盖所有的基本流和备选流。其次需要编写功能测试用例,要求覆盖所有的需求,保证需求的各个功能都能正常实现。对于所有的软件测试,首先要考虑通过性测试用例,以证明软件可以满足需求。在保证软件可以运行的基础上,才会使用实效性测试用例,以尽可能多的发现缺陷,保证软件具有一定的容错和安全能力。
总之,在组织和编写测试用例时,需要根据测试对象特点、团队的执行能力等各个方面综合考虑采用哪种策略,以及如何编写测试用例。
软件测试作为软件开发过程中的一个重要步骤,是保证软件质量的一个主要手段,这一点已经得到人们的广泛认可。测试用例作为测试工作的指导,是执行测试并最终产生结果的依据,更是软件测试质量稳定的根本保障。可以说,对测试用例的重视程度及其编写质量直接影响着整个测试工作的效果,应该受到足够的关注。参考文献
[1]肖利琼.软测之魂:核心测试设计精解[M].北京:电子工业出版社,2011
[2]柳纯录等.软件评测师教程[M].北京:清华大学出版社,2005[3]AlanPage等著.微软的软件测试之道[M].高博等译.北京:机械工业出版社,2009
[4]张向宏.软件测试理论与实践教程[M].北京:人民邮电出版社,2009
(1)对于每个功能,从类型1至类型N依次撰写相应用例;(2)对于边界、空值、格式错误、溢出这几个类型,一个功能如果有多个数据项测试类型相同,则可以放在同一个用例里;
(3)测试用例均为最小的用例覆盖要求;对于没有提及的用例类型,视业务需求撰写相应用例;(4)在测试过程中,输入数据可在测试用例规定的范围内做一定变化。(1)对于一个功能一个模块(页面),每个数据项输入或选中典型的取值,生成一个用例;(2)对于一个功能的多个模块(页面),一起生成一个用例;(3)对于多个功能的一个模块(页面),每个功能生成一个用例;
常规的测试(4)每个功能操作需覆盖,如删除对话框中,单击“确定”、
应分别生成两个用例步骤;用例“取消”
(5)输入框测试,在允许范围内尽可能多的覆盖字符类别,如中文、英文、数字等;(6)对于每个功能点,必须通过一组(一个或多个)用例满足其业务覆盖,对于某条记录的每个状态、能进行的每个操作,都生成一个用例。(1)对于每个数据项,生成一个边界用例(含最大、最小两个边界值);(2)字符串数据以字符串长度为计量单位;
边界值的测(3)对于布尔值数据的所有取值都需测试;
多个复选框为一组时,需测同时都选中和都不选中的试用例(4)情况;(5)对于下拉菜单、列表框、单选按钮组要有最大、最小的两个取值。对于每个必填数据项都生成一个用例(不提供空值的除
空值的测试
外,比如无空值的下拉框、有缺省值的单选按钮组等),则
预期结果提示该数据项为空。(1)对于输入框数据项都生成一个用例,预期结果提示该数据项格式错误;
格式错误的(2)日期输入框;测试用例(3)数字输入框;
(4)字符串输入框:电子邮箱、用户名、密码等带格式要求的。溢出范围的
对于输入框数据项都生成一个取值范围外的测试用例。
(3)全面性
应尽可能覆盖程序的各种路径、各个业务;应考虑存在跨年、跨月的数据及大量数据并发等情况。
(4)正确性(上接第229页)相关进程或拔掉物理网线等方式摆脱控制,某些病毒也可导致该软件不能正常使用。
2.虚拟仿真技术的应用
通过在机房计算机中安装虚拟仿真软件,可以模拟各种物理设备或学习环境,使机房能更好的满足各种教学需求。
1)虚拟光驱的使用
机房内计算机一般是无光驱的,而在机房内某些实验的进行需要光驱对光碟的读取,通过虚拟光驱软件的安装,并拷贝相关光盘的镜像文件到计算机内,可以解决这个问题。
2)虚拟机的使用虚拟机,是将本地主机上的硬盘和内存中的一部分拿出来,虚拟成一台或多台PC,通过这个技术,能够在现有系统中模拟出一台虚拟机器,并在虚拟机中能够安装操作系统和进行各种操作,常用的虚拟机软件有Vmware和VPC。但值得注意的是,使用一台虚拟机所用到的镜像文件通常有2-3G,应在教学中统一对软件的使用。这样一方面有利于教学管理,一方面也便于计算机机房维护。
3)其它虚拟软件的使用
通过计算机安装某些虚拟软件,还可以模拟其它设备或环境。如通过安装GNS3,可以模拟网络技术课程中的网络设备;安装某虚拟仿真软件,可以模拟某课程的真实实验环境。
3.Internet的连接
机房在有些情况下需要访问Internet,而大多数情况下学校都有自己的校园网。当机房以校园网为媒介连接Internet时,必须按照学校的网管中心的IP地址规划来配置机房内计算机的相关参数,诸如IP地址、网关、DNS地址。常见控制机房上网的手段有两种,一种是管理网络设备,一般做成web界面由机房管理员或网管中心人员控制;另一种是插拔机房内连接外网的线缆。
而在有些情况下,机房使用诸如ADSL、专线、拨号等方式连接In-ternet,此时一般利用服务器对其进行管理。总而言之,要维护、管理好计算机机房,一方面要与其他相关部门做好协调工作、建立完善的管理体制,另一方面,在日常繁琐的机房维护、管理工作中,相关人员不仅要钻研相关技术,更要有强烈的责任感及认真的工作态度。
参考文献[1]李军,张中华.加强机房管理、提高机房使用效益[J].北京工业职业技术学院学报,).
[2]陈国震.谈高校机房管理的几大策略[J].光谱实验室,).
[3]王亚琴,梁方.高校计算机公共机房的管理与维护.电脑知识与技术,2005,(17).
范文七:由安博测试空间技术中心/提供
一、测试用例是软件测试的核心
  软件测试的重要性是毋庸置疑的。但如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公司探索和追求的目标。每个软件产品或软件开发项目都需要有一套优秀的测试方案和测试方法。
  影响软件测试的因素很多,例如软件本身的复杂程度、开发人员(包括分析、设计、编程和测试的人员)的素质、测试方法和技术的运用等等。因为有些因素是客观存在的,无法避免。有些因素则是波动的、不稳定的,例如开发队伍是流动的,有经验的走了,新人不断补充进来;一个具体的人工作也受情绪等影响,等等。如何保障软件测试质量的稳定?有了测试用例,无论是谁来测试,参照测试用例实施,都能保障测试的质量。可以把人为因素的影响减少到最小。即便最初的测试用例考虑不周全,随着测试的进行和软件版本更新,也将日趋完善。
  因此测试用例的设计和编制是软件测试活动中最重要的。测试用例是测试工作的指导,是软件测试的必须遵守的准则,更是软件测试质量稳定的根本保障。
  二、什么叫测试用例
  测试用例(Test Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略,内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。
  不同类别的软件,测试用例是不同的。不同于诸如系统、工具、控制、游戏软件,管理软件的用户需求更加不统一,变化更大、更快。笔者主要从事企业管理软件的测试。因此我们的做法是把测试数据和测试脚本从测试用例中划分出来。测试用例更趋于是针对软件产品的功能、业务规则和业务处理所设计的测试方案。对软件的每个特定功能或运行操作路径的测试构成了一个个测试用例。
  三、编写测试用例
  着重介绍一些编写测试用例的具体做法。
  1、测试用例文档
  编写测试用例文档应有文档模板,须符合内部的规范要求。测试用例文档将受制于测试用例管理软件的约束。
  软件产品或软件开发项目的测试用例一般以该产品的软件模块或子系统为单位,形成一个测试用例文档,但并不是绝对的。
  测试用例文档由简介和测试用例两部分组成。简介部分编制了测试目的、测试范围、定义术语、参考文档、概述等。测试用例部分逐一列示各测试用例。每个具体测试用例都将包括下列详细信息:
用例编号、用例名称、测试等级、入口准则、验证步骤、期望结果(含判断标准)、出口准则、注释等。以上内容涵盖了测试用例的基本元素:测试索引,测试环境,测试输入,测试操作,预期结果,评价标准。
  2、测试用例的设置
  我们早期的测试用例是按功能设置用例。后来引进了路径分析法,按路径设置用例。目前演变为按功能、路径混合模式设置用例。
  按功能测试是最简捷的,按用例规约遍历测试每一功能。
  对于复杂操作的程序模块,其各功能的实施是相互影响、紧密相关、环环相扣的,可以演变出数量繁多的变化。没有严密的逻辑分析,产生遗漏是在所难免。路径分析是一个很好的方法,其最大的优点是在于可以避免漏测试。
  但路径分析法也有局限性。在一个非常简单字典维护模块就存在十余条路径。一个复杂的模块会有几十到上百条路径是不足为奇的。笔者以为这是路径分析比较合适的使用规模。若一个子系统有十余个或更多的模块,这些模块相互有关联。再采用路径分析法,其路径数量成几何级增长,达5位数或更多,就无法使用了。那么子系统模块间的测试路径或测试用例还是要靠传统方法来解决。这是按功能、路径混合模式设置用例的由来。
  3、设计测试用例
  测试用例可以分为基本事件、备选事件和异常事件。设计基本事件的用例,应该参照用例规约(或设计规格说明书),根据关联的功能、操作按路径分析法设计测试用例。而对孤立的功能则直接按功能设计测试用例。基本事件的测试用例应包含所有需要实现的需求功能,覆盖率达100%。
  设计备选事件和异常事件的用例,则要复杂和困难得多。例如,字典的代码是唯一的,不允许重复。测试需要验证:字典新增程序中已存在有关字典代码的约束,若出现代码重复必须报错,并且报错文字正确。往往在设计编码阶段形成的文档对备选事件和异常事件分析描述不够详尽。而测试本身则要求验证全部非基本事件,并同时尽量发现其中的软件缺陷。
  可以采用软件测试常用的基本方法:等价类划分法、边界值分析法、错误推测法、因果图法、逻辑覆盖法等设计测试用例。视软件的不同性质采用不同的方法。如何灵活运用各种基本方法来设计完整的测试用例,并最终实现暴露隐藏的缺陷,全凭测试设计人员的丰富经验和精心设计。
北京测试空间是注册于北京市海淀区高新技术园的软件企业,
目前主要业务范围包括软件测试管理工具研发、软件测试
项目外包和软件测试专业技术人才培养及派遣。
北京测试空间地址
:北京市海淀区学院路40号大唐电信测试空间楼
联系电话:010-30
范文八:软件测试用例的设计
作者:王静兰
一个项目最终呈现在用户面前的质量,与测试执行的程度与力度是密不可分的。测试用例设计的基本目的,是确定一组最有可能发现某个错误或者某类错误的一组测试数据。测试用例构成了设计和制定测试过程的基础,因此测试用例的质量在一定程度上决定了测试工作有效程度。一个好的测试用例使得测试工作的效果事半功倍,并且能尽早的发现一些隐藏的BUG,测试用例的设计是软件开发中的重中之重。
关键词:软件测试,测试用例,TESTCASE,用例设计
A test case is a series of tests used to determine whether one particular thing works properly. Often that means trying the same operation over and over again with little in the procedure.
A test case is a document that describes an input, action, or event and an expected response, to determine if a feature of an application is working correctly. A test case should contain particulars such as test case identifier, test case name, objective, test conditions/setup, input data requirements, steps, and expected results.
测试用例在软件产品中的作用和意义
软件产品化之后给人们日常生活和工作带来了极大的便利。同样的,也使人们对软件产品的质量重视上升到了更进一步的高度。随着软件危机的不断出现以及人们对于软件更进一步的认识,测试的地位得到了前所未有的提高,并且人们意识到:测试开始的时间越早,软件的缺陷将越早被发现,带来整个软件开发中的成本也下降越多。软件测试是发现软件中缺陷的主要手段和唯一有效的方法。软件质量的重视度越高,软件测试工作在软件开发过程中就越重要。
完全覆盖测试又要求测试工作的力度和深度以及每一种现实中可能发生的操作都要保证正确,很多人觉得这个似乎是矛盾的。软件测试中永远不可能做到穷举测试,又想使得测试工作的效率达到最高,那么该如何兼顾工作量和效率的问题,往往成为测试工作中的瓶颈问题所在。如何测试,用什么方式来测试,在什么环境和什么样的条件下进行测试,测试的工作量和如何避免重复的测试,等等各种应该考虑的因素在测试工作中如何协调和同步,在测试用例中应该充分描述这些问题。
因此,软件测试工作中处于重中之重的测试用例的设计要求也随之上升到了更高的层次。测试用例不但构成了设计和制定测试过程的基础,而且测试的深度与测试用例的数量成正比。一般来讲,判断测试是否完全的一个主要评测方法是基于需求的覆盖,而这个又是以确定、实施和(或)执行的测试用例的数量为依据的;测试工作量与测试用例的数量成比例;测试设计和开发的类型以及所需的资源主要都受控于测试用例。这些使得测试用例在整个的软件开发过程中处于更加重要的地位。
测试用例的定义
测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
Robert V.Binder是这样描述的,测试实例:输入、执行条件,及为一个特殊目标所开发的预期结果的集合。一个定义IUT(被测实现,即被测代码)及其环境、测试输入或条件,及预期结果的测试前状态的表示或实现。
测试用例应该包含的要素
首先测试用例应该包含软件或者项目名称、所服务的范围、背景、作者、编写时间等文档类信息;根据测试用例的定义和目的,测试用例的内容应该有:标题和用例编号、版本号、修改记录,针对目标和假设前提/可能发现的错误,输入数据/代码,测试步骤,预期输出和错误发现方法。
测试用例中需要注意的问题
每个测试用例清楚地阐述了正在进行评估的用例、用例场景、测试目标或条件的有关说明。每个测试用例都描述了预期结果和评估该结果的方法。
对于每个测试需求,在测试用例中需要考虑在正面测试和负面测试的条件下的测试,或者通过确定两个测试用例来实现,一个测试用例代表预期的条件,它可用于核实行为是否正确或符合预期(正面测试)。另一个测试用例代表不可接受的、异常的或意外的条件,它可用于核实测试需求是否未以非预期方式执行(负面测试)。
在一般情况下,对于测试的每个需求来说,至少要有一个正面测试用例和为数较多的负面测试用例,以此来检查在异常情况下系统能否正常处理,或者用户进行了错误的操作时的友好提示等等。
测试用例已被确定用来执行测试目标中所有的产品需求行为,包括(视情况而定): 功能 、数据确认 、业务规则实施 、测试目标工作流程或控制 、数据流 、对象状态 、性能(包括工作量、配置和强度) 、安全性/可访问性 、兼容性。每个测试用例都说明或者/代表一个唯一的输入集或事件顺序,它能够产生唯一的测试目标行为,复审那些产生相同行为的测试用例并判定它们是否等同,即它们是否都执行测试目标中的路径。
每个测试用例(或每组相关的测试用例)确定初始的测试目标状态和测试数据状态。测试用例名称和/或 ID 与测试工件命名约定一致。 2
测试用例的设计方法概述
根据测试的方法分为黑盒测试和白盒测试,相应的测试用例的设计方法也可以分为针对黑盒测试的用例设计和针对白盒测试的用例设计。
至今提出的测试用例设计方法有许多,下面简要的介绍一些比较重要的、常用的方法。
白盒测试的测试用例设计方法
2.1.1 逻辑覆盖
逻辑覆盖包括:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖,各自的定义简略描述如下:
语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。
判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。
条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。
判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,每个判断中的每个分支至少执行一次。 条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。
路径测试就是设计足够的测试用例,覆盖程序中所有可能的路径。
2.1.2 基本路径测试
基本路径测试方法把覆盖的路径数压缩到一定限度内,程序中的循环体最多只执行一次。
它是在程序控制流图的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,设计测试用例的方法。设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。
黑盒测试的测试用例设计方法
2.2.1 等价划分
所谓等价类划分是指一套被选择的值,这些值分别代表了许多众多的可能输入值,程序对其处理的方式都是一样的。
等价类划分的方法作为继边界值分析方法之后补充的测试用力设计试用的一种方法。划分等价类、确定测试用例
等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。
等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例 等价类的划分有两种不同的情况:
有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。
无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。
在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。
2.2.2 边界值分析
在设计测试用例确定输入和输出参数时,大多数情况下都是用边界值分析方法,采用边界值分析设计的测试用例发现程序错误能力最强。 边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。 人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。 2.2.3 错误推测法
人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推测法。
错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。
2.2.4 因果图
如果程序的功能说明中含有输入条件的组合情况,则一开始就可以选用因果图法。如果在测试时必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。
因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。
测试用例的评审及维护
3.1 测试用例的评审
测试用例在设计之后需要经过评审,需要评审的内容如下:
用例是否完整?是否每一个需求都有其对应的测试用例来验证? 是否每一个设计元素都有其对应的测试用例来验证?
事件顺序,能否产生唯一的测试目标行为?
是否每隔测试用例都阐述了预期结果?
是否每个测试用例(或每组相关的测试用例)都确定了初始的测试目标状态和测试数据状态?
测试用例是否包含了所有单一的边界?
测试用例是否包含了所有的业务数据流?
是否所有的测试用例名称,ID都与测试工件命名约定一致?
测试用例评审时需要参加的人员:项目经理,系统分析员,测试设计员,测试员
用例库的更新维护
随着软件项目的开发,用例库的数据随着项目的进展动态变化也是需要维护的,主要包括:不合适用例的修改、冗余用例的删除、测试用例的增加,并对进行的操作在备注中署名修改者以及修改时间和改动原因。 4
测试用例实例
参考文献:
[1] 郑人杰,殷人昆,陶永雷,实用软件工程(第二版),清华大学出版社,2001.10
[2] 杨文龙,姚淑珍,吴芸,软件工程;电子工业出版社,1997.11
[3] Robert V.Binder 著,华庆一,王斌君,陈莉 译,人民邮电出版社,2001.4
-----------------------------------------------------------------------------------
[作者简介]
姓名:王静兰,女,2002年毕业于西安电子科技大学,计算机信息管理专业。
研究方向:软件测试管理
业余爱好:听音乐、爬山 阅读(655) | 评论(0) | 转发(0) |
范文九:案例释疑
案例1-1:终点线前的遗憾
课堂上讲述该案例,目的是让学员明白软件在现代科学中的地位是非常重要的,丝毫软件缺陷都可能带来严重后果。教师不必全部讲述,需摘略其中重点内容。
作为长期火星探测战略的一个步骤,美国航宇局于日和日先后将两颗探测器送往火星。其中先行一步的火星气候轨道器(MCO)经过6.65亿公里的飞
行,终于在9月份飞到了火星,但在准备进入
绕火星运行的轨道时,却不慎失手,让关注它
的人们大失所望。令人吃惊的是,此次事故的
原因竟是一个非常低级的失误。
根据对进行入轨机动点火前采集到的跟踪数
据的分析,项目官员认为火星气候轨道器失踪
的原因是导航出了重大错误,致使探测器飞到
了比预定高度低很多的高度。实际上,在因飞
入火星背面而与地面“正常”地失去联络之前,
探测器就已经走上了一条将把它带到距火星
表面最近仅57公里的错误路线。这一高度大
大低于技术人员提出的约85~100公里的最小安全距离,与预定的140~150公里高度更是相差甚远。高度太低,探测器有可能在火星的大气中因气动热而被“火葬”,甚至还有可能坠毁在火星表面上。
事故发生后,主管该项目的美国航宇局喷气推进实验室等部门迅速开始了调查工作。初步分析时认定,问题可能出在卫星软件上,还可能是地面系统的问题,人员操作失误的可能性也不能排除。但最后查出的结果却让人难以置信:造成飞行高度太低的原因竟然是公制和英制的转换问题。调查人员在9月30日公布的一份报告中称,探测器制造商洛马公司对探测器的一项关键性操作提供的是英制单位的数据,而美国航宇局喷推实验室的导航人员想当然地以为是公制,未加换算便直接将英制数据输入了采用公制数据的计算机系统内,从而造成了严重的导航错误。
问题出在一个导航软件表上。这个出错的推力器校定表用在确定探测器位置的地面导航软件中。它的作用是把遥测到的推力器点火工作次数转换成提供给探测器的冲量,以消除因推力器点火工作造成的弹道计算中的剩余误差。喷推实验室在编制表时对推力器每次工作的冲量使用的是牛·秒这一公制单位,但由洛马公司提供的数据使用的却是英制的磅·秒,而这样计算出的冲量值只是实际值的22%。三轴稳定的该探测器使用反动轮控制姿态,其推力器每隔大约13~15小时点火一次,以降低轮的转速。这些点火工作每次只会引起几毫米/秒的速度变化,但每周要进行11次以上。起初剩余误差很小时,弹道计算可以很快收敛,但到后来收敛性就比较差了。
出现这种低级错误使有关部门感到很难堪。美国航宇局负责空间科学项目的副局长韦勒称,这已不能简单地说成是错误,这是美国航宇局系统工程工作的失败。
案例1-2:“一·一五”大瘫痪
课堂上讲述该案例,用于让学员明白软件缺陷的危害及缺陷是不可避免的,
任何设计上的漏
洞都会被别有用心的人利用。教师不必全部讲述,需摘略其中重点内容。
日,美国电话电报公司的长途电话交换系统陷入全面瘫痪。这是一起奇怪的、可怕的、波及面广泛的事故。6万名用户的电话无法使用。对电话业来说,服务中断是一种由来已久、素为人知的风险。飓风的侵袭可能会折断上千条电缆,地震会破坏埋在地下的光缆干线,交换站也有可能被大火烧得精光。电话公司为诸如此类的事情制订了紧急应变计划,多年来也在这方面积累了深厚的经验。然而,“一·一五”大瘫痪却令其措手不及。它的影响范围之大令人难以置信,而且,找不出什么明显的物理原因。
事故发生在一个星期一的下午,最早是曼哈顿的一家交换站开始出现故障。但是,与一般的物理故障不同,这次故障似乎具有传染性,美国境内一家又一家交换站陆续感染上此类症状。一连串的反应最终摧毁了AT&T电话网的一半,另一半则由于通话量的急剧增加而手忙脚乱。
在9个小时之内,AT&T的软件工程师们设法弄清了瘫痪的原因。“罪犯”是AT&T自己开发的软件中的一个“臭虫”(bug)——即程序中的一个错误。
这起事故使AT&T忍垢蒙羞。它对公司长久以来引以为自豪的服务可靠的名声是一个巨大打击。几天后,AT&t 的最高首脑鲍勃·艾伦在美国各大报纸上发表了“致用户的公开信”,其中说:“我们没有达到自己的质量标准。事情就是如此简单。这对我们来说是不可接受的,对你们来说也是如此……我们十分清楚,人们对AT&T服务的依赖性有多强,所以贝尔实验室的科学家和公司的网络工程师正在尽其所能,以确保类似事件下再发生……”,在电话业竞争日趋激烈的形势下,这样的声明当然不是这个电信巨头愿意作出的。
虽然AT&T就“一·一五”大瘫痪向用户进行了公开道歉,但由于技术的复杂性,事故的全部真相及其含义从未被彻底披露和解释过。引发事故的根本原因鲜有人知,这使它从一开始就被笼罩在一种扑朔迷离的气氛当中。事情已变得很明白,没有人能够“保护”系统不受破坏。而系统到目前为止所遭受的最严重的破坏,都是系统自身造成的。这次,没有人再出来说什么这只是意外事故,永远不会再发生了等等。到1991年,用报道过“一·一五”大瘫痪的斯特林的话说,系统的保卫者们已经遇到了他们最难以捉摸的对手,这个对手就是——系统本身。
案例1-3:鲜为人知的核危机揭秘
课堂上讲述该案例,用于让学员明白软件在现代科学中的地位是非常重要的,丝毫软件缺陷都可能带来严重后果。教师不必全部讲述,需摘略其中重点内容。
日,苏联刚刚启用的早期预警卫星系统也造成了一次假的核攻击警报。苏联为了监视洲际弹道导弹实际发射情况,为其预警卫星精心选定了一种特殊的轨道,这种名为“闪电”的卫星,在飞过南半球时,与地球距离极近;但在卫星经过北半球时,与地球的距离越来越远,相当于距离月球的近十分之一。苏联的“眼睛”早期预警卫星高悬于欧洲北部上空,可长时间以准确的观察角度监测美国本土的导弹发射基地。然而,在莫斯科时间日午夜过后不久,太阳、苏联预警卫星与美国导弹基地连成了一条直线,使阳光在高空云层中的反射强度达到了极点。
这种现象是不可预见的,自从该预警卫星系统在前一年投入运行以来,这种罕见的排列奇观恐怕还是首次出现。在接受记者采访时,苏联早期预警卫星系统地下秘密监控中心——“谢尔普霍夫-15”的负责人斯坦尼斯拉夫·彼得罗夫中校指出,新卫星系统监测到美国从其本土导弹基地发射了数枚导弹。彼得罗夫曾多次收到报告说,美国将发动大规模核打击,企图凭一次打击就摧毁苏联的武装力量。
这次的假警报为什么未能引发核战争呢?也许苏联指挥机关不想仅凭一种全新而独特的系统所提供的数据就发动一场毁灭人类的核战争。但从另一个角度考虑,假设阳光反射造成系统报告说美国发射了数百枚导弹的话,那么苏联就很有可能错误地发射导弹进行“还击”。彼得罗夫还说,他拒绝将这一警报向他的上级汇报,是因为“要发动一场战争也绝不会仅发射五枚导弹,区区五枚导弹不会造成多大的破坏。”
案例1-4:两位数加法计算器软件的功能说明
该案例介绍了两位数加法计算器软件的功能和操作步骤。需要学员描述如何对该软件进行测试。
软件功能说明:完成-99到99的两个数的加法计算,每个数据以回车结束输入。
屏幕显示情况是:
案例1-5:案例1-4测试总结
该案例是案例1-4的加法计算器软件的测试总结。
程序的错误有如下几点:
1. 设计错误:没有任何提示信息告诉用户程序的功能,用户怎样才能知道自己处在本程序
的运行环境中?
2. 设计错误:没有在线帮助,用户怎么知道自己要干什么?如果录入了一个错误的数据会
怎么样?这种帮助应该以简洁的语句一直显示在屏幕上。
3. 设计错误:用户如何去终止程序的运行?这条帮助信息也应显示在屏幕上。
4. 代码错误:计算结果“5”的显示没有与其他输入的数据显示对齐。
软件测试人员要做的事情:
A. 以一个最简单的用例开始,如上所述,以2+3开始。
B. 设计程序可以进行处理的一组测试用例,这组测试用例的设计并非是很简单的,我们可
以算一算,两位数的范围是从-99到99,实现两个两位数的累加意味着有199*199=39601种可能性,当然没有必要把这39601种可能逐个去试,但究竟应该选择哪些数据测试呢?这里选择了八组数据:
C. 对这八组用例进行测试,记录下测试结果。假设测试结果如下:
? 程序对所有的非负数的处理都是正确的;
? 程序不允许用户输入两个字符以上的数据,即:当用户输入了两个字符后,再输入
任何字符均作为回车符处理,造成了负数的输入只能从-1到
? 输入了负数后,程序陷入死锁状态,即程序并不具备对负数处理的功能。
教师总结:
事实上,作为一个好的测试人员,还需要仔细分析程序,例如:计算结果的存储设计、数据输入的存储设计。在这个程序中,计算结果的范围是从-198到198,但程序只能对非负数进行处理,因此实际计算结果的范围是从0到198。如果程序员以一个字节来存储计算结果,则要想能够存储负数,一个字节所能表示的数据的范围只能从-127到127,这时程序在处理大于127的计算结果时就会出错。如果程序对用户输入的字符是根据字符的ASCII码来进行处理的,程序代码表述如下:
IF ASCII_CODE_OF_ENTERED_CHAR is less than 48
THEN reject it as a bad character
ELSE IF ASCII_CODE_IF_ENTERED_CHAR is greater than 57
THEN reject it as a bad character
ELSE it is a digit , so accept it .
此时,测试人员就需要对这些判断条件的临界值(47、48、57、58)进行测试,以确定程序员没有写错判断条件。
案例1-6:Win2000成功内幕
课堂上讲述该案例,用于让学员明白Windows 2000操作系统在开发过程中,测试所起到的作用。教师不必全部讲述,需摘略其中重点内容。
日,在旧金山的BILL GRAHAM市政演讲大厅,比尔·盖茨的主题演讲中,除了向到场的商家和记者介绍和展示视窗2000的强大功能外,还道出了它的研制内幕。 可以说,微软视窗2000的开发过程堪称迄今为止世界上最庞大的软件设计工程之一。其间巨大的投资,没完没了的分析测试,数千万行程序代码的编辑,所有这一切最终凝结为微软有史以来最完美的操作系统版本——视窗2000。
毋庸置疑,产品的成功首先还要归功于杰出的开发研制队伍。部分开发人员来到了发布会现场,当盖茨向开发人员致谢时,他们博得了全场最热烈的掌声。据介绍,整个视窗2000项目组有近5000人,其中除微软的开发人员之外,还包括合作伙伴,以及美国当地和全球的合作开发人员。总的说来,这个庞大的项目组包括四大部分:程序管理员、程序开发员、测试者和外部的合作伙伴及客户。
在视窗2000开发过程中的4年时间里,整个项目组的人员将视窗2000纳入为他们生活的主题,下面的日程表描述了他们的典型的一天。
每天的工作周期是从下午3∶00开始,因为项目组的开发人员在这一时间开始构建产品。开发人员要对有关管理和组织代码的所有方面负责。他们要设计出基于最初方案的原始代码框架,评测其他开发人员的代码以确保质量,并寻求最好的产品可靠性和安全性。这个构建过程包括连接和编译数十亿的视窗2000代码行。
晚8∶00,构建过程结束。开发人员完成的产品将移交给“校验小组”,也就是测试人员。测试人员负责检验产品的各个性能特征,以保证产品的质量和运行可靠性。这还意味着他们要基于预计的产品性能要求建立许多测试模块和应用,并开发一些工具以识别BUG(程序缺陷)。他们将开发人员做好的模块安装在自己的台式机上以及实验室环境进行全面的测试。据统计,这部分人员超过了1500人。除此之外,还有数以百计的微软beta级合作伙伴。
小范围的测试之外,更大范围的测试将彻夜不停地运行,包括产品在网络上的使用情况、最新的补丁程序的性能改进等等。据介绍,视窗2000的测试代码程序的长度同样是数千万行。而在头一天的构建和整夜的测试之后,第二天早9∶30程序管理员们将准时聚在一起。所谓程序管理员就是客户代言人,他们要做的事情是写下客户需求的每一个细节,并把测试版的有关客户反馈信息传达给开发人员。程序管理员每天一早,根据前一天的进展以及客户的需求将提出新的意见和思路,供开发人员参考。
这就是项目组的典型而又完整的一天。日复一日,就是这样经过将近4年的时间,我们见到了视窗2000。
案例1-7:浮点运算不精确产生的灾难
课堂上讲述该案例,让学员明白软件缺陷的可能会发生在任何地方,甚至是一些简单的运算中。教师不必全部讲述,需摘略其中重点内容。
日,在海湾战争期间,沙特阿拉伯的摩达地区设置的美国爱国者导弹,拦截伊拉克的飞毛腿导弹失败。飞毛腿导弹击中了美国的一个兵营,造成28名士兵死亡。美国总审计局(GAO)对失败原因做了详细的分析,并且确定潜在的原因在于一个数据计算不
爱国者导弹系统中含有一个内置的时钟,实现为一个计数器,每0.1秒就加1。为了以秒为单位来确定时间,程序将用一个24位的近似1/10的二进制小数值来乘以这个计数器的值。特别地,1/10的二进制表达式是个无穷序列
其中,方括号里的部分是无限重复的。计算机只用这个序列的开头位和二进制小数点右边的头23位来近似的表示0.1。我们称这个数为x,那么:
A. x-0.1的二进制表示是什么?
B. x-0.1的近似十进制值是什么?
C. 当系统启动时,时钟从0开始,并且一直保持计数。在这个例子里,系统已经运行
了大约100个小时。程序计算的时间和实际的时间之差为多少?
D. 系统根据一枚来袭的导弹的速率和它最后被雷达侦测到的时间,来预测它将在哪里
出现。假定飞毛腿的速率大约是2000米/秒,对它的预测偏差了多少?
正常地,一个通过一次读取时钟得到的绝对时间中的轻微错误不会影响跟踪的计算。反而,它应该依赖于两次连续的读取之间的相对时间。问题是爱国者导弹的软件已经升级成使用更精确的函数来读取时间,但是不是所有的函数调用都用新的代码替换了。结果就是,跟踪软件使用了一次读取的精确时间,但其他软件读取的不是精确时间。
软件测试分析报告
班级:软件嵌入式姓名:苗尊岭
一、测试计划
本测试项目拟对档案管理系统的日期录入进行测试。
测试的目标是要找出日期录入错误,是否符合系统要求。
本次测试采用分别采用白盒和黑盒测试用例设计技术。测试手段为手工测试,本测试计划面向开发人员。
1.2质量风险摘要:
1.3测试进度计划:
1.4进入标准:
1) “测试小组”配置好软硬件环境,并且可以正确访问这些环境。
2) “开发小组”已完成所有的特性和错误修复并完成修复后的单元测试。
3) “测试小组”完成“冒烟测试”——程序包能打开,随机的测试操作正确完成。
1.5退出标准:
1) “开发小组”完成了所有必须修复的错误。
2) “测试小组”完成了所有计划的测试。没有优先级为3以上的错误。优先级为2 的错
误少于5个。 3) “项目管理小组”认为产品实现稳定性和可靠性。
1.6测试配置和环境:
一台客户机:
装有.NET环境,装有Visual Studio 2005以上的版本。
1.7测试开发:
设计测试用例以进行手工测试。
1.8关键参与者:
测试经理:苗尊岭 测试人员:苗尊岭 开发人员:彭玉良
二、测试用例
2.1白盒测试:
1) 先查看源代码,静态结构分析,确保没有语法错误。 2)
2.2黑盒测试:
根据文档设计测试用例:
2.4界面测试:
1) 测试是否有有好的用户提示输入信息。 2) 测试用户输入操作的方便性。
3) 测试用户输入有误的错误提示和处理信息。 4) 测试用户输入成功的提示信息。
三、软件缺陷
四、测试总结报告

我要回帖

更多关于 测试用例覆盖率定义 的文章

 

随机推荐