第二部分:白盒测试之概述

白盒测试定义:

  白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。

白盒测试分类:  

  白盒测试的方法总体上来说分为两大类,即静态方法与动态方法。静态方法指的是软件的测试并不经过实际的执行,测试人员采用人工模拟的方式对软件进行测试。而对于动态方法,则要求测试人员实现按照一定的测试需求来规定测试用例,通过动态的运行软件,来发现软件的错误。

  

白盒测试的实施步骤:

  • 测试计划阶段:根据需求说明书,制定测试进度。
  • 测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。
  • 测试执行阶段:输入测试用例,得到测试结果。
  • 测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。

白盒测试常用方法:

  • 语句覆盖。这是最简单也最麻烦的方法,这个方法是需要将所有语句都运行一遍。这里说的是“可执行语句”,因此就不会包括像C++的头文件声明,代码注释,空行,等等。非常好理解,只统计能够执行的代码被执行了多少行。需要注意的是,单独一行的花括号{} 也常常被统计进去。语句覆盖常常被人指责为“最弱的覆盖”,它只管覆盖代码中的执行语句,却不考虑各种分支的组合等等。假如只要求达到语句覆盖,那么换来的确实测试效果不明显,很难更多地发现代码中的问题。
  • 分支覆盖。又称判定覆盖:使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假均曾被满足。其优点是判定覆盖具有比语句覆盖更强的测试能力,而且具有和语句覆盖一样的简单性,无需细分每个判定就可以得到测试用例。然而往往大部分的判定语句是由多个逻辑条件组合而成(如,判定语句中包含AND、OR、CASE),若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。
  • 从句覆盖:从句覆盖是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支。从句覆盖要检查每个符合谓词的子表达式值为真和假两种情况,要独立衡量每个子表达式的结果,以确保每个子表达式的值为真和假两种情况都被测试到。一个从句在形式上被定义成一个不包含布尔操作符的布尔表达式。

  在这些白盒测试方法中,一般要求实现执行路径覆盖。一个能实现全部执行路径覆盖的测试数据同样能实现语句覆盖和分支覆盖,然而,它可能无法实现从句覆盖。全部执行路径覆盖通常会需要无数的测试数据或至少是非常可观的测试数据,所以在实践中一般不可能进行全部执行路径覆盖。

时间: 2024-10-20 01:30:04

第二部分:白盒测试之概述的相关文章

【C Primer Plus笔记】第二章 C语言概述

第二章主要通过分析一个简单的实例来介绍C语言. 一.程序细节内容 1 #include <stdio.h> 此语句的作用相当于在文件中该行所在的位置键入了文件stdio.h的完整内容.实际上是一种剪切和粘贴操作. #include语句是C预处理器指令(preprocessor directive)的一个例子.stdio.h文件作为所有C编译包的一部分提供,它包含了有关输入和输出函数的信息供编译器使用.这个名字代表标准输入输出头文件. 最重要的是头文件中包含了建立最终可执行程序时编译器需要用到的

Spring学习系列之——第二章:Spring概述

上一篇文章中给出了一个应用Spring的最简单的应用程序,下面就系统的说一下我对Spring的理解,如果有不对或者不完善的地方,希望大家能够指正,欢迎大家一起来讨论. Spring是为创建企业级应用提供了一个轻量级的解决方案.Spring包含的内容实在是太多太多了,但是你可以只使用你需要的部分,因为Spring是模块化的.Spring还可以很好的和当下主流的框架进行集成,例如:请求转发的Struts2.持久化的Hibernate.Mybatis.JTA等等. 提到Spring,就不得不说IoC(

C# 图解教程 第二章 C#编程概述

C#编程概述 一个简单的C#程序 标识符 标识符是一种字符串,用来命名变量.方法.参数和许多后面将要阐述的其他程序结构. 关键字 所有C#关键字都由小写字母组成,但是.NET类型名使用Pascal大小写约定. Main:程序的起始点 C#程序的可执行起始点在Main中第一条指令 Main首字母必须大写 从程序输出文本 BCL(Base Class Library,基类库)提供Console类(在System命名空间中),该类包含了输入和输出数据到控制台的方法. Write Console.Wri

第二章:数据挖掘概述

数据挖掘是指从数据集合中自动抽取隐藏在数据中的那些有用信息的非平凡过程,这些信息的表现形式为规则.概念.规律及模式等 2.1数据挖掘的发展历史 ..... 2.2数据分析与数据挖掘的主要区别 相对于传统的统计分析技术,数据挖掘有如下特点: 数据挖掘擅长处理大数据(几十几百万行或者更多的数据) 数据挖掘在实践应用中一般都会借助数据挖掘工具 数据分析应用的趋势是用大型数据库中抓取数据 数据挖掘是统计分析技术的延伸和发展 数据挖掘和统计分析的差别: 统计分析的基础之一就是概率论,对数据进行统计分析需要

第二章 c语言概述

一.#include指令和头文件 1.#include C预处理指令,C编译器在编译前对源代码做一些准备工作 2.stdio.h标准输入输出头文件,提供了关于输入输出的信息供编译器使用 头文件包含了建立最终的可执行程序时编译器需要用到的信息,例如:定义常量.说明函数名和函数用法.( 实际的代码被放在一个预编译的库文件里,而不是在头文件里,编译器的链接部分负责找到所需要的库代码.)  即:头文件指引编译器将程序正确组合在一起 二.声明 int num://声明语句 C语言中所有的变量必须在使用之前

软件测试——白盒测试

1.白盒测试的概述 由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比.由于我们经常相信某逻辑路径不可能被执行, 而事实上,它可能在正常的情况下被执行.由于代码中的笔误是随机且无法杜绝的,因此我们要进行白盒测试. 白盒测试又称结构测试,透明盒测试.逻辑驱动测试或基于代码的测试.白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的. 1) 白盒的测试用例需要做到: ·保证一个模块中的所有独立路径至少被使用一次 ·对所有逻辑

关于白盒测试

引言: 鉴于本次实验要进行的白盒测试,特意学习了白盒测试的相关流程以及方法,以便能顺利完成这次白盒测试实验. 1.白盒测试的概述 由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比.由于我们经常相信某逻辑路径不可能被执行, 而事实上,它可能在正常的情况下被执行.由于代码中的笔误是随机且无法杜绝的,因此我们要进行白盒测试. 白盒测试又称结构测试,透明盒测试.逻辑驱动测试或基于代码的测试.白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及

扒一扒ZYNQ里面缩写 及 Xilinx ZYNQ-7000概述

文章转载自 http://www.eefocus.com/Kevin/blog/11-08/228643_42a39.html kevin是xilinx的大牛,必须膜拜啊. 还引自http://blog.sina.com.cn/s/blog_6cb263210101g8lv.html 摘要:本文介绍与XILINX的EPP平台成员, ZYNQ芯片相关的缩写术语和含义.  与简单翻译术语不同,本文对每个缩写在本行业其他公司的展开含义也略作介绍, 避免混淆. 对术语的技术功能也作简单介绍. 8月份学校

[白盒测试学习] 从逻辑覆盖实例学起

1. 什么是白盒测试 白盒测试也称结构测试.逻辑驱动或基于程序的测试,是一种测试用例设计方法. 一般用于分析程序的内部结构. 针对特定的条件和循环设计测试用例,对程序的逻辑路径进行测试. 用这种发方法进行程序设计时,测试者可以看到被测程序,并分析其内部结构,白盒测试要求对被测程序的结构特性做到一定程度的覆盖. 从这个角度上说,白盒测试也是基于覆盖的测试技术. 2. 白盒测试方法概述 白盒测试通常分为静态和动态两种类型,包含很多常用的方法. 静态分析: 按照一定步骤直接见车源代码或代码的测试方法.