热度 15
2016-5-18 10:30
962 次阅读|
0 个评论
目前的电子系统日趋复杂,系统的复杂度为测试带来了更高的要求。而且电子系统的设计越来越多的需要考虑型号的继承性和复用性,而对于系统该型而言,如果没有可积累的测试框架来支撑测试实现,就会产生大量测试实现和测试执行的工作量,极大延缓了型号的研制周期,同时也无法保证系统的质量。 自动化测试一方面可以解决缩短测试周期,另一方面由于用例被固化且由计算机自动执行,可以有效的减少人为差错,提高被测件的质量。但自动化测试的方法及工具很多,选择一款合适的测试框架和测试工具非常重要。 自动化测试根据方法的不同,分为以下几种: 记录回放的自动化测试 早起较为流行的测试方法,无需编程技能即可快速上手。然而这种方法相对脆弱,一旦系统发生变化测试就会受到影响,分散的脚本不可重用且难以维护,而且系统在测试前必须可用(也就意味着无法使用A-TDD方法)。 线性脚本的自动化测试 允许使用各种语言来编写非结构化脚本,脚本直接与被测系统交互。能够快速上手,灵活性强。但是编写脚本需要编程技能,系统中一个改动会影响所有脚本,没有经过模块化或重用的大量脚本难以维护。 模块化脚本的自动化测试 驱动脚本执行测试,测试库函数完成与被测系统交互。驱动脚本编写起来非常简单,这样可以更快地建立新测试,容易维护。然而需要花时间和编程技能建立测试库,并将测试数据嵌入脚本,建立新测试就需要新的测试脚本。 数据驱动的自动化测试 将数据与测试脚本分离,基于模块化的测试库,一个驱动脚本可以执行多个相似测试,这样非常容易建立新测试。维护工作可以分离,测试人员负责数据,程序员负责写测试库。然而,不同类型测试仍需要新的驱动脚本,初始建立数据解析器和重用组件需要花人力。 关键字驱动的自动化测试 将数据与关键字结合来描述如何使用数据执行测试。这种方法具备数据驱动的优势,同时非编程人员也能建立新类型测试。所有测试由同一个框架来执行,无需不同的驱动脚本。然而初始成本很大,但是可以使用开源方案! 从以上分析可以看出,关键字驱动的自动化测试与传统的自动化测试相比,对人员没有编程能力的要求,同时用户可以对关键字进行封装和扩展,定制出模块化、可不断复用的测试库。关键字测试在测试框架上保证了各个层次的用例都可以被复用。当系统顶层设计未变化而底层技术升级后,只需更新测试库就可以完全复用顶层用例。如果底层技术未升级,所有的测试库以及关键字都可以再次被复用到其他型号。 以一个简单的例子来说明关键字驱动测试: 该示例显示了如何对计算器软件进行自动化测试,测试库中定义了”Push Button”, “ Push Buttons”, “Result should be”这样的关键字,用户可以使用关键字来封装自己的关键字”Calculator has been cleared”, “User types”, “User pushes equals”, “Result is”,然后可以通过这些关键字来编写自己的测试用例。 恒润科技从2012年起将基于关键字的自动化测试理念引入到电子系统的仿真和测试解决方案中,根据该理念自主研发了基于关键字驱动的自动化测试工具RainBot。 RainBot工具经过几年的研发,目前已经具备了对电子系统仿真及测试的自动化控制,系统默认提供了多种用于仿真测试的关键字。包括用于接口测试的关键字集合、用于仿真监控的关键字集合、用于流控的关键字集合等。接口测试关键字可以与恒润科技的接口测试平台无缝对接,同时也可以通过适配接入其他的测试系统。仿真监控关键字除了支持恒润自研的仿真机HiGale外,同时也支持HIL API,可接入支持HIL API的其他通用仿真机。