4.1测试用例编写概述学习测试用例编写技术之前我们先来了解一下什么是测试用例、我们为什么要编写测试用例、一份完整的测试用例所包含的内容以及设计测试用例所需要的文档资料。软件测试技术研究组·中国信息大学4.1.1什么是测试用例测试用例(TestCase)通俗一点来讲就是编写(编制)一组前提条件、输入、执行条件、预期结果以完成对某个特定需求或目标测试的数据,体现测试方案、方法、技术和策略的文档。测试用例的具体定义暂时还没有标准化定义组织或个人为它下一个比较恰当合适的定义。软件测试技术研究组·中国信息大学4.1.2为什么要编写测试用例测试用例是将整个测试的执行过程作一个科学有效的合理组织规划。主要目的是将软件测试的执行过程形成那个一个可管理的模式;同时测试用例也是将测试详细具体化的有效手段之一。测试用例的主要作用将在本章第二节详细介绍。4.1.3测试用例主要包括哪些内容完整的测试用例通常包括:★测试用例的编号;★测试日期;★测试用例设计人员和测试人员;★测试用例的优先级;★测试标题;★测试目标;★测试环境;★输入数据/动作;★测试的操作步骤;★测试预期的结果。软件测试技术研究组·中国信息大学4.1.4设计测试用例所需的文档资料设计测试用例所需要的文档资料包括:★软件需求说明书;★软件设计说明书;★软件测试需求说明书;★成熟的测试用例(案例库或财富库)。软件测试技术研究组·中国信息大学4.2测试用例的作用测试用例始终贯穿于整个软件测试,是软件测试的核心,小投入大回报是每个公司运作的目标,如何在最少的时间内以最小的人力、资源的投入发现软件自身的缺陷和bug完成高效率的测试,交付出优质的产品,是软件公司探索和追求的目标。因此每一个项目都要有一套完整、高效、优质的测试方案和测试方法。一个项目从它入手到交付过程中都是有一定风险的。因此影响软件测试的风险因素也有很多如:软件本身的复杂程度;参与的工作人员(包括分析、设计、编程和测试等人员)的素质;测试方案、测试方法和测试技术的运用等。在这么多风险的前提下如何保证软件测试的高效率高质量的运作是每个公司都要考虑的问题。如果有了测试用例呢?软件测试技术研究组·中国信息大学参照测试用例,无论任何人员的流动,对测试的影响、对项目质量的影响都可以用微乎其微来说。如此重要的测试用例具体有哪些作用呢?测试用例的作用:★作为实施测试的指导★作为测试数据规划的前提★作为测试脚本编写说明书★作为评判基准★作为分析缺陷的基准软件测试技术研究组·中国信息大学4.3测试用例的设计方法测试用例是整个测试工作中的重中之重,测试的一般流程包括制定测试计划、编写测试用例、执行测试、跟踪测试缺陷、编写测试报告等。测试计划、大纲制定后就需要进行测试用例的设计,之后所有的工作全都是在测试用例的基础上展开的。用例的设计应注意到一下几点问题:★用例应该从系统的最高级别向最低级别逐一展开;★每个测试用例都应单独放在文档中;★系统中的所有功能都应该对应到用例中;★每个用例都应该依据需求进行设计;★用例的设计人员最好是具有丰富的经验测试人员。软件测试技术研究组·中国信息大学4.3.1白盒测试用例的设计方法(1)白盒测试用例的设计技术如下:★逻辑覆盖;★基本路径测试。白盒测试用例设计方法在本书第二章已有详解,本节不做介绍。(2)采用白盒测试技术设计用例的目的主要是:★每个模块中的所有独立路径至少被执行一次;★所有的逻辑值必须测试真、假两个分支;★在边界值内和可操作范围至少循环一次;★检查数据的内部结构保证其有效的实现预定功能。软件测试技术研究组·中国信息大学4.3.2黑盒测试用例的设计方法(1)黑盒测试用例设计技术如下:★等价类划分;★边界值分析;★错误推测;★因果图。(2)采用黑盒测试技术设计用例的主要目的是:★检查功能是否实现或遗漏;★检查人机交互界面是否出错;★数据库读取、更新操作出错;★性能特性是否得到满足。软件测试技术研究组·中国信息大学4.3.3综合设计方法白盒和黑盒测试用例的设计方法,每一个测试用例设计方法给出了有用测试用例的一个特殊的集合,但没有一个可以贡献完整的测试用例的集合。在实际项目运作设计时常常共同使用各种测试用例设计方法进行用例的设计。这里我们主要是介绍如何综合使用这些方法来设计测试用例。实际操作设计测试用例一般是先黑后白,即:先用黑盒技术设计一些用例,再用白盒技术做一些补充用例。软件测试技术研究组·中国信息大学下面是综合设计方法的建议性设计步骤:★如果规格说明书中包含输入条件,用因果图法进行设计测试用例。★如果源码中遇到输入输出边界,用边界值分析法进行设计测试用例,这是输入输出边界的分析。边界值分析产生一组附加的测试条件,但是大多数或全部这些条件都可以组合到因果测试中。★为输入和输出识别有效和无效等价类。★使用错误推测方法来增加测试用例。★用逻辑覆盖方法来检查程序的逻辑,使用判定覆盖、条件覆盖、判定/条件覆盖和多条件覆盖准则(最完整),如果满足此方法不是不可能,那么设计足够的测试用例去让此方法被满足。软件测试技术研究组·中国信息大学测试用例设计时的基本原则:★利用成熟的测试用例设计方法来指导设计;★测试用例的正确性;★测试用例的代表性;★测试结果的刻判定性;★测试结果的可重现性;★足够详细、准确和清晰的步骤;★利用测试用例文档编写测试用例时必须符合内部的规范要求。软件测试技术研究组·中国信息大学设计测试用例时需要注意的问题:★不能把测试用例设计等同于测试输入数据的设计;★不能追求测试用例设计的一步到位;★不能将多个测试用例混在一个用例中;★不能由没有经验的人员设计测试用例。测试用例文档由简介和测试用例两部分组成:简介部分编制了测试目的、测试范围、定义术语、参考文档、概述等;测试用例部分逐一列出各测试用例,每个具体测试用例都将包括下列详细信息:用例编号、用例名称、测试等级、入口准则、验证步骤、期望结果(含判断标准)、出口准则、注释等。软件测试技术研究组·中国信息大学4.3.4测试用例的管理测试用例的设计过程正如同软件开发工程师开发软件一样,是测试工程师开发程序的过程不过这个程序是文档。测试用例如同软件产品一样有需求分析、设计、管理以及使用。测试用例的管理也是非常重要的。在这里推荐用用例管理工具进行管理,如:Microsoft的VisualSourceSafe,Rational的TestManager。软件测试技术研究组·中国信息大学用例编写用例评审修改用例入库保存使用维护/升级图4-1测试用例管理方式软件测试技术研究组·中国信息大学测试用例管理的一般方式如图4-1所示:4.4测试用例主要内容的编写•软件的类别多种多样,按行业区分诸如:银行、公司、政府等;按软件的使用区分如:系统、工具、控制、游戏以及娱乐等。每种软件的测试着重点都是不同的,也没有任何一个测试用例能够一次编写用于多个测试项目。•测试行业是一个新兴的行业,它由一开始的兼职测试员、外包测试发展到现在的公司自己成立测试部门。测试方式由一开始的人工测试发展到现在的人工测试、自动化测试并行的方式,极大的提高了测试的效率和质量。•测试用例是要依据测试计划、需求分析以及测试设计编写的。软件测试技术研究组·中国信息大学4.4.1测试目标的描述•测试用例编写是要针对某个特定的目标进行编写的,主要是根据软件需求分析说明书指定的需求写出要测试的目标。•测试目标也就是被测试的对象,测试用例中描述目标时应做到准确、具体的说明它的特征。•对软件进行测试时不仅要描述它所需要实现的功能,还需要描述它的性能。•进行性能测试前要明确测测试那些目标的性能。比如用户并发性性能测试、网络性能测试、服务器性能测试等一些特定目标。•这些目标就是要测试的对象。只有明确了测试目标测试才能那个有效的进行下去。因此在测试用例编写中测试目标是必不可少的。软件测试技术研究组·中国信息大学4.4.2测试环境的描述•测试环境这一部分主要是描述进行测试的环境要求。如:★硬件条件;★软件条件;★网络条件等。•假如进行一个大型3D游戏的测试要特别指定这个测试项目所需的硬件环境,原因:3D游戏的高效运行是需要高性能显卡,高效cup的保障。那么在测试环境就要详尽的列出测试这个3D游戏的硬件环境需求。当然它的软件环境需求也是必须确定的,如:运行的系统平台、需要的辅助软件等。•测试一个网络办公系统要保证网络的正常运作,包括:内网环境下运作、外网环境下运作;网络硬件设施的保证等等一些测试所需要条件及模拟环境。软件测试技术研究组·中国信息大学4.4.3输入数据/动作的编写•测试中输入的数据/动作,一般就是具体执行的过程。•测试数据的编写要注意事项:★将数据放文本文件或数据库中;★进行中的测试要进行进度存档;★通过动态占位符输入动态数据;★通过数据驱动测试进行。•创建测试数据以下几点是绝对不能做的:★测试脚本使用对象为单一功能;★测试脚本没有按照标准进行编写;★测试脚本没有共享,只供个人单独使用;★脚本设计使用的框架不符合标准,不符合实际。软件测试技术研究组·中国信息大学4.4.4测试的步骤•测试步骤也就是测试数据动作的具体执行操作过程。•不同的测试项目的操作步骤也不同,工作中应该根据具体的项目进行操作,为了节省时间一些可以使用自动化测试的项目可以编写测试脚本让机器自动执行,以便于提高效率。操作步骤的编写要遵循实用性以及切实行原则。因为测试人员的操作都是按照测试用例中编写的操作步骤来进行操作的,设计测试用例操作步骤一定要严格把关,并在实际操作中总结经验进行改进并存档。•对于一些复杂的测试用例,它的操作步骤需要按照划分模块来进行划分,此类步骤在编写时需要详细列出。软件测试技术研究组·中国信息大学4.4.5测试预期的结果•预期结果在测试中是作为评判标准出现的。•预期结果是用户最终想要的结果,用例中编写时需要根据软件需求中的输出得到。软件测试技术研究组·中国信息大学4.4.6测试脚本的编写•测试脚本(Testingscript)一组可自动执行的指令集,这些指令可以被自动化测试工具执行。•测试脚本编写不作为所有测试用例设计必须的工作,用于自动化测试的测试用例需要编写测试脚本。软件测试技术研究组·中国信息大学•请您解答:•1.什么是测试用例。•2.测试用例主要包括哪些内容。•3.请写出设计测试用例所需的文档资料。•4.简述白盒测试用例的设计技术和目的。•5.简述黑盒测试用例的设计技术和目的。谢谢软件测试技术研究组·中国信息大学