测试方法——黑盒 白盒

这个博文是为了复习自己之前学习的内容,所以详简不一。

一、白盒测试

一般称为结构测试

1.静态:代码检查法,静态结构分析法

2.动态 :逻辑覆盖,基本路径推测法

(1)逻辑覆盖分为六大类(由弱到强排序):语句覆盖、分支(判定)覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖

(2)基本路径推测

a.先画出程序流图

b. 计算圈复杂度 
  圈复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测试数量的上界。

独立路径必须包含一条在定义之前不曾用到的边。

有以下三种方法计算圈复杂度:

流图中区域的数量对应于环型的复杂性; 
  给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量;

给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。(4、6、8)

请计算本程序的圈复杂度: 
   1) V(G)=E-N+2=10条边-8个节点+2=4 
   2)V(G)=P+1=3个判定节点+1=4

c.分析出独立路径 
 每条独立路径是指,和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路。

V(G)值正好等于该程序的独立路径的条数。

程序的独立路径是: 
? 路径1:4-14 ? 路径2:4-6-7-14 ? 路径3:4-6-8-10-13-4-14   路径4:4-6-8-11-13-4-14

d.准备测试用例 
根据上面的独立路径,去设计输入数据,使程序分别执行到上面四条路径。(用例至少包括输入数据和预期结果)

二、黑盒测试

一般称为功能测试,主要方法是 等价划分、边界值分析、错误推测、场景法、决策表、因果图等等,等下重点讲前两种。

但是黑盒也有针对非功能测试的,比如安全测试、性能测试和安装测试。

1.等价划分

(1)定义:

把所有可能输入的数据,即程序的输入域划分策划国内若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。方法是一种重要的、常用的黑盒测试用例设计方法。

1)有效等价类

是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明所规定的功能和性能。

2)无效等价类

指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能多个。

(2)划分等价类的标准

1) 完备测试、避免冗余

2) 划分等价类重要的是:集合的划分、划分为互不相交的一组子集,而子集的并是整个集合

3) 并是整个集合:备性

4) 子集互不相交:保证一种形式的无冗余性

5) 同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到“相同的执行路径”。

(3)设计测试用例

在确立了等价类后,可建立等价类表,列出所有划分出的等价类输入条件:有效等价类、无效等价类,然后从划分出的等价类中按以下三个原则设计测试用例:

1)为每一个等价类规定一个唯一的编号;

2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;

3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止

     总的来说 就分为有效输入、无效输入、有效输出、无效输出的四种等价情况。

(4)实例

三角形:

日期:

2.边界值法

(1)定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。

通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

(2).与等价划分的区别

1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。

2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。

(3)常见的边界值
  1)对16-bit 的整数而言 32767 和 -32768 是边界
  2)屏幕上光标在最左上、最右下位置
  3)报表的第一行和最后一行
  4)数组元素的第一个和最后一个
  5)循环的第 0 次、第 1 次和倒数第 2 次、最后一次

  特点:

   选稍大于 或者稍小于边界值

   通常情况下,软件测试所包含的边界检验有几种类型:数字、字符、位置、重量、大小、速度、方位、尺寸、空间等。
  相应地,以上类型的边界值应该在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、  最短/最长、 空/满等情况下。

(4)内部边界值分析:
   
在多数情况下,边界值条件是基于应用程序的功能设计而需要考虑的因素,可以从软件的规格说明或常识中得到,也是最终用户可以很容易发现问题的。

然而,在测试用例设计过程中,某些边界值条件是不需要呈现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。
    内部边界值条件主要有下面几种:
    a)数值的边界值检验:计算机是基于二进制进行工作的,因此,软件的任何数值运算都有一定的范围限制。

b)字符的边界值检验:在计算机软件中,字符也是很重要的表示元素,其中ASCII和Unicode是常见的编码方式。下表中列出了一些常用字符对应的ASCII码值。

(5)实例

三角形补充:  1000 1000 1 是否为等腰三角形?等等

时间: 2024-12-22 22:30:16

测试方法——黑盒 白盒的相关文章

软件测试不再黑盒— threadingtest带来第二代白盒覆盖率技术

软件测试不再黑盒- threadingtest带来第二代白盒覆盖率技术 穿线测试对于测试界的一个重大创新在于,在白盒测试理论出现数十年以后,上海零一拼装信息技术有限公司结合在测试理论方面十余年的潜心研究,率先提出了第二代覆盖率技术,这绝对不是一个口号,而是ZOA真正对于白盒测试的理解以及对于标准第三方测试服务的深度理解经过数年的基础研究以及2年有余的研发而推出的达到商用标准的技术.现在先让我们温习下经典的测试理论: 1.测试方法论 黑盒功能测试法 黑盒功能测试法, 是把要测试的软件看成一个 "黑

黑盒和白盒

黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求. 白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查. 白盒测试和黑盒测试是根据对软件代码的可见性,采用的测试方法:凡是针对代码本身的测试,都可以看做是白盒测试,凡是不考虑代码如何实现,只对代码能实现的功能进行的测试都可以看作黑盒测试. 1.黑盒测试 黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在

软件测试中的“黑盒”与“白盒”

软件测试中,最常听到“黑盒测试”与“白盒测试”,它们是软件测试中最基本的测试方法. 那么究竟何为“黑盒”,何为“白盒”呢?下面就对其概念与常用方法进行一下介绍. 黑盒测试: 也称功能测试.数据驱动测试,它将被测软件看作一个打不开的黑盒,主要根据功能需求设计测试用例,进行测试. 概念:黑盒测试是从一种从软件外部对软件实施的测试,也称功能测试或基于规格说明的测试.其基本观点是:任何程序都可以看作是从输入定义域到输出值域的映射,这种观点将被测程序看作一个打不开的黑盒,黑盒里面的内容(实现)是完全不知道

JAVA语言搭建白盒静态代码、黑盒网站插件式自动化安全审计平台

近期打算做一个插件化的白盒静态代码安全审计自动化平台和黑盒网站安全审计自动化平台.现在开源或半开源做黑盒网站安全扫描的平台,大多是基于python脚本,安全人员贡献python脚本插件增强平台功能.对自己或身边开发人员,对java语言更熟悉,为了后期维护打算采用java写一个这样的平台.另外白盒代码安全扫描也有Fortify等收费软件,或依赖PMD做代码分析,不过比如新增了什么安全问题,需要自定义或扩展就比较麻烦. 比如一个简单的:现在用struts2存在漏洞,现在需要升级到2.3.28版本,于

黑盒、白盒、灰盒测试的基本概念

黑盒: 对于一段程序,对其测试时,不需要知道内部结构和特性,在输入接口处输入激励,观察输出是否正确. 主要用于软件界面和功能测试. 实际应用中,由于输入为无穷个,不仅要测试所有合法的输入,也要测试不合法但是可能发生的输入. 白盒: 白盒测试也称结构测试和逻辑驱动测试,知道程序内部结构,验证内部每条通路是否能正常工作. 也就是穷举路径测试,从检查程序的逻辑出发.主要用于软件验证. 但是, 第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序. 第二,穷举路径测试不可能查出程序中

关于白盒与黑盒

开通黄钻 什么是黑盒测试和白盒测试? 任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试.黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求.白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查. 黑盒测试软件的黑盒测试意味着测试要在软件的接口处进行.这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说

揭秘白盒与黑盒测试之间的秘密!-附加思维导图

结合了工作经验,写出了这篇文章,全是干货和经验分享.用您5分钟时间阅读完,希望能对您有帮助! 白盒测试 白盒测试(White-box Testing,又称逻辑驱动测试,结构测试),它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能. 对开发语言的支持:白盒测试工具是对源代码进行的测试,测试的主要内容包括词法分析与语法分析.静态错误分析.动态检测等.目前测试工具主要支持

SafeNet推出行业首款白盒password软件保护解决方式

数据保护领域的全球率先企业SafeNet公司日前宣布,推出行业首款採用白盒安全技术的的软件保护方案.SafeNet 圣天诺 软件授权与保护解决方式如今纳入了新的功能,可在"白盒" 环境中保护安全算法免受攻击.此前,攻击者一般会随心所欲地观察和改变当中动态源代码的运行和内部算法的细节. 传统上,在软件保护技术中,安全算法一般会在攻击者的眼皮底下运行.没有黑盒保护密钥,因此应用程序的运行可一步一步地监视,全部訪问过的数据均为可见.为了更好地保护密钥不受损害,我们须要採用一种不同的方法. S

白盒測试

大家都熟知软件測试的方法分为黑盒測试和白盒測试,当中的黑盒測试是功能測试比較简单这里就不再赘述.以下主要区分白盒測试中的几种比較easy弄混的測试方法. 软件測试中最经常使用的是逻辑覆盖法,全部可用的方法按覆盖程度从弱到强的顺序分为:语句覆盖.判定覆盖.条件覆盖.判定-条件覆盖.条件组合覆盖.路径覆盖. 仅仅要搞清楚本质,事实上这几种的測试方法就没那么难了. 例如以下图 这张图有两个推断语句分支形成4条路径.分析各种覆盖所能覆盖的路径条数. 语句覆盖:每一条语句 都要运行一遍比如:ace路径运行