1 前言

  软件生产包括六个环节:软件开发(定义/设计/实现)、软件生产管理、软件质量控制、软件配置管理软件测试、软件维护。第一个环节加工软件产品,后五个环节决定软件生产的质量和软件产品的质量。软件测试是软件生产的一个重点和难点。软件测试具有四个层次的作用:找错、确认、组装和评审[1],其中确认和评审的意义与难度在规模化的软件生产中远远大于找错和组装。软件生产迫切需要脱离手工作坊方式的软件调试,在规范化软件测试的基础上实现规模化软件测试,达到提高软件产品质量、降低软件生产消耗的目的。软件测试的方法学和软件测试的管理学应是软件测试工作者关注的重点。

  1. 软件生产管理:维护软件开发过程的有序性,决定软件生产的资源消耗(人//信息/时间),从而决定软件产品的价格;

  2. 软件质量控制:维护软件资源消耗与软件产品质量之间的均衡;

  3.软件测试:保障软件产品的可接收性,为评价软件产品质量的提供依据;

  4. 软件配置管理:保障软件产品(或其中间产品)的可标识性、完整性和一致性,为其它环节提供中介服务;

  5. 软件维护:保障软件产品的售后服务,为软件产品的更新提供信息。

  软件生产的每个环节都有自身的产品(文档/文件/代码/服务)输出,它们共同构成软件产品的三要素:(软件功用,软件质量,软件价格)。

  计算机软件生产的方法学和计算机软件生产的管理学值得各类软件工作者关注,需要在实践与研究过程中不断发展理论和积累经验。

  缘于软件生产的特性,软件测试是软件生产的一个重点和难点。软件测试具有四个层次的作用:找错、确认、组装和评估[1],其中确认和评估的意义与难度在规模化的软件生产中远远大于找bug和组装。软件生产迫切需要脱离手工作坊方式的软件调试,在规范化软件测试的基础上实现规模化软件测试,达到提高软件产品质量、降低软件生产消耗的目的。软件测试的方法学和软件测试的管理学应是软件测试工作者关注的重点。

  基于一个大型复杂实时软件系统(以下简称之为“MARA”)软件测试的实践与研究,参考资料[1]从产品计划和生产管理的角度分析和讨论了软件测试,本文将从产品设计和生产组织的角度来分析和讨论软件测试。

  以下将分析和讨论:软件测试流程、软件测试文档、软件测试用例、规模化软件测试和规范化软件测试。

  2 软件测试流程

  2.1 软件测试的阶段划分

  可以从三个角度来将软件测试划分为多个阶段[1]

  1. 面向软件测试操作类型的划分,如调试、集成、确认、验证、组装、验收、操作;

  2. 面向软件测试对象粒度的划分,如语句、结构、单元、部件、配置项、子系统、系统、大系统;

  3. 面向软件测试实施者的划分,如开发者、测试者、验收者、使用者。

  2.2 软件测试阶段的步骤

  每个软件测试阶段都要经历以下步骤:测试需求分析、测试过程设计、测试实现、测试实施、测试评价、测试维护。

  2.3 软件测试角色

  每个测试步骤都对应一个测试角色,另外还定义测试配置管理的角色。

  表1给出软件测试角色的定义。

  表1 软件测试角色的定义

    

  明确区分各类测试角色,并明确定义其资源(人//时间)的安排,是保障软件测试工作有序开展、有效管理的关键。

明确区分测试需求分析角色和测试过程设计的角色意义还在于:软件测试对软件功能/软件实现有了可追踪性,因而为准确评议测试用例的质量提供依据。

  2.4 软件系统的测试流程

  显示了大型复杂软件系统MARA的测试流程。

  可以看到,结合测试操作类型和测试对象粒度的划分角度,MARA的测试阶段分为:单元测试、部件集成、部件确认、配置项组装、配置项确认、系统综合和系统验收。每个阶段都要经历2.2节说明的六个步骤。

  表2说明各测试阶段的定义。

  3 软件测试文档

  显示了MARA的软件测试文档树。

  利用基于数据库的管理工具,软件测试文档可以自动/半自动生成。

  4 软件测试用例

  4.1 软件测试用例的定义

  软件测试用例可以被定义为如下六元组:

  (测试索引,测试环境,测试输入,测试操作,预期结果,评价标准) 

       5 规模化软件测试与规范化软件测试

  软件测试的规模包括两层含义:被测软件的规模(有效代码量、结构/逻辑的复杂性、高性能/高精确性/高可靠性的需求)和测试消耗资源(人力/时间/测试频度)的规模,前者是定义后者的决定因素。可知,规模化软件测试应指:针对一定规模的软件消耗一定资源的软件测试。关于这两个一定,值得软件测试研究者探讨。

       规范化的软件测试包括:有限的测试资源投入、已验证的测试模式、完整的测试方法与技术途径、有序有效的测试管理和降耗提质增效的测试环境,其中涉及的理论、方法与技术值得进一步研究和实践。(单击下文链接查看更多内容。)

本文转载自51testing软件测试网:http://www.51testing.com/html/15/n-91715.html