【软件质量与软件测试 白盒测试与黑盒测试】

第十章 黑盒测试

10.1 等价类划分:
10.1.1 划分等价类

等价类是指所有数据中的一组,它们具有相同的测试结果或相同的响应。等价类划分是将输入数据分为多个等价类的过程。

10.1.2 划分等价类的方法

划分等价类方法主要包括以下几种:

  • 特殊值法:选取特殊值作为等价类的代表值;
  • 范围法:按照输入值的范围进行划分;
  • 组合法:将两个或多个输入值进行组合,形成等价类。
10.1.3 设计测试用例

设计测试用例时,应该覆盖每个等价类,并且尽可能选择少量的测试用例来覆盖整个系统。同时还需要考虑到异常情况和错误处理。

10.2 边界值分析法
10.2.1 边界条件

边界条件是指输入数据的最大值和最小值。

10.2.2 次边界条件

次边界条件是指介于最大值和最小值之间的数值。

10.2.3 其他一些边界条件

其他一些边界条件包括:无效数据、空字符串、非法字符等。

10.2.4 边界值的选择方法

在选择边界值时,应该选择基本的边界值和等价值,同时需要考虑到特殊情况和异常情况。

10.3 盒测

盒测是一种结合边界值和等价类划分的测试方法,它能够有效地发现程序中的缺陷和问题。

10.4 因果图法
10.4.1 因果图设计方法

因果图是一种图形化表示方法,它将输入和输出之间的关系用箭头表示。因果图的设计方法包括以下几个步骤:

  • 明确需要测试的功能;
  • 确定所有的输入和输出;
  • 建立输入和输出之间的逻辑关系;
  • 绘制因果图。
10.4.2 因果图测试用例

在根据因果图生成测试用例时,应该覆盖所有的输入条件,并且尽可能选择少量的测试用例来覆盖整个系统。测试用例应该考虑到所有的输入组合以及异常情况和错误处理。

10.5 功能图法
10.5.1 功能图设计方法

功能图是一种图形化表示方法,它将一个系统或者一个模块的所有功能用框图表示出来,其中每个框代表一个功能,每个箭头表示数据流和控制流。功能图的设计方法包括以下几个步骤:

  • 明确需要测试的功能;
  • 确定所有的输入和输出;
  • 绘制功能图。
10.5.2 功能图法生成测试用例

在根据功能图生成测试用例时,应该覆盖所有的输入和输出条件,并且尽可能选择少量的测试用例来覆盖整个系统。测试用例应该考虑到所有的输入组合以及异常情况和错误处理。

10.6 比较与选择

不同的测试方法适用于不同类型的软件系统和测试需求,因此需要结合实际情况和预算来进行选择。在测试过程中,应该综合运用多种测试方法,以确保测试覆盖率和测试质量。

10.7 黑盒测试工具介绍
10.7.1 WinRunner介绍

WinRunner是一款基于GUI的自动化测试工具,主要用于测试桌面应用程序和Web应用程序。它支持多种脚本语言,包括VBScript和JavaScript等。

10.7.2 LoadRunner的使用

LoadRunner是一款针对Web应用程序的负载测试工具,它能够模拟真实用户在访问Web应用程序时所产生的负载,以验证系统的性能和可扩展性。

10.7.3 QuickTest Pro的使用

QuickTest Pro是一款基于GUI的自动化测试工具,主要用于测试桌面应用程序和Web应用程序。它支持多种脚本语言,包括VBScript和JavaScript等。

10.8 小结

本章主要介绍了等价类划分、边界值分析法、因果图法、功能图法以及黑盒测试工具的相关概念、原理和应用。在软件测试过程中,需要根据实际情况和需求选择适合的测试方法和工具,以提高测试效率和测试质量。

第十一章 白盒测试

11.1 白盒测试的概述:

白盒测试是一种基于代码内部结构的测试方法,即测试人员可以直接访问源代码,进行针对代码逻辑、程序流程等的测试。

11.2 控制流测试:

控制流测试是白盒测试的一种方法,主要包括语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖测试、路径覆盖和循环测试等。

11.2.1 语句覆盖:

语句覆盖是指至少执行一次每个语句,以保证每个语句被执行过程中没有发生错误。

11.2.2 判定覆盖:

判定覆盖是指每个判定语句至少执行一次,并且每个判定语句的结果为 true 和 false 都被覆盖。

11.2.3 条件覆盖:

条件覆盖是指每个条件语句的每个条件都至少执行一次,并且使得条件的结果为 true 和 false 都被覆盖。

11.2.4 判定-条件覆盖测试:

判定-条件覆盖测试是指每个判定和条件之间的关系都至少执行一次,以保证每个判定和条件的结果都被覆盖。

11.2.5 路径覆盖:

路径覆盖是指覆盖程序所有可能的执行路径,以保证覆盖所有可能的错误。

11.2.6 几种常用逻辑覆盖的比较:

语句覆盖 < 判定覆盖 < 条件覆盖 < 判定-条件覆盖测试 < 路径覆盖

11.2.7 循环测试:

循环测试是指对包含循环结构的代码进行测试,其中包括循环的进入条件、出口条件、循环体和循环次数等的测试。

11.3 基本路径测试:

基本路径测试是白盒测试的一种方法,通过对程序中每条可行的路径进行测试来提高软件质量。

11.3.1 程序的控制流图:

程序的控制流图是指描述程序结构的有向图,其中节点表示语句或基本块,边表示程序中的控制转移。

11.3.2 程序结构的要求:

程序结构的要求包括线性结构、分支结构、循环结构等,它们可以用控制流图来表示。

11.3.3 举例分析:

通过对程序的控制流图进行分析,可以找到并测试程序中所有可能的路径,以保证程序的正确性。

11.4 程序插装/程序变异测试:

程序插装/程序变异测试是一种通过对程序源代码进行修改来产生错误的测试方法,以检测软件程序对错误的容忍能力。

11.5 白盒测试工具:

常用的白盒测试工具包括 C++Test 和 JUnit 等,它们可以辅助测试人员对代码进行覆盖率分析、路径分析等操作。

11.6 软件缺陷分析:

软件缺陷分析是指对软件中发现的缺陷进行分析和处理的过程,其中包括缺陷的类别、级别、原因和构成等方面的分析。

11.6.1 简介:

软件缺陷是指在开发和使用软件过程中发现的错误或问题。

11.6.2 软件缺陷的类别:

软件缺陷的类别包括逻辑缺陷、接口缺陷、性能缺陷、安全缺陷等。

11.6.3 软件缺陷的级别:

软件缺陷的级别包括致命级别、严重级别、一般级别和提示级别等。

11.6.4 软件缺陷产生的原因:

软件缺陷产生的原因包括需求不明确、设计错误、编码问题、测试不充分等。

11.6.5 软件缺陷的构成:

软件缺陷的构成包括缺陷明细、缺陷跟踪和缺陷报告等。

11.7 小结:

本章介绍了白盒测试的概念、方法和技术,包括控制流测试、基本路径测试、程序插装/程序变异测试等。同时还介绍了白盒测试工具和软件缺陷分析的相关知识。

  • 本章主要讲解了白盒测试的基本概念和技术,包括白盒测试的基本概念、分类、白盒测试中的边界值技术、语句覆盖测试、分支覆盖测试、条件覆盖测 试、分支-条件覆盖测试、条件组合覆盖测试、路 径覆盖测试。
  • 也介绍了常用的白盒测试工具C++Test软件以及软件缺 陷的原因,构成,产生的危害等。白盒测试允许观察“盒子”内部,不像黒盒测试那样把系统理解为一个“内部不可见的盒子”,不需要明白内部结构。
  • 为了完整的测试一个软件,这两种测试都是不可或缺的。
  • 一个产品在其概念分析阶段直到最后交付给用户期间往往要经过各种静态的、动态的、白盒的和黒盒的测试

猜你喜欢

转载自blog.csdn.net/muzillll/article/details/130962052