51Testing软件测试论坛

标题: 关于白盒测试、黑盒测试的疑问 [打印本页]

作者: velata    时间: 2007-6-15 16:17
标题: 关于白盒测试、黑盒测试的疑问
在很多资料上看到对两者的描述如下:
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
1、是否有不正确或遗漏的功能?
2、在接口上,输入是否能正确的接受?能否输出正确的结果?
3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
4、性能上是否能够满足要求?
5、是否有初始化或终止性错误?

白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
1、对程序模块的所有独立的执行路径至少测试一遍。
2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
3、在循环的边界和运行的界限内执行循环体。
4、测试内部数据结构的有效性,等等。


那么,对于按照需求用例中的事件流所编写的测试用例是属于哪种呢?
也就是说,在测试用例中也需要考虑到每种可独立执行的路径、也要考虑在判断的时候所取的真假值。只是这种考虑是基于需求,或是设计,而不是开了代码之后设计的用例。这样的用例是属于白盒测试用例还是什么呢?

作者: velata    时间: 2007-6-15 16:24
      之前测试都是按照事件流——场景——测试步骤的组合考虑方式来组织测试用例的,觉得这是里所当然。换了公司之后,组长说对于功能节点,完全不用考虑在这个节点中的分支或是判断,你只要测试1、数据校验了没;2、页面展示复核要求了没;3、各个按钮功能满足了没就好了。
      我思考了很久,她那种测试方式为什么那么奇怪。后来在坛子里溜达的时候突然想起,她说的是不是就是传说中的黑盒测试方法?而我们之前考虑功能节点种各种情况的测试是不是就是白盒测试??问了几个同仁~他们也不是很确定,所以想拿出来跟大家讨论下
作者: zhawhz    时间: 2007-6-15 16:55
原帖由 velata 于 2007-6-15 16:17 发表
在很多资料上看到对两者的描述如下:
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒 ...


个人理解如下:
黑盒测试、灰盒测试、白盒测试是根据所依据被测对象信息不同,所采用的不同方法。
黑盒测试——SRS
灰盒测试——HLD
白盒测试——LLD

你说的测试用例设计,如果是根据需求规格说明书设计的,那就是黑盒测试,这个时候会考虑到业务流程之类的。
如果是根据详细设计说明书设计测试用例,那就是白盒测试,这个时候会考虑代码内部逻辑、路径等的覆盖。

请大家继续补充。
作者: vivian_zhuang    时间: 2007-6-16 00:25
黑盒测试中有一种方法叫做"流程分析法",我觉得楼主提到"对于按照需求用例中的事件流所编写的测试用例"应该比较适合用这种方法.
流程分析法首先要画出系统的数据流程图,也就是DFD,然后分析结点的分支与判断,搞清楚基本事件流和备选事件流,然后将所有可能走到的路径转化为测试用例.这是我的理解.
所以,
1.黑盒与白盒在分析流程的时候都是基于画出的流程图的,只是黑盒中画的是DFD,白盒画的是程序的控制流程图,即函数内部的具体实现语句的关系图.
2.在黑盒中叫流程分析,在白盒中叫基本路径覆盖,二者原理一致,描述的对象不一致.
作者: duola1119    时间: 2007-6-20 09:59
我认为你说的这个情况是属于黑盒测试范围的.
说一下我的理由:
白盒测包括路径测试,条件测试,数据流测试,循环测试.这4种测试方法都是基于程序代码来进行的测试.其中包括计算环复杂度,准备程序代码的测试案例等.附着点在代码上,而不是在规格说明书的.
黑盒测试也就是我们认为的功能测试,其中主要包括系统功能的实现是否和客户规格说明书中描述的一致性检验和完整性检验.是完全依赖与规格说明书或者称需求分析的.
作者: mc309    时间: 2007-6-22 17:43
sdlkfj3 sdlkfj6 sdlkfj6
作者: johnpu520    时间: 2007-6-25 17:21
楼主说的范围个人认为应该是黑盒测试,理由:
黑盒测试属于功能测试范畴;
白盒测试属于代码测试范畴;
作者: qumingfang    时间: 2007-6-25 20:43
sdlkfj5
作者: velata    时间: 2007-6-28 10:52
嘿嘿
最近一直忙
没上来看
觉得#4的说得比较在理~




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2