软件项目测试标准规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 引言 (1)
2 软件测试的工作框架 (1)
2.1 软件测试在软件系统研制过程中的定义 (2)
2.2 软件测试在软件研制中的作用 (2)
2.2.1 软件测试活动和其他软件研制活动的关系 (2)
2.2.2 软件测试的对象 (2)
2.2.3 软件测试组织和软件研发组织的界面 (2)
2.2.4 软件更动控制规范 (3)
2.3 软件测试的组织策略 (3)
2.3.1 软件测试遵循的标准 (3)
2.3.2 软件测试的工作范畴 (3)
2.3.3 软件测试环境 (4)
2.3.4 软件测试产品 (4)
2.3.5 适用于软件测试活动的软件资源标识规则 (4)
2.3.6 软件测试的进度安排 (4)
3 结论和讨论 (4)
3.1 软件测试的重点 (4)
3.2 软件测试的难点 (5)
3.3 软件测试的进一步涵义 (5)
3.3.1 软件测试的本质 (5)
3.3.2 软件的静态分析技术 (5)
3.3.3 软件测试的质量 (5)
3.3.4 软件测试的可信度 (6)
1 引言
在工程化的软件研制过程中,软件测试活动贯穿整个软件项目的生存周期;独立的软件测试组织始终和设计/实现/维护组织并行工作;软件测试涉及的人/物/时间甚至可能超过软件项目总消耗的一半以上。因此,软件测试本身就是软件工程中值得专门计划和管理的一项子工程。
本文将基于一个大型实时软件系统中软件测试的实践,从计划和管理的角度来分析和介绍软件测试的工作框架及其内容;然后讨论在较高层次上计划和管理软件测试时能进一步分析和研究的内容。
2 软件测试的工作框架
软件测试的基本组织原则为:
a.成立独立的测试组织,以实现第三方测试(IV&V)的需求。
具体实现时能采用:专职为主、兼职为辅和交叉测试的策略。
b.软件测试工程化、规范化。
包括:统一制订软件测试的方法和规范;重视软件测试文件的编制;明确定义软件测试环境,同时有重点地设计和研发软件测试工具。
c.实现有效的测试过程管理。
包括:测试资源(数据和程式)的设置管理;测试/回归测试的自动/半自动化执行;测试报告的自动/半自动化生成。
d.重视测试结果和测试结果的利用。
包括:加强结果收集统计和分析;指导软件进展和质量评估。
根据基本组织原则,软件测试的工作框架包括三个部分:软件测试在软件系统研制过程中的定义(外部联系);软件测试的组织策略(内部结构);软件测试的过程控制(内部联系)。前两部分的定义相对稳定,是软件测试计划和管理的重点,以下分析和介绍其中的内容。
2.1 软件测试在软件系统研制过程中的定义
在软件测试工作之初,组织者应和其他有关人员协调,以正确定位以下内容:
a. 软件测试在软件研制中的作用;
b. 软件测试活动和其他软件研制活动的关系;
c. 软件测试的对象;
d. 软件测试组织和软件研发组织界面;
e. 软件更动控制流程。
2.2 软件测试在软件研制中的作用
软件测试的意义在于:
a. 发现软件错误;
b. 有效定义和实现软件成分由低层到高层的组装过程;
c. 验证软件是否满足任务书和系统定义文件所规定的技术需求;
d. 为软件质量模型的建立提供依据。
即软件测试包括“找错”、“组装”、“确认”和“评估”四个层次的作用。
2.2.1 软件测试活动和其他软件研制活动的关系
图1描述了软件研制过程中各种活动的输入/输出关系。能看到:软件测试是软件质量管理活动之一;软件测试组织通过软件设置管理组织获得其测试对象:软件产品(文件/代码/文件)或其中间形式;软件测试结果通过软件设置管理组织返回给软件研发组织;测试结果是软件质量控制的数据来源之一。
2.2.2 软件测试的对象
在大型软件系统中,软件成分被划分为多个层次。所有参加测试的人员都应了解其面对的软件系统的构成,同时清晰自己实现哪些部分、哪些方面的测试。
各类系统定义文件是软件测试的依据,他们定义了各层次软件成分的功能/性能/实现的需求。必要时,测试组织者应及时汇集、整理、完善软件系统的成分树/森林,明确各层次软件成分的具体内容。当然,这部分信息也可能由其他组织提供。
2.2.3 软件测试组织和软件研发组织的界面
软件测试组织和软件研发组织的界面指:软件研发组织完成编码、调试、集成后通过软件设置管理组织移交给软件测试组织的软件成分的层次,简称“软件测试界面”。
对低于软件测试界面的软件成分进行的排错的过程一般被称为“软件调试”;而对高于软件测试界面的软件成分进行的找错的过程被称为“软件测试”,其修改的过程被称为“软件更动”。
一旦软件成分被提交到设置管理库中,则对其的修改就必须遵循软件更动控制规范,将涉及不少人员,媒体转移较频繁,软件修改周期也较长。因此代码的测试不应过分依赖于测试组织,即:研发组织提交的软件成分应足够稳定。为了减少整个软件测试过程(发现问题—改
动软件)的人力/物力/时间的消耗,测试组织和研发组织应达成共识:尽可能提高软件测试界面。定义较高软件测试界面的益处还在于:有利于研发组织更加主动关注其软件研发过程的质量控制;同时,更有利于测试组织集中时间和资源来执行软件高层测试(功能/性能的确认)。
2.2.4 软件更动控制规范
由图1知:软件测试的对象是已置于软件设置管理控制之下的软件成分(程式、数据、文件及各类受控的文件)。软件更动控制是软件设置管理的主要任务之一。
当软件研发/测试/维护人员发现软件问题(和软件设置管理项相关的软件错误、软件不一致或未知原因的软件异常状态)时,须填写软件问题报告,按照软件更动控制流程/算法,进入软件更动循环,产生相应的软件更动申请/报告。因此软件更动控制规范应包含:软件更动控制流程/算法、软件问题报告和软件更动申请/报告的格式。
由于软件更动控制和软件回归测试的内在联系紧密,因此测试组织应参和制订软件更动控制规范,以使该规范能在适用于系统的前提下更节省软件研制的总消耗。
2.3 软件测试的组织策略
在软件测试的管理中,以下内容的定义反映测试工作的组织策略:
a.软件测试遵循的标准;
b.软件测试的工作范畴;
c.软件测试环境;
d.软件测试产品;
e.适用于软件测试活动的软件资源标识规则;
f.软件测试的进度安排。
2.3.1 软件测试遵循的标准
组织者在指定范围内选择软件测试遵循的标准,并结合本软件系统的具体需求,使之贯彻到整个软件测试的计划、实现和管理过程之中。根据标准,需要被明确的内容包括:测试阶段和测试文件类型。
能从三个角度来划分测试阶段:面向测试操作类型的阶段划分、面向测试操作对象的阶段划分、面向测试实施者的阶段划分。测试操作类型包括:调试、集成、确认、验证、组装、验收、操作等。测试操作对象能是:单元、部件、设置项、子系统、系统等。测试实施者能是:研发者、测试者、使用者、验收者等。各类标准从不同角度定义测试评审阶段,而测试组织者能在符合所选标准的同时,结合多个划分因素规定本系统的测试阶段。
各标准规定的测试文件类型也不尽相同。如国标《软件产品研发文件编制指南》规定了两类测试文件:测试计划、测试分析报告;国标《计算机软件测试文件编制规范》定义了八类测试文件:测试计划、测试设计说明、测试用例说明、测试规程说明、测试项传递报告、测试日志、测试事件报告、测试总结报告;《XXXX软件工程化技术文件》定义了三类测试文件:测试计划、测试说明、测试报告。我们认为最后这种规定较易操作:因为,太少的测试文件类型不利于有步骤有层次地定义测试内容,也不利于测试用例和测试例程的良好表达;太多的测试文件类型易使测试组织陷入到繁杂的文件规范和编制中去;而第三种定义较为适中。其中:测试计划在系统分析/设计阶段提交,着重定义测试的资源、范围、内容、安排、通过准则等;测试说明在测试计划明确后开始编制,针对软件需求和设计需求具体定义测试用例和测试规程;测试报告分析和总结测试结果,测试日志是其必要附件。
2.3.2 软件测试的工作范畴
软件测试工作包括两个层次:
a. 测试工作的组织和管理,包括:制定测试方法和规范、控制测试进度、管理测试资源。