前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇自动化测试范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
中图分类号:TP39 文献标识码:A 文章编号:1007-9599 (2012) 17-0000-02
如今自动化测试以其执行速度快,结果反馈迅速的最大优点获得了业界的广泛认可,尤其在如今需求快速变化的今天,大家对于自动化测试的需求和渴望更是到了一个空前的地步。诚然,自动化测试受到大家的追捧是有充分的理由,因为相对于人工测试,它有着不少的优势。我们且来看看。
1 自动化测试的优势
1.1 对程序的回归测试更方便
回归测试可能是自动化测试最主要的任务,特别是在程序修改比较频繁时,效果是非常明显的。由于回归测试的动作和用例是完全设计好的,测试期望的结果也是完全可以预料的,将回归测试自动运行,可以极大提高测试效率,缩短回归测试时间。
1.2 可运行更多更繁琐的测试
自动化的一个明显的好处是可以在较少的时间内运行更多的测试。而且人工测试在面对多轮重复执行时,测试人员往往会趋于倦怠,而这将对产品的测试质量带来其他的损害
1.3 可以执行一些手工测试困难或不可能进行的测试
比如,对于大量用户的测试,不可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模拟同时有许多用户,从而达到测试的目的。
1.4 更好地利用资源
将繁琐的任务自动化,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来投入更多精力设计更好的测试用例。有些测试不适合于自动测试,仅适合于手工测试,将可自动测试的测试自动化后,可以让测试人员专注于手工测试部分,提高手工测试的效率。
1.5 测试具有一致性和可重复性
由于测试是自动执行的,每次测试的结果和执行的内容的一致性是可以得到保障的,这样使测试结果具有可对比性,并且达到测试的可重复的效果。
1.6 测试的复用性
由于自动测试通常采用脚本技术,这样就有可能只需要做少量的甚至不做修改,实现在不同的测试过程中使用相同的用例。
1.7 增加软件信任度
由于测试是自动执行的,所以不存在执行过程中的疏忽和错误,完全取决于测试的设计质量。一旦软件通过了强有力的自动测试后,软件的信任度自然会增加。
因为自动化测试现在如旋风之势席卷而上,特别是全球风靡于敏捷开发之后,更是把自动化测试提高到了一个史无前例的高度。而且人工测试具有更敏锐的观察力,能从一个稍纵即逝的小异常中挖掘出大问题。
另外有些测试是必然需要人工干预的,如冷启动机器,如需要人的感官去体验的。那么如果真的需要追求100%的自动化测试覆盖率,我们唯一的选择就是牺牲这部分的测试案例来成全100%,这对于测试覆盖率也是很大的一个损失。
而从投入产出比的角度来看,以目前对各组织的统计而言,60%是一个比较合理的值,如果要高于这个值,那么付出的人力将是成倍增长的。在我们的组织中一度自动化测试覆盖率的要求是95%,曾经我们也勉强达到,但是投入的代价是不可维续的。所以我们过后调整了我们的合理期望值。比如说在比较简单的功能性测试中自动化测试是比较容易的,但如果是涉及模块和网元很多的系统测试或互通性测试中就显得相当的力不从心了。
2 自动化测试是适用于任何情况的
2.1 自动化测试是适用于任何产品的
并不是所有的产品都适用于自动化测试的,如果这个产品只会做有限的几轮测试,接着就不会再有持续的开发。那么就没必要使用自动化测试,因为这样的投入产出比比较低。毕竟在开发自动化测试阶段需要耗费大量的人力物力。对于决定自动化一个测试用例的一般规则是这个测试用例必须被运行 4 次以上。这个数字是基于用户对测试工具有良好的技能并且有一个良好的测试框架的。如果情况不是这样的话,整个数字能够是 10-20次或者更高。
再者如果变化比较大的话也不适用自动化测试。国内多数软件公司是针对最终用户进行项目开发—工程性质的软件,而不是产品开发。项目开发周期短,不同的用户需求不一样,而且在整个开发过程中需求和用户界面变动较大,这种情况下就不适合自动化测试,对于不停变化的需求和界面,可能修改和录制脚本的工作量大大超过测试实施的工作量,运用测试工具不但不能减轻工作量,反而加重了测试人员的负担。
2.2 自动化测试是适用于任何测试阶段的
版本经理通常认为自动化测试能运用于任何阶段的万能钥匙,但事实上从本人的经验来看,自动化测试适用于回归测试,但不适用于新功能的测试。首先因为新功能刚递交之时稳定性是不可保证的。而自动化测试对于其不稳定性是相当敏感的,所以通常都无法正常的运行完测试,也无法达到我们尽快得到结果的预期。其次在新功能刚递交时其期望结果是不可预知的,这对于自动化测试脚本的编写带来了极大的不确定性。最后在新功能递交阶段是需要我们发现大量问题的时候,而自动化测试无法担此重任。
2.3 自动化测试是适用于任何组织的
在最初尝试自动化测试的时候,是需要投入相当的人力和物力去选择自动化工具,构建自动化测试的框架,做必要的技能培训,摸索编写自动化测试的脚本,如果一个组织无力承负这样的代价,那么是不适合自动化的,否则只能是半途而废的下场。
即使我们澄清了这些误区,我们对于自动化测试有了一个比较清晰的认识,也对其有了一个正确的期望,但实际在推行的过程中我们还是会遇到不少的困难,而困难主要来自于以下几个方面。
3 自动化测试推广中的困难
3.1 来自于测试人员的不接受
因为测试人员是自动化测试的主体,他们承担着转型的重要职责,所以他们的接受与否对于工作的展开是尤为重要的。但作为一个新生事物,通常是不太容易被接受的,尤其是在大家觉得原有的模式很舒服很习惯的情况下。所以在最初的阶段完全是强推。而经过一年的努力,当作年终总结时,所有的测试人员都说那年最艰难的是自动化测试,感触最深的是自动化测试,从中学到最多是是自动化测试,而且发现自动化测试的确帮了很大的忙。
3.2 来自于测试人员技术上的不足
测试人员很多都不具有编程的经验,但自动化测试脚本的编写还是需要一定的编程功底,如果组织中专门有一个具有编程功底的团队能开发自动化测试的工具,并且根据手动的测试案例编写自动化测试的脚本,那状况可能会好些。但目前更多的组织是需要人人能编写自动化脚本的。而在我们的转型中我们经历了三个阶段,基本完成了能力的建设。第一阶段以能用为目的,专门有人提供所需的函数,测试人员只需调用这些函数完成自动化测试的目的,不需要考虑程序的可移植性,可复用性。第二个阶段每个人会写一些自己所需要的函数,并且具有良好的移植性和灵活性。第三个阶段每个人会写能为他人复用的函数并且遵循制定的规范。这样的转型虽然慢但却是比较稳妥的方式。
3.3 来自于组织内其他人员的阻挠
关键词 软件;自动化测试;系统;测试环境
中图分类号TP39 文献标识码 A 文章编号 1674-6708(2014)123-0234-02
随着计算机的发展和信息技术水平的不断提高,计算机软件的规模也在不断的发展扩大,其性能和承载的任务量也在不断增加。自动化测试系统是检验软件开发产品质量和可靠性的重要手段,在多个应用领域都需要使用自动化测试系统,这也使自动化测试系统逐渐成为软件产品开发过程中非常重要的环节,受到行业领域内的广泛关注,很多专家和工程师专门致力于自动化测试系统的研究,使其逐步从专用系统向通用系统的方向扩展。
1 测试环境的通用性
1.1 测试硬件系统的通用性
1.1.1 测试总线
在软件自动化测试系统中,测试总线具有非常关键的作用,占据不可替代的地位。测试总线可以说是整个自动化测试系统的神经中枢,其主要任务是对传送测试数据和对指令进行控制。随着计算机应用技术的不断发展和引入,总线技术也随之经历了不断的升级和扩展,想更高层次,更多的功能发展,归纳如下:
1)GPIB。通过标准接口和母线实现与计算机及其他仪器仪表的连接。其优势在于能够通过计算机代替人工对仪器和仪表进行各种操作和指令控制。但是其缺点在于装置数目有限,总数最多为15台,而且电缆的长度要在20m以下;
2)VXI。其将VME总线系统和GPIB总线系统加以融合,优势在于具有较好的灵活性,传输速率高而且功耗小,使用和维修都很方便,其缺点在于总线速度不高,明显落后于先进PC机的总线速度;
3)PXI。其实紧凑型CPI在仪器领域的扩展。其优点在于支持多种语言,如VC、VB、LabVIEW等,缺点在于功耗较大,在空间上具有局限性;
4)LXI。新一代的总线系统,在局域网模块化平台标准的基础上建立,其优势在于融合吸取了GPIB、PXI以及LAN的优点。
1.1.2 硬件接口
对于自动测试系统来说,其硬件资源是多样性的,以满足与不同测试的需要。一个高性能的自动化测试系统,硬件接口的标准化描述方法是非常关键的技术,直接影响着整个自动化测试系统的高效开发,对于信息共享率的提高,模块间独立性的提高都有着直接的关联。现今对于通用性的自动化测试系统在机械、电器标准的信号接口都有了具体的、严格的规范和定义。
1.2 测试软件的通用性
要有效解决自动化测试系统的软件通用性的问题,测试软件是一个重要的部分。在测试程序和信号源二者之间建立标准接口,以使执行测试软件满足可移植性的需要,利用信号接口对资源进行调动,使得对测试需求的反映为被测设备端口的测量或者激励信号要求。对于测试程序集的开发需要的工作通常有各种的语言开发环境分别与各种的操作系统组成,以完成多种需要的功能。语言方面一般用标准语言作为测试语言,如ATLAS等写成。其中ATLAS2000标准被定义成COM组件,在自动化测试系统的设计中可通过使用通用的语言对组件进行调用。
2 软件自动化测试系统的设计
2.1 自动化测试系统结构
图1 自动化测试系统结构策划方案
2.2 自动化测试系统管理软件
自动化测试系统承担多种的测试任务,系统的一些功能实现与待测软件相关,另外的一些功能具有通用性。为了维护测试系统的持续平稳运行,减少维护的成本投入,本文提倡采用待测任务与系统任务级别分离的测试策略,以满足不同的测试需求。为了尽可能的提高开发效率,在自动化测试系统结构上课采用测试管理软件,以减少通用操作的开发量,提高专有操作的开发量。
2.3 应用开发软件
应用开发软件在整个测试系统结构中占据关键地位,测试系统开以通过这些应用开发软件工具实现仪器的信息传送、集成测量以及应用连接等。理想的应用开发环境应该具有高效率的编译性、集成性、灵活性等特点。
2.4 测试和控制服务
测试和控制服务在整个测试系统中发挥这不可替代的作用,负责系统硬件资源的相互连接、系统配置以及诊断工具服务。通过编程接口实现开发软件层的无缝集成,为设备编程提供便利,提供开发工作效率,同时也降低了系统维护的成本投入。
2.5 计算和测量总线
计算机是自动化测试系统的核心,占据主导地位。通过计算式平台来实现仪器间的通信连接。现今在单独仪器以及模块化仪器中已经有多种具有不同功能的仪器总线加以应用,对于不同的应用,选择与之相应的合适的总线。其中PCI总线和PCI Express总线都具有低延时、高吞吐量、高带宽的优势。
2.6 测量和设备I/O
仪器构架分传统仪器和虚拟仪器两种。这两种构架之间存在一定的相似型,如:机箱、总线、接口、操作系统等方面,但是两者的区别主要在于硬件方面对部件的组织上有所不同。传统仪器在同一箱子里存放了所有部件,由供应商对仪器的功能和控制进行定义。虚拟仪器是一个模块化的软件,将通用的测量硬间功能加以集成,用户自行对测量或者控制进行定义,根据实际需求改变系统,灵活性更高。
3 结论
随着软件规模的不断扩大和承载任务量得不断增加,加上投入成本要求不断降低,在软件自动化测试系统的设计上,开发团队在不断寻找提高开发效率、节省成本投入的方法。模块化的软件定义型自动化测试系统有效的解决了原有基于独立式仪器的自动化测试系统所带来的高昂成本的问题,实现了功能的集成,提高开发效率的同时有效的节省成本,满足不同软件产品的测试需求。
参考文献
【关键词】自动化;检测;仪表
【中图分类号】TU446【文献标识码】A【文章编号】1674-3954(2011)02-0139-01
大型制造企业各工序都是连续性衔接作业,往往造成许多现场压力仪表虽到检定周期,却由于不能停产也就不能从作业。压力仪表的工作原理是弹簧管在压力或真空作用下产生弹性变形引起管端位移,其位移通过机械传动机构进行放大后再传递给指示装置,可在刻有法定计量单位的分度盘上读出指针所指示的被测压力值或真空量值。
一、在线校准预期
1、目的:实施在线校准适应生产流程计量需求,降低外送检费用。
2、校准仪表范围:本企业现场在用压力仪表。
3、校准范围:0~100MPa
4、校准对比准确度:1.5%~1.6%
5、预期目标:实现在线压力仪表的受控、有效。
6、校准方案种类:a. 理想型校准比对;b. 实用型校准比对。
二、材料准备
1、专用管道打孔器
2、符合现场压力仪表准确度及量程的数块相应受控有效标准表。
3、校准比对记录。
三、在线校准比对方案
1、实用型对压力仪表的校准比对
(1)在同一管道上:在距拟被校准的现场压力仪表的适当范围内,用专用管道打孔器引出导压管路,在导压管路中间安置一截止阀(截止阀处于关闭状态),截止阀后的接口处安装压力变送器与拟被校准仪表同规格的受控有效标准压力表。
(2)缓慢开启截止阀至全开,待管道内流体介质充分进入标准表内数分钟后,分别读取两块表的指示值。
(3)填写校准比对记录。
2、理想型对压力仪表的校准比对
自制一台流动简易“压力校验台”。
(1)在流体介质管道上,关闭在用(即拟被校准)的现场压力仪表的“截止阀1”(该截止阀处于关闭状态)。
(2)在截止阀后适当延长导压管路。
(3)在延长导压管路上安装一只三通。
(4)三通的直管口的接口处安装在用的指示为零的压力仪表。
(5)三通的丁字管口的接口处新安装“截止阀2”(该截止阀也处于关闭状态)。
(6)在“截止阀2”后接压力“专用校验管”至简易流动“压力校验台”上预置的“专用校验管接口”。
(7)“压力校验台”上还预置有受控、有效的相应型号规格的标准压力表。
(8)检查无遗漏后,逐一缓慢开启截止阀1、截止阀2至全开;数分钟后,分别读取两块表的指示值。
(9)填写校准比对记录。
四、经验:
认真做好巡回检查工作仪表工一般都有自己所辖仪表的巡检范围,根据所辖仪表分布情况,选定最佳巡检路线,每天至少巡检两次。巡回检查时,要关闭气源,并松开过滤器减压阀接头。拆卸环室孔板时,注意孔板方向,一是检查以前是否有装反,二是为了再安装时正确。由于直管段的要求,工艺管道支架可能少,要防止工艺管道一端下沉,给安装孔板环室带来困难。拆卸的仪表其位号要放在明显处,安装时对号入座,防止同类仪表由于量程不同安装混淆,造成仪表故障;带有联锁的仪表,切换置手动然后再拆卸;仪表一次开车成功或开车顺利,说明仪表检修质量高,开车准备工作做得好。反之,仪表工就会在工艺开车过程中手忙脚乱,有的难以应付,甚至直接影响工艺生产。
五、发展建议
1、发展趋势
(1)结构日趋简洁,从当前发展最快的3种流量仪表(电磁、超声、科氏)来看,机械结构都十分简洁,管道内既无转动件,又无节流件。
(2)功能力求完善,随着微电子、计算机、通信技术的飞速发展,流量仪表的功能日益完善、多样,不少机械部分难以解决的问题,依靠电子软件则迎刃而解,如Krohne的智能电磁流量计,不少超声流量计不仅可测流量,还可测流体密度、组分、热能等等。
(3)安装日益简便,工业自动化程度越高,用户越欢迎采用安装维护简便的产品,这也是插入式,外夹式仪表日益畅销的原因。
2、国产化刻不容缓:
据了解,我国近年来进口仪器仪表约130亿美元,出口约30亿美元(多为低附加值的电工仪表、家用水表、气表),国内大型工程选用国外仪表占2/3,而其价格为国产5~10倍,我国大型流量仪表企业主要依靠国外技术,缺乏拥有自主知识产权意识,创新乏力;自动化仪表国产化刻不容缓!
3、品种多,选用要实事求是:
流量仪表品种、类型较多,正确选用并非易事,建议:
(1)不要轻信厂商宣传,厂商为利所图,往往对仪表的技术指标夸大其词,选用时要理性分析这些参数的依据,有无检验证明。
(2)按需选取,勿追求高指标,如不是用于商务计量,贸易核算,准确度要求可以降低,如工控系统的某些场合,检测、监控仪表的重复性、可靠性好就可以了。
(3)全面考虑经济指标,仪表的经济性并非限于一次购买费用,还要考虑安装维修(停产损失),是否节能(长期运行费)等因素。
六、自动化测试系统的设计挑战
测试管理人员和工程师们为了保证交付到客户手中的产品质量和可靠性,在各种应用领域 (从设计验证,经终端产品测试,到设备维修诊断) 都采用自动化测试系统。他们使用自动测试系统执行简单的“通过”或“失败”测试,或者通过它执行一整套的产品特性测试。由于设计周期后期产品瑕疵检测的成本呈上升趋势,自动化测试系统迅速地成为产品开发流程中一个重要的部分。这篇“设计下一代自动化测试”的文章描述了一些迫使工程团队减少测试成本和时间的挑战。这篇文章还深刻地洞察了测试管理人员和工程师们如何通过建立模块化软件定义型测试系统来克服这些挑战。这种测试系统在减少总体成本的同时,显著地增加了测试系统的吞吐量和灵活性。
如今的测试工程师们面临着一系列新的压力。他们所面临的产品设计比前几代更为复杂;为了保持竞争力并满足客户要求,开发周期要求越来越短 ;产品测试成本越来越高,而预算越来越少。
1、不断提高的设计复杂性:如今,测试测量的最明显趋势是器件复杂性不断增加。例如,消费电子、通信和半导体工业持续要求将数字图象/视频、高保真音频、无线通信和因特网互联性集成到一个单独产品中。甚至在汽车中都集成了复杂的汽车娱乐和信息系统、安全和早期预警系统,以及车身和发动机上的控制电子装备。测试系统的设计不仅需要足够灵活地支持对不同产品模型进行广泛的测试,还需要能够进行升级以提供新测试功能所需的更多测试点。
2、更短的产品开发周期:
关键词:自动化测试;白盒测试工具;黑盒测试工具
中图分类号:TP31 文献标识码:A 文章编号:1007-9416(2017)03-0251-01
1 引言
在软件测试中传统的手工测试占绝对优势,大约占到了测试总数的89% 。手工测试是指测试人员手工编写测试用例,其优点是可以发现比较多的缺陷,但缺点是重复工作多、测试工作量大,进行回归测试时比较容易出错,而且代价较高。而且有一些测试,如压力测试、性能测试是手工测试实现困难,或者不可能进行的测试,在这种情况下,需要借助于自动化测试。
自动化测试是指使用一种自动化测试工具,验证各种软件测试的需求,包括测试活动的管理与实施。通过使用自动化测试工具,控制软件测试的执行(如对比预期输出和实际输出结果)。自动化测试可以节约测试成本,提高测试质量,完成一些手工测试不可能实现的测试,它是手工测试的一种补充,但是却不可能完全替代手工测试。本文主要阐述了自动化测试的概念、分类,以及自动化测试工具的优缺点,并给出了选择合适的自动化测试工具的建议。
2 自动化测试工具的分类
根据测试方法的不同,自动化测试工具可以划分为黑盒测试工具、白盒测试工具、测试管理工具、性能测试工具。
在黑盒测试场合,通常使用黑盒测试工具。通过使用黑盒测试工具,可以使黑盒测试的工作量大幅度地减轻。应用黑盒测试工具时,主要使用的手段是脚本的录制和回放,模拟用户操作,记录实际输出结果,并将其与预定的标准结果进行比较。TeamTest和QACenter是黑盒测试工具的代表。
白盒测试工具主要是针对代码进行测试,根据测试原理的不同,它又分为动态测试和静态测试工具。静态测试工具的代表主要有Logiscope软件和PRQA软件,其主要功能是在不执行程序的前提下,扫描代码语法、分析软件特性、查找代码中不合规范的地方。与静态测试工具相反,动态测试工具则要求运行实际被测试的系统来进行测试。Purify系列和DevPartner是动态测试工具的代表。
对测试计划、测试用例、测试实施、缺陷的跟踪进行管理时,需要用到测试管理工具,TestDirector和Test Manager是测试管理工具的代表。
软件性能测试的难点在于仿真的过程,比如如何模拟成千上万的实际用户来对服务器造成负载的过程,以及如何从千差万别的测试数据中分析并获取有效的测试结果,在这种情况下,从性能优化方面考虑,可以借助于性能测试工具提高测试的效率,提升测试结果的准确性。目前市面上有多款性能测试工具,其中LoadRunner是应用比较广泛、受到好评比较多的一款软件。LoadRunner是一种预测系统行为和性能的工业标准级负载测试工具,可以通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题。
3 自动化测试工具的优缺点
自动化测试突破了手工测试的局限性,很多通过手工测试无法做到都可以通过自动化测试工具来完成。例如,为了测试某网站服务器负载的压力和并发测试,应用自动化测试工具,就可以很简单地实现同时模拟几万人,甚至是数十万人,同时登录访问,测试网站服务器的承载能力,而这些都很难通过测试员的手工测试来完成。此外,验证系统是否能够稳定运行的可靠性测试,也无法通过手工测试完成,也需要自动化测试工具的帮助。
在测试中引入自动化测试工具,既可以实现查找缺陷的广泛性,又可以提高查找缺陷的速度,同时可以完成许多重复性的测试,因为自动化测试每次\行相同的脚本,所以不再需要大量的软件测试人员手动执行测试用例,而且自动化测试工具可以在非常短的时间内执行大量的测试用例,这样测试的效率就得到了极大提高。
自动化测试工具虽然拥有上述众多优势,但是它本身也有其不可避免的缺点,如在某些情况下,自动化测试并没有想象中那么完美,并不能帮助解决目前遇到的所有问题,甚至也没有发现几个问题;其次,如果测试人员缺乏对自动化测试工具的充分培训,可能无法更深层次地使用工具,从而导致工具的使用效率低下;此外,自动化测试中维护测试脚本的工作量比较大,在脚本开发过程中,如果更多依赖的是测试人员的经验, 这样就无法保证脚本的质量,从而直接影响测试结果的正确性。
4 结语
在软件测试项目中,可以根据项目需求的稳定性、项目开发周期的长短、自动化测试脚本的可重复使用性的来衡量该项目是否适合引入自动化测试工具进行测试。如果在整个开发过程中,软件需求变化频繁,或者项目开发周期比较短,那么该项目就不适合使用自动化测试工具。
在为项目选择自动化测试工具时,因为不同的测试工具有其自身的特点和适用范围,所以一定要根据实际问题和需要,认真分析该工具是否适合当前应用,然后选择一款性价比较高的自动化测试工具。
参考文献
【关键词】嵌入式软件;自动化测试;平台框架
进入二十一世纪之后,硬件元器件得到了飞速发展,从而也是的嵌入式软件的功能更加强大和复杂。随之而来的也是嵌入式软件测试工作的加重,传统的软件测试技术已经难以满足嵌入式软件越来越复杂的需求。而目前,市场上已经有较多的传统软件自动化测试技术,如何在这些技术的基础上进行改进,从而能够适应嵌入式软件环境,从而实现嵌入式软件的自动化测试,是嵌入式软件发展的重要方向。
1.嵌入式软件自动化测试平台分析
嵌入式软件的自动化测试即利用脚本来自动化驱动嵌入式软件的运行,并且自动收集相关数据进行分析,最终生成相应的测试报告。虽然,嵌入式软件的自动化测试流程与一般PC机应用软件的自动化测试流程相同。但是,由于嵌入式软件软件对电子设备的高度依赖性,以及电子设备收周围环境影响较重,从而导致嵌入式软件的自动化测试平台存在如下的问题。
(1)由于电子元器件受到周围环境的影响,无论在宿主机上所进行的动态测试多充分,也无法保证嵌入式软件在实际的硬件环境中通过。
(2)硬件系统非常复杂,难以对测试过程中所发现的问题进行排查。
(3)植入桩点会影响系统的实时性。
(4)上位机的测试环境中,由于上位机与下位机的通信量较大,测试结果数据较多,容易导致通信的堵塞。
2.嵌入式软件自动化测试平台概要设计
通过对嵌入式自动化测试框架的分析,本文提出一种由脚本驱动器、接口映射表、数据驱动器和支持函数库所组成的,针对嵌入式自动化软件测试的组合型测试框架。
如图1所示,高层脚本调用执行下层脚本;底层运行脚本通过查询接口映射表调用待测试系统接口进行驱动和通信;测试脚本从数据文件调用数据执行测试。
(1)脚本驱动器
脚本驱动器调用高层脚本,高层脚本调用下层脚本。底层脚本包括待测试系统具体的测试步骤。
(2)接口映射表
接口映射表借鉴了关键字驱动测试框架中的组件映射表思想。测试人员根据待测试系统的实际需求,设计接口名称和参数,从而实现待测试系统的抽象化。在运行测试脚本是,首先通过映射表匹配接口名称和参数,当系统接口改变时,只需要改变映射表即可,从而实现测试系统与待测试系统的松耦合。
(3)数据驱动器
数据启动器是测试脚本与数据文件的连接器,通常采用文本文件、XML文件等来实现。在测试过程中,需要数据时,有数据驱动器读取数据。数据驱动器是脚本与测试数据分离,当测试数据变更时,只需要修改数据驱动器,而不需要对脚本进行改动。
(4)支持函数库
包含了数据缓存、文件操作、字符串处理等测试框架中所用到的通用处理函数。
3.嵌入式软件自动化测试平台详细设计
3.1 测试框架设计
嵌入式软件自动化测试平台的卡框架,采用嵌入式软件通用的Host/Target测试策略。
如图2所示,本文所设计的嵌入式软件自动化测试平台采用测试管理工具和测试双层结构。
3.2 测试流程设计
在进行嵌入式软件自动化测试时,测试人员的工作包括:编写配置文件、编写脚本、生成数据文件、测试报告分析等工作。嵌入式软件的自动化测试流程如图3所示。
当建立了管理工具和测试自检的通信之后,向测试发送测试请求,并且将脚本和数据传送到测试上。测试将测试脚本存放到特定的区域执行,并且将测试结果返回给宿主端。当宿主端接收到测试所发送脚本执行完毕信号后,发送新的测试脚本和数据给测试,直到所有的脚本测试完成之后,对测试所返回的测试结果进行分析,得出最终的测试报告。
3.3 功能设计
3.3.1 管理工具功能
为了不占用宿主段过多资源,将一些协助测试模块都放在宿主端中。管理工具的功能结构如图4所示。
(1)脚本配置管理模块
在进行嵌入式软件自动化测试之前,需要设计一份配置文件。在配置文件中定义好了脚本位置、宿主机与测试之间的通信、脚本执行时间间隔、通信桩点个数等内容。测试管理工具先对脚本配置文件进行解析,并且将解析的信息传送给目标机。
(2)插桩模块
通过插桩对待测试软件的功能进行细分,并且根据执行的情况,来分析待测试软件的测试覆盖情况。
(3)日志分析生成模块
测试日志文件中主要包含了待测试软件的测试结果,以及测试覆盖信息。其中测试报告中包括了测试跟踪信息、测试用例、测试用例的期望和实际结果、测试用例的执行情况及汇总等。测试覆盖信息包括:测试和未测试的代码段、功能的覆盖标记及汇总等信息。
(4)数据通信模块
主要负责宿主机与测试之间的消息通信。
3.3.2 测试功能
测试运行在目标机上,是整个嵌入式软件自动化测试平台的核心,测试的整体结构如图5所示。
(1)测试驱动模块
根据配置管理,对管理工具发送的测试脚本进行解析,并且调用工具库中的通用函数来完成测试。同时,将测试结果和桩点覆盖信息存入到特定区域。
(2)数据驱动模块
在数据文件主要包含了测试脚本文件、测试数据文件和测试结果文件。当测试需要数据是,可以通过数据驱动模块完成数据表查找和数据批量处理等操作。对于测试数据量大,测试步骤类似的测试过程,可以极大的减少测试的复杂度。
(3)数据通信模块
主要负责与管理工具的数据通信模块进行数据交互。主要负责接收管理工具所发送的配置信息、脚本信息和数据文件信息;同时将测试结果和测试覆盖信息返回给管理工具。
4.结束语
软件测试是对软件质量进行评估的重要方法,自动化测试技术可以降低软件测试成本,缩短软件测试时间。特别是对于测试环境更加复杂的嵌入式软件而言,自动化测试具有更加重要的意义。
参考文献
[1]邓勇,曾建光.嵌入式软件系统及其自动测试技术的发展与现状[J].科技咨询导报,2007,21:5-6.
[2]凌永发,张云生,郭秀萍.软件测试自动化中的脚本技术[J].云南民族学院学报(自然科学版),2002,11(1):544-548.
[3]郑世伟.嵌入式软件的测试方法和工具[J].单片机与嵌入式系统应用,2001,4:26-28..