一种软件代码自动测试方法及测试系统技术方案

技术编号:20484518 阅读:20 留言:0更新日期:2019-03-02 18:49
本发明专利技术提供一种软件代码自动测试系统,其特征在于,包括:测试运行模块,所述运行模块接收软件代码,运行所述软件代码,并生成运行日志;存储模块,所述存储模块存储有基线日志;判断模块,所述判断模块接收来自所述测试运行模块的所述运行日志,并读取所述存储模块中的所述基线日志,比对所述运行日志和基线日志根据比对结果输出测试结果。本发明专利技术所提供的测试系统及测试方法通过统一格式的日志,可以实现跨语言、跨功能模块,从单个模块到整个系统范围做自动测试,只需要改动代码的时候同时改动打印的日志即可,甚至有时候不需要改动打印的日志。这种自动测试方法及系统很大程度上节省了时间和人力成本,从而保证了智能产品的开发效率。

【技术实现步骤摘要】
一种软件代码自动测试方法及测试系统
本专利技术涉及一种软件代码自动测试方法及测试系统。
技术介绍
随着智能照明市场的火爆,智能照明产品被要求推出市场的速度也越来越快。这种速度的要求在人力和时间资源很难短期改变的情况下,对智能照明产品的质量保证带来了很大的影响。现有的自动化测试方法一般有两类:1)单元自动化测试框架:利用如Junit这样的单元自动测试框架,但是每种语言都有自己适合的实现,如适用于Java编程语言的Junit、适用于C编程语言的CUnit,不能做到跨语言做自动化测试。而且这类框架只能局限在功能模块,不能做到跨功能模块做自动化测试。2)回归自动化测试工具:利用如QTP这样的回归自动测试工具,这类工具一般需要先录制一遍用户界面操作流程,然后利用录制的脚本模拟用户界面流程的操作达到自动化测试目的。该方法强烈依赖界面元素和操作流程的稳定性,任何一个改动都需要相应的自动化测试代码进行改动,需要编写大量的自动化测试代码。
技术实现思路
本专利技术的目的是为了解决上述问题,本申请提供一种可以节省花在测试产品的人力和时间成本的软件代码自动测试方法及测试系统。本专利技术为实现上述功能,所采用的技术方案是提供一种软件代码自动测试方法,其特征在于,包括以下步骤:步骤A软件代码提交;步骤B检测到所述软件代码提交,自动开始测试,运行所述软件代码,并生成运行日志;步骤C将所述运行日志和基线日志进行比较,如一致判断测试通过,不一致则判断测试未通过;步骤D反馈测试结果。进一步的,所述运行日志和所述基线日志以相同的预设格式编写。进一步的,所述基线日志是由基线版本软件代码运行获得的运行日志。进一步的,所述软件代码或所述基线版本软件代码运行时,各项操作分别形成日志记录,所述运行日志和所述基线日志由日志收集模块收集所述日志记录按时序整理后生成。进一步的,所述步骤A中所述软件代码提交到GitLab代码库,所述GitLab代码库安装有Jenkins插件,所述步骤B为所述GitLab代码库一旦检测到所述软件代码提交,自动执行Jenkins的任务,所述Jenkins任务向软件执行单元发送运行指令实现自动化测试的测试功能,并生成所述运行日志。进一步的,所述步骤C之前还包括判断步骤,判断本次生成的所述运行日志是否为基线日志,如果判断结果为是,则保存所述运行日志为所述基线日志,如果判断结果为否,则不作操作继续进行步骤C。本申请还提供一种软件代码自动测试系统,其特征在于,包括:测试运行模块所述运行模块接收软件代码,运行所述软件代码,并生成运行日志;存储模块所述存储模块存储有基线日志;判断模块所述判断模块接收来自所述测试运行模块的所述运行日志,并读取所述存储模块中的所述基线日志,比对所述运行日志和基线日志根据比对结果输出测试结果。进一步的,所述判断模块比对所述运行日志和基线日志一致时,输出的测试结果为测试通过,比对结果不一致时,输出的测试结果为测试未通过。进一步的,所述测试运行模块包括执行模块和日志收集模块,所述执行模块向软件执行单元发送运行指令,软件执行单元运行所述软件代码并形成日志记录,所述日志收集模块收集所述日志记录,并按时序生成所述运行日志。进一步的,所述判断模块还对收到的运行日志进行识别,当所述运行日志由基线版本软件代码运行获得,则将此运行日志写入所述存储模块作为所述基线日志。进一步的,所述执行模块包括安装有GitLab代码库的运算处理器。进一步的,所述GitLab代码库安装有Jenkins插件,所述GitLab代码库一旦检测到所述软件代码的输入,自动执行Jenkins的任务,所述Jenkins任务向所述软件执行单元发送运行指令实现自动化测试的测试功能。本专利技术所提供的测试方法通过统一格式的日志,可以实现跨语言、跨功能模块,从单个模块到整个系统范围做自动测试,只需要改动代码的时候同时改动打印的日志即可,甚至有时候不需要改动打印的日志。这种自动测试方法及系统很大程度上节省了时间和人力成本,从而保证了智能产品的开发效率。附图说明图1是本专利技术实施例中测试系统的结构示意图;图2是本专利技术实施例中测试方法的基本流程示意图;图3是IOT代码链路经典场景流程;图4是本专利技术实施例中软件开发、测试的基本流程示意图。具体实施方式以下结合附图和具体实施例对本专利技术提出的软件代码自动测试方法及测试系统作进一步详细的说明。请参考图1,图1所示是本专利技术提出的软件代码自动测试系统的一个较佳实施例的结构示意图,该检测设备系统包括:测试运行模块、存储模块和判断模块。其中,测试运行模块通过输入接口接收开发者开发完成的软件代码,测试运行模块接收到传入的软件代码后会自动运行该代码,并生成运行日志。测试运行模块包括执行模块和日志收集模块。执行模块向软件执行单元发送运行指令,软件执行单元运行所述软件代码并形成日志记录,日志收集模块收集单条日志记录,并按时序生成所述运行日志。执行模块可以是一个测试服务器,也可以是一个具有测试功能的处理器,执行模块只是根据提交的软件代码向这些代码的运行设备发送运行指令,真正的代码运行是在软件执行单元进行的。软件执行单元可以和执行模块采用同一个物理设备,而在多设备程序环境中软件执行单元可以分布设置,软件执行单元可能是输入端口设备如移动设备上APP应用、固定设置的控制面板等;软件执行单元也可以是网络设备如网关、云服务器等;软件执行单元还可以是各处终端设备如智能灯具、智能音箱等。执行模块可以向各软件执行单元分别发出运行指令,而在顺序执行的程序中,执行模块仅向其中一个软件执行单元发出运行指令,其他软件执行单元即会根据程序设定依次执行后续。如测试开灯程序时,操作执行仅向面板发出运行开灯程序的指令,面板自动触发网关传递信息,而灯作为最后一步的软件执行单元由网关命令触发实现开灯,整个开灯程序完成。操作执行模块和各软件执行单元之间可以通过有线连接,也可以通过无线方式进行通讯,本申请对此不作限定。软件执行单元在运行软件代码时会自动形成日志记录,每一项操作都会分别形成日志记录,如用户登录会形成一条登录的日志记录,照度变化在程序实现变化后也会形成一条日志记录,当软件执行单元为多个时,需要由日志收集模块收集各软件执行单元生成日志记录,并按时序生成运行日志。日志收集模块可以是一个单独的日志处理服务器,可以和执行模块设置在同一个处理器中,由一个处理器同时完成程序运行中所需进行的相关工作和日志收集工作。我们以如图3所示的IOT代码链路经典场景为例,来说明一个具体场景中的代码运行及日志记录生成形式。在本实施例中,执行模块包括安装有GitLab代码库的运算处理器,而软件执行单元分别为APP/面板、网关、IOT云平台及终端设备。其中,GitLab代码库安装有Jenkins插件,当GitLab代码库一旦检测到有软件代码的输入,就自动执行Jenkins的任务,Jenkins任务向所述软件执行单元发送运行指令实现自动化测试的测试功能。在图中接收到实现“调高灯色温”功能的软件代码,Jenkins任务作用于APP/面板的对应代码接口requestAddCT(),在APP/面板就会产生对应的产品日志-“APP/面板请求调高灯色温”;下一步操作在网关进行,网关根据程序会将请求发送到云平台,网关对应代码接口f本文档来自技高网...

【技术保护点】
1.一种软件代码自动测试方法,其特征在于,包括以下步骤:步骤A 软件代码提交;步骤B 检测到所述软件代码提交,自动开始测试,运行所述软件代码,并生成运行日志;步骤C 将所述运行日志和基线日志进行比较,如一致判断测试通过,不一致则判断测试未通过;步骤D 反馈测试结果。

【技术特征摘要】
1.一种软件代码自动测试方法,其特征在于,包括以下步骤:步骤A软件代码提交;步骤B检测到所述软件代码提交,自动开始测试,运行所述软件代码,并生成运行日志;步骤C将所述运行日志和基线日志进行比较,如一致判断测试通过,不一致则判断测试未通过;步骤D反馈测试结果。2.根据权利要求1所述的软件代码自动测试方法,其特征在于:所述运行日志和所述基线日志以相同的预设格式编写。3.根据权利要求2所述的软件代码自动测试方法,其特征在于:所述基线日志是由基线版本软件代码运行获得的运行日志。4.根据权利要求3所述的软件代码自动测试方法,其特征在于:所述软件代码或所述基线版本软件代码运行时,各项操作分别形成日志记录,所述运行日志和所述基线日志由日志收集模块收集所述日志记录按时序整理后生成。5.根据权利要求4所述的软件代码自动测试方法,其特征在于:所述步骤A中所述软件代码提交到GitLab代码库,所述GitLab代码库安装有Jenkins插件,所述步骤B为所述GitLab代码库一旦检测到所述软件代码提交,自动执行Jenkins的任务,所述Jenkins任务向软件执行单元发送运行指令实现自动化测试的测试功能,并生成所述运行日志。6.根据权利要求4所述的软件代码自动测试方法,其特征在于:所述步骤C之前还包括判断步骤,判断本次生成的所述运行日志是否为基线日志,如果判断结果为是,则保存所述运行日志为所述基线日志,如果判断结果为否,则不作操作继续进行步骤C。7.一种软件代码自动测试系统,其特...

【专利技术属性】
技术研发人员:周飞
申请(专利权)人:欧普照明股份有限公司
类型:发明
国别省市:上海,31

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

1