技术开发 频道

软件测试的计划与管理

【IT168 技术文章】

    1 引言
   在工程化的软件研制过程中,软件测试活动贯穿整个软件项目的生存周期;独立的软件测试组织始终与设计/实现/维护组织并行工作;软件测试涉及的人/物/时间甚至可能超过软件项目总消耗的一半以上。因此,软件测试本身就是软件工程中值得专门计划和管理的一项子工程。

    本文将基于一个大型实时软件系统中软件测试的实践,从计划和管理的角度来分析和介绍软件测试的工作框架及其内容;然后讨论在较高层次上计划和管理软件测试时可以进一步分析和研究的内容。

    2 软件测试的工作框架 
   软件测试的基本组织原则为:

    a.成立独立的测试组织,以实现第三方测试(IV&V)的要求。

    具体实现时可以采用:专职为主、兼职为辅和交叉测试的策略。

    b.软件测试工程化、规范化。

    包括:统一制订软件测试的方法与规范;重视软件测试文档的编制;明确定义软件测试环境,同时有重点地设计和开发软件测试工具。

    c.实现有效的测试过程管理。

    包括:测试资源(数据与程序)的配置管理;测试/回归测试的自动/半自动化执行;测试报告的自动/半自动化生成。

    d.重视测试结果与测试结果的利用。

    包括:加强结果收集统计和分析;指导软件进展和质量评估。

    根据基本组织原则,软件测试的工作框架包括三个部分:软件测试在软件系统研制过程中的定义(外部联系);软件测试的组织策略(内部结构);软件测试的过程控制(内部联系)。前两部分的定义相对稳定,是软件测试计划与管理的重点,以下分析和介绍其中的内容。

    2.1 软件测试在软件系统研制过程中的定义
    在软件测试工作之初,组织者应与其他有关人员协调,以正确定位以下内容:

    a. 软件测试在软件研制中的作用;

    b. 软件测试活动与其它软件研制活动的关系;

    c. 软件测试的对象;

    d. 软件测试组织与软件开发组织界面;

    e. 软件更动控制流程。

    2.2 软件测试在软件研制中的作用
   软件测试的意义在于:

    a. 发现软件错误;

    b. 有效定义和实现软件成分由低层到高层的组装过程;

    c. 验证软件是否满足任务书和系统定义文档所规定的技术要求;

    d. 为软件质量模型的建立提供依据。

    即软件测试包括“找错”、“组装”、“确认”和“评估”四个层次的作用。

    2.2.1 软件测试活动与其它软件研制活动的关系
   软件测试是软件质量管理活动之一;软件测试组织通过软件配置管理组织获得其测试对象:软件产品(文档/代码/文件)或其中间形式;软件测试结果通过软件配置管理组织返回给软件开发组织;测试结果是软件质量控制的数据来源之一。

    2.2.2 软件测试的对象
   在大型软件系统中,软件成分被划分为多个层次。所有参加测试的人员都应了解其面对的软件系统的构成,同时清楚自己实现哪些部分、哪些方面的测试。

    各类系统定义文档是软件测试的依据,它们定义了各层次软件成分的功能/性能/实现的要求。必要时,测试组织者应及时汇集、整理、完善软件系统的成分树/森林,明确各层次软件成分的具体内容。当然,这部分信息也可能由其它组织提供。

    2.2.3 软件测试组织与软件开发组织的界面
   软件测试组织与软件开发组织的界面指:软件开发组织完成编码、调试、集成后通过软件配置管理组织移交给软件测试组织的软件成分的层次,简称“软件测试界面”。

    对低于软件测试界面的软件成分进行的排错的过程一般被称为“软件调试”;而对高于软件测试界面的软件成分进行的找错的过程被称为“软件测试”,其修改的过程被称为“软件更动”。

    一旦软件成分被提交到配置管理库中,则对其的修改就必须遵循软件更动控制规范,将涉及不少人员,媒体转移较频繁,软件修改周期也较长。因此代码的测试不应过分依赖于测试组织,即:开发组织提交的软件成分应足够稳定。为了减少整个软件测试过程(发现问题—改动软件)的人力/物力/时间的消耗,测试组织与开发组织应达成共识:尽可能提高软件测试界面。定义较高软件测试界面的益处还在于:有利于开发组织更加主动关注其软件开发过程的质量控制;同时,还有利于测试组织集中时间和资源来执行软件高层测试(功能/性能的确认)。

0
相关文章