`
liuqiang
  • 浏览: 162626 次
  • 性别: Icon_minigender_1
  • 来自: 华东
社区版块
存档分类
最新评论

如何编制软件测试用例

阅读更多

如何设计编制软件测试用例
  一、测试用例是
软件测试的核心
  二、什么叫测试用例
  三、编制测试用例
  四、测试用例在
软件测试中的作用
  五、相关问题

  随着中国软件业的日益壮大和逐步走向成熟,软件测试也在不断发展。从最初的由软件编程人员兼职测试到软件公司组建独立专职测试部门。测试工作也从简单测试演变为包括:编制测试计划、编写测试用例、准备测试数据、编写测试脚本、实施测试、测试评估等多项内容的正规测试。测试方式则由单纯手工测试发展为手工、自动兼之,并有向第三方专业测试公司发展的趋势。


  一、测试用例是软件测试的核心  
  软件测试的重要性是毋庸置疑的。但如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公司探索和追求的目标。每个软件产品或软件开发项目都需要有一套优秀的测试方案和测试方法。  
  影响软件测试的因素很多,例如软件本身的复杂程度、开发人员(包括分析、设计、编程和测试的人员)的素质、测试方法和技术的运用等等。因为有些因素是客观存在的,无法避免。有些因素则是波动的、不稳定的,例如开发队伍是流动的,有经验的走了,新人不断补充进来;一个具体的人工作也受情绪等影响,等等。如何保障软件测试质量的稳定?有了测试用例,无论是谁来测试,参照测试用例实施,都能保障测试的质量。可以把人为因素的影响减少到最小。即便最初的测试用例考虑不周全,随着测试的进行和软件版本更新,也将日趋完善。  
  因此测试用例的设计和编制是软件测试活动中最重要的。测试用例是测试工作的指导,是软件测试的必须遵守的准则。更是软件测试质量稳定的根本保障。


 二、什么叫测试用例
  测试用例(Test Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。


[Kiki] 目前有以下一些解释:
"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、测试用例文档  
  编写测试用例文档应有文档模板,须符合内部的规范要求。测试用例文档将受制于测试用例管理软件的约束。  
  软件产品或软件开发项目的测试用例一般以该产品的软件模块或子系统为单位,形成一个测试用例文档,但并不是绝对的。  
  测试用例文档由简介和测试用例两部分组成。简介部分编制了测试目的、测试范围、定义术语、参考文档、概述等。测试用例部分逐一列示各测试用例。每个具体测试用例都将包括下列详细信息:用例编号、用例名称、测试等级、入口准则、验证步骤、期望结果(含判断标准)、出口准则、注释等。以上内容涵盖了测试用例的基本元素:测试索引,测试环境,测试输入,测试操作,预期结果,评价标准。


[Kiki] 对测试用例划分等级有很多感触:许多时候当开发部门应客户需要或发现严重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 的完整性、有效性!

分享到:
评论

相关推荐

    如何设计编制软件测试用例.doc

    ### 如何设计编制软件测试用例 #### 一、测试用例的核心作用 软件测试作为确保软件产品质量的关键环节,其重要性不容忽视。随着软件行业的迅速发展与成熟,软件测试经历了从简单的兼职测试到设立独立的专业测试...

    如何设计编制软件测试用例

    【如何设计编制软件测试用例】 软件测试是确保软件质量的关键环节,而测试用例的设计与编制是这一过程的核心。有效的测试用例可以帮助我们在有限的资源下,快速准确地发现软件系统的潜在问题,从而提高软件的可靠性...

    测试用例编写资料汇总

    如何设计编制软件测试用例.doc 测试用例.doc 测试用例的设计-边界值法例子.doc 测试用例的设计等价划分法.ppt 测试用例示例1.doc 测试用例表模板.pdf 测试用例设计.ppt 测试用例设计指南.pdf 测试用例设计白皮书.doc...

    设计编制软件测试用例

    设计编制软件测试用例软件测试编制测试用例着重介绍一些编制测试用例的具体做法。1、测试用例文档编写测试用例文档应有文档模板,须符合内部的规范要求。测试用例文档将受制于测试用例管理软件的约束。软件产品或...

    软件测试中如何设计编制软件测试用例

    软件测试中如何设计编制软件测试用例一、测试用例是软件测试的核心软件测试的重要性是毋庸置疑的。但如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公司...

    软件测试用例文档模板(带实例)

    该模板提供了一个通用的软件测试用例文档结构,包括测试用例编号、项目名称、功能模块、编制人、编制时间、相关用例、功能特性、预置条件、特殊规程说明、测试数据、操作步骤、测试描述、期望结果、实际结果和测试...

    在软件测试中该如何设计编制软件测试用例

    在软件测试中该如何设计编制软件测试用例一、测试用例是软件测试的核心二、什么叫测试用例三、编制测试用例四、测试用例在软件测试中的作用五、相关问题随着中国软件业的日益壮大和逐步走向成熟,软件测试也在不断...

    如何编制软件测试用例[2]

    如何编制软件测试用例[2]软件测试[Kiki]对测试用例划分等级有很多感触:许多时候当开发部门应客户需要或发现严重bug而快速发布一个新版本时,要求在限定的时间内快速测试以确保系统基本功能正常时,有些测试人员不知...

    如何编制软件测试用例[1]

    如何编制软件测试用例[1]软件测试随着中国软件业的日益壮大和逐步走向成熟,软件测试也在不断发展。从最初的由软件编程人员兼职测试到软件公司组建独立专职测试部门。测试工作也从简单测试演变为包括:编制测试计划...

    软件测试,软件测试用例评审

    "软件测试用例评审" 软件测试用例评审是软件测试中一个非常重要的步骤,它旨在评审测试用例的质量和可靠性,从而确保测试用例的可靠性和有效性。本文将详细介绍软件测试用例评审的定义、评审标准、评审步骤、参与...

    如何编制软件测试用例[3]

    如何编制软件测试用例[3]软件测试4、评估测试结果的度量基准完成测试实施后需要对测试结果进行评估,并且编制测试报告。判断软件测试是否完成、衡量测试质量需要一些量化的结果。例:测试覆盖率是多少、测试合格率是...

    软件测试用例的定义测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。

    测试用例的设计和编制是软件测试质量的关键。一套完整的测试用例可以帮助减少因人员变动、情绪波动等因素导致的测试质量波动。它们为测试人员提供了明确的指导,确保无论谁执行测试,都能按照既定标准进行,从而提高...

    软件测试用例设计步骤

    软件测试用例设计步骤 软件测试用例设计是一种系统化的方法,旨在确保软件产品的质量和可靠性。该方法分为五个步骤:测试需求分析、业务流程分析、测试用例设计、测试用例评审和测试用例更新完善。 测试需求分析 ...

    (完整word)软件测试用例文档模板(带实例).doc

    本文档模板提供了软件测试用例的基本结构和内容,包括测试用例的编号、名称、编制人、编制时间、相关用例、功能特性、预置条件、特殊规程说明、测试数据、操作步骤、期望结果、实际结果和测试状态等。 测试用例编号...

    考勤测试用例(分析刷卡)

    模块名称和编制日期则有助于确定测试用例的适用范围和时效性。在本场景中,"考勤测试用例(分析刷卡)"关注的是员工刷卡考勤的功能。 功能描述通常包括对系统预期行为的简要说明。在考勤系统中,功能可能涉及统计不同...

Global site tag (gtag.js) - Google Analytics