软件测试管理规范
(一)软件测试的定义
软件测试的定义是“为了发现程序中的错误而执行程序的过程”。具体地说,软件测试是根据软件开发的产品设计说明书和程序的内部结构而精心设计出一批测试案例,并利用测试案例来运行程序,以发现程序错误的过程。
(二)软件测试类型的划分
软件测试贯穿于整个开发过程中,软件系统的开发过程是一个自顶向下逐步细化的过程,而测试过程则是按相反顺序进行的集成过程,根据测试的阶段、测试的执行人,可划分为:
单元测试(unit testing)、组合测试(incremental integration testing)、集成测试(integration testing)、系统测试(system testing)、用户验收测试。根据测试内容的不同可分为:功能测试(functional testing )安全性测试(security  testing)恢复测试(recovery testing )兼容性测试(硬件兼容、版本兼容)容错性测试、性能/压力/负载测试(performance /stress /load  testing )安装/卸载测试(install/uninstall testing )在本文中,我们使用测试阶段的划分标准。
图一:软件生命周期“台阶”模型图:
(三)测试中权衡的三个重要维度
测试时间、测试成本和测试质量构成测试过程中需要关注的三个重要维度,三个维度相互制约、相互影响。在测试中,永远无法实现时间、成本和质量的三赢,为其中任何2个目标所做的努力,都必须以付出第三个目标的损失为代价,此外我们永远都不可能穷尽所有的测试内容。因此必须综合权衡作出取舍。
图二:制约测试的三个要素
(四)不同阶段测试精度的把握
考虑到测试时间、测试成本的制约,在不同的测试阶段,对测试精度有不同的要求。从单元测试、集成测试到系统测试、用户验收测试阶段,对测试精度的要求也呈现一个从粗到细的过程。单元测试是发现错误最多、预防质量隐患最重要的测试阶段,需要最大的测试精度,缺少单元测试,直接进行集成和系统测试,缺陷隐患多。
图三:不同测试阶段测试精度模型图
(五)测试顺序
对于一项复杂产品的测试,遵循一定的测试顺序,可以是测试工作有条不紊,提高测试工作效率。同时按照一定的测试顺序展开测试,一定程度上可以确保测试工作的全面性。
测试顺序的原则是由浅入深、由易而难。在具体的测试内容上表现为:
●先联机测试后批量测试;
●首先单元测试,其次集成测试,然后进行系统测试及验收测试;
●先进行基本功能测试再进行辅助功能测试;
●先进行正常情况案例的测试,再进行反常情况案例的测试;
●对于一项交易先进行输入项的测试,再进行输出项的测试,然后进行账务处理的测试。
二、测试工作流程
(一)测试准备
在技术实现编码阶段的工作结束时,进入产品的测试准备阶段,为真正开展产品测试做好前期准备工作。
测试准备阶段的主要工作包括制定测试工作计划、设计测试方案、组织协调测试人员、测试所需硬件设施等其他准备工作。测试准备阶段的工作由参加产品设计说明书的主创人员负责完成。   
1、制定测试工作计划和测试方案
相关内容见测试文档编写
2、组织协调测试人员
根据测试计划和测试方案,组织协调相关人员,形成测试工作组。
3、测试人员的培训
正式开展测试工作之前,对所有测试人员进行测试工作的集中培训。通过测试培训,使测试人员明确测试目标和要求、了解待测系统、统一测试方法和流程,保质保量的开展和进行测试工作。
4、测试所需要硬件设施和其他准备工作
与相关部门联系协调对测试工作所需的设施:服务器、测试机等在测试准备阶段全部到位。
(二)测试的实施
测试实施是软件测试工作的核心阶段,测试实施阶段严格按照测试计划和测试方案展开。
1、搭建测试环境
根据产品的实际需要搭建的运行环境及准备相关测试所需初始数据。包括:测试人员、测试工具等。
2、 单元测试
软件测试流程
单元编码完成后,进行单元测试。单元测试构建者的角度出发检测产品的各个部分是否是正常、合理、安全的,换句话说,就是通过检测要保证软件产品满足用户操作的质量标准