1、ICS 35080L 77 a目中华人民共和国国家标准GBT 1 5532-2008代替GBT 1 5532 19952008041 1发布计算机软件测试规范Specification of computer software testing200809-01实施宰瞀职鬻瓣訾矬瞥翼发布中国国家标准化管理委员会仅19前言l范围2规范性引用文件3术语和定义4总则41测试目的42测试类别43测试过程44测试方法-45测试用例46测试管理47测试文档48测试工具49软件完整性级别与测试的关系5单元测试51测试对象和目的52测试的组织和管理53技术要求54测试内容-55测试环境-56测试方法-57测试过
2、程58文档46集成测试一61测试对象和目的62测试的组织和管理63技术要求64测试内容。65测试环境66测试方法67测试过程68文档7配置项测试71测试对象和目的72测试的组织和管理73技术要求74测试内容-75测试环境目 次GBT 1 5532-2008ll111l2224_b6677777999l1l1l22234555569GBT 1 5532-200876测试方法-77测试过程78文档-8系统测试-81测试对象和目的-82测试的组织和管理-83技术要求-84测试内容-85测试环境86测试方法-87测试过程-88文档-9验收测试-91测试对象和目的-92测试的组织和管理-93技术要求-9
3、4测试内容-,9 5测试环境-96测试方法-97测试过程-一98文档-一10回归测试- 1 01测试对象和测试目的-102单元回归测试-103配置项回归测试-104系统回归测试-附录A(资料性附录)软件测试方法A1静态测试方法A2动态测试方法-附录B(资料性附录) 软件可靠性的推荐模型B1斯奈德蕴德模型B2广义指数模型B3穆沙奥库姆脱对数泊松执行时间模型B4列透务德弗尔洛模型-附录C(资料性附录)软件测试部分模板-C1软件测试用例-c2软件测试记录-C3软件问题报告单-附录D(资料性附录) 软件测试内容的对应关系珀均肌n肌朗毖毖弱弱孙卯盯卯船船孙船嬲船驼弘即”蚰蚂螅蛎蛆弛弛够弘刖 罱GBT 1
4、 5532-2008本标准代替GBT 15532一1995(计算机软件单元测试。本标准与GBT 1 5532-995的主要差别如下:a) 由于标准内容作了扩充,故标准名称由原来的“计算机软件单元测试”改为现在的“计算机软件测试规范”;b) 标准结构调整改变如下GB7T l 55321 995 GB7T 15532 20081主题内容与适用范围 1范围2引用标准 2规范性引用文件3术语 3术语和定义4单元测试活动 4总则41制定方法、资源及进度计划 5单元测试42确定需测试的与需求有关的特性 6集成测试43细化计划 7配置项测试44设计测试集 8系统测试45执行计划及实现设计 9验收测试46执行
5、测试规程 10回归测试47核对终止情况 附录A软件测试方法4 8评价测试效果及被测单元 附录B软件可靠性的推荐模型附录A实现及使用指南 附录c软件测试部分模板附录B概念及假定 附录D软件测试内容的对应关系c) 删去了GBT 15532 1995自定义的术语,改为直接引用GBT 11457的术语和定义;d) 新版标准对主要的测试类别都是按“测试对象和目的”、“测试的组织和管理”、“技术要求”、“测试内容”、“测试环境”、“测试方法”、“准人条件”、“准出条件”、“测试过程”和“输出文档”等条目来进一步作出要求。相对来说新版标准条理更清晰,要求更明确,更具有可操作性。本标准的附录A、附录B、附录c
6、和附录D是资料性附录。本标准由中华人民共和国信息产业部提出。本标准由全国信息技术标准化技术委员会归口。本标准起草单位:山东正方人合信息技术有限公司、信息产业部电子工业标准化研究所、北京跟踪与通信技术研究所、上海计算机软件开发中心、中国航天科技集团公司软件评测中心、山东省计算中心、上海宝信软件股份有限公司、上海浦东软件平台有限公司、广西软件园、上海鲁齐信息科技有限公司。本标准主要起草人:王英龙、许聚常、冯惠、董火民、王宝艾、杨根兴、王欣、石柱、尹平、张露莹、李刚、包增琳、杨美红、韩庆良。本标准于1 995年首次发布。1范围计算机软件测试规范GBT 1 5532-2008本标准规定了计算机软件生存
7、周期内各类软件产品的基本测试方法、过程和准则。本标准适用于计算机软件生存周期全过程。本标准适用于计算机软件的开发机构、测试机构及相关人员。2规范性引用文件下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。GBT 8566信息技术软件生存周期过程(6BT 8566-2007,ISOIEC 12207:1995,MOD)GBT 9386 计算机软件测试文档编制规范GBT 11457信息技术软件工程
8、术语GBT 1 62601软件工程 产品质量第1部分:质量模型(GBT 1626012006,ISOIEC9126 1:2001,IDT)GBT 18492信息技术 系统及软件完整性级别(GBT 18492 2001,IsoIEc 15026:1998,1DT)GBT 20158信息技术 软件生存周期过程 配置管理(GBT 20158-2006,ISOIEC TR15846:1998,IDT)3术语和定义GBT 11457中确立的术语和定义适用于本标准。4总则41测试目的计算机软件的测试目的是:a)验证软件是否满足软件开发合同或项目开发计划、系统子系统设计文档、软件需求规格说明、软件设计说明和
9、软件产品说明等规定的软件质量要求;b)通过测试,发现软件缺陷;C)为软件产品的质量测量和评价提供依据。42测试类别根据GBT 8566的要求,本标准对如下测试类别作详细描述:a)单元测试;b)集成测试;c) 配置项测试(也称软件合格性测试或确认测试);d) 系统测试;e)验收测试。可根据软件的规模、类型、完整性级别选择执行测试类别。回归测试可出现在上述每个测试类别中,并贯穿于整个软件生存周期,故单独分类进行描述。143测试过程431概述软件测试过程一般包括四项活动,按顺序分别是:测试策划、测试设计、测试执行、测试总结。432测试策划测试策划主要是进行测试需求分析。即确定需要测试的内容或质量特性
10、;确定测试的充分性要求;提出测试的基本方法;确定测试的资源和技术需求;进行风险分析与评估;制定测试计划(含资源计划和进度计划)。有关测试计划的内容和要求见GBT 9386。433测试设计依据测试需求,分析并选用已有的测试用例或设计新的测试用例;获取并验证测试数据;根据测试资源、风险等约束条件,确定测试用例执行顺序;获取测试资源,开发测试软件;建立并校准测试环境;进行测试就绪评审,主要评审测试计划的合理性和测试用例的正确性、有效性和覆盖充分性,评审测试组织、环境和设备工具是否齐备并符合要求。在进入下一阶段工作之前,应通过测试就绪评审。434测试执行执行测试用例,获取测试结果;分析并判定测试结果。
11、同时,根据不同的判定结果采取相应的措施;对测试过程的正常或异常终止情况进行核对,并根据核对结果,对未达到测试终止条件的测试用例,决定是停止测试,还是需要修改或补充测试用例集,并进一步测试。4 35测试总结整理和分析测试数据,评价测试效果和被测软件项,描述测试状态。如,实际测试与测试计划和测试说明的差异、测试充分性分析、未能解决的测试事件等;描述被测软件项的状态,如,被测软件与需求的差异,发现的软件差错等;最后,完成软件测试报告,并通过测试评审。44测试方法441静态测试方法静态测试方法包括检查单和静态分析方法,对文档的静态测试方法主要以检查单的形式进行,而对代码的静态测试方法一般采用代码审查、
12、代码走查和静态分析,静态分析一般包括控制流分析、数据流分析、接口分析和表达式分析。应对软件代码进行审查、走查或静态分析;对于规模较小、安全性要求很高的代码也可进行形式化证明。442动态测试方法动态测试方法一般采用白盒测试方法和黑盒测试方法。黑盒测试方法一般包括功能分解、边界值分析、判定表、因果图、状态图、随机测试、猜错法和正交试验法等;白盒测试方法一般包括控制流测试(语句覆盖测试、分支覆盖测试、条件覆盖测试、条件组合覆盖测试、路径覆盖测试)、数据流测试、程序变异、程序插桩、域测试和符号求值等。在软件动态测试过程中,应采用适当的测试方法,实现测试目标。配置项测试和系统测试一般采用黑盒测试方法;集
13、成测试一般主要采用黑盒测试方法,辅助以白盒测试方法;单元测试一般采用白盒测试方法,辅助以黑盒测试方法。静态测试和动态测试的详细说明参见附录A。45测试用例451测试用例设计原则设计测试用例时,应遵循以下原则:a)基于测试需求的原则。应按照测试类别的不同要求,设计测试用例。如,单元测试依据详细设计说明,集成测试依据概要设计说明,配置项测试依据软件需求规格说明,系统测试依据用户需求(系统子系统设计说明、软件开发计划等);b)基于测试方法的原则。应明确所采用的测试用例设计方法。为达到不同的测试充分性要求,2GBT 1 5532-2008应采用相应的测试方法,如等价类划分、边界值分析、猜错法、因果图等
14、方法:c)兼顾测试充分性和效率的原rA0。测试用例集应兼顾测试的充分性和测试的效率;每个测试用例的内容也应完整,具有可操作性;d) 测试执行的可再现性原则。应保证测试用例执行的可再现性。452测试用例要素每个测试用例应包括以下要素:a) 名称和标识。每个测试用例应有唯一的名称和标识符。b)测试追踪。说明测试所依据的内容来源,如系统测试依据的是用户需求,配置项测试依据的是软件需求,集成测试和单元测试依据的是软件设计。c) 用例说明。简要描述测试的对象、目的和所采用的测试方法。d) 测试的初始化要求。应考虑下述初始化要求:1) 硬件配置。被测系统的硬件配置情况,包括硬件条件或电气状态。2)软件配置
15、。被测系统的软件配置情况,包括测试的初始条件。3)测试配置。测试系统的配置情况如用于测试的模拟系统和测试工具等的配置情况。4) 参数设置。测试开始前的设置,如标志、第一断点、指针、控制参数和初始化数据等的设置。5) 其他对于测试用例的特殊说明。e)测试的输入。在测试用例执行中发送给被测对象的所有测试命令、数据和信号等。对于每个测试用例应提供如下内容:1)每个测试输入的具体内容(如确定的数值、状态或信号等)及其性质(如有效值、无效值、边界值等);2)测试输入的来源(例如,测试程序产生、磁盘文件、通过网络接收、人工键盘输入等),以及选择输入所使用的方法(例如,等价类划分、边界值分析、差错推测、因果
16、图、功能图方法等);3) 测试输入是真实的还是模拟的;4)测试输入的时间顺序或事件顺序。f)期望的测试结果。说明测试用例执行中由被测软件所产生期望的测试结果,即经过验证,认为正确的结果。必要时,应提供中间的期望结果。期望测试结果应该有具体内容,如确定的数值、状态或信号等,不应是不确切的概念或笼统的描述。g)评价测试结果的准则。判断测试用例执行中产生的中间和最后结果是否正确的准则。对于每个测试结果,应根据不同情况提供如下信息: 实际测试结果所需的精度;2)实际测试结果与期望结果之间的差异允许的上限、下限;3) 时间的最大和最小间隔,或事件数目的最大和最小值;4) 实际测试结果不确定时,再测试的条
17、件:5) 与产生测试结果有关的出错处理;6) 上面没有提及的其他准则。h) 操作过程。实施测试用例的执行步骤。把测试的操作过程定义为一系列按照执行顺序排列的相对独立的步骤,对于每个操作应提供:1) 每一步所需的测试操作动作、测试程序的输入、设备操作等;2) 每一步期望的测试结果;3)每一步的评价准则;4) 程序终止伴随的动作或差错指示;3GBT 1 5532-20085) 获取和分析实际测试结果的过程。i)前提和约束。在测试用例说明中施加的所有前提条件和约束条件,如果有特别限制、参数偏差或异常处理,应该标识出来,并要说明它们对测试用例的影响。J) 测试终止条件。说明测试正常终止和异常终止的条件
18、。46测试管理461过程管理软件测试应由相对独立的人员进行。根据软件项目的规模等级和完整性级别以及测试类别,软件测试可由不同机构组织实施。应对测试过程中的测试活动和测试资源进行管理。有关管理要求见GBT 8566。一般情况下,软件测试的人员配备见表1。表1 软件测试人员配备情况表工作角色 具体职责管理监督测试项目,提供技术指导获取适当的资源,制定基线技术协调负责项目的安全保测试项目负责人 密和质量管理确定测试计划、测试内容、测试方法、测试数据生成方法、测试(软、硬件)环境、测试工具评价测试分析员 测试工作的有效性测试设计员 设计测试用例,确定测试用例的优先级,建立测试环境测试程序员 编写测试辅
19、助软件测试员 执行测试、记录测试结果测试系统管理员 对测试环境和资产进行管理和维护配置管理员 设置、管理和维护测试配置管理数据库注1:当软件的供方实施测试时,配置管理员由软件开发项目的配置管理员承担;当独立的测试组织实施测试时,应配备测试活动的配置管理员。注2:一个人可承担多个角色的工作,一个角色可由多个人承担。测试的准人准出条件如下:a)准人条件开始软件测试工作一般应具备下列条件:1)具有测试合同(或项目计划);2) 具有软件测试所需的各种文档;3) 所提交的被测软件受控;4)软件源代码正确通过编译或汇编。b)准出条件结束软件测试工作一般应达到下列要求:1) 已按要求完成了合同(或项目计划)
20、所规定的软件测试任务;2) 实际测试过程遵循了原定的软件测试计划和软件测试说明;3) 客观、详细地记录了软件测试过程和软件测试中发现的所有问题;4)软件测试文档齐全、符合规范;5) 软件测试的全过程自始至终在控制下进行;6) 软件测试中的问题或异常有合理解释或正确有效的处理;7)软件测试工作通过了测试评审;8) 全部测试软件、被测软件、测试支持软件和评审结果已纳入配置管理。GBT 15532-2008462配置管理应按照软件配置管理的要求,将测试过程中产生的各种软件工作产品纳入配置管理。由开发组织实施的软件测试,应将测试工作产品纳入软件项目的配置管理;由独立测试组织实施的软件测试,应建立配置管
21、理库,将被测试对象和测试工作产品纳人配置管理。配置管理要求见GBT 201 58。463评审4631测试就绪评审在测试执行前,对测试计划和测试说明等进行评审,评审测试计划的合理性、测试用例的正确性、完整性和覆盖充分性,以及测试组织、测试环境和设备工具是否齐全并符合技术要求等。评审的具体内容和要求应包括:a)评审测试文档内容的完整性、正确性和规范性;b)通过比较测试环境与软件真实运行的软件、硬件环境的差异,评审测试环境要求是否正确合理,满足测试要求;c) 评审测试活动的独立性;d)评审测试项选择的完整性和合理性;e)评审测试用例的可行性、正确性和充分性。4632测试评审在测试完成后,评审测试过程
22、和测试结果的有效性,确定是否达到测试目的。主要对测试记录、测试报告进行评审,其具体内容和要求应包括:a) 评审文档和记录内容的完整性、正确性和规范性;b)评审测试活动的独立性和有效性;c) 评审测试环境是否符合测试要求;d)评审测试记录、测试数据以及测试报告内容与实际测试过程和结果的一致性;e) 评审实际测试过程与测试计划和测试说明的一致性;f) 评审未测试项和新增测试项的合理性;g)评审测试结果的真实性和正确性;h)评审对测试过程中出现的异常进行处理的正确性。47测试文档软件测试文档一般包括测试计划、测试说明(需要时进一步细分为测试设计说明、测试用例说明和测试规程说明)、测试项传递报告、测试
23、日志、测试记录、测试问题报告(也称测试事件报告)和测试总结报告(部分软件测试模板参见附录C),测试文档的基本内容和要求见(;BT 9386。按照GBT 18492,根据软件的完整性级别和软件规模等级进行合理的取舍与合并,其要求见表2。表2测试文档的取舍与合并要求性 质文 档规模(巨、大、中) 规模(小、微) 完整性级别(A、B) 完整性级别(c、D)测试计划 、J 、l 、i测试说明 、| 【一1J 、j测试报告 、ijj J测试记录 J 、i 、7测试问题报告 。 J i注:表示选取,表示合并。GBT 1 5532-2008表2中指出文档的合并,在两个文档或多个文档合并时,具有相似内容的文档
24、的第1、2、3章只用一次,即进行合并,后续的章条号依次编排。48测试工具481测试工具分类软件测试工具可分为静态测试工具、动态测试工具和其他1支=持测试活动的工具,每类测试工具在功能和其他特征方面具有相似之处,支持一个或多个测试活动(见表3)。应根据测试要求选择合适的工具。表3软件测试工具分类表工具类型 功能和特征说明 举例 备注静态测试对软件需求、结构设计、详细设 复杂度分析、数据流分析、控制 针对软件需求、结构设计、详细计和代码进行评审、走查和审查 流分析、接口分析、句法和语义工具 设计的静态分析工具很少的工具 分析等工具支持执行测试用例和评价测试结果的工具,包括支持选择测试 覆盖分析、捕
25、获和回放、存储器动态测试 测试捕获和回放及数据生成器用例、设置环境、运行所选择测 测试、变异测试、仿真器及性能 可用于测试设计试、记录执行活动、故障分析和 分析、测试用例管理等工具测试工作有效性评价等测试计划生成、测试进度和人员 复杂度分析可用于测试计划的支持测试支持测试计划、测试设计和整个 安排评估、基于需求的测试设制定,捕获和回放、覆盖分析可过程活动的测试过程的工具 计、测试数据生成、问题管理和其他工具 用于测试设汁与实现测试配置管理等工具482测试工具选择软件测试应尽量采用测试工具,避免或减少人工工作。为、止工具在测试工作中发挥应有的作用应确定工具的详细需求,并制定统一的工具评价、采购(
26、开发)、培训、实施和维护计划。选择软件测试工具应考虑如下因素:a) 软件测试工具的需求及确认:1)应明确对测试工具的功能、性能、安全性等需求,并据此进行验证或确认;2)可通过在实际运行环境下的演示来确认工具是否满足需求,演示应依据工具的功能和技术特征、用户使用信息(安装和使用手册等)以及工具的操作环境描述等进行。b)成本和收益分析:1) 估计工具的总成本,除了最基本的产品价格,总成本还包括附加成本如1:具的挑选、安装、运行、培训、维护和支持等成本,以及为使用工具而改变测试过程或流程的成本等;2)分析工具的总体收益,如工具的首次使用范围和长期使用前景、工具应用效果、与其他:具协同工作所提高的生产
27、力程度等。c) 测试工具的整体质量因素:1)易用性;2)互操作性;3)稳定性;4)经济实用性;5)维护性。49软件完整-|生级别与测试的关系根据失效所造成后果的危害程度,计算机软件的完整性级别被分为A、B、C、D四个等级(其定义见GBT 1 5532-2008GBT 18492)。不同完整性级别软件的安全性要求不同,对软件的测试内容、测试要求和测试所采用方法也有所不同。针对各种不同的软件测试类别,应有安全性方面考虑。5单元测试51测试对象和目的511测试对象软件单元测试的对象是可独立编译或汇编的程序模块(或称为软件构件或在面向对象设计中的类)。512测试目的软件单元测试的目的是检查每个软件单元
28、能否正确地实现设计说明中的功能、性能、接口和其他设计约束等要求,发现单元内可能存在的各种差错。52测试的组织和管理一般由软件的供方或开发方组织并实施软件单元测试,也可委托第三方进行软件单元测试。软件单元测试的人员配备见表】。软件单元测试的技术依据是软件设计文档(或称软件详细设计文档)。其测试工作的准人条件应满足461a)的要求,测试工作的准出条件应满足461b)的要求。软件单元测试的工作产品一般应纳入软件的配置管理中。53技术要求软件单元测试一般应符合以下技术要求:a)对软件设计文档规定的软件单元的功能、性能、接口等应逐项进行测试;b) 每个软件特性应至少被一个正常测试用例和一个被认可的异常测
29、试用例覆盖;c)测试用例的输入应至少包括有效等价类值、无效等价类值和边界数据值;d) 在对软件单元进行动态测试之前,一般应对软件单元的源代码进行静态测试;e)语句覆盖率达到i00;f) 分支覆盖率要达到i00;g) 对输出数据及其格式进行测试。对具体的软件单元,可根据软件测试合同(或项目计划)以及软件单元的重要性、完整性级别等要求对上述内容进行裁剪。54测试内容541 总则当静态测试时,所测试的内容与选择的测试方法有关。如,采用代码审查方法,通常要对寄存器的使用(仅限定在机器指令和汇编语言时考虑)、程序格式、入口和出口的连接、程序语言的使用、存储器的使用等内容进行检查;采用静态分析方法,通常要
30、对软件单元的控制流、数据流、接口、表达式等内容进行分析。详细内容可参见第A1章中各种静态测试方法的描述。当动态测试时,通常对软件单元的功能、性能、接口、局部数据结构、独立路径、出错处理、边界条件和内存使用情况进行测试。通常对软件单元接口的测试优先于其他内容的测试。对具体的软件单元,应根据软件测试合同(或项目计划)、软件设计文档的要求及选择的测试方法确定测试的具体内容。542接口测试接口一般应包括以下内容:a)调用被测单元的实际参数与该单元的形式参数的个数、属性、量纲、顺序是否一致;h)被测单元调用子模块时,传递给子模块的实际参数与子模块的形式参数的个数、属性、量纲、顺序是否致;C) 足否修改了
31、只作为输入值的形式参数;7GBT 1 5532-2008d)调用内部函数的参数个数、属性、量纲、顺序是否正确;e) 被测单元在使用全局变量时是否与全局变量的定义一致;f) 在单元有多个入口的情况下,是否引用了与当前人口无关的参数;g)常数是否当作变量来传递;h)输入输出文件属性的正确性;i)OPEN语句的正确性;J)CLOSE语句的正确性;k)规定的输入输出格式说明与输入输出语句是否匹配;1) 缓冲区容量与记录长度是否匹配;m) 文件是否先打开后使用;n) 文件结束条件的判断和处理的正确性;o) 对输入输出错误是否进行了检查并做了处理以及处理的正确性。543局部数据结构测试软件单元内部的数据能
32、否保持其完整性,包括内部数据内容、格式及相互关系。应设计测试用例以检查如下差错:a) 不正确或不一致的数据类型说明;b)错误的变量名,如变量名拼写错或缩写错等;c)使用尚未赋值或尚未初始化的变量;d)差错的初始值或差错的缺省值;e)不一致的数据类型;f) 下溢、上溢或是地址差错;g) 全局数据对软件单元的影响。544独立路径独立路径是指在程序中至少引进一个新的处理语句集合或一个新条件的任一路径。在程序的控制流图中,一条独立路径是至少包含有一条在其他独立路径中从未有过的边的路径。应设计适当的测试用例,对软件单元中的独立路径进行测试,特别是对独立路径中的基本路径进行测试。基本路径指在程序控制流图中
33、,通过对控制构造的环路复杂性分析而导出的基本的、可执行的独立路径集合。545边界条件应测试软件单元在边界处能否正常工作,如,测试处理数组的第1个和最后一个元素;测试循环执行到最后一次;测试取最大值或最小值;测试数据流、控制流中刚好等于、大于或小于确定的比较值等等。546差错处理测试软件单元在运行过程中发生差错时,其出错处理措施是否有效。良好的单元设计要求能预见到程序投入运行后可能发生的差错,并给出相应的处理措施。这种出错处理也应当是软件单元功能的一部分。一般若出现下列情况之一,则表明软件单元的出错处理功能包含差错或缺陷:a) 差错的描述难以理解;b) 在对差错进行处理之前,差错条件已经引起系统
34、的干预;c) 所提供的差错描述信息不足以确定造成差错的位置或原因;d) 显示的出错提示与实际差错不符;e) 对差错条件的处理不正确;f)意外的处理不当;g)联机条件处理(即交互处理等)不正确。8GBT 15532-2008547功能应对软件设计文档规定的软件单元的功能逐项进行测试。548性能按软件设计文档的要求,对软件单元的性能(如精度、时间、容量等)进行测试。549内存使用检查内存的使用情况,特别是动态申请的内存在使用上的错误(如指针越界、内存泄露等)。55测试环境测试环境包括测试的运行环境和测试工具环境。测试的运行环境一般应符合软件测试合同(或项目计划)的要求,通常是开发环境或仿真环境。测
35、试工具一般要求是经过认可的工具。56测试方法软件单元测试一般应采用静态测试方法和动态测试方法。通常静态测试先于动态测试进行。57测试过程571测试策划测试分析人员一般根据测试合同(或项目计划)和被测试软件的设计文档对被测试软件单元进行分析,并确定以下内容:a)确定测试充分性要求。根据软件单元的重要性、软件单元测试目标和约束条件,确定测试应覆盖的范围及每一范围所要求的覆盖程度(如,分支覆盖率、语句覆盖率、功能覆盖率、单元的每一软件特性应至少被一个正常的测试用例和一个异常的测试用例所覆盖)。b)确定测试终止的要求。指定测试过程正常终止的条件(如,测试充分性是否达到要求),确定导致测试过程异常终止的
36、可能情况(如软件编码错误)。c) 确定用于测试的资源要求,包括软件(如操作系统、编译软件、静态分析软件、测试数据产生软件、测试结果获取和处理软件、测试驱动软件等)、硬件(如计算机、设备接口等)、人员数量、人员技能等。d)确定需要测试的软件特性。根据软件设计文档的描述确定软件单元的功能、性能、状态、接VI、数据结构、设计约束等内容和要求,并对其标识。若需要,将其分类。并从中确定需测试的软件特性。e)确定测试需要的技术和方法,如,测试数据生成与验证技术、测试数据输入技术、测试结果获取技术。f)根据测试合同(或项目计划)的要求和被测软件的特点,确定测试准出条件。g) 确定由资源和被测试软件单元所决定
37、的单元测试活动的进度。h) 对测试工作进行风险分析与评估,并制订应对措施。根据上述分析研究结果,按照GBT 9386的要求编写软件单元测试计划。应对软件单元测试计划进行评审。评审测试的范围和内容、资源、进度、各方责任等是否明确,测试方法是否合理、有效和可行,风险的分析、评估与对策是否准确可行,测试文档是否符合规范,测试活动是否独立。一般情况下,由软件的供方自行组织评审,评审细则也自行制定。在软件单元测试计划通过评审后,进入下一步工作;否则,需要重新进行单元测试的策划。572测试设计软件单元测试的设计工作由测试设计人员和测试程序员完成,一般根据软件单元测试计划完成以下工作:a)设if钡J试用例。
38、将需测试的软件特性分解,针对分解后的每种情况设itN试用例,每个测试用例的设计应符合45的要求。h)获取测试数据。包括获取现有的测试数据和生成新的数据,并按照要求验证所有数据。c) 确定测试顺序。可从资源约束、风险以及测试用例失效造成的影响或后果几个方面考虑。GBT 1 5532-2008d)获取测试资源。对于支持测试的软件和硬件,有的可从现有的工具中选定,有的需要研制开发。e) 编写测试程序。包括开发测试支持工具,单元测试的驱动模块和桩模块。f)建立和校准测试环境。g) 按照GBT 9386的要求编写软件单元测试说明。应对软件单元测试说明进行评审。评审测试用例是否正确、可行和充分,测试环境是
39、否正确、合理,测试文档是否符合规范。通常由软件测试方自行组织单元测试的评审,评审细则也自行制定。在软件单元测试说明通过评审后,进入下一步工作;否则,需要重新进行测试设计和实现。573测试执行执行测试的工作由测试员和测试分析员完成。软件测试员的主要工作是按照软件单元测试计划和软件单元测试说明的内容和要求执行测试。在执行过程中,测试员应认真观察并如实地记录测试过程、测试结果和发现的差错认真填写测试记录(参见第C2章)。测试分析员的工作主要有如下两方:a) 根据每个测试用例的期望测试结果、实际测试结果和评价准则判定该测试用例是否通过,并将结果记录在软件测试记录中。如果测试用例不通过,测试分析员应认真
40、分析情况,并根据以下情况采取相应措施:1)软件单元测试说明和测试数据的差错。采取的措施是:改正差错,将改正差错信息详细记录,然后重新运行该测试;2) 执行测试步骤时的差错。采取的措施是:重新运行未正确执行的测试步骤;3)测试环境(包括软件环境和硬件环境)中的差错。采取的措施是:修正测试环境,将环境修正情况详细记录,重新运行该测试;如果不能修正环境,记录理由,再核对终止情况;4)软件单元的实现差错。采取的措施是:填写软件问题报告单(参见第C3章),可提出软件修改建议,然后继续进行测试;或者把差错与异常终止情况进行比较,核对终止情况。软件变更完毕后,应根据情况对其进行回归测试;5)软件单元的设计差
41、错。采取的措施是:填写软件问题报告单(参见第C3章),可提出软件修改建议,然后继续进行测试;或者把差错与异常终止情况进行比较,核对终止情况。软件变更完毕后,应根据情况对其进行回归测试或重新组织测试。回归测试中需要相应地修改测试设计和数据。b) 当所有的测试用例都执行完毕测试分析员要根据测试的充分性要求和失效记录,确定测试工作是否充分,是否需要增加新的测试。当测试过程正常终止时,如果发现测试工作不足,应对软件单元进行补充测试(具体要求见572和573)直到测试达到预期要求,并将附加的内容记录在软件单元测试报告中;如果不需要补充测试,则将正常终止情况记录在软件单元测试报告中。当测试过程异常终止时,
42、应记录导致终止的条件、末完成的测试和未被修正的差错。574测试总结测试分析员应根据被测试软件设计文档、软件单元测试计划、软件单元测试说明、测试记录和软件问题报告单等,对测试工作进行总结。一般包括下面几项工作:a) 总结软件单元测试计划和软件单元测试说明的变化情况及其原因,并记录在软件单元测试报告中;b)对测试异常终止情况,确定未能被测试活动充分覆盖的范围,并将理由记录在测试报告中;c) 确定未能解决的软件测试事件以及不能解决的理由,并将理由记录在测试报告中;d) 总结测试所反映的软件单元与软件设计文档之间的差异,记录在测试报告中;1 0GBT 1 5532-2008e)将测试结果连同所发现的出
43、错情况同软件设计文档对照,评价软件单元的设计与实现,提出软件改进建议,记录在测试报告中;f)按照GBT 9386的要求编写软件单元测试报告,该报告应包括:测试结果分析、对软件单元的评价和建议;g) 根据测试记录和软件问题报告单编写测试问题报告。应对测试执行活动、软件单元测试报告、测试记录和测试问题报告进行评审。评审测试执行活动的有效性、测试结果的正确性和合理性。评审是否达到了测试日的、测试文档是否符合规范。一般情况下,评审由软件测试方自行组织,评审细则也可自行制定。58文档软件单元测试完成后形成的文档一般应有:a) 软件单元测试计划;b) 软件单元测试说明;C) 软件单元测试报告;d) 软件单
44、元测试记录;e)软件单元测试问题报告。町根据需要对上述文档及文档的内容进行裁剪。裁剪要求见47。6集成测试61测试对象和目的611测试对象软件集成测试的对象包括:a) 任意一个软件单元集成到计算机软件系统的组装过程;b) 任意一个组装得到的软件系统。612测试目的软件集成测试的日的是检验软件单元之间、软件单元和已集成的软件系统之间的接口关系,并验证已集成软件系统是否符合设计要求。62测试的组织和管理软件集成测试一般由软件供方组织并实施,测试人员与开发人员应相对独立;也可委托第三方进行软件集成测试。软件集成测试的工作产品一般应纳入软件的配置管理中。软件集成测试的人员配备见表1。软件集成测试的技术
45、依据是软件设计文档(或称软件结构设计文档)。其测试工作的准入条件应满足4 61a)的要求及待集成的软件单元已通过单元测试测试工作的准出条件应满足461b)的要求。63技术要求软件集成测试一般应符合以下技术要求:a)应对已集成软件进行必要的静态测试,并先于动态测试进行;I,) 软件要求的每个特性应被至少一个正常的测试用例和一个被认可的异常测试用例覆盖:C) 测试用例的输入应至少包括有效等价类值、无效等价类值和边界数据值;d) 应采用增量法,测试新组装的软件;e) 应逐项测试软件设计文档规定的软件的功能、性能等特性:f) 应测试软件之间、软件和硬件之l的所有接l j:g) 应测试软件单元之间的所有调用达到100的测试覆盖率;h) 应测试软件的输出数据及其格式;) 应测试运行条件(如数据结构、输入输出通道容量、内存宅间、调用频率等)在边界状态下,进11GBT 15532-2008而在人为设定的状态下,软件的功能和性能;J)应按设计文档要求,对软件的功能、性能进行强度测试;k)对完整性级别高的软件,应对其进行安全性分析,明确每一个危险状态和导致危险的可能原因,并对此进行针对性的测试。对具体的软件,可根据软件测试合同(或项目计划)及软件的重要性、完整性级别对上述内容进行裁剪。64测试内容641 总则当对已集成软件进行必要的静态测试时,所测试的内容与选择的静态测试方法有关。详见