关于白盒测试,黑盒测试,动态黑盒测试等的一些概念和使用

1、黑盒测试

        在黑盒测试中,软件测试员只需知道软件要做什么——而无法看到盒子里的软件是如何运行的。只要进行一些输入,就能得到某种输出结果。他不知道软件如何运行、为什么会这样,只知道程序做了什么。

        黑盒测试有时又称功能性测试(functional testing)或行为测试(behavioral testing)

2、白盒测试

        在白盒测试(有时称为透明盒测试(clear-box testing))中,软件测试员可以访问程序员的代码,并通过检查代码的线索来协助测试——可以看到盒子里面。测试员根据代码检查结果判断可能出错的数目,并据此定制测试计划。

3、静态测试

        静态测试是指测试不运行的部分——只是检查和审核;

        如:检查二手汽车的过程。踢一下轮胎、看看车漆、打开引擎盖检查都属于静态测试技术。

4、动态测试

        动态测试是指通常意义上的测试——使用和运行软件。

        如:检查二手汽车的过程。发动汽车、听听发动机声音、上路行驶都属于动态测试技术。

5、静态黑盒测试(测试产品说明书)

        测试产品说明书属于静态黑盒测试。产品说明书是书面文档,而不是可执行程序,因此是静态的。它是利用各种资源而获得的数据(诸如易用性研究、焦点人群、销售收入等)建立的。不必了解怎样和为什么要获取这些信息,以及获取的具体途径,只需知道它们最终构成产品说明书就可以了。软件测试员可以利用书面文档进行静态黑盒测试,认真查找其中的缺陷。

        当软件测试员第一次接到需要审查的产品说明书时,最容易做的事是把自己当作客户。研究一下客户会是什么人;和市场人员或销售人员聊一下,了解他们对最终用户的认识;如果产品是一个内部使用的软件项目,找到使用它的人谈一谈。

        了解软件最终结果的最佳方法是研究类似软件,例如竞争对手的产品或者小组开发的类似产品。项目经理或者产品说明书编写人可能已经做了这项工作,因此很容易得到他们在研究时使用的产品。软件通常不会完全一样(这也是创建新软件的原因,对吗?),但是类似软件有助于设计测试条件和测试方法,还可能暴露意想不到的潜在问题。

        总结:通过检查产品说明书,把自己当作客户,看看说明书是否有缺陷。找到市场上同类的产品,对比同类产品和待开发产品的区别,找出缺陷。

6、动态黑盒测试(测试软件功能)

        不深入代码细节测试软件的方法称为动态黑盒测试。它是动态的(dynamic),因为程序在运行——软件测试员像用户一样使用它;同时,它是黑盒(black-box),因为测试时不知道程序如何工作。测试员输入数据、接受输出、检验结果。动态黑盒测试常常被称为行为测试,因为测试的是软件在使用过程中的实际行为。

        测试软件有两种基本方法:通过性测试(test-to-pass)和失效性测试(test-to-fail)。在进行通过性测试时,实际上是确认软件至少能做什么,而不会考验其能力。软件测试员并不需要想尽办法让软件崩溃,仅仅运用最简单、最直观的测试用例即可。纯粹为了破坏软件而设计和执行的测试用例则称为失效性测试或错误强制测试。

        总结:先进行通过性测试,看程序是否满足工作要求,再进行失效性测试,注入一些故障,查看代码是否会失效。在此期间会用到等价类划分、边界值分析等技术。

7、静态白盒测试(检查程序代码)

        静态白盒测试是在不执行软件的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程,有时称为结构化分析。

        进行静态白盒测试的首要原因是尽早发现软件缺陷,以找出动态黑盒测试难以发现或隔离的软件缺陷。在开发过程初期让测试小组集中精力进行软件设计的审查非常有价值。

        进行静态白盒测试的另外一个好处是,为黑盒测试员在接到软件进行测试时设计和应用测试用例提供思路。他们可能不必了解代码的细节,但是通过听审查评论,就可以确定有问题或者容易产生软件缺陷的特性范围。

        静态白盒测试是早期发现软件缺陷最有效的方法。虽然这是一项需要大量准备工作才能有成效的任务,但是许多研究表明花费的时间与得到的好处相比是值得的。为了使这项任务更有吸引力,现在有了能自动执行大量静态白盒测试工作的商业软件,即静态分析程序(如pc-lint)。该程序读入程序的源文件,并根据公开标准和自定义规范进行检查。

        通过制定编码标准和规范,规范程序员的行为,遏制掉一些编程语言上的缺陷。

        总结:可以通过代码走查,代码的review等方式来进行代码的检查。制定编码规范和编码风格,通过人工确认或者软件进行检查,查看是否满足规范。如嵌入式程序可以通过“pc-lint”等工具进行进行代码静态分析,来进行程序的测试。

8、动态白盒测试(结构化测试

        动态白盒测试是指利用查看代码功能(做什么)和实现方式(怎么做)得到的信息来确定哪些需要测试、哪些不要测试、如何开展测试。动态白盒测试的另一个

        常用名称是结构化测试(structural testing),因为软件测试员可以查看并使用代码的内部结构,从而设计和执行测试。

        包括以下 4个部分:(1)直接测试底层函数、过程、子程序和库。(2)以完整程序的方式从顶层测试软件,但是根据对软件运行的了解调整测试用例。(3)从软件获得读取变量和状态信息的访问权,以便确定测试与预期结果是否相符,同时,强制软件以正常测试难以实现的方式运行。(4)估算执行测试时“命中”的代码量和具体代码,然后调整测试,去掉多余的测试用例,补充遗漏的用例。

        在底层进行的测试称为单元测试(unit testing)或者模块测试(module testing)。单元经过测试,底层软件缺陷被找出并修复之后,就集成在一起,对模块的组合进行集成测试(integration testing)。这个不断增加的测试过程继续进行,加入越来越多的软件片段,直至整个产品——至少是产品的主要部分——在称为系统测试(system testing)的过程中一起测试。

        在单个单元测试中分为测试数据和测试程序流程,测试数据时同样需要对边界值进行分析,通过打桩等输入到被测代码中。程序流程测试需要设法进入和退出每一个模块,执行每一行代码,进入软件的每一条逻辑,测试每一个分支。

        总结:可以通过测试软件(如:vector)等进行软件的功能测试,先将软件划分为一个个单元,然后利用测试软件通过打桩的方式为该单元输入数据,查看模块输出是否正常。通过输入不同的条件,使代码进入每一个分支,执行每一句代码,查看逻辑是否正常。

9、总结

        (1)静态黑盒测试是指检查产品说明书,并在软件编写之前找出问题,这个是最简单的流程。

        (2)动态黑盒测试是指在不了解软件如何工作的前提下进行测试,这个稍微复杂一点,需要分析边界值,进行等价类划分,对程序进行测试。

        (3)静态白盒测试是指通过正式审查和检验检查代码的细节,这个借助工具比较简单,通过代码review及代码静态分析工具可以实现测试。

        (4)动态白盒测试是指在看到软件的工作方式时,根据获得的信息对软件进行测试,这个需要对程序流程比较了解,需要有一定的开发经验,很多时候需要编写代码对被测程序进行测试。

  • 22
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值