软件测试的艺术:系统测试设计测试用例时应考虑全部的15种类型

系统测试设计测试用例时应考虑全部的15种类型:

  • 能力测试

判断目标文档提及的每一项能力(或功能,为了避免与功能测试发生混淆而不使用“功能”一词)是否都确实已经实现。能力测试的过程是逐条语句地检查目标文档,当某条语句定义了一个“要做什么”时,就判断程序是否满足。此类测试常常可以在不使用计算机的情况下进行,有时人工对目标用户文档进行比较就足够了。尽管如此,利用问题检查单将有助于在下一次进行测试时,确保人工检查的目标是相同的。

  • 容量测试

容量测试的目的是为了证明程序不能处理目标文档中规定的数据容量,是使程序经受大容量数据的检验。由于容量测试显然需要大量的资源,鉴于对机器和工时的考虑,不可进行过多的容量测试,当然每个程序应该至少进行几次容量测试。

  • 强度测试
  1. 强度测试是使程序承受高负载或强度的检验。与容量测试不同,所谓高强度是指在很短的时间间隔内达到的数据或操作的数量峰值。类似的情况是测试一名打字员。容量测试是判断打字员能否处理大篇幅的稿子,而强度测试则是判断打字员能否达到每分钟50个单词的速度。
  2. 由于强度测试涉及时间因素,因此,它不适用于很多程序,如编译器或批处理工资程序。然而,强度测试适用于在可变负载下运行的程序,以及交互式程序、实时程序和过程控制程序。
  3. 基于Web的应用程序是最常接受强度测试的软件之一。在这里,我们要确信的是应用程序以及硬件能够处理一定容量的并发用户。我们需要弄清用户群,然后设计一个强度测试,体现出可能访问站点的最大人群的情况。
  4. 虽然有很多强度测试体现的是程序在运行过程中可能会遇到的情况,然而也有另一些强度测试确实体现了“不可能发生”的情况,但这并不意味这些测试是无用的,如果在这些不可能发生的情况中检查出了错误,那么这项测试就是有价值的,因为同样的错误也可能发生在现实的、强度稍低的环境中。
  • 易用性测试

      对人为因素的分析依然是一项极为主观的事情,列举了一些需要测试的问题:

  1. 每个用户界面是否都根据最终用户的智力、教育背景和环境要求进行了调整?
  2. 程序的输出是否有意义、不模糊且没有计算机的杂乱信息(如乱码)?
  3. 错误诊断(如错误信息)是否直接,用户是否需要有计算机学科的博士学位才能理解它们?
  4. 整体的用户界面是否在语法、惯例、语义、格式、风格和缩写方面展现了相当程度的概念完整性、基本的一致性和统一性?
  5. 在准确性极为重要的环境里,如网上银行系统,输入中是否有足够的冗余信息?举例来说,该系统可能会要求输入账号、用户名和PIN来验证访问账户信息是合法用户。
  6. 系统是否包含过多或不太可能用到的选项?
  7. 对于所有的输入,系统是否返回了某些类型的即时确认信息?举例来说,在点击鼠标进入输入的环境里,被选项可以变换颜色,或者某个按钮对象可以显示凹进或凸起的状态;还有,如果被选的操作需要一些运行时间(如果软件正在访问一个远程的系统,情况常会如此),那么应显示一条信息通知用户当前正在做什么。
  8. 程序是否易于使用?举例来说,如果输入是区分大小字符的,这一点对用户来说是否清楚?此外,如果程序要求浏览一系列的菜单或操作,那么返回到主菜单的方法是否清楚?用户是否可以很容易浏览到上一层或下一层?
  • 安全性测试

安全性测试是设计测试用例来突破程序安全检查的过程。设计此种测试用例的方法之一是研究类似系统中已知的安全问题,然后生成测试用例,尽量暴露被测系统存在相似问题。举例来说,我们可以设计测试用例来规避操作系统的内存保护机制,破坏数据库管理系统的数据安全机制。

基于web的应用程序常常比绝大多数程序所需的安全测试级别更高。

  • 性能测试

很多软件都有特定的性能或效率目标,这些特性描述为在特定负载和配置环境下程序的响应时间和吞吐率。

  • 存储测试

类似地,软件偶尔会有存储目标,举例来说,可能描述了程序使用的内存和辅存的容量,以及临时文件或溢出文件的大小,应设计测试用例来证明这些存储目标没有得到满足。

  • 配置测试

诸如操作系统、数据库管理系统和信息交换系统等软件,都支持多种硬件配置,包括不同类型和数量的I/O设备和通信线路,或不同的存储容量。通常可能的配置数量非常之大,以致于测试无法面面俱到,但至少应该使用每一种类型的设备,以最大和最小的配置来测试程序。

  • 兼容性/配置/转换测试

测试用例的目的是证明兼容性目标未被满足,转换过程并未生效,在将一个系统转移到另一个系统时,应尽力发现错误。需要确定现有的数据安置到了新的系统中。

  • 安装测试

为了发现安装系统过程中出现的错误。

  • 可靠性测试
  • 可恢复性测试

证明恢复机制不能正确发挥作用。可以故意将程序错误导入某个系统中,判断系统是否可以从中恢复。

  • 适用性测试

这类目标可能定义了系统提供的服务辅助功能,包括存储转存程序或诊断程序,调试明显问题的平均时间,维护过程以及内部业务文档的质量等。

  • 文档测试

检查用户文档的正确性和清晰性

  • 过程测试

很多软件都是较大系统的组成部分,这些系统并不完全是自动化的,包含了很多人员操作过程。在系统测试中,必须对所有已规定的人工过程,如系统操作员、数据库管理员或最终用户的操作过程进行测试。

posted @ 2018-10-18 11:24  杀人的微笑A  阅读(202)  评论(0编辑  收藏  举报