自动化测试嵌入式软件的方法技术

技术编号:11134609 阅读:156 留言:0更新日期:2015-03-12 10:12
本发明专利技术提出一种自动化测试嵌入式软件的方法,旨在提供一种设计与执行不再分离,能有效提高嵌入式软件测试效率和质量的方法。本发明专利技术通过下述技术方案予以实现:运用软件工程化将接口设计、测试策划、测试设计、测试执行、缺陷管理和回归测试集成到一个统一平台进行管理。根据项目不同,配置数据元和数据块之间的级数,设计接口控制文件;建立测试交联环境图,制定测试类型,设计测试项或测试子项,测试用例名称以及测试用例描述;设计独立测试用例,并将独立测试用例通过流程图联系在一起组成场景/业务流测试用例,测试设计的数据存入到数据库里;测试执行结合测试环境图、测试用例和接口路由,共同组成测试平台;测试结果由系统自动记录。

【技术实现步骤摘要】

本专利技术涉及嵌入式软件测试技术,尤其是涉及一种嵌入式软件的自动化测试及管理方法。
技术介绍
随着嵌入式技术的普及和发展,嵌入式应用日益走向纵深,嵌入式软件的开发规模也日益扩大,与之对应的嵌入式软件复杂程度也越来越高。由于嵌入式软件往往直接或间接控制一些硬件,与硬件设备组成一个系统,在实际环境下如果嵌入式软件出现错误,可能使其控制的硬件设备处于异常状态,如果软件控制的是安全关键设备,其软件故障将对整个系统造成无法弥补的损失,甚至危及人生和财产安全。嵌入式系统的特殊性决定了运行在其上的系统和应用软件必须精简高效,稳定可靠,使得软件的开发在整个嵌入式系统开发中的比重越来越高,软件的质量对整个产品的质量起到了决定性的作用。软件测试是根据软件开发阶段的规格说明和程序的内部结构而精心设计一批测试用例(Test Case,即输入数据和预期的输出结果),并利用这些测试用例去运行程序,以发现错误的过程。软件测试是软件质量保证的关键步骤,是软件生命周期的重要环节,是软件工程研究领域的重要内容。软件测试的有效开展对于提高软件质量至关重要。随着嵌入式系统复杂程度越来越高,嵌入式软件的测试正面临前所未有的挑战。大多数软件测试方法和工具都可以直接或间接地用于嵌入式软件的测试,但是由于嵌入式系统的自身特点,如实时性、内存不丰富、I/O通道少、开发工具昂贵、与硬件紧密相关、CPU种类繁多等等,嵌入式软件的开发和测试策略也就与一般商用软件的开发和测试策略有了很大的不同。嵌入式软件与其他软件相比,它具有专用性,它只能在需求所指定的硬件平台上运行。并且嵌入式软件的开发环境和运行环境是不一致的,因此即使宿主机环境下测试再充分,也不能说明在目标机环境下运行该软件就不出问题。因而,嵌入式软件还面临着目标环境的测试。这不仅增加了测试的代价,而且还带来了嵌入式软件的测试策略问题。对于嵌入式软件的配置项测试和系统测试,其被测软件运行在真实的目标环境下,交联的配测设备是实物或仿真环境,通过输入真实或模拟的激励,测试软件在目标环境下的响应,对于了解软件的真实运行,对于提高软件的质量至关重要。目前,嵌入式软件配置项测试和系统测试,测试手段大多是手工编写测试用例,手动执行测试用例,再人工记录测试结果。被测软件的测试输入,往往依赖于开发设计的配测模拟器,而在项目时间紧张没有配测模拟器时,只能使用串口调试助手等调试工具模拟输入报文,如此需要对照ICD设计二进制或十六进制的测试输入数据,很不直观,接收到的输出数据也是二进制或十六进制的报文,还需对照ICD去逐个手动解析,不便于观察。对于交联环境复杂的软件测试,还需要针对不同模块不同接口,在不同的主机之间来回切换,不便于操作。当软件中所含缺陷被发现时,如果缺陷跟踪与管理系统不够完善,就可能会遗漏对这些缺陷的修改;而开发者对缺陷的理解不够透彻,也可能导致所做的修改只修正了缺陷的外在表现,而没有修复缺陷本身,从而造成修改失败。修改还有可能产生副作用,从而导致软件未被修改的部分产生新的问题,使本来工作正常的功能产生错误。同样,在有新代码加入软件的时候,除了新加入的代码中有可能含有缺陷外,新代码还有可能对原有的代码带来影响。因此,每当软件发生变化时,就必须重新测试现有的功能,以便确定修改是否达到了预期的目的,检查修改是否损害了原有的正常功能。同时,还需要补充新的测试用例来测试新的或被修改了的功能。这就是软件的回归测试Regression Test。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重。对于接口较为复杂的软件,构造测试输入数据在执行测试过程中需要花费很多时间,而这些测试数据在手动测试中难以保存,在进行回归测试时,需要重新编辑、输入、执行,费时费力。随着嵌入式系统的规模和复杂度急剧增加,开发周期和成本也越来越高。在软件的开发过程中,依靠人力进行分析测试效率太低,而且不能保证软件质量。对于测试成果,也难以继承和积累下来。自动化测试是使用一种自动化测试工具来验证各种软件测试的需求,它包括测试活动的管理与实施。自动化测试作为一种重要的软件测试技术,如果将其引入嵌入式软件的配置项测试和系统测试流程中,将会对软件的质量、成本和周期带来显著的效果。作为嵌入式软件开发关键环节的测试自动化技术,在研究与发展同嵌入式软件开发的其他环节相比尤为滞后,“手工作坊式”的嵌入式软件测试的现象还没有彻底改变,不仅无法保障嵌入式软件的质量,而且严重制约了嵌入式软件产业的整体发展。嵌入式软件系统的复杂性也给嵌入式软件的测试带来了很多的困难。目前的自动化测试解决方案几乎都是采用“录制.回放"的技术,侧重对界面的测试。所谓“录制.回放”技术,就是先由手工完成一遍需要测试的流程,同时计算机记录下这个流程,并形成特定的脚本程序。脚本是一组测试工具执行的指令集合,也是计算机程序的一种形式。脚本可以通过录制测试的操作产生,然后再做修改,但这种简单的录制/回放,由工具录制并记录操作的过程和数据形成脚本,通过回放来重复人工操作的过程。在这种模式下数据和脚本混在一起,几乎一个测试用例对应一个脚本,维护成本很高。而且即使界面的简单变化也需要重新录制,脚本可重复使用的效率低。而嵌入式的软件界面较为简单,甚至很多嵌入式软件根本没有界面。对于嵌入式软件测试,关注更多的是不同模块之间的数据交互、控制,以及响应。同时,随着嵌入式软件应用得越来越广泛,嵌入式软件之间的交互变得越来越复杂,即交联关系更为复杂。当前测试工具基本都是针对单机执行设计的,很难建立多个模块之间交互过程的业务流用例测试,而这方面的测试,却往往是一个软件的核心功能测试。同时,对于嵌入式软件测试,不管是进行二方还是三方的测试,都需要生成格式严谨的测试计划、测试说明、测试记录和测试报告。目前通常的做法都是编写好测试计划、测试说明后,手动执行测试用例,记录测试结果,再编写测试报告。现有的测试管理工具如KTFLOW、QC可以辅助测试过程管理,但与测试执行是分离的,即测试记录需要手动记入,测试的效率和结果的真实性都有待提高。另外,目前的测试工具都没有考虑软件工程化的问题,在测试过程中,软件需求和接口文档变更后,测试人员不能在第一时间获取到变更信息,导致测试工作的变更滞后,响应较差,影响整个项目的进度。对于嵌入式软件,自动化测试一直没有找到一种行之有效的方法,从而严重影响了软件质量和开发效率。整个测试过程就是耗费大量时间的重复体力操作。而且测试过程中,每次测试用例的结果都是人为作判本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201410655457.html" title="自动化测试嵌入式软件的方法原文来自X技术">自动化测试嵌入式软件的方法</a>

【技术保护点】
一种自动化测试嵌入式软件的方法,具有如下技术特征:运用软件工程化将接口设计、测试策划、测试设计、测试执行、测试结果记录、缺陷管理和回归测试集成到一个统一平台进行管理,具体包括以下步骤:步骤1,接口设计,把接口设计的元素分为数据元、数据块、数据组、逻辑块、接口消息模块,根据项目不同,配置数据元和数据块之间的级数,将设计好的接口控制文件ICD存储在数据库里,后台生成标准的XML格式文件,以供测试数据自动生成、测试数据解析和接口文档自动生成使用;步骤2,测试策划,建立测试交联环境图,制定测试类型,设计测试项或测试子项,测试用例名称以及测试用例描述,每个测试用例为一个测试点,并设定自动化测试系统支持根据不同格式的模板生成测试计划,即测试需求分析的内容;步骤3,测试设计,测试设计分为三步,第一步根据ICD元素,结合逻辑关系自动生成测试数据;第二步设计独立测试用例,将本用例涉及到的ICD拖入到设计界面建立本用例的交联框图,并为每条ICD选取/设计对应的测试数据和数据属性;第三步设计关联测试用例,基于场景/业务流,模仿用户在实际使用过程中的操作,将不同的测试用例通过流程图的方式联系在一起,设计场景或业务流测试用例,或对不同的状态转换进行测试;在界面设计好测试数据及属性后,自动化测试系统自动生成测试脚本和测试步骤,步骤的描述围绕数据的发送、接收展开,以数据为中心,格式统一,测试设计的数据存入到数据库里,同时支持根据不同格式的模板生成测试说明,测试用例的描述在测试策划时由测试人员设计,测试步骤由自动化测试系统自动生成;步骤4,测试执行,测试执行结合测试环境图、测试用例、接口路由,共同组成测试平台,测试执行分为三步,第一步为数据分发,由接口路由总控端根据界面设计的测试交联环境图和测试用例,将测试激励/输入数据分发给对应的代理端;第二步为代理端驱动接口通信模块,将对应的测试数据发送给被测软件;第三步为代理端监控被测软件的响应,将与被测软件交互的模块之间的通信报文转发给总控端进行统一处理;步骤5,测试结果显示,总控端收到代理端传回的数据后,进行显示并解析,同时与测试用例的预期结果报文进行比较,如果相同则判用例通过,显示用例执行成功Pass,如果不相同则判该用例不通过,显示用例执行失败Fail,测试结果由自动化测试系统自动记录,自动化测试系统支持根据不同格式的模板生成测试记录。...

【技术特征摘要】
1.一种自动化测试嵌入式软件的方法,具有如下技术特征:运用软件工程化将接口设计、测
试策划、测试设计、测试执行、测试结果记录、缺陷管理和回归测试集成到一个统一平台进
行管理,具体包括以下步骤:
步骤1,接口设计,把接口设计的元素分为数据元、数据块、数据组、逻辑块、接口消息模
块,根据项目不同,配置数据元和数据块之间的级数,将设计好的接口控制文件ICD存储
在数据库里,后台生成标准的XML格式文件,以供测试数据自动生成、测试数据解析和接
口文档自动生成使用;
步骤2,测试策划,建立测试交联环境图,制定测试类型,设计测试项或测试子项,测试用
例名称以及测试用例描述,每个测试用例为一个测试点,并设定自动化测试系统支持根据不
同格式的模板生成测试计划,即测试需求分析的内容;
步骤3,测试设计,测试设计分为三步,第一步根据ICD元素,结合逻辑关系自动生成测试
数据;第二步设计独立测试用例,将本用例涉及到的ICD拖入到设计界面建立本用例的交
联框图,并为每条ICD选取/设计对应的测试数据和数据属性;第三步设计关联测试用例,
基于场景/业务流,模仿用户在实际使用过程中的操作,将不同的测试用例通过流程图的方
式联系在一起,设计场景或业务流测试用例,或对不同的状态转换进行测试;在界面设计好
测试数据及属性后,自动化测试系统自动生成测试脚本和测试步骤,步骤的描述围绕数据的
发送、接收展开,以数据为中心,格式统一,测试设计的数据存入到数据库里,同时支持根
据不同格式的模板生成测试说明,测试用例的描述在测试策划时由测试人员设计,测试步骤
由自动化测试系统自动生成;
步骤4,测试执行,测试执行结合测试环境图、测试用例、接口路由,共同组成测试平台,
测试执行分为三步,第一步为数据分发,由接口路由总控端根据界面设计的测试交联环境图
和测试用例,将测试激励/输入数据分发给对应的代理端;第二步为代理端驱动接口通信模
块,将对应的测试数据发送给被测软件;第三步为代理端监控被测软件的响应,将与被测软
件交互的模块之间的通信报文转发给总控端进行统一处理;
步骤5,测试结果显示,总控端收到代理端传回的数据后,进行显示并解析,同时与测试用
例的预期结果报文进行比较,如果相同则判用例通过,显示用例执行成功Pass,如果不相同
则判该用例不通过,显示用例执行失败Fail,测试结果由自动化测试系统自动记录,自动化
测试系统支持根据不同格式的模板生成测试记录。
2.如权利要求1所述的自动化测试嵌入式软件的方法,其特征在于:在缺陷管理中,对于
执行失败Fail的测试用例,确认是被测软件缺陷的,在对应的测试用例后提交缺陷跟踪单,

\t开发人员进行缺陷修复后进行回归测试,关闭已修改的缺陷;自动化测试系统支持根据不同
格式的模板生成缺陷报告单。
3.如权利要求1所述的自动化测试嵌入式软件的方法,其特征在于:在回归测试中,如果
ICD没有变更,回归时复用前期设计的测试用例,并自动进行回归测试执行;如果ICD的
数据元素发生了变化,自动化测试系统自动标识...

【专利技术属性】
技术研发人员:阳长永孙肖孙云杨静
申请(专利权)人:中国电子科技集团公司第十研究所
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1