欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 计算机应用 > 基于Python的实时嵌入式软件测试脚本

基于Python的实时嵌入式软件测试脚本

日期:2023-01-24 阅读量:0 所属栏目:计算机应用


摘 要:计算机技术应用的不断普及,使得实时嵌入式软件在航空、航天、工业控制、交通、医疗和军事安全等诸多领域发挥着愈来愈重要的作用。不难看出,这些领域对软件的可靠性有很严格的要求,因为该领域的软件一旦失败,就会直接或间接影响人类的生命财产和生态环境的安危。所以,嵌入系统开发中软件的代码质量对产品的最终质量起到了决定性的作用,但是事实上由于对软件开发缺乏科学的监管手段,开发的软件往往得不到很好的测试与分析,未经充分的测试就交付给用户使用,从而影响了软件的使用效果。

关键词:嵌入式; Python
实时嵌入式软件的特点
  Python是一种解释型、面向对象、动态语义、语法优美、跨平台的开源脚本语言。理论上Python可以在任何平台(包括各种嵌入式操作系统,如Palm OS,VxWorks等)上编译并运行.。Python可以借助语言提供的API,使用C或C++来进行功能性扩展,既保留了方便灵活的语法和功能,又可以获得与C或C++几乎相同的性能。Python还被当作一种入门程序员最适合掌握的优秀语言,因为它免费、面向对象、扩展性强同时执行严格的编码标准。Python作为实时嵌入式系统,他具有极强的实时性与包含着嵌入系统所拥有的各种特点。
1.1 实时性
  所谓实时性,即必须满足时间约束的特性。实时软件的处理速度并不一定非常快,重要的是需要准时和及时,如表1 所示。对于实时软件而言,其正确性不仅由系统的功能和行为特性决定,还依赖于系统的时间特性。与非实时软件相比,时间特性是实时软件的一个重要方面,它是决定实时软件成功与否的关键因素之一。
1.2 嵌入式特性
  所谓嵌入,即一个系统A 内置于一个更大的系统B中,则称为A嵌入于B。嵌入式软件系统的一个突出特点在于,通常只为软件提供执行环境(运行环境),而不提供软件的开发环境(宿主环境)。也就说,嵌入式软件的开发环境和运行环境是不一致的。正是这个不同,给嵌入式软件的测试带来了不少的麻烦。因为即使在宿主机环境下测试再充分,也不能说明在目标机环境下该软件运行不出问题。因而,嵌入式软件还面临着目标环境的测试。这不仅增加了测试的代价,而且还带来了嵌入式软件的测试策略问题,即哪些测试分配在宿主环境进行,哪些测试分配到目标环境下进行。嵌入式系统中常见的类型恰恰又是实时系统。
二.实时嵌入式软件的测试环境
  要测试整个Python实时嵌入式软件的主要是根据测试软件的运行环境(目标机环境)和开发环境(宿主机环境)的不一致进行测试,这一特点导致实时嵌入式软件测试要对当前软件运行的环境进行测试。
2.1 Python嵌入式软件测试的系统结构
    Python实时嵌入式软件在软件的开发过程当中,大都属于在主机上进行软件编码,之后将该段代码编译之后加载到目标机上进行运行,并通过测试代理的方式,对该段代码进行错误、反复等白箱与黑箱的测试。由于目标机的资源相对匮乏,测试所得的信息在目标机上不便分析,通过主机和目标机之间的通信把测试所得信息上传回主机,再由主机中的测试结果分析工具对测试信息进行分析。嵌入式测试系统基本结构如图1所示。

2.2 宿主机及目标机的结构
  
  如图2 所示,在宿主机方,在测试开始前制定测试计划,根据不同的测试目的选择相应的测试用例,生成测试脚本,通过脚本解释器实时解释非实时生成的测试命令,并将测试命令和数据通过目标服务器发送至被测目标系统;同时将从目标机上的测试代理获得测试结果数据后,可显示测试结果,以提示测试人员,还可以由测试结果分析工具对测试结果进行分析,最后传送回测试结果数据库,并生成测试报告。通常宿主机上进行的测试是单元测试。如果被测单元所使用的是高级语言或与目标机相同的汇编语言,则可以直接在宿主机上进行测试;如果被测单元使用的汇编代码与目标机不同,则需要指令仿真器。
  在目标机方,测试代理接收测试命令后运行被测实时嵌入式应用软件,被测应用软件将测试后生成信息发送到测试代理中的一个专门任务的消息队列中,此任务负责在适当的时候将这些信息发送到宿主机方。同时目标服务器中也有负责接收测试所得信息的专门任务,它从目标机上的测试代理获得测试结果数据。无论在宿主机上进行的测试如何完善,在目标机上的测试仍然是不可替代的, 因为有一些问题只能在目标机上测试才可以被确认和发现。
3.脚本测试及脚本解释器
3.1脚本测试
  在整个Python语言测试过程当中,对于脚本技术的引入是实现整个软件开发的自动化技术的最有效手段,软件脚本的测试不但可以减少测试人员的工作量,而且能够提高整个软件测试的可维护性、可在用性。实现软件测试过程当中用户与被测软件之间的相互支持。同时由于Python语言的移植性较好,在实现跨平台操作时,代码的重复利用性,可以增强软件代码的重复性使用的概率。
  测试脚本的编制是编制具有正规语法的数据和指令的集合。在软件测试过程中,测试脚本通常以文本形式存在,由测试脚本组织用户所施加的一系列软件执行动作,达到驱动被测软件运行的目的,从而完成测试。
3.2脚本解释器
  根据实时嵌入式软件测试脚本语言的设计,设计针对该语言的解释器。脚本语言解释器是脚本语言的支撑,解释器设计的成功与否直接关系到能否实现脚本化的实时嵌入式软件测试。针对上述脚本语言设计中所提到的用户施加的测试命令及其特性,则需要处理测试中各命令的时间要求以及命令之间的并发同步等问题,解释器应由两部分组成,即控制部分和解释部分。
  控制部分的作用在于对测试脚本进行预处理,提取各种命令的执行脚本,生成按时间排列的命令表,然后根据实时调度时钟信号和条件判断触发解释部分的调用,借助在控制部分中的多命令处理方式可以保证测试中各种命令的并发和同步的处理,从而保证了实时嵌入式软件测试中对实时特性的要求;解释部分的工作原理是在控制部分按时钟信号触发后,加载需要解释的脚本执行代码,脚本源代码首先由词法分析器进行词法分析,分离出标识符、关键字和变量名等,然后由语法分析器根据语法定义,分析源程序的语法正确性并根据语义执行相应的语义动作,最后生成测试命令并通过目标服务器下载到目标机上,以驱动被测软件的运行。
4.小结
  随着我国软件业的发展,作为软件质量保证的重要组成的软件测试已越来越受到重视,而软件测试自动化工具由于可以提高软件测试的有效性和效率。因此,软件测试自动化工具的开发已成为软件测试的一个重要研究领域。本文将Python语言作为实时嵌入式软件测试脚本的主要工作,初步浅谈了整个软件测试脚本的作用与实际方法。
参考文献:
[1]武海燕、晏立,嵌入式实时软件的任务构造[J],计算机工程,2010,36(7):39-41
[2]王海晟、楼文晓,嵌入式软件模拟测试平台的设计与实现技术[J],计算机工程,2006,32(15):247-249
[3]王轶辰、刘斌、阮镰,嵌入式软件可靠性仿真测试环境框架[J],计算机工程,2006,32(19):43-45,4 本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/242974.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学