纯手打笔记到有道云,仅供参考,参考数据为《计算机软件测试规范》,笔记并不做商用,如有侵权,请联系删除,顺便分享一下有道云笔记的链接http://note.youdao.com/noteshare?id=740ee7b8fe2063a518fd181cb74a921a&sub=88DDBA74B3B84C08A23EB0F829A04F86
测试对象和目的 1.测试对象 软件单元测试的对象是可独立编译或汇编的程序模块(或称为软件构建或在面向对象设计中的类) 2.测试目的 软件单元测试的目的是检查每个单元能否正确地实现设计说明中的功能、性能、接口和其他设计约束等要求,发现单元内可能存在的各种差错。
测试的组织和管理 一般由软件的供方或开发方组织并实施软件单元测试,也可委托第三方进行。 软件单元测试的技术依据是软件设计文档(或称软件详细设计文档)。其测试工作应满足准入条件以及准出条件。 软件单元测试的工作产品一般应纳入软件的配置管理中。
技术要求 a)对软件设计文档规定的软件单元的功能、性能、接口等应逐项进行测试; b)每个软件特性应至少被一个正常测试用例和一个被认可的异常测试用例覆盖; c)测试用例的输入应至少包括有效等价类值、无效等价类值和边界数据值; d)在对软件单元进行动态测试之前,一般应对应软件单元的源代码进行静态测试; e)语句覆盖率要达到100%; f)分支覆盖率要达到100%; g)对输出数据及其格式进行测试。 对具体的软件单元,可根据软件测试合同(或项目计划)以及软件单元的重要性’完整性级别等要求对上述内容进行剪裁。
测试内容 1.总则 当静态测试时,所测试的内容与选择的测试方法有关。如,采用代码审查方法,通常要对寄存器的使用(仅限定在机器指令和汇编语言时考虑)、程序格式、入口和出口的链接、程序语言的使用、存储器的使用等内容进行检查;采用静态分析方法,通常要对软件单元的控制流、数据流、接口、表达式等内容进行分析。 当动态测试时,通常对软件单元的功能、性能、皆苦、局部数据结构、独立路径、出错处理、边界条件和内存使用情况进行测试。通常对软件单元接口的测试优先于其他内容的测试。对具体的软件单元,应根据软件测试合同(或项目计划)、软件设计文档的要求及选择的测试方法确定测试的具体内容。 2.接口 a)调用被测单元的实际参数与该单元的形式参数的个数、属性、量纲‘顺序是否一致; b)被测单元调用子模块时,传递给子模块的实际参数与子模块的形式参数的个数、属性、量纲、顺序是否一致; c)是否修改了值作为输入值得形式参数; d)调用内部函数的参数个数、属性、量纲、顺序是否正确; e)被测单元在使用全局变量时是否与全局变量的定义一致; f)在单元有多个入口的情况下,是否引用了与当前人口无关的参数; g)常数是否当做变量来传递; h)输入/输出文件属性的正确性; i)OPEN语句的正确性; j)CLOSE语句的正确性; k)规定的输入/输出格式说明与输入/输出语句是否匹配; l)缓冲区容量与记录长度是否匹配; m)文件是否先打开后使用; n)文件结束条件的判断和处理的正确性; o)对输入/输出错误是否进行了检查并做了处理以及处理的正确性。 3.局部数据结构 测试软件单元内部的数据能否保持完整性,包括内部数据内容、格式及相互关系。 a)不正确或不一致的数据类型说明; b)错误的变量名,如变量名拼写错或缩写错等; c)使用尚未赋值或尚未初始化的变量; d)差错的初始值或差错的缺省值; e)不一致的数据类型; f)下溢、上溢或是地址差错; g)全局数据对软件单元的影响。 4.独立路径 独立路径是指在程序中至少应用一个新的处理语句集合或从一个新条件的任一路径。在程序的控制流程图中,一条独立路径是至少包含有一天在其他独立路径中从未有过的边的路径。应设计适当的测试用例,对软件单元中的独立路径进行测试,特别是对独立路径中的基本路径进行测试。基本路径值在程序控制流图中,通过对控制构造的环路复杂性分析而导出的基本的、可执行的独立路径集合。 5.边界条件 应测试软件单元在边界处能否正常工作,如,测试处理数组的一个个和最后一个元素;测试循环执行到最后一次;测试取最大值或最小值;测试数据流,控制流中刚好等于、大于或小于确定的比较值等等。 6.差错处理 测试软件单元在运行过程中发生差错是、其出错处理措施是否有效。 良好的单元设计要求能预见到程序投入运行后可能发生的差错,并给出相应的处理措施。这种出错处理也应当是软件单元功能中的一部分。一般若出现下列情况之一,则表明软件单元的出错处理功能包含差错或缺陷; a)差错的描述难以理解; b)对差错进行处理之前,差错条件已经引起系统的干预; c)所提供的差错描述信息不足以确定造成差错的位置或原因; d)显示的出错提示与实际差错不符; e)对差错条件的处理不正确; f)意外的处理不当; g)联机条件处理(即交互处理等)不正确。 7.功能 应对软件设计文档规定的软件单元的功能逐项进行测试。 8.性能 按软件设计文档的要求,对软件单元的性能(如精度、时间、容量等)进行测试。 9.内存使用 检查内存的使用情况,特别是动态申请的内存在使用上的错误(如指针越界、内存泄露等)
测试环境 测试环境包括测试的运行环境和测试工具环境。测试的运行环境一般符合软件测试合同(或项目计划)的要求,通常是开发环境或仿真环境。测试工具一般要求是经过认可的工具。
测试方法 软件单元测试一般采用静态测试方法和动态测试方法。通常静态测试先于动态测试进行。 测试过程 1.测试策划 测试分析人员一般根据测试合同(或项目计划)和被测试软件的设计文档对被测试单元进行分析并确定以下内容: a)确定测试充分性要求。根据软件单元的重要性’软件单元测试目标和约束条件,确定测试覆盖的范围及每一范围所要求的覆盖程度(如,分支覆盖率、语句覆盖率、功能覆盖率、单元的每一软件特性应至少被一个正常的测试用例和一个异常的测试用例所覆盖)。 b)确定测试终止的要求。指定测试过程正常终止的条件(如,测试充分性是否达到要求),确定导致测试过程异常终止的可能情况(如软件编码错误)。 c)确定用于测试的资源要求,包括软件(如操作系统、编译软件、静态分析软件、测试数据产生软件、测试结果获取和处理软件、测试驱动软件等)、硬件(如计算机、设备接口等)、人员数量、人员技能等。 d)确定需要测试的软件特性。根据软件设计文档的描述确定软件单元的功能、性能、状态、接口、数据结构、设计约束等内容和要求,并对其标识。若需要,将其分类。并从中确定需测试的软件特性。 e)确定测试需要的技术和方法,如,测试数据生成与验证技术、测试数据输入技术、测试结果获取技术。 f)根据测试合同(或项目计划)的要求和被测软件的特点,确定测试准出条件。 g)确定有资源和被测软件单元所决定的单元测试活动的进度。 h)对测试工作进行风险分析与评估,并制定对应措施。 应对单元测试计划进行评审。评审测试的范围和内容‘资源、进度、各方责任等是否明确,测试方法是否合理,有效和可行,风险的分析、评估与对策是否准确可行,测试文档是否符合规范,测试活动是否独立。一般情况下,有软件的供方自行组织评审,评审细则也是自行制定。在软件单元测试计划通过评审后,进入下一步工作;否则,需要重新进行单元测试的策略。 2.测试设计 软件单元测试的设计工作由测试设计人员和测试程序员完成,一般根据软件单元测试设计计划完成以下工作: a)设计测试用例。将需要测试的软件特性分解,针对分解后的每种情况设计测试用例,每个测试用例的设计符合要求。 b)获取测试数据。包括获取现有的测试数据和生成新的数据,并按照要求验证所有数据。 c)确定测试顺序。可以从资源约束、风险以及测试用例造成的影响或后果几个方面考虑。 d)获取测试资源。对于支持测试的软件和硬件,有的可从现有的工具中选定,有的需要研制开发。 e)编写测试程序,包括开发测试支持工具,单元测试的驱动模块和桩模块。 f)建立和校准测试环境。 g)按要求编写软件单元测试说明。 应对软件单元测试说明进行评审。评审测试用例是否正确、可行和充分,测试环境是否正确、合理,测试文档是否符合规范。通常由软件测试方自行组织单元测试的评审,评审细则也自行制定。在软件单元测试说明通过评审后,进入下一步工作;否则,需要重新进行测试设计和实现。 3.测试执行 执行测试的工作由测试员和测试分析员完成。 软件测试的主要工作是按照单元测试计划和软件单元测试说明的内容和要求执行测试。在执行过程找那个,测试员应认证观察并如实地记录测试过程、测试结果和发现的差错,认真填写测试记录。 测试分析员工的主要有如下两方; a)根据没个测试用例的期望测试结果、实际测试结果和评价准则判定该测试用例是否通过,并将结果记录在软件测试记录中,如果测试用例不通过,测试分析员应该认真分析情况,并根据以下情况采取相应措施; 1)软件单元测试说明和测试数据的差错。采取的措施是;改正差错,将改正差错信息详细记录,然后重新运行该测试; 2)执行测试步骤时的差错。采取的措施是:重新运行未正确执行的测试步骤; 3)测试环境(包括测软件环境和硬件环境)中的差错。采取的措施是:修正测试环境,将环境修正情况详细记录,重新运行该测试;如果不能修正环境,记录理由,再核对终止情况; 4)软件单元的实现差错。采取的措施是:填写软件问题报告单,可提出软件修改建议,然后继续进行测试;或者把差错与异常终止情况比较,核对终止情况。软件更新完毕后,应根据情况对其进行回归测试; 5)软件单元的设计差错,采取的措施是:填写软件问题报告单,可提出软件修改建议,然后继续测试;或把差错与异常终止情况进行比较,核对终止情况。软件变更完毕后,应根据情况对其进行回归测试或重新组织测试,回归测试中需要对应的修改测试设计和数据。 b)当所有的测试用例执行完毕,测试分析员要根据测试的充分性要求和失效记录,确定测试工作是否充分,是否需要增加新的测试。当测试过程正常终止时,如果发现测试工作不足,应对软件单元进行补充测试,直到测试达到预期要求,并附加的内容记录在软件单元检测报告中;如果不需要补充测试,则将正常终止情况记录在软件单元测试报告中。当测试过程异常终止时,应记录导致终止的条件’、未完成的测试和未被修正的差错。 4.测试总结 测试分析员应根据被测试软件设计文档、软件单元测试计划、软件单元测试说明、测试记录和软件问题报告单等,对测试工作进行总结。 a)总结软件单元测试计划和软件单元测试说明的变化及其原因,并记录在软件单元测试报告中; b)对测试异常终止的情况,确定未能被测试活动充分覆盖的范围,并将理由记录在测试报告中; c)确定未能解决的软件测试时间以及不能解决的理由,并将理由记录在测试报告中; d)总结测试所反映的软件单元与软件设计文档之间的差异,记录在测试报告中; e)将测试结果连同所发现的出错情况同软件设计文档对照,评价软件单元的设计与实现,提出软件改进建议,记录在测试报告中; f)按照要求编写软件单元测试报告,该报告应包括:测试结果分析、对应软件单元的评价和建议; g)根据测试记录和软件问题报告单编写问题报告。 应对测试执行活动、软件单元测试报告、测试记录和测试问题报告进行评审。评审测试执行活动的有效性、测试结果的正确性和合理性。评审是否达到了测试目的、测试文档是否符合规范。一般情况下,评审由软件测试方自行组织,评审细则也可自行制定。
文档 软件单元测试完成后形成的文档一般应有: a)软件单元测试计划; b)软件单元测试说明; c)软件单元测试报告; d)软件单元测试记录; e)软件单元测试问题报告。