在软件系统开发完成后,必须进行测试和评价,以确定软件质量是否达到预定目标,这样才能保证软件系统安全可靠地运行。通过软件测试可以尽可能地和尽可能多地找出各种隐藏的错误和缺陷,及时进行修改和弥补。软件测试将直接影响到软件产品的最终质量。
测试组的任务是用尽可能高的精度测试所开发的软件产品与规定需求的差距及其应用时的适用性。如果发现缺陷,则软件产品不能通过验收和使用,并退回给开发组。测试组的另一个任务是制定软件应用计划,负责计划在生产领域如何正确地使用程序及数据库。
测试组的职责是确定测试过程、测试计划和组织测试过程及执行测试,但是不负责被测试系统的质量。
测试组能够有效地、成功地完成任务的关键因素是要有专门的测试设备、现代化的测试数据库和测试工具。
在软件开发过程中,需要采用分析的质量保证措施来对软件产品进行测试和评价。分析的质量保证措施包括静态测试和动态测试。静态测试在对软件进行分析、检查和测试时,不实际运行被测试的程序。动态测试是通过运行程序来检验软件的动态特性和运行结果的正确性,并根据程序的运行过程对程序进行评价的过程。动态测试是依据经验进行测试的过程。它试图使用定量的输入,依靠经验来调整程序,使其与规范的偏差在容许的范围内,容许值取决于质量需求。动态测试也可以看成是一个评价和验证系统或系统部件的过程,它采用人工的或自动的方法来辨别实际成果与期望成果的差别,并使系统满足规定的需求。
动态测试中常用的技术概念:
测试:可看成是运行程序的过程,其目标是找出错误。
调试:找出引起错误的原因的过程。它要规定怎样修改错误、检查修改后对程序的影响并进行修改。调试错误后要进行再测试。
错误:是指计算值、观测值、测量值之间,或条件与真值之间,不符合规定的或理论上的正确值或条件。
缺陷:是指与期望值或特征值的偏差。缺陷能影响程序的功能,例如:一个程序可能有好的功能,但其可维护性可能很差。缺陷可以发生在所有产品质量规范规定的特性中。
失效:是指功能部件执行其功能的能力丧失。一个部件的失效或影响较高层单元的运行或产生严重的后果。失效将影响产品的可靠性。
故障:是指功能部件不能执行所要求的功能。可能由错误、缺陷或失效引起。故障可影响程序的有效性。
测试组在测试过程中应遵循一定的命名和设计规范,以此来保证程序的标准化和可维护性。测试组需要遵循的规范暂时包括如下几个:VB编程命名规范、数据库命名规范、数据库设计规范。具体内容请参考各文件。
测试中发现的问题和测试方法规范如下:
1、软件错误等级定义表(Error Class)
失效等级 | 定义 |
1 | 可造成重大损失,用户认为不允许出现的错误 |
2 | 可造成较大损失,用户认为发生率应很低的错误 |
3 | 损失不大,但需要查找原因的错误,记入错误统计 |
4 | 可不查找错误原因,不记入错误统计 |
2、软件错误类型定义表(Error Type)
错误类型 | 定义 |
1 | 需求分析错误 |
2 | 程序代码错误 |
3 | 设计错误 |
3、常用软件测试方法(Testing Method)
序号 | 测试类型 | 简述 |
1 | 黑盒法 | 即功能测试,完全基于软件功能和需求的测试 |
2 | 白盒法 | 即结构测试,已知程序的内部逻辑,覆盖全部代码的测试 |
3 | 单元测试 | 最小函数、模块、类的测试 |
4 | 增量集成测试 | 增加新功能后进行的部分测试 |
5 | 集成测试 | 对由各部分组合起来的程序的测试 |
6 | 功能测试 | 黑盒类测试,测试软件同功能需求的适合度 |
7 | 健全性测试 | 常作为初始测试,确定一个新的软件版本是否表现正常,以应付更强的测试 |
8 | 回归测试 | 修复或调整好软件环境之后重新测试 |
9 | 认同测试 | 基于最终用户说明书的测试 |
10 | 负载测试 | 测试应用程序在重负载下的承受能力 |
11 | 性能测试 | 测试应用程序在重负载下的性能 |
12 | 可用性测试 | 测试软件操作及界面友好性 |
13 | 安装/卸载测试 | 测试软件安装、卸载过程 |
14 | 数据一致性测试 | 测试意外情况发生时,数据是否能保证一致性 |
15 | 验收测试 | 获知用户对软件是否满意 |
16 | 比较测试 | 在同类产品中比较软件的优缺点 |
17 | @测试 | 软件开发将结束时进行该测试 |
18 | β测试 | 当开发和测试工作实质上完成时进行该测试 |
建议采用以下测试方法:
黑盒法(Black Box);
白盒法(White Box);
可用性测试(Usability Testing);
单元测试(Unit Testing);
集成测试(Integrate Testing);
功能测试(Function Testing);
负载测试(Overload Testing);
性能测试(Ability Testing);
安装/卸载测试(Install / Uninstall Testing);
验收测试或@测试(Check&Accept Testing)。
作者:佚名