系统测试有着特定的目的:将系统或程序与其初始目标进行比较。给定这个目标之后,隐含两方面的含义:
1、 系统测试并不局限于系统。如果产品是一个程序,那么系统测试就是一个试图说明程序作为一个整体是如何不满足其目标的过程。
2、 根据定义,如果产品没有一组书面的、可度量的目标,系统测试也就无法进行。
在寻找程序与其目标之间的不一致的过程中,应重点注意那些在设计外部规格说明的过程中所犯的转换错误。系统测试因而成为一种关键的测试类型,因为就软件产品本身、所犯错误的数量及其严重性而言,开发周期的这个阶段是最易出错的。
这也暗示与功能测试的情况不同,外部规格说明不能作为获得系统测试用例的基础,否则就破坏了系统测试的目标。然而另一方面,也不能利用目标文档本身来表示测试用例。因为根据定义,这些文档并不包含对程序外部接口的准确描述。克服这两难局面的方法是利用程序的用户文档或书面材料。通过分析目标文档来设计系统测试,分析用户文档来阐明测试用例。该方法能够产生两方面的作用,一是将程序与其目标和用户文档相比较,二是同时也将用户文档与程序目标相比较。
设计测试用例时要考虑下面的15种类型:
1. 能力测试。判断目标文档提及的每一项能力(或功能)是否都确实已经实现。。使用问题检查单。
2. 容量测试。其目的是为了证明程序不能处理目标文档中规定的数据容量。
3. 强度测试。是使程序承受高负载或强度的检查,所谓高强度是指在很短的时间间隔内达到数据或操作的数量峰值。
4. 易用性测试。需要测试的问题如下:
a) 每个用户界面是否都依据最终用户的智力、教育背景和环境要求而进行了调整?
b) 程序的输出是否有意义、不模糊且没有计算机的杂乱信息?
c) 错误诊断(如错误信息)是否直接?
d) 整体的用户界面是否在语法、惯例、语义、格式、风格和缩写方面展现出了相当程度的概念完整性、基本的一致性和统一性?
e) 在准确性极为重要的环境里,是否有足够的冗余信息?
f) 系统是否包括过多或不太可能用刀的选项?
g) 对于所有的输入,系统是否返回了某些类型的即时确认信息?
h) 程序是否易于使用?
5. 安全性测试。通过在与被测试软件提供相似服务的现有系统中搜寻安全漏洞,可以设计测试用例来判断软件是否受到类似问题的困扰。
6. 性能测试。很多软件都有特定的性能或效率目标,这些特性描述为在特定负载和配置环境下程序的相应时间和吞吐率。应设计测试用例来说明程序不能满足其性能目标。
7. 存储测试。英射击测试用例来证明这些存储目标没有得到满足。
8. 配置测试。
9. 兼容性/配置/转换测试。测试用例的目的是证明兼容性目标未被满足,转换过程并未生效。
10. 安装测试。
11. 可靠性测试。如果软件的目标中包含了对可靠性的特别描述,就必须设计专门的可靠性测试。
12. 可恢复性测试。目标是证明这些恢复机制不能够正确发挥作用。
13. 适用性测试。测试适用性或可维护性目标。
14. 文档测试。
15. 过程测试。在系统测试中,必须对所有已规定的人工过程,如系统操作员、数据库管理员或最终用户的操作过程进行测试。