1、引言
在工程化的软件研制过程中,软件测试活动贯穿整个软件项目的生存周期;独立的软件测试组织始终与设计/实现/维护组织并行工作;软件测试涉及的人/物/时间甚至可能超过软件项目总消耗的一半以上。因此,软件测试本身就是软件工程中值得专门计划和管理的一项子工程。
本文将基于一个大型实时软件系统中软件测试的实践,从计划和管理的角度来分析和介绍软件测试的工作框架及其内容;然后讨论在较高层次上计划和管理软件测试时可以进一步分析和研究的内容。
2、软件测试的工作框架
软件测试的基本组织原则为:
a、成立独立的测试组织,以实现第三方测试(IV&V)的要求。
具体实现时可以采用:专职为主、兼职为辅和交叉测试的策略。
b、软件测试工程化、规范化。
包括:统一制订软件测试的方法与规范;重视软件测试文档的编制;明确定义软件测试环境,同时有重点地设计和开发软件测试工具。
c、实现有效的测试过程管理。
包括:测试资源(数据与程序)的配置管理;测试/回归测试的自动/半自动化执行;测试报告的自动/半自动化生成。
d、重视测试结果与测试结果的利用。
包括:加强结果收集统计和分析;指导软件进展和质量评估。
根据基本组织原则,软件测试的工作框架包括三个部分:软件测试在软件系统研制过程中的定义(外部联系);软件测试的组织策略(内部结构);软件测试的过程控制(内部联系)。前两部分的定义相对稳定,是软件测试计划与管理的重点,以下分析和介绍其中的内容。
2.1 软件测试在软件系统研制过程中的定义
在软件测试工作之初,组织者应与其他有关人员协调,以正确定位以下内容:
a、软件测试在软件研制中的作用;
b、软件测试活动与其它软件研制活动的关系;
c、软件测试的对象;
d、软件测试组织与软件开发组织界面;
e、软件更动控制流程。
2.2 软件测试在软件研制中的作用
软件测试的意义在于:
a、发现软件错误;
b、有效定义和实现软件成分由低层到高层的组装过程;
c、验证软件是否满足任务书和系统定义文档所规定的技术要求;
d、为软件质量模型的建立提供依据。
即软件测试包括“找错”、“组装”、“确认”和“评估”四个层次的作用。