




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单元测试规范概述单元测试是对软件基本组成单元进行的测试,所谓“单元”是指:具有明确的功能具有明确的规格定义(详细设计规格说明书)有与其他部分明确的接口定义能够与程序的其他部分清晰的进行区分单元测试的侧重点在于发现程序设计或者实现中的逻辑错误。它分为计划、设计、实现、执行和评估五个步骤。各步骤的定义如下:计划单元测试:确定测试需求,制订测试策略,确定测试所用资源,创建测试任务的时间表。设计单元测试:设计单元测试模型,制订测试方案,确认测试过程实现单元测试:根据单元测试计划和方案,制订具体的测试用例,创建可重用的测试脚本。执行单元测试:根据单元测试的方案、用例对软件单元进行测试,验证测试结果并记录测试过程中出现的缺陷。评估单元测试:对单元测试的结果进行评估,主要从需求覆盖和代码覆盖的角度进行测试完备性的评估。单元测试步骤设计单元测试方案输入、输出输入工作产品待测程序单元输出工作产品《XXX单元测试方案》任务设计单元测试的模型,一般如下图所示驱动模块驱动模块被测单元测试用例桩模块桩模块桩模块测试结果构造单元测试模型需要:定义(设计)驱动模块,用以调用被测程序单元定义(设计)测试桩模块,用以模拟被测程序单元调用的函数接口设计测试数据和状态,准备单元测试的动态结构确定测试的流程另外,测试模型也可能是由所采用的测试工具所决定的。指定测试项目:指定对不同特性(或者特性组合)进行足够测试的途径,包括测试工具、方法和技术的描述以及对测试结果进行提取和分析的方法。定义测试完备性标准(例如代码覆盖、路径覆盖或者条件覆盖),并设计判定测试完备性的手段,例如利用工具或者设计测试代码等。编写单元测试CASE输入、输出输入工作产品《XXX单元测试方案》输出工作产品单元测试案例测试环境任务根据《XXX单元测试方案》构造测试环境(将待测程序单元纳入测试工具;实现驱动模块和桩模块),编写测试代码(自己开发或使用测试工具)。需要的时候生成或者导入测试所需要的数据。设计单元测试案例设计测试案例的时候要根据《XXX单元测试方案》中所规定的测试方法、测试项目和完备性标准进行。单元测试案例的设计,主要有以下五个步骤:为系统运行起来设计测试用例首先需要设计这样的测试用例,该用例的执行可以证明测试环境和被测单元是可用的。如果这样的测试案例失败了,其他的测试案例都失去了执行的基础为正向测试而设计测试用例其次需要设计正向测试案例。这些案例也是基本的单元测试案例,它们是用来证明设计规格说明书中对应的功能和性能指标是否能够实现的。这些测试案例是按照设计说明书中的描述来开发的。为逆向测试而设计测试用例逆向测试的测试用例是用来证明软件没有做不应该做的事情。这个步骤可以基于错误猜测的基础进行测试用例的构造。为特殊要求设计测试用例从系统的性能、安全性、保密性的角度为具有这些要求的系统制订的测试用例。为覆盖率设计测试用例测试案例的设计要保证一定的覆盖率要求,所以在最后一步还需要补充一些测试案例,以保证测试案例对代码、路径、或者条件的覆盖率。在单元测试的设计当中,针对测试项目和测试覆盖率的要求经常采用如下的一些方法:规格导出法等价类划分法边界值分析法状态转移测试法分支测试法条件测试法数据定义-使用测试法内部边界值测试法错误猜测法这些方法的具体描述,请参见附录一。将设计好的测试案例用工具或者文档记录下来。在需要的时候,标注某个测试案例是为了哪个测试项目而设计的。一般来说,测试案例都需要注明:测试条件、测试输入、测试操作和预期输出这四大要素。将设计好的测试案例编写成为测试脚本(testscript),如果设计自动化测试,驱动模块从测试脚本中逐条读取测试案例并且通过程序或者测试人员的目测判断程序单元的行为或者输出是否符合预期。一般来说,测试工具或者驱动模块也需要将每一条测试案例执行的结果进行记录,以供分析之用。执行单元测试输入、输出输入工作产品单元测试案例输出工作产品单元测试结果记录任务执行单元测试案例对单元测试案例的执行一般意味着由驱动模块读取测试脚本,然后通过程序判断或者测试人员目测判断的方式确认测试案例是否执行通过。首先应该确保测试环境和测试程序能正常执行,如果不能正常执行则需要进行相应修改直至正常。在遇到测试案例执行失败而无法执行之后的单元测试案例时,需要调整被测程序单元直到该案例能够正常执行。修改之后需要重新执行之前的测试案例(回归测试)。使用测试工具或者编写自动化的测试驱动模块可以使这项工作相对容易些。对测试案例的执行结果进行记录,如果使用工具或者编写了自动化的测试驱动模块,这一步工作可以自动化。根据测试结果修改源代码,重新构造测试环境;需要的时候修改测试案例。分析单元测试结果输入、输出输入工作产品单元测试结果输出工作产品单元测试总结报告任务分析测试的完备性,判断是否执行了事先设计的所有测试案例以及在测试过程中新增加的测试案例。使用工具或者其他自定义的方法判断单元测试的覆盖率是否符合事先定义的覆盖率。如果未能达成覆盖率,则补充测试案例,重新执行测试。附录1单元测试案例设计指南单元测试目的单元测试案例的设计要验证被测程序单元的如下这些方面:1)是否正确实现了规定的功能模块内部是否存在错误常见模块单元的错误模块内部错误往往存在于下列方面:模块接口:测试模块的数据流调用所测模块时输入参数与模块的形式参数在个数、属性、顺序上是否匹配所测模块在调用其他模块时,它输入给其他模块的参数在个数、属性、顺序上是否匹配是否修改了只做输入用的形式参数输出给标准函数的参数在在个数、属性、顺序上是否匹配全局变量的定义在各模块中是否一致限制是否通过形式参数来传递局部数据结构:不正确的或者不一致的数据类型说明使用未赋值或者未初始化的变量错误的初始值或者错误的默认值变量名拼写错误不一致的数据类型路径错误:不正确的计算、比较和控制流错误处理出错的描述难以理解出错的描述不足以对错误定位和确定出错原因显示的错误与实际错误不符对错误条件的处理不正确在对错误进行处理之前,错误条件已经引起了系统的干预边界在循环的第0次,第一次和最后一次是否有错误运算或者判断中最大最小值是否有错误数据流、控制流中刚好大于、小于或等于最大或最小值时是否有错误单元测试案例常见设计方法以下是一些单元测试案例的常见设计方法,通过对这些方法的综合运用,可以帮助我们发现上述这些错误。规格导出法规格导出法是根据相关的规格说明来设计测试用例,每一个测试用例用来检验一个或多个规格陈述的语句。一个比较实际的办法是按照规格陈述的语句顺序来为被测单元设计测试用例。这种测试用例的设计可以保证在规格说明中所有的要求在测试案例中都能得到体现,但是它只是一种正向测试的思路,需要其他的测试用例的补充才能达成测试的完整性。等价类划分法等价类划分是一种正式的测试用例设计方法,它基于被测单元的输入、输出所做的划分,对每一个划分中的所有输入、被测单元都有相同(等价)的反应。例如对一个范围是0-100的整数输入来说,2,38,66应该都具有相同的效力,而-1,120也有相同的效力。等价类划分法就是针对每一个等价类设计至少一个测试案例来确保被测程序单元的处理是完整的。等价类划分的设计方法也属于正向测试的技术。边界值分析法边界值分析法使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于两个划分的边界上,相应地为边界上及两侧的情况设计测试用例。状态转移测试对于那些以状态机作为模型或者设计为状态机的软件,状态转移测试是合适的。状态转移测试法的测试案例涵盖能导致状态迁移的事件来测试状态之间的转换是否正确。用这种方法可以测试逆向的测试用例,如状态和事件的非法组合。分支测试法在分支测试中,根据单元中控制流分支或者判断点来设计测试用例。这通常用于达到一定的测试覆盖率。在单元测试中,如果使用黑盒测试技术,那么需要去猜测存在哪些逻辑分支并相应为这些分支的执行准备测试用例,如果使用白盒测试技术,那么则需要根据该程序单元中的控制流设计测试案例,完成分支覆盖的要求。条件测试法条件测试法中包涵了很多测试案例设计技术,它们都致力于弥补在遇到复杂逻辑条件的时候分支测试的弱点。条件测试的目标是测试在每个逻辑条件的单个成份及它们组合的情况下程序都是正确的。在考虑各个逻辑条件的组合的时候,决策表是一种有用的工具。在条件测试法中,需要设计足够的测试案例,确保每种逻辑条件的组合都被测试到。数据定义-使用测试法数据定义是指数据被赋值的地方,数据使用是指数据项被读取或者使用的地方。使用这种方法设计测试案例时,主要考虑用案例来驱动数据被定义到被使用的路径。这种方法主要用于检查数据的初始化和处理的正确性,也可以在静态检查中使用。内部边界值测试法这种方法与边界值分析法类似,但是它偏重的是白盒测试技术,也就是说从程序单元的规格说明中导出等价类和边界值。除了外部可见的数据之外,程序的内部的数据也存在等价类和边界值,它们只能通过对程序单元的设计规格说明进行分析而得到。内部边界值测试法一般只作为测试案例设计的补充方法,与其他方法结合使用。错误猜测法错误猜测是基于经验和其他一些测试技术的。在经验的基础上,测试设计者猜测错误的类型及在特定的软件中错误发生的位置,并设计测试用例去发现它们。例如,如果所有的资源需要动态申请,那
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 店面房投资合同协议书
- 个人转店合同协议书
- 个人股权抵押合同协议书
- 协议书范本劳动合同
- o2o项目商业计划书
- 三生九大优势
- 超市员工聘用合同协议书
- 2025年中国青海省农药项目商业计划书
- 中国磁性陶瓷项目商业计划书
- 2025年供应商自评报告范文
- 天津市公安局为留置看护总队招聘警务辅助人员笔试真题2024
- 2025-2030中国光稳定剂行业市场现状供需分析及投资评估规划分析研究报告
- 浙江省强基联盟2024-2025学年高一下学期5月月考地理试题(含答案)
- 职业技术学校2025年国际交流计划
- 商铺份额代持协议书
- 2025年高分子聚合物市场调查报告
- 2025年安徽马鞍山博望港华燃气有限公司招聘笔试参考题库附带答案详解
- 2024年湖南省永州市江华瑶族自治县数学三上期末检测试题含解析
- 2024年通信安全员ABC证考试试题库附答案
- 2023年广东省乳源瑶族自治县事业单位公开招聘名笔试题带答案
- 中医食疗学智慧树知到期末考试答案2024年
评论
0/150
提交评论