-
模块测试的目的是发现程序模块与其接口规格说明之间的不一致。
-
功能测试的目的是为了证明程序未能符合其外部规格说明。
-
系统测试的目的是为了证明软件产品与其初始目标不一致。
1. 功能测试
功能测试是一个试图发现程序与其外部规格说明之间存在不一致的过程。功能测试通常是一项黑盒操作。
基于黑盒的测试策略,等价类划分方法、边界值分析方法、因果图分析方法和错误猜测方法是比较适合功能测试的。
2. 系统测试
系统测试并非是测试整个系统或程序功能的过程,因为有了功能测试,这样会显得多余。
-
系统测试并不局限于系统。
-
如果产品没有一组书面的、可度量的目标,系统测试也就无法进行。
因为系统测试不局限于功能测试,通常的性能测试包含如下测试内容:
-
能力测试:确保程序的目标功能实现。
-
容量测试:发现处理大容量数据时的程序异常。
-
强度测试:发现在大规模负载、高强度不间断持续的数据处理中的异常。
-
可用性测试:评估最终用户在使用软件并与软件交互时的可用性问题。
-
安全性测试:试图攻破程序的安全防线。
-
性能测试:评估程序的响应时间以及吞吐量瓶颈。
-
存储测试:确保程序可以正确处理其对存储的需求,包括系统的存储和物理上的存储。
-
配置测试:检查程序是否能在推荐配置上流畅运行。
-
兼容性/转换测试:评估新版本是否能兼容老的版本。
-
安装测试:确保能够在所有支持的平台上安装软件。
-
可靠性测试:评估程序是否能达到规格说明中的运行时常和MTBF(平均故障间隔时间)要求。
-
可恢复性测试:测试系统恢复相关的功能是否按设计要求实现。
-
服务/可维护性测试:评估系统是否拥有良好的数据处理和日志机制,以备技术支持和调试之需。
-
文档测试:校验所有的用户文档是否准确。
-
过程测试:对软件系统操作或维护所需涉及的流程进行评估和确定。
3. 验收测试
验收测试是将程序与其最初的需求及用户当前的需要进行比较的过程。
4. 安装测试
安装测试的目的不是为了发现软件中的错误,而是为了发现在安装过程中出现的错误。举例如下:
-
用户必须选择大量的选项。
-
必须分配并加载文件和库。
-
必须进行有效的硬件配置。
-
软件可能要求网络联通,以便与其他软件链接。
5. 测试的计划与控制
计划是管理测试过程中重要的一环,涉及到的过程包括:目标、结束准则、进度、责任、测试用例库及标准、工具、计算机时间、硬件配置、集成、跟踪步骤、调试步骤、回归测试。