实现和测试-第六节:白盒测试

Posted 快乐江湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现和测试-第六节:白盒测试相关的知识,希望对你有一定的参考价值。

一:逻辑覆盖

(1)定义

逻辑覆盖是对一系列测试过程的总称, 这组测试过程逐渐进行越来越完整的通路测试

(2)分类

语句覆盖:选择足够多的测试数据,被测试程序中的每条语句至少执行一次

判定覆盖:不仅每个语句至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次

条件覆盖:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果

判定/条件覆盖:选择足够多的测试数据,使判定表达式中的每个条件都取到各种可能的结果,而且每个判定表达式也都取到各种可能的结果。它同时满足判断覆盖和条件覆盖

条件组合覆盖:选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。满足条件组合覆盖,也一定满足判定覆盖、条件覆盖和判断/条件覆盖

点覆盖连通图G的子图G’是连通的,而且包含G的所有结点,则称G’是G的点覆盖。满足点覆盖标准要求选取足够多的测试数据,使得程序执行路径至少经过流图的每个结点一次,也即点覆盖标准和语句覆盖标准是相同的

边覆盖连通图G的子图G’’是连通的,而且包含G的所有边,则称G’’是G的边覆盖。为满足边覆盖的测试标准,要求选取足够多的测试数据,使程序执行路径至少经过流图每条边一次,也即边覆盖与判定覆盖是相同的

路径覆盖:选取足够多的测试数据,使程序的每条可能路径都至少执行一次,如果程序图中有环,则要求每个环至少经过一次


二:控制结果测试

(1)基本路径测试

A:定义(了解)

基本路径测试是 T o m M c C a b e TomMcCabe TomMcCabe提出的一种白盒测试技术。使用这种技术设计测试用例时,首先计算程序的环形复杂度并用该复杂度为指南,定义执行路径的基本集合,从该基本集合导出的测试用例可以保证程序中的每条语句至少执行一次,而且每个条件在执行时都将分别取真、假两种值

B:步骤(了解)

  • 根据过程设计结果画出相应的流图
  • 计算流图的环形复杂度
  • 确定线性独立路径(至少包含一条在定义该路径之前不曾用过的边)的基本集合
  • 设计可强制执行基本集合中每条路径的测试用例

(2)条件测试(了解)

A:关系表达式

一个简单条件是一个布尔变量或一个关系表达式,在布尔变量或关系表达式之前还可能有一个NOT( ¬ \\neg ¬)运算符,关系表达式的形式如下:

E 1 < 关 系 算 符 > E 2 E_1<关系算符>E_2 E1<>E2

其中 E 1 E_1 E1 E 2 E_2 E2算数表达式,而<关系算符>是下列算符之一

  • < \\lt <
  • ≤ \\leq
  • =
  • ≠ \\neq =
  • > \\gt >
  • ≥ \\geq

复合条件由两个或多个简单条件、布尔算符和括弧组成
布尔算符有

  • OR(|)
  • AND(&)
  • NOT( ¬ \\neg ¬)

不包含关系表达式的条件称为布尔表达式


B:条件错误的类型

  • 布尔算符错;
  • 布尔变量错;
  • 布尔括弧错;
  • 关系算符错;
  • 算术表达式错

C:条件测试的优点

  • 容易度量条件的测试覆盖率
  • 程序内条件的测试覆盖率可指导附加测试的设计

(3)循环测试(了解)

A:定义

循环是绝大多数软件算法的基础,但是,在测试软件时却往往未对循环结构进行足够的测试。循环测试是一种白盒测试技术,它专注于测试循环结构的有效性

B:分类

在结构化的程序中通常只有3种循环,即简单循环、串接循环和嵌套循环

以上是关于实现和测试-第六节:白盒测试的主要内容,如果未能解决你的问题,请参考以下文章

《Linux内核分析》 第六节 分析Linux内核创建一个新进程的过程

面向对象设计-第六节:设计关联和设计优化

白盒测试和黑盒测试

自学软件测试-白盒测试笔记

第六节——实现服务器流式 gRPC

第六节——实现服务器流式 gRPC