软件測试基本方法之白盒測试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件測试基本方法之白盒測试相关的知识,希望对你有一定的参考价值。
白盒測试
概念:依照程序内部的结构測试程序,通过測试来检測产品内部动作是否依照设计规格说明书的规定正常进行。检验程序中的每条通路是否都能按预定要求正确工作。
分类:白盒測试是基于覆盖的測试。尽可能覆盖程序的结构特性和逻辑路径。所以其详细方法有逻辑覆盖、循环覆盖、基本路径覆盖。逻辑覆盖又可进一步分为语句覆盖、判定(分支)覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖等。
白盒測试主要用于单元測试(我们须要了解程序源代码和结构,并且基于输入输出。适合单元模块)。以下重点介绍经常使用的几种白盒測试方法。
语句覆盖:
定义:仅仅要求覆盖到全部可运行语句(每一个可运行语句至少运行一次),不关注推断运算,确保可运行语句处没有错误。
样例:
依照白盒,我们仅仅需覆盖到全部可运行语句就可以。而为此我们仅仅需用測试用例(X=1。Y=4,Z=9)。这样三句话都会打印出来。
但假设编码时将X=1 AND Y>3错误写成X=1 OR Y>3。尽管我们的測试用例能够覆盖到全部可运行语句,并且证明可运行语句无误。但因此我们的password系统面临巨大风险。Y仅仅要大于3就能攻破第一道防线。
而我们对此浑然不知。所以语句覆盖不能满足我们的需求(有人说它是最弱的逻辑覆盖准则)。
判定(分支)覆盖:
定义:每一个推断的取真分支和取假分支至少经历一次。弥补语句覆盖对推断逻辑的不足。
样例:同上。
- (X=1。Y=4,Z=9)—— 通过路径T->T
- (X=0,Y=4,Z=0)—— 通过路径F->F
但假设选择的測试用例是(X=0。Y=0,Z=0)还是不能发现错误。
试试以下的覆盖。
- (X=1,Y=4。Z=9)—— X=1真。Y>3真。Z=9真
- (X=0,Y=0,Z=0)—— X=1假,Y>3假,Z=9假
- 任然不能解决那个OR问题
- 假设选择的測试用例是(X=1,Y=2。Z=9)和(X=0,Y=4,Z=0)。尽管符合条件覆盖,但第一个推断仅仅运行了假分支,这会遗漏逻辑错误。
- (X=1。Y=4,Z=9)
- (X=0,Y=0,Z=0)
- (X=1。Y=4。Z=9)—— X=1真,Y>3真,Z=9真——覆盖路径:T-T
- (X=1,Y=0,Z=0)—— X=1真。Y>3假,Z=9假——覆盖路径:F-F
- (X=0,Y=4,Z=9)—— X=1假。Y>3真。Z=9真——覆盖路径:F-T
- (X=0,Y=0,Z=0)—— X=1假,Y>3假。Z=9假——覆盖路径:F-F
尽管OR问题攻克了。但我们发现有一条路径没有覆盖到——T-F。
- (X=1,Y=4,Z=9)—— X=1真,Y>3真。Z=9真——覆盖路径:T-T
- (X=1。Y=4,Z=0)—— X=1真,Y>3真,Z=9假——覆盖路径:T-F
- (X=0,Y=4,Z=9)—— X=1假,Y>3真。Z=9真——覆盖路径:F-T
- (X=0。Y=0,Z=0)—— X=1假,Y>3假,Z=9假——覆盖路径:F-F
- (X=1,Y=4。Z=9)—— X=1真。Y>3真,Z=9真——覆盖路径:T-T
- (X=1,Y=0,Z=0)—— X=1真。Y>3假。Z=9假——覆盖路径:F-F
- (X=0。Y=4。Z=9)—— X=1假,Y>3真。Z=9真——覆盖路径:F-T
- (X=0,Y=0。Z=0)—— X=1假,Y>3假,Z=9假——覆盖路径:F-F
- (X=1。Y=4,Z=0)—— X=1真,Y>3真,Z=9假——覆盖路径:T-F
- V(G) = 区域数目。区域是由边界和节点包围起来的形状所构成。计算区域时包含图的外部区域,将其作为一个区域。所以上图有3个区域,也就是有3条基本路径。
- V(G) = 边界数目-节点数目+2。这样V(G) = 6 - 5 + 2 = 3。
- V(G) = 推断节点数目 + 1。上图的推断节点是A和C,所以V(G) = 2 + 1 = 3——一般用它作为圈的复杂度。而圈复杂度是路径数的上限,以下就来看一看基本路径是哪些。
- A-C-end
- A-B-C-end
- A-B-C-D-end
希望知道的朋友留下评论:)
以上是关于软件測试基本方法之白盒測试的主要内容,如果未能解决你的问题,请参考以下文章