软件测试系列之黑白盒

知识角:

软件分为两部分,一部分是数据,另一部分是程序。数据包括键盘输入,鼠标单击,磁盘文件,打印输出等;程序是指可执行的流程,转换,逻辑和运算。而我们测试最常用的一个方法也是按同样的方式划分进行测试。

一、软件测试的四种方法

软件测试常用的方法有黑盒测试,白盒测试,静态测试,动态测试。

先来简单的了解一下它们各自的含义吧:

黑盒测试

又称功能性测试或行为测试,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试。它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

白盒测试

又称透明盒测试或结构测试或逻辑驱动测试,是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作,即可以看到盒子里面。

静态测试

是指测试不运行的部分,只是检测和审核。

动态测试

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

二、交叉后的四种测试

但是黑白盒测试与静动态测试有时候是有交叉的,为了便于我们清楚明白并且更好的测试,我们将它再次组合细分,分为四种。

静态黑盒测试

顾名思义,静态黑盒测试,是指测试软件不运行时,并且看不到软件内部结构时的测试。举例说明,测试产品说明书。不要局限的认为软件测试只能测试软件,与软件联系密切的东西也是需要我们软件测试人员来测试的。比如产品说明书,很重要,它涉及到你的软件刚投入运行时,客户的体验度等问题,不要小瞧产品说明书,把这个测好了,很能说明一个人的能力。

动态黑盒测试

是指测试软件运行时,但是不知道软件内部结构时的测试。这里就涉及到了黑盒测试的很多技巧,比如等价类的划分,边界值的选择等。

这个时候我们可以从来两个方面下手测试,数据和程序。数据测试的学问很大,也很细节,在这里不详细阐述。然后就是程序的测试,可以根据状态图的转换进行测试。

很多的时候,软件测试员代表了客户的利益,所以,测试的时候我们完全可以换位,把自己当成客户来测试。

静态白盒测试

是指不执行软件的条件下有条理的审查软件设计,体系结构和代码,从而找出软件缺陷的过程,有时也会称为结构化分析。在开发的初期进行此测试会对整个项目非常的有益。由于此项测试需要大量的准备工作,所以为了我们更加有效的测试,现在已经有了很多这样能够自动执行大量静态白盒测试工作的商业软件,即静态分析程序。

动态白盒测试

是指利用查看代码功能和实现方式得到的信息来确定哪些需要测试,哪些不要测试,如何开展测试。在这里需要区别动态白盒测试和调试的区别。这两项从技术表明上看很相似(都包括处理软件缺陷和查看代码的过程),但是它们的目标大不相同。动态黑盒测试的目的是寻找软件缺陷,调试的目标是修复缺陷。

在这里我们也会涉及到单元测试和集成测试,而且有时候为了测试的更加全面,我们需要执行程序的每个条件,语句,有时候甚至于所有的代码。这个时候建议大家做好测试用例,然后借助工具来测试(比如代码覆盖分析器)。

小结:

看了这么多,有些枯燥乏味了,一直都是我在给大家讲些基础性的东西,没有大家跟我的一起思考,学起来怎么会有意思?所以在这里给大家提出一个小小的问题,没有所谓的标准答案,希望大家各抒己见,我们共同探讨!

问题:为什么说了解了软件的内部的结构会影响我们测试的思路和方法呢?

软件测试系列之黑白盒

时间: 2024-10-30 09:25:09

软件测试系列之黑白盒的相关文章

软件测试系列之入门篇

一.你知道软件测试有多重要吗? 在国际上,软件测试(软件质量控制)是一件非常重要的工程工作,测试也作为一个非常独立的职业.在IBM.Microsoft等开发大型系统软件公司,很多重要项目的开发测试人员的比例能够达到1:2甚至1:4. 在国内软件测试的地位还不够高,并且大多只停留在软件单元测试.集成测试和功能测试上.软件测试从业人员的数量同实际需求有不小差距,国内软件企业中开发人员与测试人员数量一般为5:1,因此,国内的软件测试产业化还有待开发和深掘. 说到这里不知道你反应是高兴还是失望?但是我却

转载 CSS3 经典教程系列:CSS3 盒阴影(box-shadow)详解

目标大纲 文章转载 CSS3 经典教程系列:CSS3 盒阴影(box-shadow)详解 IE中CSS-filter滤镜小知识大全

软件测试系列之了解篇

趣味小故事: Bug词原意臭虫或虫子. [第一个计算机Bug诞生68年]1945年9月,编译器发明者格蕾斯·哈珀正领着她的小组构造"马克二型"计算机.突然,马克二型死机了:哈珀在某出错继电器上发现一只被电死的飞蛾:她将蛾子贴到记事本中并注明"第一个发现虫子实例".从此,计算机错误称为Bug,将发现Bug并纠正的过程叫"Debug"! 一.缺陷 什么是软件缺陷(即bug) 计算机软件或程序中存在的某种破坏正常运行能力的问题.错误,或者隐藏的功能缺陷

软件测试系列之测试用例(七)

认识测试用例 定义 测试用例(Test Case)是为某个特殊目标而编制的一组测试输入.执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求. 构成 用例ID.用例名称.用例描述.前提条件.结束准则.测试步骤.预期结果.实际结果.判断准则. 重要性 测试用例的设计如此重要,原因在于完全的测试是不可能的,对任何程序的测试必定是不完全的.所以,最显然的测试策略就是努力使测试尽可能完全.下面是更为详尽的测试用例的好处: 1.在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效

软件测试系列之软件测试过程模型(四)

回顾往昔: 在软件开发的不断实践过程中,人们积累经验教训,预估未来发展,总结出了很多的开发模型,比较典型的开发模型有,边做边改模型,瀑布模型,快速原型模型.螺旋模型,增量模型,演化模型,喷泉模型,智能模型,混合模型还有RAD模型以及最近比较流行的,基于网络的面向对象的模型--RUP(RationalUnifiedProcess,统一软件开发过程.但是遗憾的是,这些模型中,没有给予测试足够的重视和诠释.所以,才会有后来的软件测试过程模型的诞生,在这些测试模型中,兼顾了软件开发过程,对开发和测试做了

软件测试系列--软件测试基础

1.什么是软件测试? **软件测试是一个过程,包含了若干活动,运行软件进行测试只是活动之一 **进行软件测试可以人工方式也可以借助于工具 **进行软件测试可以运行软件也可以不运行软件 **软件测试的目的不仅仅是为了发现错误 2.软件测试的目的? 软件测试的目的有三个,分别是:证明.检测.预防. 证明: (1)获取系统在可接受风险范围内可用的信心; (2)尝试在非正常情况和条件下的功能和特性; (3)保证一个工作产品是完整的并且可用或者可被集成. 检测: (1)发现缺陷.错误和系统不足; (2)定

软件测试系列——全景图

摘录书籍:全程软件测试(十周年版) 朱少民 (2019-02-01) 0. 软件测试全景图 1. 测试定义 2. 测试流派 3. 测试方法 4. 测试层次/类型 5. 测试方式 6. 测试技术 7. 测试过程 8.测试管理 原文地址:https://www.cnblogs.com/haimishasha/p/12219275.html

软件测试系列——冒烟测试(Smoke Test,ST)

1. 核心 冒烟测试就是完成一个新版本的开发后,对该版本最基本的功能进行测试,保证基本的功能和流程能走通. 如果不通过,则打回开发那边重新开发: 如果通过测试,才会进行下一步的测试(功能测试,集成测试,系统测试等等). 简化:门槛测试,一个开关而不是一个阶段. 目的:版本验证测试BVT(Build Verification Testing). 时间:开发转测试,历时半至一个小时,很短. 对象:需求覆盖,主功能路径. 优点:节省测试时间,防止build失败. 缺点:覆盖率还是比较低. 操作:对着需

软件测试系列--软件缺陷管理

http://home.juedui100.com/detail/23532267.htmlhttp://home.juedui100.com/user/23532267.htmlhttp://home.juedui100.com/detail/23349170.htmlhttp://home.juedui100.com/user/23349170.htmlhttp://home.juedui100.com/user/23942582.htmlhttp://home.juedui100.com/