找回密码
 注册
搜索
查看: 1520|回复: 2

[讨论] 请您指点一下:黑盒与白盒测试

[复制链接]
发表于 2006-2-22 09:30:00 | 显示全部楼层 |阅读模式
请您指点一下:
什么是黑盒与白盒测试?它们的区别是什么?
发表于 2006-2-22 11:22:00 | 显示全部楼层
<P>黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,主要測試產品的功能是否达到设计要求;白盒测试法是把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。白盒测试是针对源代码的,需要掌握开发语言、编程的技术、原理。白盒测试主要是对程序的结构进行测试,测试覆盖率、检查内存等。白盒测试的工具只是辅助性工具,很多的测试用例需要测试者自己编制,对测试者要求比较高,最好有开发经验后做。 首先需要了解编程环境,会使用编程工具,了解程序流程,还需要懂得如何应用自动化测试。</P><P>以下是一个转贴:</P><P>(全文如下:)
我从事手机测试。比较忙,作为这里斑竹,是不合适的,其一,本人经验不是很丰富,其次,本人的水平也不是很高,最重要一点,因为精力有限,不能很好照顾这里。但是我很愿意把一些心得体会,和大家分享。
由于手机测试涉及公司机密,所以在不泄露公司机密前提下,我尽量让大家一起学习,分享我知道的知识和技能。
手机测试是一个很大的题目,涉及到硬件测试和软件测试,还有结构的测试,比如抗压,抗摔,抗疲劳,抗低温高温等,结构上的设计不合理,会造成应力集中,使得本身外壳变形,对于翻盖手机,盖子失效,还有其他严重问题。硬件测试一般都有严格的物理电气指标,也有专门的仪器,这里的仪器,不在多说,一般如果是专业的测试人员,不会对词陌生吧。
因为我们人员编制问题,所以我对于各项测试,都或多或少了解一点,甚至从事过。。
但是手机测试,一般是指软件测试,这个一方面也说明了软件在手机上的重要行。一方面也说明手机测试的难度。因为期他得测试都有明确的指标,严格的操作规程,还有各种仪器。下面说的手机测试一般都是手机软件测试,以后不在重复说明。
因为工作原因,没有及时回复大家要求,这里先回答一点,希望大家一起参与,毕竟我一个人精力有限,知道也少。
这里就作为前言部分吧
在说明手机测试之前,我觉得应该了解一下什么是嵌入市操作系统,这是个时髦的名词,虽然我们已经被嵌入市操作系统的产品所包围,但是却不一定能说清楚,什么是嵌如实操作系统,而学校的课堂上,讲的也不多,所以很多人对此感到云山舞罩。
简单的说,一个嵌入市操作系统就是为完成某中特定功能而专门开发的操作系统。这个操作系统的功能很明确,不象大型操作系统,范围广泛,大千世界,尽在其中,而嵌如操作系统只为完成某一项或者几项功能。
再说一下手机的特殊性,也就是要求对响应时间达到一定限制范围。也就是所谓的实时操作系统,如果一个电话不能在90秒内接听,那么对方会挂掉
而你的操作系统还没反映过来,那么这个操作系统无疑是失败的,这是对嵌如操作系统实时性的要求。
作为一个测试人员,你必须了解这些,可能对一些软件开发人员,他不必很在意这些方面,因为他只要了解自己模块的入口说明和 出口说明就可以。但是测试人员不行。高级测试人员应该了解嵌入操作系统的特点,这个系统不象WINDOWS,有图形界面可以输入输出,也不象D OS用命令行模式,所有这些,都需要自己编写一个编辑器,编写一个交互界面,编写一个输入输出界面,在WINDOWS中,利用一些API和一些M FC,不用考虑硬件的问题,因为系统已经完成,而WINDOWS是讲究和硬件分离的,因为这样可以保护系统不受侵入。而在嵌入市系统里面。这一些都要求和硬件息戏相关。
手机测试中,软件出现的故障不一顶是由于软件的错误,也可能是由于没有考虑到硬件和软件没有完美的结合。
因此我们在了解操作系统同时,也要了解一下其他的手机硬件性能,比如CPU ,比如存储器。
CPU的处理运算能力是以MIPS来衡量的,当然越快越好,但是也是和成本相关的,我不知道现在MOTOROLA T39的CPU,但是,因为是PDA,又是手写屏幕,所以菜单特别的慢。关于存储器需要专门做出说明,因为这里 的存储器很特别,不象PC,手机没有硬盘!

作为一个新来的,可能对嵌入时操作系统游乐 一个大致了解了,那么对他的程序又是如何的呢,难道是和以前的程序不一样?
其实,嵌入时系统的编程语言一般有C,而且也是最多的,也有其他语言。比如C++在最开始时候是用 汇编的,但是汇编难懂,而且也不容易移植,渐渐的被C代替,不过即使如此,在启动程序时候,要启动板子,也就是电路板时候,还是需要用一些汇编语言完成。
作为一个嵌入市系统的程序,和在PC上运行着的程序没有任何不同,唯一不同可能是在PC上运行的程序,你可以看到结果——如果你用输出语句的话,而在这里,你是看布道结果的。除非你加上L CD硬件,然后编写了LCD驱动程序,然后再编写显示 程序。编写嵌入市程序,一切都要自己解决。
我们的手机如果不是认为把电源切断的话,或者在电源消耗到一定程度的话,是会一直在使用的,所以,手机程序是一直在运转的,就是说一直在循环,这个,对于了解嵌入市程序,应该是个好材料——嵌入市程序就是一个无限循环的程序,除非关掉电源和电源因素,这里也有一个测试点:硬件中断是最高级的,它会终止你的程序,即使你现在的程序级别很高,比如通话,如果没电了,一切会o ver.
手机程序就是在一个无限循环的程序,什么时候跳出这个无限循环?你关机吧,如果感到不高兴,把电池卸下来,因为有可能进入死循环,而关机键失效了,——只好通过取下电池了。


这里要专门说明一下存储器,因为很多手机毛病都和存储有关,而且很多问题都和存储相关,计算机的存储是关键,而手机更始关键,因为计算机有硬盘作为存储,而手机所有的都在存储器里
存储器分为几类,RAM 随即存储器,ROM随即只读存储器还有现在出现一些的闪存,以及电子可编程存储和非易失存储起。一个一个到来
RAM 随机存储器,其中又有SRAM(静态RAM)DRAM(动态RAM),
SRAM,只要只要电源开着,就会保存,我们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不会立刻写入通话记录。只有正常关机,才会写入,如果取电池的话,是不会写入手机的通话记录的,如果在通话记录中出现了已经拨打电话,但是没有记录的情况,那么有可能和这个存储器有关,
可能是你的软件上错误,也可能是硬件。
DRAM在手机上用的不多,因为保留数据时间很短,

从价格上看,SRAM是非常昂贵的,而DRAM相比很便宜。
ROM也有几种,PROM可编程ROM 和EPROM可擦除可编程ROM两者区别是,PROM是一次性的,也就是软件灌入后,这个就完蛋了,这种是早期的产品,现在已经不可能使用了,而E PROM则是通用的存储器,这些存储器不符和手机软件产品,一般使用ROM少
其他FLASH
这是近来手机采用最多的存储器,这种存储起结合了ROM和RAM的长处,但是不属于RAM也不属于ROM
手机大量采用的NVRAM 非易失存储器 和SRAM属性差不多,EEPROM 电子可擦出可编程存储器 ,闪存,ROM的后代。手机软件一般放在EEPROM中,EPROM是通过紫外光的照射,擦出原先的程序,而EEPROM是通过电子擦出,当然价格也是很高的,而且写入时间很长,写入很慢,所以前面提到的电话号码,一般先放在S RAM中,不是马上写入EEPROM,因为当时有很重要工作要做——通话,如果写入,漫长的等待是让用户忍无可忍的。
NVRAM 是一个很特别的存储器,它和SRAM相类似,但是价格却高很多,由于一些数据实在重要,断电后必须保持这些数据,所以只能存放在这里,一般和个人信息有关的数据会放在这里,比如和S IM卡相关数据。容量大小也只有几百字节。
闪寸存储器是所有手机的首选,综合了前面的所有优点,不会断电丢失数据(NVRAM)快速读取,电气可擦出可编程(EEPROM)所以现在手机大量采用,
说了这么多存储器,可能比较糊涂了,这么多存储器,究竟采用哪中呢,在手机发展中,各种存储器都用过,至于现在,各种手机采用的存储器是不同的,这个和成本相关,各种存储器价格不一样,本着性价比最优组合,由设计者决定,有些是可选的,有些是必须的,是手机方案决定的,我们了解只是各种存储性能,特点,在测试中判断错误原因。

手机协议站软件的白合测试
手机软件测试单丛测试的内容来看,包括上面的MMI和底下的PROTOCOL
由于MMI的灵活性,和各个厂家的个性化,以及手机本身的用户不同,
MMI的侧重点也就不同,在基本通话、短消息、数据功能完成的基础上
可以五花八门,所以测试的重点不同。测试方法各不相同。
但是协议就不同了,协议是统一的,虽然你实现方法可以不同,但是
完成的功能必须相同,和MMI不同,虽然都是聊天,但是有些用短消息
聊天,有些用PUSH聊天,而协议软件有一个遵守的规范——ETSI指定
的协议规范,有统一的命令规范和统一的标准。消息(术语,不是软件
编程里的消息,是通信术语)是固定的嘛。
针对协议的测试,因为有标准可循,有规范可仪,所以软件测试就
很多工具,公司也多,自动化测试要自动话,否则,按照人的
测试能力,谁也无法保证其绝对可靠性,也没有这么大的人力去仔细做
测试。
一般对于白合测试是比较严格的,而且也是耗费人力的,所以常采用自动
化测试工具。这样节省人力、缩短测试时间。至于谁家的工具比较好,
涉及各取所需吧,也涉及到成本问题。你如果想购买某产品,会给你一个
DEMO版本,给你一个月的评价时期,这个评估版本让你熟悉其产品的优劣
也让你熟悉其操作。
测试工具一般都有二次开发功能,也就是可以自己编写脚本,针对不同的
软件平台做一些改动,这样可以根据自己的需要编写测试CASE测试用列
当然即使是全部用自动化测试,你心理还是没底,你还是要仔细去看代码。
分析流程,读懂其含义,一个很小的问题,出错保护没有作好,一般这个
问题最多,出错保护机制没有作好,会造成崩溃这样严重的问题。
这是针对协议代码的白合测试
如果你是对购买来的协议进行测试,一般有仪器,模拟一个网络基站,进行
测试,不过这样的仪器非常昂贵,而且测试人员要对ETSI协议比较熟悉。
我没有直接参加针对协议的白合测试,不过对评估般的测试软件曾经PRACTISE,
可测试覆盖率,我很奇怪的是,一般打点(跟踪)也是需要消耗CPU时间的
这样程序效率就降低了,而我要测试程序的效率等项目就要考虑CPU,而且
程序的工作运转必须和CPU息息相关,而现在CPU 在保证程序RUN同时,还要
进行打点,是否测试出的指数和实际不符和呢,是否没有达到真实的水平呢
而它这个产品(水牛)介绍说,一般不占用CPU时间,我想了很长时间没有想通
后想咨询,告之这是他们的专利,无可奉告。由于这种测试工具是针对平台
所以如果你平台不支持的,也就没有办法使用了。还有集成测试等等,在软件
的介绍中有详细说明,不再详细说明。
对协议进行白合测试,我想对你的要求就是:熟悉相关的协议,否则白扯;
熟悉开发的语言,否则免谈。
总之,我估计你们公司如果进行白合测试的话,我想测试工具是不可少的,
希望你顺利完成测试任务。早日听到好消息。



1 计算机工业的分类
以往我们按照计算机的体系结构、运算速度、结构规模、适用领域,将其分为
大型计算机、中型机、小型机和微计算机,并以此来组织学科和产业分工,这
种分类沿袭了约40年。近10年来随着计算机技术的迅速发展,实际情况产生了
根本性的变化,例如70年代末定义的微计算机演变出来的个人计算机(PC),如
今已经占据了全球计算机工业的90%市场,其处理速度也超过了当年大、中型计
算机的定义。随着计算机技术和产品对其它行业的广泛渗透,以应用为中心的
分类方法变得更为切合实际,也就是按计算机的嵌入式应用和非嵌入式应用将
其分为嵌入式计算机和通用计算机。
通用计算机具有计算机的标准形态,通过装配不同的应用软件,以类同面目出
现并应用在社会的各个方面,其典型产品为PC;而嵌入式计算机则是以嵌入式
系统的形式隐藏在各种装置、产品和系统中。
2 嵌入式系统(Embedded Systems)
嵌入式系统被定义为:以应用为中心、以计算机技术为基础、软件硬件可裁剪、
适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式计算机在应用数量上远远超过了各种通用计算机,一台通用计算机的外部
设备中就包含了5-10个嵌入式微处理器,键盘、鼠标、软驱、硬盘、显示卡、显
示器、Modem、网卡、声卡、打印机、扫描仪、数字相机、USB集线器等均是由嵌
入式处理器控制的。在制造工业、过程控制、通讯、仪器、仪表、汽车、船舶、
航空、航天、军事装备、消费类产品等方面均是嵌入式计算机的应用领域。


</P>
点评回复

使用道具 举报

 楼主| 发表于 2006-2-22 12:07:00 | 显示全部楼层
谢谢!!
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-26 11:00 , Processed in 0.086571 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表