1—GB/T15532—2008计算机软件测试规范解读2目录•范围•规范性引用文件•总则•单元测试•集成测试•配置项测试•系统测试•验收测试•回归测试3规范性引用文件范围4(一)范围•本标准规定了计算机软件生存周期内各类软件产品的基本测试方法、过程和准则。•本标准适用于计算机软件生存周期全过程。本标准适用于计算机软件的开发机构、测试机构及相关人员。5总则规范性引用文件6(二)规范性引用文件•GB/T8566信息技术软件生存周期过程(GB/T85662007,ISO/IEC12207:1995,MOD)•GB/T9386计算机软件测试文档编制规范•GB/T11457信息技术软件工程术语•GR/T16260.1软件工程产品质量第1部分:质量模型(GB/T16260.1-2006ISO/IEC9126一l:2001,IDT)•GB/T18492信息技术系统及软件完整性级别{GB/T18492-2001,IS0/IEC15026:1998,IDT)•GB/T20158信息技术软件生存周期过程配置管理(GB/T20158-2006,ISO/IECTR15846:1998,IDT)7单元测试总则8(四)总则1.测试目的a)验证软件是否满足软件开发合同或项目开发计划、系统/子系统设计文档、软件需求规格说明、软件设计说明和软件产品说明等规定的软件质量要求;b)通过测试,发现软件缺陷;c)为软件产品的质量测量和评价提供依据。9(四)总则2.测试类别单元测试集成测试系统测试验收测试回归测试配置项测试10(四)总则3.测试过程策划设计执行总结需求分析:即确定需要测试的内容或质量特性;确定测试的充分性要求;提出测试的基本方法;确定测试的资源和技术需求;进行风险分析与评估;制定测试计划。11(四)总则3.测试过程策划设计执行总结依据测试需求,分析并选用已有的测试用例或设计新的测试用例获取验证测试数据;根据测试资源、风险等约束条件,确定测试用例执行顺序;获取测试资源,开发测试软件;建立并校准测试环境;进行测试就绪评审。主要评审测试计划的合理性和测试用例的正确性、有效性和覆盖充分性。评审测试组织、环境和设备工具是否齐备并符合要求。12(四)总则3.测试过程策划设计执行总结执行测试用例。获取测试结果;分析并判定测试结果。同时,根据不同的判定结果采取相应的措施;对测试过程的正常或异常终止情况进行核对并根据核对结果,对未达到测试终止条件的测试用例,决定是停止测试,还是需要修改或补充测试用例集,并进一步测试。13(四)总则3.测试过程策划设计执行总结整理和分析测试数据,评价测试效果和被测软件项,描述测试状态。如:实际测试与测试计划和测试说明的差异、测试充分性分析、未能解决的测试事件等;描述被测软件项的状态,如:被测软件与需求的差异,发现的软件差错等;最后,完成软件测试报告。14(四)总则4.测试方法•代码审查•代码走查•静态分析静态测试方法动态测试方法•白盒测试•黑盒测试静态测试就是不通过运行或执行程序、代码、软件而检查错误的方式。动态测试是指通过执行或运行程序(或代码或软件)检查存在错误或问题的方式。•寄存器使用•格式•入口和出口连接•程序语言的使用•存储器使用•测试和转移•性能•可维护性•逻辑……15(四)总则4.测试方法•代码审查•代码走查•静态分析静态测试方法动态测试方法•白盒测试•黑盒测试•控制流分析•数据流分析•接口分析•表达式分析16(四)总则4.测试方法•代码审查•代码走查•静态分析静态测试方法动态测试方法•白盒测试•黑盒测试•控制流测试•数据流测试•程序变异•程序插装•域测试•符号求值17(四)总则4.测试方法•代码审查•代码走查•静态分析静态测试方法动态测试方法•白盒测试•黑盒测试•功能分解•等价类划分•边界值分析•判定表•因果图•随机测试•猜错法•正交实验法18(四)总则5.测试用例测试用例要素a)名称和标识b)测试追踪c)用例说明d)初始化要求e)输入f)期望的测试结果g)评价测试结果的准则h)操作过程i)前提和结束j)终止条件19(四)总则6.测试组织管理20(四)总则7.测试文档测试文档的取舍与合并要求21(四)总则8.测试工具代码测试工具1功能测试工具2负载压力工具3针对代码进行测试,测试中发现的缺陷可以定位到代码级22(四)总则8.测试工具静态测试工具直接对代码进行分析,不需要运行代码,也不需要对代码编译链接和生成可执行文件。静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等。(PMD)代码测试工具动态测试工具一般采用“插桩”的方式,在代码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。(eclipsedebug)测试工具原理扫描Java代码并寻找潜在问题设置断点进行单步调试23(四)总则8.测试工具代码测试工具1功能测试工具2负载压力工具3通过自动录制、检测和回放用户的应用操作,将被测系统的输出记录同预先给定的标准结果比较,其主要目的是检测应用程序是否能够达到预期的功能并正常运行。国内免费软件测试工具有AutoRunner和TestCenter24(四)总则8.测试工具代码测试工具1功能测试工具2负载压力工具3度量应用系统的可扩展性和性能,是一种预测系统行为和性能的自动化测试工具。在实施并发负载过程中,通过实时性能监测来确认和查找问题,并针对所发现问题对系统性能进行优化,确保应用的成功部署。(WebApplicationStressTool和WebServerStressTool)25集成测试单元测试26(五)单元测试1.测试对象和目的对象•可独立编译或汇编的程序模块(软件构件或面向对象设计中的类)目的•检查每个软件单元能否正确地实现设计说明中的功能、性能、接口和其他设计约束等要求,发现单元内可能存在的各种差错27(五)单元测试2.技术要求软件单元测试的技术依据是软件设计文档(或称软件详细设计文档)a)对软件设计文档规定的软件单元的功能、性能、接口等应逐项进行测试b)每个软件特性应至少被一个正常测试用例和一个被认可的异常测试用例覆盖c)测试用例的输入应至少包括有效等价类值、无效等价类值和边界数据值d)在对软件单元进行动态测试之前,一般应对软件单元的源代码进行静态测试e)语句覆盖率达到100%f)分支覆盖率要达100%g)对输出数据及其格式进行测试28(五)单元测试3.测试内容边界条件差错处理•变量、参数的使用是否正确前后一致•输入输出文件属性是否正确,格式与语句是否匹配•函数结束条件的判断和处理的正确性•输入输出错误是否进行了检查并做了处理以及处理的正确性•OPEN/CLOSE语句的正确性功能、性能内存使用局部数据结构接口29(五)单元测试3.测试内容•数据类型说明是否一致•是否使用尚未赋值或尚未初始化的变量•差错的初始值或缺省值•下溢、上溢或是地址差错•全局变量对软件单元的影响边界条件差错处理功能、性能内存使用局部数据结构接口30(五)单元测试3.测试内容•软件单元在边界处是否正常使用(循环执行的第一和最后一次、测试输入参数最大最小值等)边界条件差错处理功能、性能内存使用局部数据结构接口•差错的描述难以理解•所提供的差错描述信息不足以确定差错的位置和原因•显示的出错提示与实际差错不符•对差错的处理不正确31(五)单元测试3.测试内容•对软件设计文档规定的软件单元的功能逐项进行测试•对软件单元的性能(如精度、时间、容量等)进行测试边界条件差错处理功能、性能内存使用局部数据结构接口•检查内存的使用情况,特别是动态申请的内存在使用上的错误(如指针越界、内存泄露等)32(五)单元测试4.测试环境及方法环境•应符合项目计划的要求,通常是开发环境或仿真环境方法•静态测试方法•动态测试方法33(五)单元测试5.测试过程及文档过程•测试策划•测试设计•测试执行•测试总结文档•软件单元测试计划•软件单元测试说明•软件单元测试报告•软件单元测试记录•软件单元测试问题报告34配置项测试集成测试35(六)集成测试1.测试对象和目的对象•任意一个软件单元集成到计算机软件系统的组装工程•任意一个组装得到的软件系统目的•检验软件单元之间、软件单元和已集成的软件系统之间的接口关系,并验证已集成软件系统是否符合设计要求。36(五)集成测试2.技术要求软件集成测试的技术依据是软件设计文档(或称软件结构设计文档)a)应测试软件之间、软件和硬件之间的所有接口b)应采用增量法,测试新组装的软件c)应测试软件单元之间的所有调用,达到100%的测试覆盖率d)应测试运行条件(如数据结构、输入输出通道容量、内存空间、调用频率等)在边界状态下,进而在人为设定的状态下,软件的功能和性能;e)应按设计文档要求,对软件的功能、性能进行强度测试f)对完整性级别高的软件,应对其进行安全性分析,明确每一个危险状态和导致危险的可能原因,并对此进行针对性的测试37(六)集成测试3.测试内容准确性互操作性容错性时间特性适合性全局数据结构资源利用•从适合性方面考虑,应对软件设计文档分配给以集成软件的每一项功能逐项进行测试•可测试全局数据结构的完整性,包括数据的内容、格式,并对内部数据结构对全局数据结构的影响进行测试。38(六)集成测试3.测试内容准确性互操作性容错性时间特性适合性全局数据结构资源利用•接口测试(所加入的软件单元与已集成软件之间的接口;已集成软件与支持其运行的其它软件、例行程序或硬件设备的接口)•测试软件的控制信息,如响应方式和响应时间等•可对软件中具有准确性要求的功能和精度要求项(数据处理精度、时间控制精度等)进行测试39•测试已集成软件对差错输入、差错中断、漏中断等情况的容错能力,并考虑通过仿真平台或硬件测试设备形成些人为条件,测试软件功能、性能的降级运行情况(六)集成测试3.测试内容准确性互操作性容错性时间特性适合性全局数据结构资源利用•考虑已集成软件的运行时间,算法的最长路径下的计算时间•可考虑测试软件运行占用的内存空间和外存空间40(六)集成测试4.测试环境及方法环境•应符合项目计划的要求,通常是开发环境或仿真环境方法•静态测试方法•动态测试方法41系统测试配置项测试42(七)配置项测试1.测试对象和目的对象•软件配置项•软件配置项是为独立的配置管理而设计的并且能够满足最终用户功能的一组软件目的•检验软件配置项与软件需求规格说明书的一致性43(七)配置项测试2.技术要求软件配置项测试的技术依据是软件需求规格说明a)必要时,在高层控制流图中作结构覆盖测试b)应测试软件配置项的所有外部输入、输出接口c)应测试软件配置项的输出及其格式d)按软件需求规格说明的要求,测试配置项的安全保密性e)应测试人机互动界面中非常规操作、误操作的可靠性f)应测试运行条件在边界状态下,或在人为设定的状态下,软件配置项的功能和性能g)应按需求规格说明的要求,对软件的功能、性能进行强度测试44(七)配置项测试2.技术要求软件配置项测试的技术依据是软件需求规格说明h)应测试设计中用于提高软件配置项安全性、可靠性的结构、算法、容错、冗余、中断处理等方案i)对完整性级别高的软件配置项,应对其进行安全性分析,明确每一个危险状态和导致危险的可能原因,并对此进行针对性的测试j)对有恢复或重置功能需求的配置项,应测试其恢复或重置功能和平均恢复时间,并且对每一类导致恢复或重置的情况进行测试45(七)配置项测试3.测试内容易用性效率•适合性方面(每一项功能)•准确性方面(有准确度和精度要求的项)•互操作性方面(软件需求规格说明书规定的配置项与外部设备的接口、与其他系统的接口)•安全保密性方面(配置项及其数据访问的可控制性)维护性可移植性可靠性功能性依从性46(七)配置项测试3.测试内容易用性效率•成熟性方面:应在有代表性的使用环境中以及可能影响软件配置项运行方式的环境中运行软件配置项,验证可靠性需求是否实现•容错性方面:测试配置项对中断发生、边界条件、误操作、故障、功能性能降级时的情况•易恢复性方面:配置项的