白盒测试教程

总共贴了39节,后续还有很长,共122节,文章名为‘白盒测试教程’小程序

 

一、白盒测试概念数据结构

二、测试覆盖标准测试

三、逻辑驱动测试spa

四、基本路径测试设计

 

白盒测试概念教程

一、白盒测试也称结构测试或逻辑驱动测试,是一种测试用例设计方法,它从程序的控制结构导出测试用例。(测试用例由测试输入数据以及与之对应的输出结果组成。  测试用例设计的好坏直接决定了测试的效果和结果。因此说在软件测试活动中最关键的步骤就是设计有效的测试用例。)基础

二、白盒测试使用被测单元内部如何工做的信息,容许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑路径进行测试。基于一个应用代码的内部逻辑知识,测试是基于覆盖所有代码、分支、路径、条件。软件

 

白盒测试的主要目的:循环

一、保证一个模块中的全部独立路径至少被执行一次;程序

二、对全部的逻辑值均须要测试真、假两个分支;

三、在上下边界及可操做范围内运行全部循环;

四、检查内部数据结构以确保其有效性。

 

测试覆盖标准

一、白盒法特色:以程序的内部逻辑为基础设计测试用例,因此又称为逻辑覆盖法。应用白盒法时,手头必须有程序的规格说明以及程序清单。

  白盒法考虑的是测试用例对程序内部逻辑的覆盖程度。最完全的白盒法是覆盖程序中的每一条路径,可是因为程序中通常含有循环,因此路径的数目极大,要执行每一条路径是不可能的,只能但愿覆盖的程度尽量高些。

 

测试覆盖标准

 

测试覆盖标准

一、上页小程序的流程图,其中包括了一个执行达20次的循环。那么它所包含的不一样执行路径数高达520(=1013)条,若要对它进行穷举测试,覆盖全部的路径。假使测试程序对每一条路径进行测试须要1毫秒,一样假定一天工做24小时,一年工做365 天, 那么要想把如图所示的小程序的全部路径测试完,则须要3170年。

 

测试覆盖标准

1、为了衡量测试的覆盖程度,须要创建一些标准,目前经常使用的一些覆盖标准从低到高分别是:

一、语句覆盖:是一个比较弱的测试标准,它的含义是:选择足够的测试用例,使得程序中每一个语句至少都能被执行一次。

它是最弱的逻辑覆盖,效果有限,必须与其它方法交互使用。

二、断定覆盖(也称为分支覆盖):执行足够的测试用例,使得程序中的每个分支至少都经过一次。

断定覆盖只比语句覆盖稍强一些,但实际效果代表,只是断定覆盖,还不能保证必定能查出在判断的条件中存在的错误。所以,还须要更强的逻辑覆盖准则去检验判断内部条件。

三、条件覆盖:执行足够的测试用例,使程序中每一个判断的每一个条件的每一个可能取值至少执行一次;

条件覆盖深刻到断定中的每一个条件,但可能不能知足断定覆盖的要求。

 

测试覆盖标准

一、断定/条件覆盖:执行足够的测试用例,使得断定中每一个条件取到各类可能的值,并使每一个断定取到各类可能的结果。

 

断定/条件覆盖有缺陷。从表面上来看,它测试了全部条件的取值。可是事实并不是如此。每每某些条件掩盖了另外一些条件。会遗漏某些条件取值错误的状况。为完全地检查全部条件的取值,须要将断定语句中给出的复合条件表达式进行分解,造成由多个基本断定嵌套的流程图。这样就能够有效地检查全部的条件是否正确了。

二、条件组合覆盖:执行足够的例子,使得每一个断定中条件的各类可能组合都至少出现一次。

这是一种至关强的覆盖准则,能够有效地检查各类可能的条件取值的组合是否正确。它不但可覆盖全部条件的可能取值的组合,还可覆盖全部判断的可取分支,但可能有的路径会遗漏掉。测试还不彻底。

 

白盒测试的主要方法:

1、逻辑驱动测试

一、语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次;

二、断定覆盖(也称为分支覆盖):设计若干个测试用例,运行所测程序,使程序中每一个判断的取真分支和取假分支至少执行一次;

三、条件覆盖:设计足够多的测试用例,运行所测程序,使程序中每一个判断的每一个条件的每一个可能取值至少执行一次;

四、断定/条件覆盖:设计足够多的测试用例,运行所测程序,使程序中每一个判断的每一个条件的全部可能取值至少执行一次,而且每一个可能的判断结果也至少执行一次,换句话说,便是要求各个判断的全部可能的条件取值组合至少执行一次;

五、条件组合覆盖:设计足够多的测试用例,运行所测程序,使程序中每一个判断的全部可能的条件取值组合至少执行一次;

2、基本路径测试

设计足够多的测试用例,运行所测程序,要覆盖程序中全部可能的路径。这是最强的覆盖准则。但在路径数目很大时,真正作到彻底覆盖是很困难的,必须把覆盖路径数目压缩到必定限度。

 

语句覆盖

o语句覆盖”是一个比较弱的测试标准,它的含义是:选择足够的测试用例,使得程序中每一个语句至少都能被执行一次。

n如,例1:

PROCEDURE  M(VAR A,B,X:REAL);  

BEGIN

IF (A>1) AND (B=0)  THEN X:=X/A;

IF (A=2) OR (X>1)   THEN X:=X+1;

END.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

总共贴了39节,后续还有很长,共122节,文章名为‘白盒测试教程’

相关文章
相关标签/搜索