软件测试中测试用例设计--错误推测方法

软件测试中测试用例设计--错误推测方法
软件测试中测试用例设计--错误推测方法

软件测试中测试用例设计--错误推测方法

1、方法定义:

基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例

的方法。

2、思路:

分析程序中最易出错的场景和情况,在此基础上有针对性的设计测试用例。需要完成的前提条件如下:

A、深度熟悉被测系统的业务、需求。

B、对被测系统或类似系统之前的缺陷分布情况进行过系统的分析。包括功能缺陷,数据缺陷,接口缺陷和界面缺陷等等。

3、测试用例举例

(1)聊天窗口功能

A、输入特殊字符(全角,半角)后,窗口是否能够正常显示

B、输入空格,是否能够过滤,是否会算入长度计算

C、输入html字符

D、输入脚本语言函数

E、在需要密码验证,或者需要二次输入确认的地方,通过复制粘贴第一次的输入内容是否能够通过

(2 )查询功能

A、无条件查询

B、是否支持模糊查询

C、查询的关键字之间是否可用连接符

D、输入正确的查询条件以前加上空格,看是否能正确地查出相应的数据

(3 )登录功能

A、输入的数据前存在空格,是否能够正常登录

B、输入的密码是否能够加密显示

C、用户在注销之后是否能够再登录成功

4、优缺点

优点:充分发挥个人的经验和潜能,命中率高

缺点:覆盖率难以保证;过多的依赖于个人的经验

功能测试用例库

1. 输入验证

输入验证主要包括:数字输入验证、非法字符输入验证、输入长度验证、必填项验证和信息提示

1. 数字输入验证:分别输入数字(正数、负数、零值、单精度、双精度)、字符串、空白值、空值、临界数值。不合法的输入,系统给出必要的判断提示信息

2. 字符输入验证:分别输入单字节字符、双字节字符、大小写字符、特殊字符、空白值、空值。不合法的输入,系统给出必要的判断提示信息

3. 日期、时间输入验证:分别输入任意字符、任意数字、非日期格式的数据、非正确日期

(错误的闰年日期)、空值、空白值。不合法的输入,系统给出必要的判断提示信息。注:有些系统会不让输入当日以后或者以前的日期、时间;有些系统会通过JavaScript 来自动填

写日期时间,这时需要注意是否能否人工主观填写输入

4. 多列表选择框:测试是否能否多选,列表框中的数据是否能否显示完全。当列表框的数据过多时,需要对数据有一定格式的排序

5. 单列表下拉框:测试是否能否手工输入,下拉框中的数据是否能否显示完整。当下拉框

的数据很多时,需要对数据有一定格式的排序。如果下拉框数据值过多时,下拉框可能会超

出IE显示范围,此种情况不能够被接收

6. 大文本输入框(textArea):虽然它能够满足大数据量的输入,但最好能够显示地标明输入字符的长度限制,并且应该结合字符输入验证”进行。需要注意的是,应该允许标点的存在

7. 文件输入框输入验证:该输入框主要用做文件上传操作。在测试过程中,应该注意输入

文件的扩展名。从测试角度来看,要求开发人员必须对扩展名进行输入限制,并且在适当的地方输入格式提示。当输入是空值等不合法的输入时,系统给出必要的判断提示信息。另外, 对于上传的文件大小应该做限制,不宜太大

8. 输入字符长度验证:输入字符的长度是否超过实际系统接收字符长度的能力。当输入超出长度时,系统给出必要的判断提示信息

9. 必填项验证:输入不允许为空的时候,系统需要有提示用户输入信息功能

10. 格式、规则输入验证:当输入需要一定的格式时,系统需要有提示用户输入信息功能。

比如身份证号码可以输入18位或者15位,部分身份证最后一位为字母,身份证上生日与

身份证号码有一定规则

11. 系统错误定位的输入验证:当输入存在问题时,被系统捕获到,此时页面上的光标能够定位到发生错误的输入框

12. 单选框、多选框的输入验证:单选框需要依次验证单选框的值是否都有效;多选框需要依次验证多选框的值是否都有效

13. 验证码验证:做验证码输入验证时,先结合字符输入验证”进行测试,然后注意的地

方是,当利用IE回退或者刷新时,显示的验证码应该和实际系统验证码一致。如果验证码

以图片形式显示,但图片由于其他原因(如网络)不能看到或者显示不完整,系统应该允许进行重新获取,最好不要做整个页面刷新

2. 操作验证(CZ)

该用例库主要针对页面操作

1. 页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确

2. 相关性检查:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确

3. 检查按钮的功能是否正确:如增、删、改、查等功能是否正确

4. 重复提交表单:一条已经成功提交的记录,用IE回退后再提交,看看系统是否做了处

5. 多次IE回退:检查多次使用IE回退的情况,在有回退的地方,回退,回到原来页面,再回退,重复多次,看是否出错

6. 快捷键检查:是否支持常用快捷键,如Ctrl+C、Ctrl+V、Backspace 等,对一些不

允许输入信息的字段,如选人、选日期对快捷方式是否也做了限制

7. 回车键检查:在输入结束后直接回车键,看系统处理如何,能否报错

8. 上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开,对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能否做到

9. 其他验证:在页面上图片的大小不宜太大,需要第三方软件支持时,应该给出必要的信

息,比如需要jre的支持,但用户机器还没有安装jre,那么此时在页面上应该有显著的标

志来提醒用户进行安装

3. 登录模块测试用例

该用例库主要针对登录模块。需要结合访问控制验证(FWKZYZ)用例库1?登录名输入:进行输入验证”。需要注意登录名是否区分大小写和空格

2. 密码输入:进行输入验证”

3. 提交操作:结合访问空值验证(FWKZYZ)”。当输入正确的登录名和密码后,该用户能

够进入到指定的正确页面。当输入的登录名和密码有误时,系统限制其登录,并且给出适当的提示信息。当遇到错误时,应该进行错误页面测试”

4. 重设操作:当进行重设操作时,当前页面上所有输入项被清空

4. 增加操作测试用例(ZJ)

该用例库主要针对增加操作

1. 添加输入内容,进行输入验证”

2. 应该限制重复增加,具体操作:利用网络传输以及服务器的延迟,多次单击增加”按钮, 经常在数据库发现重复提交的数据

3. 当增加成功或者失败后,应该有必要的信息提示

4. 文件数据的增加:有些增加包含了数据库数据的增加,和一些文件的增加,此时的数据

会保存在两个地方,所以测试时,需要对相关的数据做全面的验证

5. 文件数据验证:进行输入验证”值文件输入框输入验证”。注意:当上传的文件为中文文件名时,上传到服务器后,可能会出现乱码现象。现在一般的做法是将原文件名替换成字母和数字的组合,以克服汉字文件名的弊端,另外,可以增加文件的安全性

5. 删除操作测试用例(SC)

该用例库主要针对删除操作

1. 选择需要删除的数据字段。有时候系统会根据ID来删除,有时候系统会根据名称来删

除,测试的时候应该多注意,一般要求按照ID来删除,因为根据名称来删除,名称可能会

存在重名问题

2. 应该限制重复删除。具体操作:利用网络传输以及服务器的延迟,多次单击删除”按钮, 经常在数据库中发现重复提交的数据

3. 当删除的数据还有文件时,西药去验证存在数据库中的数据,以及硬盘下的文件是否都

被同时删除

4. 当数据被删除成功或者失败后,要有响应的信息提示

5. 进行操作验证”

6. 修改操作测试用例(XG)

该用例库主要针对修改操作

1. 打开需要修改的数据页面,注意与增加页面相比,只能修改部分数值,例如关键字等是不能被修改的,并且二者数据应该是一致的

2. 增加页面上的输入限制与修改页面的输入限制应该一致

3. 修改成功或者失败后,应该有相应的信息提示

7. 查询操作测试用例(CX)

该用例库主要针对查询操作

1. 条件输入查询,先进行条件输入框的输入验证”

2. 条件组合查询,将多个条件进行组合查询,结果可以通过数据库验证。需要注意的是,

整个数据查询和条件查询数据结果条数要一致,另外,如果遇到某天的查询时间段,有的数

据库认为一天不包括零点零分,有的数据库认为包括

3. 所有查询结果,必须进行一定顺序的排列,可以按照ID或按照名称来排列

4. 当查询成功或者失败后,系统应给出必要的信息提示

8. 翻页操作测试用例(FY)

该用例库主要针对翻页操作

1?当数据量很大的时候,需要进行分页显示,每页显示的行数最好不要超过20行,每页

列表上最好有序号标识,行与行之间颜色要有一定区分,这样有利于用户的查找

2. 翻页按钮应该包括:首页、前一页、后一页、尾页、当前X页、共X页,这些常用按

钮和显示,并且按钮都能正常翻页

3. 翻页按钮的每页显示的数据要准确,确保没有查不出来的数据,最好的做法就是和数据

库结合起来验证

4. 页面太多,翻页数据不能全部显示时,系统应该有完善的应对机制,比如值显示当前页的前三页和该页的后三页的页数码

5. 当翻到某页时,系统应该有明显的标识,标出该页面所处的页码

9. 错误页面测试(CW)

错误页面是在遇到系统异常的情况产生的友好界面

1?当系统遇到致命错误时,不能将服务器的调试信息出现在页面上,因为这样做会带来

不安全,应该给出一个合适的提示信息

2.由于系统繁忙,无法及时给出正确信息时,系统可以给出友好的错误页面,如:请用户稍后再试”等提示信息

软件测试用例设计方法---决策表

决策表,也叫判定表。在所有的功能性测试方法中,基于决策表的测试方法被认为是最严格的,因为决策表具有逻辑严格性。 在一些数据处理问题当中,某些操作的实施以来与多个逻辑条件的组合,既针对不同逻辑条件的组合之,分别执行不同的操作;决策表就是分析和表达多逻辑条件下执行不同操作情况的工具。 1 决策表通常由以下4部分组成: 条件桩(condition stub):列出了问题的所有条件。通常认为列出的条件的次序无关紧要。 动作桩(action stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。 条件项(condition entry):列出针对它所列条件的取值,在所有可能情况下的真假值。作项(action entry):列出在条件项的各种取值情况下应该采取的动作。 2 决策表的生成: (1)确定规则的个数 ?有n个条件的决策表有2n个规则(每个条件取真、假值)。(2)列出所有的条件桩和动作桩 (3)填入条件项 (4)填入动作项,得到初始决策表 (5)简化决策表,合并相似规则

?若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。 ?合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关,称为“无关条件”。 举个例子↓↓

3 决策表的优缺点: 决策表最突出的优点是,能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。 ? 利用决策表能够设计出完整的测试用例集合。 ? 运用决策表设计测试用例可以将条件理解为输入,将动作理解为输出 4 何种情况下使用? ? 规格说明以决策表形式给出,或较容易转换为决策表;

软件测试规范标准[详]

软件测试规 1目的 确保软件产品质量,使产品能够顺利交付和通过验收的一项重要措施。 2适用围 适用于项目开发过程中的单元测试、集成测试、系统测试、业务测试、验收测试以及一些专项测试。 3职责 ?项目测试负责人组织编制《测试计划》、《测试方案》,指导和督促测试人员完成各阶段的测试工作。 ?项目组测试人员按照《测试计划》、《测试方案》完成所承担的测试任务,并按要求填写《问题报告及维护记录》。 ?测试经理依照确认规程和准则对工作产品进行确认,提出对确认规程和准则的修改意见 ?项目负责人组织测试环境的建立。 ?项目经理审核负责控制整个项目的时间和质量。 ?研发人员确认修改测试人员提交的bug。 4工作流程 4.1 测试依据 详细设计是模块测试的依据。因此设计人员应向测试人员提供《系统需求规格书名书》、《详细设计》、《概要设计》等有关资料。测试人员必须认真阅读,真正弄懂系统需求和详细设计。 4.2 制订《测试方案》 在测试之前,由项目负责人根据《测试计划》的要求,组织人员编制相应的《测试方案》,《测试方案》应包括以下容:

?测试目的; ?所需人员及相应培训要求; ?测试环境、工具和测试软件; ?测试用例、测试数据和预期的结果。 4.3 单元测试 项目开发实现过程中,每个程序单元(程序单元的划分视具体开发工具而定,一般定为函数或子程序级)编码调试通过后,要及时进行单元测试。 单元测试由单元开发者自己进行,使用白盒测试方法,根据程序单元的控制流程,争取达到分支覆盖。对于交互式运行的产品,不便于进行自动测试的,可以采用功能测试的方法进行。 单元测试针对程序模块,从程序的部结构出发设计测试用例。多个模块可以独立进行单元测试。 ?单元测试容包括模块接口测试、局部数据结构测试、路径测试、错误处理测试等; ?单元测试组织原则一遍根据开发进度安排对已开发完成的单一模块进行测试; ?单元测试停止标准:完成了所有规定单元的测试,单元测试中发现的bug已经得到修改。 4.4 集成测试 编码开发完成,项目组部应进行组装测试。 集成测试由项目负责人组织策划(编写测试计划、测试用例)并实施。集成测试着重对各功能模块之间的接口进行测试,验证各功能模块是否能协调工作、参数传递及功能调用是否正常。测试采用交叉方法,即个人开发的软件应由其他的项目组成员进行测试。 集成测试过程应填写《问题报告及维护记录》,测试结果应形成《测试报告》。 4.5 系统测试 在项目开发完成之后,应对整个系统软件和硬件进行系统测试。对性能、可靠性、健壮性、压力承受力等方面分别进行评价,以验证系统是否满足

软件测试用例实例非常详细汇总

1、兼容性测试 在大多数生产环境中,客户机工作站、网络连接和数据库服务器的具体硬件规格会有所不同。客户机工作站可能会安装不同的软件例如,应用程序、驱动程序等而且在任何时候,都可能运行许多不同的软件组合,从而占用不同的资源。测试目的 配置说明操作系统系统软件外设应用软件结果 服务器Window2000(S) WindowXp Window2000(P) Window2003 用例编号TestCase_LinkWorks_WorkEvaluate 项目名称LinkWorks 模块名称WorkEvaluate模块 项目承担部门研发中心-质量管理部 用例作者 完成日期2005-5-27 本文档使用部门质量管理部 评审负责人 审核日期 批准日期 注:本文档由测试组提交,审核由测试组负责人签字,由项目负责人批准。历史版本: 版本/状态作者参与者起止日期备注

1.1. 疲劳强度测试用例 强度测试也是性能测试是的一种,实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。 测试目的 测试说明 前提条件连续运行8小时,设置添加10用户并发 功能1 2小时 4小时 6小时 8小时 功能1 2小时 4小时 6小时 8小时 一、功能测试用例 此功能测试用例对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求。这种测试的目标是核实数据的接受、处理和检索是否正确,以及业务规则的实施是否恰当。主要测试技术方法为用户通过GUI(图形用户界面)与应用程序交互,对交互的输出或接受进行分析,以此来核实需求功能与实现功能是否一致。

软件测试规范制度

安徽中杰测试 管 理 规 范 序号版本编号修订内容修订人批准人发布时间 1 安徽中杰软件测试管理规 范2015年7月20 日

1.目的 本文是对项目软件测试的指导性文件,对软件测试过程中所涉及到的测试理论、测试类型、测试方法、测试标准、测试流程及测试过程中涉及到的角色职责进行总体规范,以有效保证软件质量。 2.范围 本文适用于软件测试人员。 3.参考资料 《缺陷管理规范》 《测试执行规范》 《文档测试指南》 《项目测试计划模版》 《测试用例设计规范》 《功能测试用例模版》 《集成测试用例模版》 《项目测试报告模版》 《自动化测试计划模版》 《性能测试计划模版》

4.测试过程描述 4.1 测试流程图 需求评审 测试计划 测试设计 功能测试执行 集成测试设计 /性能测试设计 集成/性能测试 文档测试 项目总结

4.2 活动说明 4.2.1 需求评审 4.2.1.1目的 从源头把握软件质量,并确保开发结果与实际需求相一致 4.2.1.2角色与职责 需求人员:《需求规格说明书》的编写,以及软件开发过程中《需求规格说明书》的修正; 评审人员:评审《需求规格说明书》,从全面性、完整性、正确性、一致性、可靠性方面检、查《需求规格说明书》,将需求缺陷提交给需求人员,并跟踪需求缺 陷直至需求缺陷验证关闭。 4.2.1.3启动标准 《需求规格说明书》编写完成

4.2.1.4工作流程图 需求评审 评审人员 需求人员 验证需求规格说明书 评审完成 对需求规格说明书评审 发现需求缺陷 修正需求规格说明书 将需求缺陷提交给需求人员 修正需求文档,并提交评审人员验证 全部缺陷验证通过 存在不通过的需求缺陷 4.2.1.5输入/输出 输入:《需求规格说明书》 输出:需求缺陷 4.2.1.6规范 参见《文档评审指南》

系统测试用例设计方法

系统测试用例设计方法 --------------王永安

目录 一、测试用例格式以及写作要点 (3) 二、系统测试用例设计方法 (4) 1、等价类划分法 (5) 2、边界值分析法 (6) 3、判定表法 (7) 4、因果图法 (9) 5、状态迁移图法 (15) 6、流程分析法 (20) 7、正交试验法 (35) 8、错误推测法 (42)

一、测试用例格式以及写作要点 测试用例编号 测试用例编号是由字母和数字组合而成的,用例的编号应该具有唯一性,易识别性。比如可以采用统一的约定,产品编号—ST—系统测试项名—系统测试子项名—编号。这样看到编号就可以知道是做的什么测试,测试的对象是什么。也方便维护。 测试项目 你现在这个测试用例所测的项目名,可以是测试用例所属的大类,被测需求,被测的模块,或者是被测的单元。例如:计算器加法功能。 测试标题 测试标题是对测试用例的简单描述。用概括的语言描述该测试用例的测试点。每个测试用例的标题不能够重复,因为每个测试用例的测试点是不一样的。例如:手机在没有SIM 卡的情况下,拨打119。 重要级别 重要级别分为高中底三等: 高:保证系统基本功能、重要特性、实际使用频率比较高的用例; 中:重要程度介于高和底之间的测试用例; 底:实际使用频率不高、对系统业务功能影响不大的模块或功能的测试用例。 注:一般情况下,重要级别为高的测试用例,一个测试子项里有且尽有一个,大多数都是重要级别为中的测试用例。因为一般我们会进行一个系统测试预测试,如果重要级别为高的太多,则就失去了预测试的实际意义。 预置条件 就是执行当前测试用例的前提条件,如果不满足这些条件,则无法进行测试。 输入 测试用例执行时,需要输入的外部信息。例如某一个文件,数据记录等。

功能测试用例的设计

功能测试用例的设计 LG GROUP system office room 【LGA16H-LGYY-LGUA8Q8-LGA162】

一、实验目的 1.用因果图法分析原因结果,并决策表设计测试用例。 2.使用场景法设计测试用例。 二、实验内容 1. 将三角形问题的可能结果扩展为:一般三角形、等腰三角形、等边三角形、直角三角形、等腰直角三角形和非三角形,考虑用因果图法设计测试用例,给出完整步骤。 2. 有一个在线购物的实例,用户进入一个在线购物网站进行购物,选购物品后,进行在线购买,这时需要使用帐号密码登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。使用场景法设计上述问题的测试用例。 三、实验环境 Windows XP系统 四、实验步骤和结果 1. 将三角形问题的可能结果扩展为:一般三角形、等腰三角形、等边三角形、直角三角形、等腰直角三角形和非三角形,用因果图法设计测试用例,给出完整步骤。具体如下: 1)输入的三边分别为a,b,c(斜边) 且a

2. 行在线购买,这时需要使用帐号密码登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。使用场景法设计上述问题的测试用例。

(注:在下面的矩阵中,V(有效)用于表明这个条件必须是 VALID(有效的)才可执行基本流,而 I(无效)用于表明这种条件下将激活所需备选流,“n/a”(不适用)表 对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测

五、实验结果和讨论 成功使用因果图法、场景法设计了测试用例。 六、总结 1.因果图法的定义是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。 2.在事件触发机制中场景法用得最多。在测试一个软件的时候,先确定基本流也就是测试流程中软件功能按照正确的事件流实现的一条正确流程,接着去确定备选流也就是那些出现故障或缺陷的过程,用备选流加以标注。然后可以采用矩阵或决策表来确定和管理测试用例。

软件测试用例(标准参考)

{ 项目名称} { 测试用例标题} 机构公开信息

版本历史

目录 0. 文档介绍 (5) 0.1文档目的 (5) 0.2文档范围 (5) 0.3读者对象 (5) 0.4参考文献 (5) 0.5术语与缩写解释 (5) 1. 接口-路径测试用例 (6) 1.1被测试对象(单元)的介绍 (6) 1.2测试范围与目的 (6) 1.3测试环境与测试辅助工具的描述 (6) 1.4测试驱动程序的设计 (6) 1.5接口测试用例 (6) 1.6路径测试的检查表 (7) 2. 功能测试用例 (8) 2.1被测试对象的介绍 (8) 2.2测试范围与目的 (8) 2.3测试环境与测试辅助工具的描述 (8) 2.4测试驱动程序的设计 (8) 2.5功能测试用例 (8) 3. 健壮性测试用例 (9) 3.1被测试对象的介绍 (9) 3.2测试范围与目的 (9) 3.3测试环境与测试辅助工具的描述 (9) 3.4测试驱动程序的设计 (9) 3.5容错能力/恢复能力测试用例 (9) 4. 性能测试用例 (10) 4.1被测试对象的介绍 (10) 4.2测试范围与目的 (10) 4.3测试环境与测试辅助工具的描述 (10) 4.4测试驱动程序的设计 (10) 4.5性能测试用例 (10) 5. 图形用户界面测试用例 (11) 5.1被测试对象的介绍 (11) 5.2测试范围与目的 (11)

5.3测试环境与测试辅助工具的描述 (11) 5.4测试驱动程序的设计 (11) 5.5测试人员分类 (11) 5.6用户界面测试的检查表 (11) 6. 信息安全性测试用例 (12) 6.1被测试对象的介绍 (12) 6.2测试范围与目的 (12) 6.3测试环境与测试辅助工具的描述 (12) 6.4测试驱动程序的设计 (12) 6.5信息安全性测试用例 (13) 7. 压力测试用例 (13) 7.1被测试对象的介绍 (13) 7.2测试范围与目的 (13) 7.3测试环境与测试辅助工具的描述 (13) 7.4测试驱动程序的设计 (13) 7.5压力测试用例 (14) 8. 可靠性测试用例 (14) 8.1被测试对象的介绍 (14) 8.2测试范围与目的 (14) 8.3测试环境与测试辅助工具的描述 (14) 8.4测试驱动程序的设计 (14) 8.5可靠性测试用例 (15) 9. 安装/反安装测试用例 (15) 9.1被测试对象的介绍 (15) 9.2测试范围与目的 (15) 9.3测试环境与测试辅助工具的描述 (16) 9.4测试驱动程序的设计 (16) 9.5安装/反安装测试用例 (16) 附录:评审意见 (16)

软件测试用例设计--场景分析方法

·软件测试用例设计--场景分析方法 方法简介 现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。 基本流和备选流:如下图所示,图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4)。 二.实战演习 1. 例子描述 下图所示是ATM例子的流程示意图。

表3-8 场景设计 注:为方便起见,备选流3和6(场景3和7)内的循环以及循环组合未纳入上表。 3.用例设计 对于这7个场景中的每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。下面显示了一种通用格式,其中各行代表各个测试用例,而各 列则代表测试用例的信息。本示例中,对于每个测试用例,存在一个测试用例

ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中)以及预期结果。 表3-9 测试用例表 4.数据设计 一旦确定了所有的测试用例,则应对这些用例进行复审和验证以确保其准确且适度,并取消多余或等效的测试用例。

测试用例一经认可,就可以确定实际数据值(在测试用例实施矩阵中)并且设定测试数据,如表3-10所示。 表3-10 测试用例表

软件测试中的测试用例设计方法场景VS功能

软件测试中的测试用例设计方法场景VS功能 发布: 2010-7-16 10:20 | 作者: 网络转载 | 来源: 领测软件测试网采编 | 查看: 92次 | 进入软件测试论坛讨论软件测试中的测试用例设计方法场景VS功能 1、目的 不管我们在做哪些测试我想第一我们要站在用户的角度,以用户的使用逻辑及操作习惯为出发点,结合功能用例的设计方法,使用例设计更符合用户使用逻辑更具有可执行性,从而最大程度上覆盖用户需求。2、使用者 在使用者看来,用例设计、执行及热爱测试的人员 3、测试用例设计方法 按照不同的规则可以将测试用例分为四个部分:场景用例(用户场景)、系统用例(用户场景的细化)、功能用例(基于业务规则、界面)、设计指标(基于环境、性能、安全等)。 ◆ 用户场景用例:按照用户的实际操作与业务逻辑设计用例,不必涉及很复杂的操作或逻辑,把用户最常用的、正常的操作流程作为一个场景设计测试用例 ◆ 系统用例:是用户场景的细化,包含正常场景、分支场景和异常场景,是两个或多个有关联的功能组合而成的场景。 ◆ 功能用例:用于验证各功能点的业务规则,包括界面元素和各功能的业务规则验证。主要针对单个功能点。 ◆ 设计指标:系统所需要达到的各级指标。主要包含环境、性能、安全等方面的指标。 第一步:用户场景用例(关键字:模拟用户实际操作)

描述用户的主要业务目标,包含完整的系统级场景和模拟用户实际操作的不同场景,几个功能点的组合也算是用户场景,这类的用例不宜过多。 第二步:系统各角色的系统用例 将系统划分多个角色,再将每个角色分解为多个任务,每个任务就是一个系统用例。系统用例分别正常流程、异常流程,分支流程,以场景的形式描述。 系统用例命名原则:正常(异常、分支)流程_描述 第三步:功能用例 描述单点功能的逻辑规则及页面元素,分层描述逻辑规则,对逻辑规则细化可直接作为用例的操作步骤描述。 第四步:设计指标 设计指标包含三种类型的用例:环境测试用例、性能测试用例、安全性用例。 环境测试用例可依照操作系统版本,浏览器版本不同划分为多个用例。每个用例下可直接调用已有的用户场景用例、系统用例、功能用例,可无须单独编写用例。 4、用例设计规则 规则如下: 1)每个用例需要选择优先级,分为高、中、低三种。 每个用例需要关联项目。 2)需要特别强调的是,用户场景用例,一定要脱离系统提供功能,站在用户角度来设计用例,从用户实际可能的操作场景考虑。

软件测试用例设计规范

软件测试用例设计规范Software Test Case Design Specification

【目录】 1目的 (3) 2范围 (3) 3名词定义 (3) 4工件 .................................................................................................................................... 错误!未定义书签。 4.1 输入 (3) 4.2 输出 (3) 5规范内容 (4) 5.1 设计原则 (4) 5.1.1可执行性 (4) 5.1.2可维护性 (4) 5.1.3可代表性 (4) 5.1.4可判定性 (4) 5.2 必要元素 (5) 5.2.1用例包和用例对象名命 (5) 5.2.2测试目的 (5) 5.2.3测试优先级 (5) 5.2.4测试环境 (5) 5.2.5前提条件 (5) 5.2.6后置关联 (5) 5.2.7用例状态 (5) 5.3 综合策略 (6) 5.3.1必要的边界值分析 (6) 5.3.2必要的等价类划分 (6) 5.3.3必要的因果图方法 (6) 5.3.4必要的性能测试方法 (6) 5.3.5面向对象设计方法 (7) 5.4 设计活动 (7) 5.4.1分析和建立测试用例包 .................................................................................... 错误!未定义书签。 5.4.2分解并建立测试用例对象 ................................................................................ 错误!未定义书签。 5.4.3建立测试用例对象间关系 ................................................................................ 错误!未定义书签。 5.4.4设计测试用例 .................................................................................................... 错误!未定义书签。 5.4.5测试实施 ............................................................................................................ 错误!未定义书签。 5.5 检查点 ........................................................................................................................ 错误!未定义书签。

报表测试用例设计方法总结

报表测试用例设计方法总结 报表的测试主要分为以下几个方面:界面,安全性,准确性,展示速度(性能) 数据统计方面 1、报表统计数据的正确性; 2、报表统计数据的完整性; 3、报表统计数据的合法性;比如,统计金额字段需求要求有“$”等; 报表格式 1、表头字段表示的正确性; 2、表头字段表示的完整性; 3、表头字段表示的字体,字号,美观程度; 4、各统计字段的显示是否满足需求;比如:数据过长时要求折行还是缩小; 5、页眉和页角的表示; 报表的预览和印刷 1、预览中的显示完整性; 2、多页情况下,第2页的表头显示; 3、能否实现需求要求的特定印刷情况;(比如,印刷使用指定的模板) 4、预览后印刷; 5、不预览,直接印刷 6、需求规定各类打印机的测试; 数据准确性测试,带有报表测试的系统分为两类,一类是业务系统中,带有统计分析功能模块,该模块中包含分析报表,这个系统的主体是业务系统,报表是为**业务的而提供帮助的。 比如说,应年检统计报表,某月应交罚款车辆统计报表,这样的报表数据准确与否,可通过增加、删减、修改相关业务或相关业务的参数,查看统计报表数据变化,检查数据准确性。

另一类是系统只有统计功能,就是我说的数据仓库展现这类,它与业务系统分离,并且经过多层处理,比如数据仓库的数据,经过抽取,清洗,展现前会经过数据挖掘,数据再处理,有些字段在原始数据表中根本就没有。这样的数据准确性测试比较复杂,当然检查出数据错误,修改定位也是很不容易的。 从整个项目节约成本看,逐层测试效果是最好的。完全修改率也是最高的。 首先建立测试数据模型,模拟所有应用表,建立简单易跟踪的数据用例,底层的数据表测试,方法很原始,嘿嘿,通过SQL语句和手工计算,对数据进行比对。对系统中的报表数据准确性测试方法较为灵活, ①系统中报表重叠的进行比对 ②对子报表汇总与父报表比对,就是对月报表汇总与年报表比对,日报表汇总与月报表比对,这只是一个方面,可以从维度关系考虑,地域,行政级别、时间,个人等方面下手,进行汇总比对 ③这个方法如果延伸点呢,可以将报表间的业务逻辑关系作为比对依据。呵呵,这要看测试人员的需求了解深度个人能力了。插几句不想干的话,做测试工作总让我保持快乐状态,前两天我的一个同事说,公司里一直没有人喜欢做测试工作,这个工作太枯燥。嘿嘿,我当时就说我做了这么多年的测试工作从来没有感觉到枯燥。重复性工作不代表枯燥,编程其实不也是重复嘛,人每天谁不重复昨天的事啊,吃饭,吃这个动作重复一生,有谁觉得麻烦枯燥啦? ④使用SQL和手工计算进行比对。以上是差错方式,接下来讲一下查什么错?哪些地方容易出错 ● 原始表使用错误:因为表比较多,又加上没有统一的数据关系对应表,很容易表使用错误,当然这应该是单元测试检查出来的错误。 ● 数据处理逻辑错误:这一点容易因为测试人员和开发人员对需求理解有偏差造成争执,所以在需求评审时,对数据处理规则用表达式或伪代码表示清楚。还有就是程序员失误,逻辑编写有偏差,边界值、特殊情况处理不当。 ● 数据权限:不同用户对数据有着不同的查看权限。这关系到数据的安全性。 ● 数据误差:数据的保留位数,数据是否是处理计算是否是最后一次计算使用了位数保留和四舍五入。 ● 由于字典表,数据错误,而造成的数据错误,如,根据性别统计,购买量,表中的男女颠倒,或者没有考虑性别缺失项,用了if else,这样就是把表中缺失该项内容的算成了

如何设计和执行测试用例

如何设计和执行测试用例测试需求收集完毕后,开始测试设计。 测试用例是什么?测试用例就是一个文档,描述输入、动作、或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作。设计测试用例需要考虑以下问题: 测试用例的基本格式: 软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果,下面逐一介绍。 用例编号:测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则: PROJECT1-ST-001 ,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。 测试标题:对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如“测试用户登录时输入错误密码时,软件的响应情况”。 重要级别:定义测试用例的优先级别,可以笼统的分为“高”和“低”两个级别。一般来说,如果软件需求的优先级为“高”,那么针对该需求的测试用例优先级也为“高” ;反之亦然, 测试输入:提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。 操作步骤:提供测试执行过程的步骤。对于复杂的测试用例,测试用

例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。 预期结果:提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。 软件测试用例的设计主要从上述 6 个域考虑,结合相应的软件需求文档,在掌握一定测试用例设计方法的基础上,可以设计出比较全面、合理的测试用例。具体的测试用例设计方法可以参见相关的测试书籍,白盒测试方法和黑盒测试方法在绝大多数的软件测试书籍中都有详细的介绍。 一般来说,每个软件公司的项目可以分为固定的几大类。可以按业务类型划分,比如 ERP 软件、产品数据管理软件、通信软件、地理信息系统软件等等;可以按软件结构来划分,比如 B/S 架构的软件、 C/S 架构的软件、嵌入式软件等等。参考同类别软件的测试用例,会有很大的借鉴意义。如果,公司中有同类别的软件系统,千万别忘记把相关的测试用例拿来参考。如果,系统非常接近,甚至经过对测试用例简单修改就可以应用到当前被测试的软件。“拿来主义”可以极大的开阔测试用例设计思路,也可以节省大量的测试用例设计时间。 加强测试用例的评审: 测试用例设计完毕后,最好能够增加评审过程。 同行评审是 CMM3 级的一个 KPA ,如果因为公司没有通过 CMM3 级,就不开展同行评审是不恰当的。测试用例应该由产品相关的软件测试人员和软件开发人员评审,提交评审意见,然后根据评审意见更新测试用例。如果认真操作这个环节,测试用例中的很多问题都会暴露出来,比如用例设计错

软件测试用例分析 习题完美整合版

场景分析法 一、以答题业务为例: 1.答对题目增加题目积分,积分达到设定值时奖励一个礼包; 2.取题规则为随机不重复; 3.答错题目后答新题. 开始答题 是否存在 有效题目 提供题目及备选答案 答案是否 正确 增加题目积分 积分大于或等于设定值?给予无有效题目提示 结束奖励一个礼包

1.确定基本流与备选流 基本流: 步骤1. 开始答题 步骤2. 判断是否存在有效题目,存在有效题目,处理:提供题目及备选答案 步骤3. 用户答题并答对题目,增加用户相应积分。 步骤4. 判断积分是否达到设定值,达到,获取一个礼包,流程结束。 备选流1: 不存在有效题目 基本流步骤2时,题库不存在未答题目,处理:给予无有效题目提示,流程结束。备选流2: 答错题目 基本流步骤3时,答错题目,处理:提示用户答错题目,回到基本流步骤2 备选流3:答题后积分达不到设定值 基本流步骤4时,答对题后积分仍达不到设定值,处理:回到基本流步骤2 2.确定以下用例场景: 3.通过从确定执行用例场景所需的数据元素入手构建矩阵

4.设计数据,把数据填入上面的用例表中 二、下图所示是ATM例子的流程示意图。

2.场景设计:下表所示是生成的场景。 3.用例设计

4.测试用例表

三、用户进入一个在线购物网站进行购物,选购物品后,进行在线购买,这时需要使用账号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。 第一步:确定基本流和备选流 基本流:登录在线网站→选择物品→登录账号→付款→生成订单; 备选流1:账户不存在; 备选流2:账户密码错误; 备选流3:用户账户余额不足; 备选流4:用户账户没钱。 第二步:根据基本流和备选流确定场景 场景1成功购物:备选流; 场景2账号不存在:基本流,备选流1; 场景3账号密码错误:基本流,备选流2; 场景4账户余额不足:基本流,备选流3; 场景5账户没钱:基本流,备选流4。 第三步:对每一个场景生成相应的测试用例 测试用例 ID 场景/条件账号密码 用户账 号余额 预期结果 1 场景1:成功购物V V V 成功购物 2 场景2:账号不存在 1 n/a n/a 提示账号不存在 3 场景3:账号密码错误 (账号正确,密码错误)V 1 n/a 提示账号密码错误,返 回基本流步骤3 4 场景4:用户账号余额不 足V V 1 提示用户账号余额不 足,请充值 5 场景5:用户账号没钱V V 1 提示用户账号没有钱, 请充值 第四步:设计测试数据 测试用例ID 场景/条件账号密码 用户账 号余额 预期结果 1 场景1:成功购物Test 123456 800 成功购物,账号余额减少 100元 2 场景2:账号不存在aa n/a n/a 提示账号不存在 3 场景3:账号密码错误 (账号正确,密码错误)Test 111111 n/a 提示账号密码错误,返回 基本流步骤3 4 场景4:用户账号余额不 足Test 123456 50 提示用户账号余额不足, 请充值 5 场景5:用户账号没钱Test 12345 6 0 提示用户账号没有钱,请 充值

测试规程与用例设计

测试规程/用例设计 测试规程(test procedure)是一个提供详细的测试用例执行指令的文档。测试规程应该更注重测试的流程、方法等比较泛的内容,以方便我们对测试用列的编写有一个整体的概念和把握。不同的公司规范、要求和详尽程度可能不同。 测试用例(test case)对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。 测试规程与测试用例的区别:理想化的测试用例确实需要很多测试数据集合,但是现实中对某一软件进行测试时,由于涉及的面太广,无法一一列举出所有数据,所以要根据公司的规范来做相应的调整。所以,测试规程的文档编辑量较轻,但是只适合熟练的测试人员执行,而测试用例的执行者可以使任何人。 测试用例的设计: 测试用例可以分为基本事件、备选事件和异常事件。 设计基本事件的用例:参照用例规约(或设计规格说明书),根据关联的功能、操作按路径分析法设计测试用例。而对孤立的功能则直接按功能设计测试用例。基本事件的测试用例应包含所有需要实现的需求功能,覆盖率达100%。 设计备选事件和异常事件的用例:采用的基本方法仍然是等价类划分、边界值、因果图等,根据软件的不同性质和测试的不同目标灵活运用,至于最终设计的测试用例是否能暴露更多的隐藏缺陷,全凭用例设计人员的丰富经验和精心设计了。例如,测试一个手机终端的电话本模块。测试人员需要考虑,将相同的号码A存储到不同联系人名B和C 中,号码A呼入和呼出时,显示的联系人名应该是B还是C呢。类似这样的备选事件,往往在需求阶段描述的并不详尽,需要测试人员及早提出并与项目组达成一致。 测试用例在软件测试中的作用: 指导测试的实施 规划测试数据的准备 编写测试脚本的"设计规格说明书" 评估测试结果的度量基准 分析缺陷的标准 此阶段的难点和重点: 测试用例设计的几大基本点 使用合理的语言 测试人员该做什么,系统输出什么应该写得很清楚明白,也就是说首先要分清楚测试用例的输入和预期输出 一种最好的避免含义混淆的方法是在操作步骤中采用动词+名词的结构,动词总是测试 人员要做得事情,名词总是测试人员操作的对象、事物 将同一个事物命名为同一个名称,不管这个事物是否通过不同的方式出现测试用例的易测性 简洁性:简洁性的衡量方法就是执行测试花费时间的长短以及在测试过程中是否能保持

测试用例编写规范教程文件

测试用例编写规范

测试用例编写规范 变更历史

引言 1.背景 为保证测试用例对需求的覆盖率,即对一个系统从整体功能到单个功能,都尽可能的高的覆盖。而单个功能点主要强调的是不同的输入及其组合所带来的各种输入动作,系统是否都做了处理; 测试用例设计首先要明确该系统存在多少功能点,要通过各种常用的测试方法来保证用例的完整性,然后再对各功能点的边界范围进行考虑。所以要保证测试用例的设计按照一种合理的结构组织进行,这样才能够更有效的保证系统所有功能点的覆盖率。 2.目的 为测试用例的质量负责,使测试工作能有序、合理化的进行,从而提高实施测试时对所测产品、系统或者模块的测试质量,也是作为各测试人员在设计用例时的一种规范,使之设计的用例能有效的被管理。 3.概念 是指为了实施测试而编写的一组有规范性、有据可依的输入数据与输出数据的组合,也指为了实施测试而向被测对象提供的一组输入、输出数据以及由各种执行条件和

期望结果相组合的一个特定集合,以便测试某个程序路径或者来核实是否满足某个特定的需求。 4.适用范围 本文档适用于测试人员 本文档适用于系统进行测试时的测试案例设计 本文档适用于案例补充时的测试案例 用例规范 用途 指导测试工作有序进行,使实施测试的数据有据可依 确保所实现的功能与客户预期的需求相符合 完善软件不同版本之间的重复性测试 跟踪测试进度,确定测试重点 评估测试结果的度量标准 增强软件的可信任度 分析缺陷的标准。 设计依据 需求说明书 项目测试需求功能点 所属行业的业务知识掌握程度 测试工程师本人的理解程度(个人经验)

用例内容 1 用 例 实 际 内 容用例编号唯一标识。规则“模块名-功能点-编 写人-001,单词或中文首字母。 2模块名称模块名称 3功能点测试的功能点 4用例标题对测试项简短的描述 5用例级别确定用例执行的级别[P0,P1,P2,P3] 6前提条件执行用例时需要的预置条件 7操作步骤执行该动作需要完成的操作,需要明 确输入数据。 8预期结果执行完该动作后程序的表现结果 9 执 行 结 果执行状态用例的执行结果[通过,失败,延后] 10实际结果实际输出的结果 11问题描述执行该用例出现后系统显示的错误 12BUG编号填写bug库中对应此用例的BUG编号13执行人按照该用例执行测试的人员 编写用例原则 系统性:对系统业务流程要完整说明整个系统的业务需求、系统由几个子系统组成以及它们之间的关 系;对模块业务流程要说明子系统内部功能、重点功 能以及它们之间的关系 连贯性:对系统业务流程要说明各个子系统之间是如何连接在一起,若需要接口,各子系统之间是否 有正确的接口,若是依靠页面链接,则页面的链接是 否正确;对模块业务流程要说明同级模块以及上下级

软件测试中UI测试及其测试用例设计

界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。目前界面的设计引起软件设计人员的重视的程度还远远不够,直到最近网页制作的兴起,才受到专家的青睐。而且设计良好的界面由于需要具有艺术美的天赋而遭拒绝。 目前流行的界面风格有三种方式:多窗体、单窗体以及资源管理器风格,无论那种风格,以下规则是应该被重视的。 按钮名称应该易懂,用词准确,屏弃没楞两可的字眼,要与同一界面上的其他按钮易于区分,能望文知意最好。理想的情况是用户不用查阅帮助就能知道该界面的功能并进行相关的正确操作。 易用性细则: 1) 完成相同或相近功能的按钮用Frame框起来,常用按钮要支持快捷方式。 2) 完成同一功能或任务的元素放在集中位置,减少鼠标移动的距离。 3) 按功能将界面划分局域块,用Frame框括起来,并要有功能说明或标题。 4) 界面要支持键盘自动浏览按钮功能,即按Tab键的自动切换功能。 5) 界面上首先应输入的和重要信息的控件在Tab顺序中应当靠前,位置也应放在窗口上较醒目的位置。 6) 同一界面上的控件数最好不要超过10个,多于10个时可以考虑使用分页界面显示。 7)分页界面要支持在页面间的快捷切换,常用组合快捷键Ct r l+Tab 8) 默认按钮要支持Ent er及选操作,即按Ent er后自动执行默认按钮对应操作。 9) 可写控件检测到非法输入后应给出说明并能自动获得焦点。 10) Tab键的顺序与控件排列顺序要一直,目前流行总体从上到下,同时行间从左到右的方式。 11) 复选框和选项框按选择几率的高底而先后排列。 12) 复选框和选项框要有默认选项,并支持Tab选择。 13) 选项数相同时多用选项框而不用下拉列表框。 14) 界面空间较小时使用下拉框而不用选项框。 15) 选项数叫少时使用选项框,相反使用下拉列表框。

软件测试之测试用例设计

软件测试之测试用例设计 软件和其他工程产品的测试设计与产品本身的设计一样具有挑战性,然而由于已经讨论过的一些原因,软件工程师经常将测试作为一种事后的措施,开发一些“感觉上正确”但是缺乏完整保证的测试用例。再回头看看测试目标,我们必须设计出最可能发现最多数量的错误、并耗费最少时间和最小代价的测试。 在过去的20年,出现了大量的测试用例设计方法,为开发人员进行测试提供了系统的方法。更重要的是,方法提供了一种有助于确保完全测试的机制,并提供了揭示软件错误的最高可能性。 能够采用以下两种方法之一对任何工程化产品(以及大多数其他东西)进行测试: (1)若了解产品的特定功能,则构造测试,以证实各功能完全可执行,同时在各功能中寻找错误; (2)若了解产品的内部构造,则构造测试,以确保“所有齿轮吻合”,即内部操作依据规约执行,而且所有的内部构件被充分利用。第一种测试方法被称为黑盒测试,第二种则被称为白盒测试。 如果考虑计算机软件,黑盒测试指在软件界面上进行的测试,虽然设计黑盒测试是为了发现错误,它们却被用来证实软件功能的可操作性;证实能很好地接收输入,并正确地产生输出;以及证实对外部信息完整性(例如:数据文件)的保持。黑盒测试检验系统的一些基本特征,很少涉及软件的内部逻辑结构。 软件的白盒测试依赖对程序细节的严密检验,提供运用特定条件和/与循环集的测试用例,对软件的逻辑路径进行测试,在不同的点检验“程序的状态”以判定预期状态或待验证状态与真实状态是否相符。

一眼看去,可能认为全面的白盒测试将产生“百分之百正确的程序”,需要我们做的只是定义所有的逻辑路径、开发相应的测试用例,并评估结果,简而言之,详尽地生成用例以测试程序逻辑。不幸的是,穷举测试带来了必然的计算问题,即使是很小的程序,可能的逻辑路径数量也非常大,例如,考虑 100行C语言程序,在一些基本的数据声明之后,程序包含两个嵌套循环,根据输入的条件分别执行1到20次,在内部循环中,需要四个if-then-else结构,该程序中大约有1014条可能路径! 为了正确表达这个数值,我们假设开发了一个有魔力的测试处理器(“有魔力”是因为不存在这样的处理器)进行穷举测试。该处理器能在一毫秒内开发一个测试用例、进行运行并评估结果,如果每天运行24小时,每年运行365天,则需要3170年的时间来测试这个程序。不可否认,这将导致大多数开发进度表的混乱,对大型软件系统不可能进行穷举测试。 然而,白盒测试不应该被抛弃,可选择有限数量的重要逻辑路径进行测试,检测重要数据结构的有效性,可以综合黑盒测试和白盒测试的属性提供一种方法,以验证软件界面,并有选择地保证软件内部工作的正确性。

软件测试中如何编写单元测试用例(白盒测试)

软件测试中如何编写单元测试用例(白盒测试) 测试用例(T est Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。 测试用例(T est Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。 不同类别的软件,测试用例是不同的。不同于诸如系统、工具、控制、游戏软件,管理软件的用户需求更加不统一,变化更大、更快。笔者主要从事企业管理软件的测试。因此我们的做法是把测试数据和测试脚本从测试用例中划分出来。测试用例更趋于是针对软件产品的功能、业务规则和业务处理所设计的测试方案。对软件的每个特定功能或运行操作路径的测试构成了一个个测试用例。 随着中国软件业的日益壮大和逐步走向成熟,软件测试也在不断发展。从最初的由软件编程人员兼职测试到软件公司组建独立专职测试部门。测试工作也从简单测试演变为包括:编制测试计划、编写测试用例、准备测试数据、编写测试脚本、实施测试、测试评估等多项内容的正规测试。测试方式则由单纯手工测试发展为手工、自动兼之,并有向第三方专业测试公司发展的趋势。 要使最终用户对软件感到满意,最有力的举措就是对最终用户的期望加以明确阐述,以便对这些期望进行核实并确认其有效性。测试用例反映了要核实的需求。然而,核实这些需求可能通过不同的方式并由不同的测试员来实施。例如,执行软件以便验证它的功能和性能,这项操作可能由某个测试员采用自动测试技术来实现;计算机系统的关机步骤可通过手工测试和观察来完成;不过,市场占有率和销售数据(以及产品需求),只能通过评测产品和竞争销售数据来完成。 既然可能无法(或不必负责)核实所有的需求,那么是否能为测试挑选最适合或最关键的需求则关系到项目的成败。选中要核实的需求将是对成本、风险和对该需求进行核实的必要性这三者权衡考虑的结果。 确定测试用例之所以很重要,原因有以下几方面。 测试用例构成了设计和制定测试过程的基础。测试的“深度”与测试用例的数量成比例。由于每个测试用例反映不同的场景、条件或经由产品的事件流,因而,随着测试用例数量的增加,您对产品质量和测试流程也就越有信心。判断测试是否完全的一个主要评测方法是基于需求的覆盖,而这又是以确定、实施和/或执行的测试用例的数量为依据的。类似下面这样的说明:“95 % 的关键测试用例已得以执行和验证”,远比“我们已完成95 % 的测试”更有意义。测试工作量与测试用例的数量成比例。根据全面且细化的测试用例,可以更准确地估计测试周期各连续阶段的时间安排。测试设计和开发的类型以及所需的资源主要都受控于测试用例。测试用例通常根据它们所关联关系的测试类型或测试需求来分类,而且将随类型和需求进行相应地改变。最佳方案是为每个测试需求至少编制两个测试用例:·一个测试用例用于证明该需求已经满足,通常称作正面测试用例;·另一个测试用例反映某个无法接受、反常或意外的条件或数据,用于论证只有在所需条件下才能够满足该需求,这个测试用例称作负面测试用例。 前段时间公司进行有关测试的培训,集成测试,性能测试,压力测试说了很多。由于本人还处于Coder阶段,只是对单元测试有了些了解。写下来怕以后自己忘记了。都是些自己的看法,不一定准确,欢迎高手指教。 一、单元测试的概念 单元通俗的说就是指一个实现简单功能的函数。单元测试就是只用一组特定的输入(测试用

相关文档
最新文档