摘 要:针对嵌入式浏览器测试过程的问题,在嵌入式浏览器测试中应用一种测试策略,可以极大的降低测试成本,保证软件质量。
关键词:嵌入式浏览器 测试策略
1. 引言
嵌入式浏览器还没有一个准确、严格的定义,但从其可以完成的功能来看,可以从两个方面进行描述。第一,它必须是一个网络信息浏览器,必须支持HTTP、或者WAP等具它传输协议、支待HTML. JavaScript或扩展XML. WML等标记语言,可以完成网页的浏览功能:第二,这个浏览器必须适合在非PC的嵌入式信息设备中存在、运行并完整实现通讯传输协议、标记语言所规定的功能,必须能够根据嵌入式设备的多样性需要而方便地进行裁减和修改,并满足信息设备使用者对获取文字、图像、声音、视频等信息的需求。
随着以计算机和以软件为核心的数字化技术的迅猛发展,多媒体技术与Internet的应用迅速普及,消费电子、计算机、通信(3C)一体化趋势日趋明显,机顶盒、信息家电等新产品的出现让人们开始关注嵌入式系统,嵌入式浏览器也随之成为研究热点。随着嵌入式技术的发展,嵌人式系统的复杂性不断提高,要求嵌入式浏览器的规模和复杂性也不断提高。嵌入式浏览器的质量和开发周期对产品的最终质量和上市时间起到决定性的影响,因而嵌入式浏览器的测试更加重要。然而,由于嵌入式系统的自身特点,如实时性,内存不丰富,输入、输出通道少,开发工具昂贵,并且与硬件紧密相关,CPU种类繁多等原因,嵌入式浏览器的测试比一般商用软件的测试更为复杂。可以说嵌入式浏览器是最难测试的软件之一。因此,研究嵌入式浏览器的测试策略有着重要的现实意义。
2. 嵌入式浏览器的测试策略
为了提出一个很好的嵌入式浏览器的测试策略,我们应该研究嵌入式软件是如何测试的。嵌入式浏览器从广义上讲也是嵌入式软件的一种,嵌入式软件的测试策略对嵌入式浏览器很很好的指导作用。但由于嵌入式浏览器有自身的特点,一方面我们要研究出一个适合嵌入式浏览器软件自身特点的有效的测试策略,另一方面对比较成熟的嵌入式软件的测试方法和策略对嵌入式浏览器的测试有借鉴作用。
2.1嵌入式软件测试
由于嵌入式系统的自身特点,如实时性(Real-timing),内存不丰富,I?/?O通道少,开发工具昂贵,并且与硬件紧密相关CPU种类繁多,等等。嵌入式软件的开发和测试也就与一般商用软件的开发和测试策略有了很大的不同,可以说嵌入式软件是最难测试的一种软件。
嵌入式软件测试使用有效的测试策略是唯一的出路,它可以使开发的效率最大化,避免目标系统的瓶颈,使用在线仿真器节省昂贵的目标资源。自从出现高级语言,开发环境与最终运行环境通常都是存在差异的,嵌入式系统更是如此。开发环境被认为是主机平台,软件运行环境为目标平台。相应的测试为host-target测试或cross-testing。
对于嵌入式软件测试或叫交叉测试(cross-test),在测试的各个阶段有着通用的策略:
(1)单元测试:
所有单元级测试都可以在主机环境上进行,除非少数情况,特别具体指定了单元测试直接在目标环境进行。最大化在主机环境进行软件测试的比例,通过尽可能小的目标单元访问所有目标指定的界面。
在主机平台上运行测试速度比在目标平台上快的多,当在主机平台完成测试,可以在目标环境上重复作一简单的确认测试,确认测试结果在主机和目标机上没有被他们的不同影响。在目标环境上进行确认测试将确定一些未知的,未预料到的,未说明的主机与目标机的不同。例如,目标编译器可能有bug,但在主机编译器上没有。
(2)集成测试:
?软件集成也可在主机环境上完成,在主机平台上模拟目标环境运行,当然在目标环境上重复测试也是必须的,在此级别上的确认测试将确定一些环境上的问题,比如内存定位和分配上的一些错误。
在主机环境上的集成测试的使用,依赖于目标系统的具体功能有多少。有些嵌入式系统与目标环境耦合的非常紧密,若在主机环境做集成是不切实际的。一个大型软件的开发可以分几个级别的集成。低级别的软件集成在主机平台上完成有很大优势,越往后的集成越依赖于目标环境。
(3)系统测试和确认测试
所有的系统测试和确认测试必须在目标环境下执行。当然在主机上开发和执行系统测试,然后移植到目标环境重复执行是很方便的。对目标系统的依赖性会妨碍将主机环境上的系统测试移植到目标系统上,况且只有少数开发者会卷入系统测试,所以有时放弃在主机环境上执行系统测试可能更方便。
确认测试最终的实施舞台必须在目标环境中,系统的确认必须在真实系统之下测试,而不能在主机环境下模拟。这关系到嵌入式软件的最终使用。
嵌入式软件测试的策略总结如下:
(1) 使用测试工具的插装功能(主机环境)执行静态测试分析,并且为动态覆盖测试准备好一插装好的软件代码。
(2) 使用源码在主机环境执行功能测试,修正软件的错误和测试脚本中的错误。
(3) 使用插装后的软件代码执行覆盖率测试,添加测试用例或修正软件的错误,保证达到所要求的覆盖率目标。
(4) 在目标环境下重复步骤2,确认软件在目标环境中执行测试的正确性。
(5) 若测试需要达到极端的完整性,最好在目标系统上重复步骤3,确定软件的覆盖率没有改变。
2.2嵌入式浏览器的测试策略
嵌入式浏览器虽然本质上来说也是一种嵌入式软件。但它除具有嵌入式软件的特性外,还有自身自己的特点。具体表现如下:
(1)对CPU的开销要低。消费类电子产品CPU 能力弱,功耗低,种类繁多,大多数RISC 架构,有些是基于专门的 DSP 核心,这些处理器的运算能力远远比不上 PC 的CPU,所以,要求浏览器一定要能在100MHz一下的主频上可以运行。
(2) 内存占用要小。目前市场上常见的数字电视机顶盒配置是4M Flash,16M内存,一般来说,要求嵌入式浏览器运行期间占用内存在6M下,代码小于1M.IPTV 机顶盒的配置会相对比数字电视机顶盒高,使嵌入式浏览器发挥空间更大。
(3) 消费类电子产品是以电视作为显示设备,必须考虑电视显示的特点:标准的电视显示范围为720*576,但是很多模拟电视实际显示不了这么大的范围,一般推荐的范围为640*480,这是浏览器在排版的时候必须要考虑的。另外,目前绝大部分电视还是采用阴极射线管,隔行扫描的方式来显示的,这导致线条
,图像,文字在电视机上很容易出现闪烁,目前很多机顶盒芯片已经考虑硬件抗闪烁功能,但这还不够,嵌入式浏览器必须考虑支持软件抗闪烁。
(4) 消费类电子产品一般是通过遥控器来操作的,遥控器不可能跟键盘一样复杂。遥控器上的按钮一般包括:上下左右方向键、确认键、返回键、数字键和其他功能键。对于使用嵌入式浏览器来说,主要通过方向键、确认键和返回键来完成。基于这个特点,要求网页中焦点不能过多,另外焦点之间的跳动必须合理。当网页超出电视显 示范围的时候,用户可以通过方向键移动,但左右移动不推荐,这要求浏览器必须把网页排版在合理的宽度内,用户可以上下方向移动察看网页内容。
基于以上四种原因,我们提出应用以下测试步骤,反复迭代进行测试。这样能够即可能早的发现嵌入式浏览器缺陷,尽早解决,后期测试成本就能降低。
2.2.1 功能测试
概述:确保测试的功能正常,如导航,数据输入,处理、检索是否正确,以及业务规则的实施是否恰当。即对交互的输出或结果进行分析,以此来核实应用程序及其内部进程,这是目前的测试重点。
目标:利用有效的和无效的数据来执行各个用例流,以核实以下内容
(1)在使用有效数据时得到预期的结果
(2)在使用无效数据时显示相应的错误消息或警告消息。
2.2.2 用户界面测试
概述:用于核实用户与软件之间的交互是否正常。
目标:核实下列内容
确保各种浏览以及各种访问方法(鼠标移动、快捷键等)都使用正常
确保窗口对象及其特征(菜单、大小、位置、状态和中心)都符合标准等
2.2.3 性能测试
概述:主要是对响应时间、事务处理速率和其他与时间相关的需求进行评测和评估。性能评测的目标是核实性能需求是否都已满足。
目标:核实下列情况下的性能行为:
正常的预期工作量;预期的最繁重工作量
需考虑的特殊事项:
可创建“虚拟的”用户负载来模拟许多个(通常为数百个)客户机。
最好使用多台实际客户机(每台客户机都运行测试脚本)在系统上添加负载。
应该在专用的计算机上或在专用的机时内执行,以便实现完全的控制和精确的评测。其所用的数据库应该是实际大小或相同缩放比例的数据库。
多用户不同网络条件下的连接速度是否满足要求
2.2.4 压力测试
概述:这里的具体包含了负载测试以及压力测试
目标:核实下列行为下的系统行为
确定测试对象在给定时间内能够持续处理的最大负载或工作量(包括长时间处理多个用户相同的且性能最坏的业务)
确定并确保系统在超出最大预期工作量的情况下仍能正常运行,并评估其性能特征,包括响应时间、事务处理速率和其他与时间相关的内容
服务器上几乎没有或根本没有可用的内存(RAM)
步骤一:执行单步任务测试
步骤二:多用户多任务测试
2.2.5 故障恢复测试
概述:确保系统能从各种意外数据损失或完整性破坏的各种软/硬件故障中恢复。
目标:核实系统能够在下列状况下正确恢复到预期的已知状态
客户/服务机断电
网络通信中断
异常关闭某个功能
错误的操作顺序
2.2.6安全性测试
概述:确保系统Web应用下的安全性
目标:核实下列情况下的性能行为
系统是否有超时的限制
相关的重要信息是否写进日志、是否可追踪
使用了安全套接字时,测试加密是否正确,信息是否完整
2.2.7配置测试
概述:核实测试对象在不同的软件和硬件配置中的运行情况
目标:确定系统能在下列条件下正常运行
在各种所需的硬件和软件配置中
在各种O/S平台或是浏览器下的兼容性测试
2.2.8安装/反安装测试
概述:测试软件在正常情况和异常情况下的安装/反安装状况
目标:核实下列行为
首次安装、升级、完整的或自定义的安装 都能进行安装
磁盘空间不足、缺少目录创建权限等异常情况的安装
这种测试策略有如下优点:①可用于各种不同系统的测试;②减短嵌入式软件开发周期,降低成本,提高质量;③加强开发人员和测试人员之间的沟通;④能够在早期暴露出软件规格和设计中的含糊、不正确之处;⑤需求改变时,很容易更新测试组;⑥能够评估回归测试组。
3. 嵌入式浏览器测试注意事项
1)电视显示:因为是以电视作为显示设备,必须考虑电视显示的特点:标准的电视显示范围为720*576,但是很多模拟电视实际显示不了这么大的范围,一般推荐的范围为640*480,这是浏览器在排版的时候必须要考虑的。另外,目前绝大部分电视还是采用阴极射线管,隔行扫描的方式来显示的,这导致线条,图像,文字在电视机上很容易出现闪烁,目前很多机顶盒芯片已经考虑硬件抗闪烁功能,但这还不够,嵌入式浏览器必须考虑支持软件抗闪烁。
2)遥控器使用:机顶盒不是电脑,一般是通过遥控器来操作的,遥控器不可能跟键盘一样复杂。遥控器上的按钮一般包括:上下左右方向键,数字键,OK,颜色键,其他功能键。对于使用嵌入式浏览器来说,主要通过方向键和OK来完成。基于这个特点,要求网页中焦点不能过多,另外焦点之间的跳动必须合理。当网页超出电视显示范围的时候,用户可以通过方向键移动,但左右移动不推荐,这要求浏览器必须把网页排版在合理的宽度内,用户可以上下方向移动察看网页内容。
3)切换网页的速度也是考察浏览器的重要指标,由于采用数据广播协议,一般的浏览器都支持数据缓存,因此首页一般要求的时间会更长一些,基于前面页面的缓存,后续页面的切换速度要快一些。茁壮的浏览器针对自己的头端,首页一般在5秒左右,后续页面一般在2-3秒,针对其他头端,首页要10秒左右,后续页面要5秒左右;创维针对自己的头端首页一般在10秒左右,后续页面在4秒左右;新盛视针对所有的头端,首页一般在7秒以内,后续页面在3秒左右。
4.总结
测试应该是软件产品开发中不可分割的一部分。此种软件测试策略应贯穿软件的整个开发周期,这样,在嵌入式浏览器开发中,从设计进行中就可以得到高质量的产品代码,压缩了整个开发周期。对各种测试模型的深入研究可为将来更加可靠的嵌入式软件测试提供保证。
参考文献:
[1]奚雪峰,付保川,杨俊;一种基于V模型的嵌入式软件测试方案[J];信息技术;2004年09期
[2]韩峰岩,王昕;机载计算机软件的测试[J];航空计算技术;2004年03期