《软件测试的艺术》精华摘要(六)

上一篇 / 下一篇  2010-12-29 15:25:29 / 个人分类:读书笔记

更高级别的测试

      当程序无法实现其最终用户要求的合理功能时,就发生了一个软件错误。

      软件开发过程在很大程度上是沟通有关最终程序的信息,并将信息从一种形式转换到另一种形式。由于这个原因,绝大部分软件错误都可以归因为信息沟通和转换时发生的故障、差错和干扰。

1、将软件最终用户的要求转换为一系列书面的需求。这些需求就是该软件产品要实现的目标。

2、通过评估可行性与成本、消除相抵触的用户需求、建立优先级和平衡关系,将用户需求转换为具体的目标。

3、将上述目标转换为一个准确的产品规格说明,将产品视为一个黑盒,仅考虑其接口以及与最终用户的交互。该规格说明被称为“外部规格说明”。

4、如果该产品是一个系统,而不仅是一个程序,那么下一步骤就是系统设计。该步骤将系统分隔为单独的程序、部件或子系统,并定义它们的接口。

5、通过定义每个模块的功能、模块的层次结构以及模块间的接口,来设计程序或程序集合的结构。

6、设计一份准确的规格说明,定义每个模块的接口与功能。

7、经过一个或更多的子步骤,将模块接口规格说明转换为每个模块的源代码算法。

需求规格说明定义了为什么要开发程序。

目标定义了程序要做什么,以及应做得怎样。

外部规格说明定义了程序对用户的准确表现。

与后续阶段相关的文档越来越详细地规定了程序是如何建立起来的。

模块测试的目的是发现程序模块与其接口规格说明之间的不一致

功能测试的目的是为了证明程序未能符合其外部规格说明

系统测试的目的是为了证明软件产品与其初始目标不一致

6.1、功能测试

        功能测试是一个试图发现程序与其外部规格说明之间存在不一致的过程。外部规格说明是一份从最终用户的角度对程序行为的精确描述。

6.2、系统测试

        将系统或程序与其初始目标进行比较。给定这个目标之后,隐含两方面的含义:

1、 系统测试并不局限于系统。如果产品是一个程序,那么系统测试就是一个试图说明程序作为一个整体是如何不满足其目标的过程。

2、 根据定义,如果产品没有一组书面的、可度量的目标,系统测试也就无法进行。

通过分析目标文档来设计系统测试,分析用户文档来阐明测试用例

15种测试用例:

1、 能力测试判断目标文档提及的每一项能力是否都确实已经实现。利用问题检查单。

2、 容量测试使程序经受大容量数据的检验。目的是为了证明程序不能处理目标文档中规定的数据容量。

3、 强度测试使程序承受高负载或强度的检验。高强度是指在很短的时间间隔内达到的数据或操作的数量的峰值。

4、 易用性测试试图发现人为因素或易用性的问题。

1、 每个用户界面是否根据最终用户的智力、教育背景和环境要求而进行了调整?

2、 程序的输出是否有意义、不模糊且没有计算机的杂乱信息?

3、 错误诊断(如错误信息)是否直接,用户是否需要有计算机学科的博士学位才能理解它们?

4、 整体的用户界面是否在语法、惯例、语法、格式、风格和缩写方面展现出了相当程度的概念完整性、基本的一致性和统一性?

5、 在准确性极为重要的环境里,输入中是否有足够的冗余信息?

6、 系统是否包含过多或不太可能用到的选项?现代软件的一个趋势是:仅向用户提供那些基于软件测试和设计考虑而确定出的最有可能使用的菜单选项。

7、 对于所有的输入,系统是否返回了某些类型的即时确认信息?

8、 程序是否易于使用?

5、 安全性测试设计测试用例来突破程序安全检查的过程。如规避操作系统的内存保护机制,破坏数据库管理系统的数据安全机制。

6、 性能测试性能或效率目标描述在特定负载和配置环境下程序的响应时间和吞吐率。

7、 存储测试程序使用的内存和辅存的容量,以及临时文件或溢出文件的大小。

8、 配置测试诸如操作系统、数据库管理系统和信息交换系统等软件都支持多种硬件配置,包括不同类型和数量的I/O设备和通信线路,或不同的存储容量。

9、 兼容性/配置/转换测试大多数开发的软件都并不是全新的,常常是为了替换某些不完善的系统。这样的软件往往有着特定的目标,涉及与现有系统的兼容以及从现有系统的转换过程。

10安装测试安装过程如果出现故障,会影响用户对软件的成功体验。

11、可靠性测试如果软件的目标中包含了对可靠性的特别描述,就必须设计专门的可靠性测试。

12、可恢复性测试诸如操作系统、数据库管理系统和远程处理系统等软件通常都有可恢复性目标,说明系统如何从程序错误、硬件失效和数据错误中恢复过来。

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

14、文档测试根据文档来确定系统测试用例的形式,一旦设计完成某个具体的测试情况,应该使用文档来作为编写实际测试用例的指南,用户文档应成为审查的对象,检查其正确性和清晰性,在文档中描述的任何范例应编写成测试用例并提交给程序。

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

16、系统测试的执行

6.3验收测试是将程序与其最初的需求及最终用户当前的需要进行比较的过程。

6.4、安装测试

    1、用户必须选择大量的选项

    2、必须分配并加载文件和库

    3、必须进行有效的硬件配置

    4、软件可能要求网络联通,以便与其他软件连接

        测试用例需要检查以确认已选的选项集合互不冲突,系统的所有部件全部存在,所有的文件已经创建并包含必须内容,硬件配置妥当等。

6.5、测试的计划与控制

1、目标必须定义每个测试阶段的目标。

2、结束准则必须制定准则以规定每个测试阶段何时可以结束。

3、进度每个阶段都须有时间表。应指出何时设计、编写和执行测试用例。

4、责任对于每一个阶段,应当确定谁来设计、编写和验证测试用例,谁来修改发现的软件错误,出现争端时谁来仲裁。

5、测试用例库及标准

6、工具

7、计算机时间计划每个测试阶段所需的计算机时间,包括用来编译应用程序的服务器、用来进行安装测试所需的桌面计算机、用来运行基于Web应用程序的Web服务器、联网的设备等等。

8、硬件配置

9、集成规定系统集成的顺序、系统每个版本的功能以及编写“脚手架”代码以模拟不存在的部件的职责分工。

10、跟踪步骤必须跟踪测试进行中的方方面面,包括对错误易发模块的定位,以及有关进度、资源和结束准则的进展估计。

11、调试步骤必须制定上报已发现错误、跟踪错误修改进程以及将修改部分加入系统中去的机制。调试计划中还应包括进度、责任分工、工具以及计算机时间/资源等。

12、回归测试回归测试在对程序做了功能改进或进行了修改之后进行,其目的是判断程序的改动是否引起了程序其他方面的退步。通常重新执行测试用例中的某个子集。

6.6、测试结束准则

    1、用完了安排的测试时间后,测试便结束

    2、当执行完所有测试用例都未发现错误,测试便结束

6.7独立的测试机构


TAG: 系统测试 验收测试 安装测试 测试结束标准 功能测试 测试计划与控制 独立的测试机构

 

评分:0

我来说两句

日历

« 2024-04-21  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 148390
  • 日志数: 20
  • 建立时间: 2010-11-07
  • 更新时间: 2012-04-01

RSS订阅

Open Toolbar