CN109902005B - 一种自动化测试的方法和系统 - Google Patents

一种自动化测试的方法和系统 Download PDF

Info

Publication number
CN109902005B
CN109902005B CN201910123739.4A CN201910123739A CN109902005B CN 109902005 B CN109902005 B CN 109902005B CN 201910123739 A CN201910123739 A CN 201910123739A CN 109902005 B CN109902005 B CN 109902005B
Authority
CN
China
Prior art keywords
software
test
file
terminal
mobile terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910123739.4A
Other languages
English (en)
Other versions
CN109902005A (zh
Inventor
戴亦斌
金伟光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Testin Information Technology Co Ltd
Original Assignee
Beijing Testin Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Testin Information Technology Co Ltd filed Critical Beijing Testin Information Technology Co Ltd
Priority to CN201910123739.4A priority Critical patent/CN109902005B/zh
Publication of CN109902005A publication Critical patent/CN109902005A/zh
Application granted granted Critical
Publication of CN109902005B publication Critical patent/CN109902005B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开一种自动化测试的方法及系统,在开发人员将编写的软件代码提交后,可以较为高效、准确地根据软件代码进行对应的软件测试。服务端在获取到开发人员提交的软件代码后,可以对该软件代码执行自动化打包操作,得到对应的软件升级文件,此后可以将该软件升级文件发送至文件存储器,并向用于执行测试操作的终端发送测试指令。终端在接收到服务端发来的测试指令后,可以自动从文件存储器中下载软件的升级文件,并根据该软件升级文件,对具有连接关系的被测移动终端进行自动化软件升级,分别得到升级后的软件,此后就可以利用预设的测试脚本,在被测移动终端中对升级后的软件进行自动化测试。

Description

一种自动化测试的方法和系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种自动化测试的方法和系统。
背景技术
在软件开发过程中,需要对开发结果进行不断测试,以确保软件的可用性。比如针对软件中功能模块的升级、图形界面的更新等,需要对升级后的软件进行反复测试。具体地,软件的开发人员会根据特定的开发需求,以该需求所需的数据编写成对应的软件代码,以便用于执行测试操作的终端可以根据该软件代码对升级后的软件进行测试。
一般情况下,开发人员可以先将软件代码提交到指定位置,以便运维人员可以从该指定位置中获取并进行核查,从而打包成软件升级文件,此后再部署到终端中,并触发终端对软件进行升级,并对升级后的软件执行测试操作。
然而,运维人员在对软件代码进行核查和打包的过程中,难免会由于人为因素导致效率低、出错率高等问题,进而在很大程度上影响测试的效率,所以需要提供一种方案,在开发人员提交软件代码后,能够较为高效、准确地根据该软件代码完成软件测试。
发明内容
本发明实施例提供一种自动化测试的方法,用于在开发人员将编写的软件代码提交后,较为高效、准确地根据软件代码进行对应的软件测试。
本发明实施例还提供一种自动化测试的系统,用于在开发人员将编写的软件代码提交后,较为高效、准确地根据软件代码进行对应的软件测试。
为解决上述技术问题,本发明实施例是这样实现的:
本发明实施例采用下述技术方案:
一种自动化测试的方法,所述方法应用于服务端,包括:
触发针对软件代码的获取操作,得到开发人员提交的软件代码,所述软件代码中包含升级软件所需的数据;
对所述软件代码执行自动化打包操作,生成对应的软件升级文件;
将所述软件升级文件发送至文件存储器,并向用于执行测试操作的终端发送测试指令,以便触发所述终端根据所述软件升级文件对被测移动终端中的软件执行自动化测试。
一种自动化测试的方法,所述方法应用于执行测试操作的终端,包括:
当接收到服务端发来的测试指令后,触发从文件存储器中下载软件升级文件的操作;
根据所述软件升级文件,对具有连接关系的被测移动终端执行自动化软件升级操作,得到升级后的软件;
利用预设的测试脚本,在所述被测移动终端中对所述升级后的软件进行自动化测试。
一种自动化测试的系统,包括:服务端和用于执行测试操作的执行终端,其中,
所述服务端,用于:
触发针对软件代码的获取操作,得到开发人员提交的软件代码,所述软件代码中包含升级软件所需的数据;
对所述软件代码执行自动化打包操作,生成对应的软件升级文件;
将所述软件升级文件发送至文件存储器,并向终端发送测试指令,以便触发所述终端根据所述软件升级文件对软件执行自动化测试;
所述终端,用于:
当接收到服务端发来的测试指令后,触发从文件存储器中下载软件升级文件的操作;
根据所述软件升级文件,对具有连接关系的被测移动终端执行自动化软件升级操作,得到升级后的软件;
利用预设的测试脚本,在所述被测移动终端中对所述升级后的软件进行自动化测试。
由以上实施例提供的技术方案可见,服务端在获取到开发人员提交的软件代码后,可以对该软件代码执行自动化打包操作,得到对应的软件升级文件,此后可以将该软件升级文件发送至文件存储器,并向用于执行测试操作的终端发送测试指令。终端在接收到服务端发来的测试指令后,可以自动从文件存储器中下载软件的升级文件,并根据该软件升级文件,对具有连接关系的被测移动终端进行自动化软件升级,分别得到升级后的软件,此后就可以利用预设的测试脚本,在被测移动终端中对升级后的软件进行自动化测试。
也即,开发人员在将编写的软件代码提交后,服务端可以自动化地根据软件代码生成软件升级文件,并部署到用于执行测试操作的终端中,以便终端可以自动化地对被测移动终端执行自动化的软件升级和测试操作。避免了由于人为部署而导致测试效率低的问题,在开发人员提交软件代码后,可以较为高效、准确地根据该软件代码完成软件测试。
附图说明
为了更清楚地说明本发明实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的自动化测试的方法的流程示意图;
图2为本发明实施例提供的自动化测试的方法的流程示意图;
图3为本发明实施例提供的自动化测试的方法的示意图;
图4为本发明实施例提供的自动化测试的系统的结构示意图;
图5为本发明实施例提供的自动化测试的系统的组成示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下结合附图,详细说明本发明中各实施例提供的技术方案。
实施例1
本实施例提供一种自动化测试的方法,在开发人员将编写的软件代码提交后,可以较为高效、准确地根据该软件代码完成软件测试。本方法可以分别由服务端和终端配合执行,这里的服务端可以用于对开发人员编写的软件代码进行自动化处理,以便支持后续进行自动化测试,可以是一种服务器,也可以是起到服务端作用的终端,等;终端可以根据服务端的自动化处理结果,对具有连接关系的移动终端执行自动化测试,也即用于执行测试操作,比如移动终端可以包括但不限于智能手机、智能平板电脑、或笔记本电脑等,而终端可以是固定终端,比如PC(personal computer,个人计算机),也可以是起到执行测试作用的移动终端等。在本实施例中,可以先介绍用于服务端的自动化测试方法,假设该执行主体可以是具体地的实体服务器,具体流程示意图如图1所示,包括:
步骤102:触发针对软件代码的获取操作,得到开发人员提交的软件代码。
在对软件进行升级与维护的过程中,开发人员可以根据特定的需求进行软件开发,比如升级功能模块、更新图形界面等。而开发的方式可以至少包括增、删、改软件代码等,比如可以修改某个功能模块内的代码、变更图形界面的布局等,从而实现对软件的更新与升级。但在发布升级之前,需要进行反复的测试,以确保升级后的软件具有较强的可用性,比如不会出现严重的运行错误问题等。在本方法中,软件代码可以包括针对已有软件进行升级的代码。
在实际应用中,开发人员可以将编写完成的软件代码上传至特定的代码托管平台,不仅可以实现对代码进行存储,还便于搜索、核查等,比如代码托管平台可以通过较为流行的GIT(分布式版本控制系统)或SVN(Subversion)等实现。
当开发人员将软件代码上传至代码托管平台后,就可以触发针对软件代码的获取操作,以便得到开发人员提交的软件代码。这里,软件代码中可以包含升级软件所需的数据,比如所需的数据中可以包含通过计算机语言编写的代码、运行软件时所必需的数据库、运行库等,还可以包括运行环境(比如开启某个功能模块)等。
在实际应用中,可以有多种方式,触发针对软件代码的获取操作,比如可以通过下述三种方式中的任一种实现:
第一种方式:当检测到开发人员提交软件代码时,触发针对软件代码的获取操作。
具体地,服务器可以对代码托管平台(下文简称平台)进行检测(或称监听),当检测到平台中出现新提交的软件代码后,就可以触发针对软件代码的获取操作。比如,可以在服务器中利用Jenkins开源软件项目,实现对平台的检测。当从平台检测到开发人员提交了软件代码后,则可以触发针对软件代码的获取操作。通过这种方式,可以及时地对软件代码进行测试,及时得到测试结果,以便在一定程度上提高开发效率。
第二种方式:定时触发针对软件代码的获取操作。
具体地,可以预设一个时间点,用于定时触发针对软件代码的获取操作,比如,可以预设每个小时整点为各个时间点,当出现小时整点时,则触发获取操作。具体比如1点整、2点整等,则触发获取操作。通过这种方式,尤其是对于软件代码较多的时候,可以防止触发多个获取操作而导致系统出错的概率,比如可以在1点整时,触发0点至1点提交的代码,而对于1点起提交的代码则可以在2点整时触发获取,从而有效避免过多的测试任务并发,进而降低出错的概率。
第三种方式:根据接收到的触发指令,触发针对软件代码的获取操作。
具体地,可以由工作人员,根据测试进度和监控的不同需求,触发获取操作,也即触发测试操作,实际就可以通过触发指令的方式,比如工作人员需要对测试进行实时监控时,则可以通过人为发送触发指令的方式进行监控;又如工作人员需要人为控制测试的进度,则可以认为触发的方式进行控制。通过这种方式,可以根据人为需求触发测试,从而可以根据不同的测试需求。
步骤104:对该软件代码执行自动化打包操作,生成对应的软件升级文件。
在前述步骤中已经获取到开发人员提交的软件代码,则在本步骤中,就可以根据软件代码,生成软件的升级文件。这里的文件升级文件就可以是指用于对软件进行升级的文件。具体地,可以将软件代码进行打包,从而生成可用于升级的文件,而打包的过程就可以是根据软件代码生成软件包的过程,通常情况下,需要将开发出的软件代码进行打包,以便用户在终端中安装、使用、升级。具体比如,可以通过MyEclipse、Webpack、installshield等较为流行的打包工具实现自动化打包,从而自动生成软件升级文件。
但在实际应用中,可能由于软件代码存在漏洞、缺陷、错误等,使软件升级文件不可用,所以,在对软件代码进行自动化打包的过程中,为了提高软件升级文件的可用性,还可以进行核查操作。具体地,在一种实施方式中,对该软件代码执行自动化打包操作,生成对应的软件升级文件,可以包括:对该软件代码执行自动化编译操作,生成对应的类文件;对该类文件执行自动化核查操作,并当核查无误时,对该类文件执行自动化打包操作,生成对应的软件升级文件。
具体地,在获取到软件代码后,可以先对其执行自动化编译操作,编译可以是将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言),在本步骤中,可以将软件代码编译为对应的类文件,此后,可以对生成的类文件执行自动化核查操作,该核查操作可以包括静态扫描操作和/或单元测试操作。
进一步地,静态扫描操作可以是对类文件中的内容进行规则、格式、兼容性等缺陷或漏洞进行的扫描。比如,可以利用FindBugs、Checkstyle、Lint等工具对类文件执行静态扫描。而单元测试操作则可以是对最小可测试单元进行检查和验证,开发人员编写一段软件代码后,可以对该段软件代码中的一个很小的、很明确的功能进行可用性的核查,比如,可以利用CppUnit、Visual Unit等工具对类文件执行单元测试。在实际应用中,静态扫描和单元测试并无固定的顺序,可以互为先后或同时进行、或只进行其一。当对类文件核查无误时,则可以执行自动化打包操作,生成对应的软件升级文件,具体就可以通过类似于前文已介绍的打包工具执行自动化打包。通过对软件代码进行核查,可以尽量保证生成的软件升级文件具有较高的可用性,从而有效降低测试过程中出错的概率。
而在实际应用中,可以在自动化打包的过程中,进行多次核查,比如在对软件代码进行编译时,判断是否编译成功,若编译失败,则可以停止测试;又如在对编译后的类文件进行静态扫描和/或单元测试时,可以如前文介绍的核查正确性,若静态扫描结果出现问题或单元测试存在不通过的某个功能,则可以停止测试;还如在进行打包操作时,可以判断能否打包成功,若打包失败,也可以停止测试。进一步地,若出现停止测试的情况,则服务器可以向开发人员发送告警通知,以便开发人员尽快对软件代码进行修复,提高开发效率。通知的方式,可以根据对开发人员预存的邮箱、短消息号码等。
步骤106:将该软件升级文件发送至文件存储器,并向用于执行测试操作的终端发送测试指令。
在前述步骤中生成了针对软件的升级文件,利用该文件就可以对软件进行升级,比如软件1的当前版本为1.0,开发人员根据特定的需求编写软件代码后,可以本次升级设定为版本1.1,则根据前述步骤中获取软件代码后的打包操作,就可以生成将软件1由版本1.0升级到版本1.1的软件升级文件。此时,服务器就可以将软件升级文件发送至预设的文件存储器中,具体地,在实际应用中,可以根据预设的路径进行存储,比如可以在文件存储器中为不同的软件分别设置不同的存储路径,当生成出某个软件的升级文件后,则可以发送至对应的存储路径下。
为了能够实现自动化测试,将软件升级文件发送至文件存储器后,还可以向用于执行测试的终端发送测试指令,以便触发用于执行测试操作的终端根据该软件升级文件对被测移动终端中的软件执行自动化测试。比如,在将软件1(比如由版本1.0升级至1.1)的软件升级文件发送至文件存储器中时,可以向全部的用于执行测试的终端发送测试指令,以便触发全部终端根据该软件升级文件对被测移动终端中的软件1由版本1.0升级至1.1,并分别在被测移动终端中执行自动化测试。
比如,服务器可以通过长连接,与50个用于执行测试的终端分别进行连接,每个终端又可以与多个不同的被测移动终端分别进行连接,则当服务器将软件升级文件发送至文件存储器后,可以分别向这50个终端发送测试指令。以便这些终端可以从文件存储器中下载软件升级文件,并对被测移动终端中的软件进行升级。
这里的文件存储器可以是一个专门用于存储软件升级文件的存储器,可以对软件升级文件以及对应的版本起到存储和记录的作用,比如可以存储每个版本的升级文件以及记录对应的时间和版本号;还可以作为一个独立的节点,以减轻服务器的存储压力;在实际应用中,如前所述执行测试操作的终端可能有多个,在需要进行测试时,多个终端可以分别从文件存储器中下载,而无需分别保存升级文件即可完成升级。在实际应用中,文件存储器虽然可以独立作为一个节点,但也可以是由多个分布式存储器共同协作,降低单点故障的风险。
在实际应用中,可能有不同应用的开发人员需要进行开发和测试,比如,可以有100个应用通过本方法进行自动化测试,开发人员在将软件代码提交后,服务器可以对该软件代码进行自动化打包操作,生成软件升级文件,并发送至文件存储器。然而用于执行测试操作的终端在进行软件升级时,若无法提前获知针对具体哪个软件进行升级,则需要逐一匹配,查找出具有软件升级文件的软件,则大大降低了测试效率。所以,为了提高针对软件的测试效率,在一种实施方式中,开发人员提交的软件代码,可以对应有具体的软件标识,比如该软件标识就可以是“软件1”,则向用于执行测试操作的终端发送测试指令,可以包括:向用于执行测试操作的终端发送包含该软件标识的测试指令。通过在测试指令中包含软件标识,则可以使用于执行测试操作的终端能够较为便捷地确定出哪个或哪些软件需要升级,从而较快地查找对应的软件升级文件,也就可以较快的进行软件升级,进而提高测试的效率。
在实际应用中,如前文介绍,可以有多个用于执行测试操作的终端,然而可能出现不同终端测试的移动终端差别较大,比如屏幕差别较大,系统差别较大等。所以,可以通过指定终端的方式提高测试的效率,在一种实施方式中,软件代码可以对应有终端标识,则向用于执行测试操作的终端发送测试指令,可以包括:向该终端标识对应的用于执行测试操作的终端发送测试指令。通过在测试指令中加入终端标识,则可以使特定的终端执行自动化测试,进而满足了不同的测试需求,也就在一定程度上提高了测试的效率。而为了实现这种测试方式,服务器可以预先存储各个终端的标识,比如终端标识可以是终端1、终端2、终端n,等。
在实际应用中,一个用于执行测试操作的终端,可以分别与多个被测移动终端相连接,也即可以控制多个被测移动终端执行自动化测试。所以,也可以通过指定被测移动终端的方式,满足不同的测试需求,在一种实施方式中,软件代码可以对应有被测移动终端的标识,则向用于执行测试操作的终端发送测试指令,可以包括:向该移动终端标识对应的用于执行测试操作的终端,发送包含移动终端标识的测试指令。通过在测试指令中加入被测移动终端的标识,则可以使特定的终端对特定的被测移动终端执行自动化测试,进而满足了不同的测试需求,也就在一定程度上提高了测试的效率。而为了实现这种测试方式,服务器可以预先存储各个终端的标识,以及各个终端对应的被测移动终端的标识,比如终端标识可以是终端1、终端2、终端n,且终端1对应有移动终端1、移动终端2、移动终端3;终端2对应有移动终端3、移动终端5、移动终端9,等。从而使服务器可以根据软件代码中对应的被测移动终端标识:移动终端3,找出对应的执行测试的终端1和2,并向这两个终端发送包含移动终端3的测试指令,以便这两个终端可以对移动终端3执行自动化测试。
需要说明的是,软件代码对应的软件标识、终端标识、被测移动终端标识等,均可以是由开发人员根据不同的开发和测试需求,在软件代码中通过配置文件或配置标识进行配置,也可以通过软件代码以外的独立的配置文件进行配置。
由以上实施例提供的方法可见,服务端在获取到开发人员提交的软件代码后,可以对该软件代码执行自动化打包操作,得到对应的软件升级文件,此后可以将该软件升级文件发送至文件存储器,并向用于执行测试操作的终端发送测试指令。也即,开发人员在将编写的软件代码提交后,服务端可以自动化地根据软件代码生成软件升级文件,并部署到用于执行测试操作的终端中,以便终端可以自动化地对被测移动终端执行自动化的软件升级和测试操作。避免了由于人为部署而导致测试效率低的问题,在开发人员提交软件代码后,可以较为高效、准确地根据该软件代码完成软件测试。
实施例2
基于相同的构思,本发明实施例2提供另一种自动化测试的方法,在开发人员将编写的软件代码提交后,可以较为高效、准确地根据该软件代码完成软件测试。在实施例1中介绍了应用于服务器的部分,则在本实施例中介绍应用于执行测试操作的终端的部分,假设该执行主体可以是固定的个人电脑,具体流程示意图如图2所示,包括:
步骤202:当接收到服务端发来的测试指令后,触发从文件存储器中下载软件升级文件的操作。
用于执行测试操作的终端(下文简称测试终端),在接收到服务端发来的测试指令后,为了提高测试的效率,则可以立即执行自动化测试,由于服务端已经将用于升级的软件升级文件发送至文件存储器中,则本步骤测试终端就可以直接从发从文件存储器中下载软件升级文件。
在前述实施例中已经介绍,测试指令中可以包含软件标识,则在本步骤中,触发从文件存储器中下载软件升级文件的操作,可以包括:触发从文件存储器中下载与软件标识对应的软件升级文件的操作。具体地,在前文介绍,为了提高测试效率,满足不同的测试需求,可以在测试指令中加入软件标识,而在实际应用中,则本步骤中的测试终端,就可以通过软件标识,搜索该软件标识对应的软件升级文件,比如对于软件1,则可以在文件存储器中找到对应的路径,从而较为便捷地下载升级文件。
步骤204:根据软件升级文件,对具有连接关系的被测移动终端执行自动化软件升级操作,得到升级后的软件。
在前述步骤中,已经下载得到软件升级文件,则本步骤中,就可以对被测移动终端中的软件进行升级,以便后续能够执行自动化测试。具体地,测试终端可以找到与之具有连接关系的被测移动终端,而在实际应用中,可以通过USB(Universal Serial Bus,通用串行总线)、Wi-Fi(Wireless-Fidelity,无线保真)、NFC(near field communication,近场通信)、蓝牙(Bluetooth),分别与不同的被测移动终端建立连接关系。在选择如何建立连接关系时,可以优选通过USB的方式,以便可以在建立连接时,同时对移动终端进行充电,也可以优选Wi-Fi的方式,以便通过性能较好的无线连接设备与更多的被测移动终端建立连接。
在找到具有连接关系的被测移动终端后,就可以根据下载的软件升级文件,对被测移动终端中的软件进行自动化升级,比如也可以通过增、删、改软件中的各种文件的方式,完成对软件的升级,从而得到升级后的软件。
在前文已经介绍,为了提高测试效率、满足不同的测试需求,测试指令中可以包含被测移动终端标识,则在本步骤中,对具有连接关系的被测移动终端执行自动化软件升级操作,得到升级后的软件,可以包括:对具有连接关系、且与被测移动终端标识对应的被测移动终端执行自动化软件升级操作,得到升级后的软件。如前文举例,被测移动终端标识可以是移动终端3,则在本步骤中,可以从具有连接关系的被测移动终端中,查找出移动终端3,根据下载的软件升级文件,对其执行自动化软件升级操作,得到升级后的软件。
在本步骤中,为了保证后续测试过程的可用性,也可以在对软件执行自动化升级操作时,进行核查,核查是否升级成功,若升级失败也可以停止测试,还可以向开发人员发送告警通知等。
步骤206:利用预设的测试脚本,在被测移动终端中对该升级后的软件进行自动化测试。
在前述步骤中已经对被测移动终端中的软件执行完升级,则本步骤就可以利用预设的测试脚本,在被测移动终端中对该升级后的软件进行自动化测试。具体预设的测试脚本可以是预先存储的测试脚本,比如对于特定的软件,包含多个测试不同功能的脚本,比如包含模拟用户的输入操作、点击操作、刷新操作等的测试脚本,通过这些脚本可以测试升级后的软件是否具有较高的可用性,或是否存在漏洞等。
在实际应用中,进行自动化测试后,通常可以生成出测试结果,比如没有问题、或有问题、哪个模块有问题等,所以,为了使开发人员能够较快地得到开发结果,从而在一定程度上提高开发效率,在一种实施方式中,本方法还可以包括:向开发人员发送针对该升级后的软件的自动化测试结果。比如可以通过邮件的方式,发送自动化测试结果。而在实际应用中,若出现测试错误,也可以向开发人员发送测试错误的告警。
如图3所示,为结合实施例1和2实现的一种自动化测试的方法的示意图,如图3所示,开发人员提交软件代码后,服务器可以检测到软件代码,并触发对软件代码进行编译、核查、打包,以致生成软件升级文件,此后终端可以从文件存储器中下载软件升级文件,并对被测移动终端执行自动化升级、自动化测试,最终可以向开发人员发送测试结果。
由以上实施例提供的方法可见,同于执行测试操作的终端在接收到服务端发来的测试指令后,可以自动从文件存储器中下载软件的升级文件,并根据该软件升级文件,对具有连接关系的被测移动终端进行自动化软件升级,分别得到升级后的软件,此后就可以利用预设的测试脚本,在被测移动终端中对升级后的软件进行自动化测试。也即,开发人员在将编写的软件代码提交后,服务端可以自动化地根据软件代码生成软件升级文件,并部署到用于执行测试操作的终端中,以便终端可以自动化地对被测移动终端执行自动化的软件升级和测试操作。避免了由于人为部署而导致测试效率低的问题,在开发人员提交软件代码后,可以较为高效、准确地根据该软件代码完成软件测试。
实施例3
基于相同的构思,本发明实施例3还提供一种自动化测试的系统,在开发人员将编写的软件代码提交后,可以较为高效、准确地根据该软件代码完成软件测试。该系统的结构示意图如图4所示,包括:服务端302和用于执行测试操作的终端304,其中,
服务端302,可以用于:
触发针对软件代码的获取操作,得到开发人员提交的软件代码,该软件代码中可以包含升级软件所需的数据;
对该软件代码执行自动化打包操作,生成对应的软件升级文件;
将该软件升级文件发送至文件存储器,并向用于执行测试操作的终端发送测试指令,以便触发终端根据该软件升级文件对软件执行自动化测试;
终端304,可以用于:
当接收到服务端发来的测试指令后,触发从文件存储器中下载软件升级文件的操作;
根据该软件升级文件,对具有连接关系的被测移动终端执行自动化软件升级操作,得到升级后的软件;
利用预设的测试脚本,在被测移动终端中对升级后的软件进行自动化测试。
在一种实施方式中,服务端302,可以用于:
当检测到开发人员提交软件代码时,触发针对软件代码的获取操作;或
定时触发针对软件代码的获取操作;或
根据接收到的触发指令,触发针对软件代码的获取操作
在一种实施方式中,服务端302,可以用于:
对该软件代码执行自动化编译操作,生成对应的类文件;
对该类文件执行自动化核查操作,并当核查无误时,对该类文件执行自动化打包操作,生成对应的软件升级文件。
在一种实施方式中,软件代码对应有软件标识,则
服务端302,可以用于:
向用于执行测试操作的终端发送包含软件标识的测试指令。
在一种实施方式中,软件代码对应有终端标识,则
服务端302,可以用于:
向终端标识对应的用于执行测试操作的终端发送测试指令。
在一种实施方式中,软件代码对应有被测移动终端标识,则
服务端302,可以用于:
向移动终端标识对应的用于执行测试操作的终端,发送包含移动终端标识的测试指令。
在一种实施方式中,软件代码对应有被测移动终端标识,则
终端304,可以用于:
对具有连接关系、且与被测移动终端标识对应的被测移动终端执行自动化软件升级操作,得到升级后的软件。
在一种实施方式中,测试指令中包含软件标识,则
终端304,可以用于:
触发从文件存储器中下载与该软件标识对应的软件升级文件的操作。
在一种实施方式中,终端304,还可以用于:
向开发人员发送针对升级后的软件的自动化测试结果。
如图5所示,为自动化测试系统的组成示意图,可以包括开发人员、代码托管平台、服务端、文件存储器、执行测试的终端、以及被测移动终端。开发人员可以将软件代码提交至代码托管平台,服务端可以检测到提交的软件代码,并获取到,对软件代码进行打包操作,生成软件升级文件,并发送至文件存储器,若在打包过程中出现错误,也可以向开发人员发送告警。同时可以向执行测试的终端发送测试指令,终端接收到指令后,从文件存储器下载软件升级文件,并对被测移动终端执行自动化升级、测试,终端还可以将测试结果发送给开发人员。
由以上实施例提供的系统可见,同于执行测试操作的终端在接收到服务端发来的测试指令后,可以自动从文件存储器中下载软件的升级文件,并根据该软件升级文件,对具有连接关系的被测移动终端进行自动化软件升级,分别得到升级后的软件,此后就可以利用预设的测试脚本,在被测移动终端中对升级后的软件进行自动化测试。也即,开发人员在将编写的软件代码提交后,服务端可以自动化地根据软件代码生成软件升级文件,并部署到用于执行测试操作的终端中,以便终端可以自动化地对被测移动终端执行自动化的软件升级和测试操作。避免了由于人为部署而导致测试效率低的问题,在开发人员提交软件代码后,可以较为高效、准确地根据该软件代码完成软件测试。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本发明中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (10)

1.一种自动化测试的方法,其特征在于,所述方法应用于服务端,包括:
触发针对软件代码的获取操作,得到开发人员提交的软件代码,所述软件代码中包含升级软件所需的数据;
对所述软件代码执行自动化打包操作,生成对应的软件升级文件;
将所述软件升级文件发送至文件存储器,并向用于执行测试操作的终端发送测试指令,以便触发所述终端根据所述软件升级文件对被测移动终端中的软件执行自动化测试;
其中,对所述软件代码执行自动化打包操作,生成对应的软件升级文件,包括:
对所述软件代码执行自动化编译操作,生成对应的类文件;
对所述类文件执行自动化核查操作,并当核查无误时,对所述类文件执行自动化打包操作,生成对应的软件升级文件;
该核查操作包括静态扫描操作和/或单元测试操作;
静态扫描操作是对类文件中的内容进行规则、格式、兼容性缺陷或漏洞进行的扫描,而单元测试操作是对最小可测试单元进行检查和验证,静态扫描和单元测试并无固定的顺序,互为先后或同时进行、或只进行其一;
在自动化打包的过程中,进行多次核查,在对软件代码进行编译时,判断是否编译成功,若编译失败,则停止测试;在对编译后的类文件进行静态扫描和/或单元测试时,核查正确性,若静态扫描结果出现问题或单元测试存在不通过的某个功能,则停止测试;在进行打包操作时,判断能否打包成功,若打包失败,停止测试;若出现停止测试的情况,则服务器向开发人员发送告警通知,以便开发人员尽快对软件代码进行修复。
2.如权利要求1所述的方法,其特征在于,触发针对软件代码的获取操作,包括下述至少一项:
当检测到开发人员提交软件代码时,触发针对软件代码的获取操作;或
定时触发针对软件代码的获取操作;或
根据接收到的触发指令,触发针对软件代码的获取操作。
3.如权利要求1所述的方法,其特征在于,所述软件代码对应有软件标识,则
向用于执行测试操作的终端发送测试指令,包括:
向用于执行测试操作的终端发送包含所述软件标识的测试指令。
4.如权利要求1所述的方法,其特征在于,所述软件代码对应有终端标识,则
向用于执行测试操作的终端发送测试指令,包括:
向所述终端标识对应的用于执行测试操作的终端发送测试指令。
5.如权利要求1所述的方法,其特征在于,所述软件代码对应有被测移动终端标识,则
向用于执行测试操作的终端发送测试指令,包括:
向所述移动终端标识对应的用于执行测试操作的终端,发送包含所述移动终端标识的测试指令。
6.一种自动化测试的方法,其特征在于,所述方法应用于执行测试操作的终端,与权利要求1的方法配合使用,包括:
当接收到服务端发来的测试指令后,触发从文件存储器中下载软件升级文件的操作;
根据所述软件升级文件,对具有连接关系的被测移动终端执行自动化软件升级操作,得到升级后的软件;
利用预设的测试脚本,在所述被测移动终端中对所述升级后的软件进行自动化测试。
7.如权利要求6所述的方法,其特征在于,当所述测试指令中包含被测移动终端标识时,则
对具有连接关系的被测移动终端执行自动化软件升级操作,得到升级后的软件,包括:
对具有连接关系、且与所述被测移动终端标识对应的被测移动终端执行自动化软件升级操作,得到升级后的软件。
8.如权利要求6所述的方法,其特征在于,当所述测试指令中包含软件标识时,则
触发从文件存储器中下载软件升级文件的操作,包括:
触发从文件存储器中下载与所述软件标识对应的软件升级文件的操作。
9.如权利要求6所述的方法,其特征在于,所述方法还包括:
向开发人员发送针对所述升级后的软件的自动化测试结果。
10.一种自动化测试的系统,其特征在于,包括:服务端和用于执行测试操作的执行终端,其中,
所述服务端,用于:
触发针对软件代码的获取操作,得到开发人员提交的软件代码,所述软件代码中包含升级软件所需的数据;
对所述软件代码执行自动化打包操作,生成对应的软件升级文件;
将所述软件升级文件发送至文件存储器,并向终端发送测试指令,以便触发所述终端根据所述软件升级文件对软件执行自动化测试;
所述终端,用于:
当接收到服务端发来的测试指令后,触发从文件存储器中下载软件升级文件的操作;
根据所述软件升级文件,对具有连接关系的被测移动终端执行自动化软件升级操作,得到升级后的软件;
利用预设的测试脚本,在所述被测移动终端中对所述升级后的软件进行自动化测试;
所述服务端用于:
对该软件代码执行自动化编译操作,生成对应的类文件;
对该类文件执行自动化核查操作,并当核查无误时,对该类文件执行自动化打包操作,生成对应的软件升级文件;
该核查操作包括静态扫描操作和/或单元测试操作;
静态扫描操作是对类文件中的内容进行规则、格式、兼容性缺陷或漏洞进行的扫描,而单元测试操作是对最小可测试单元进行检查和验证,静态扫描和单元测试并无固定的顺序,互为先后或同时进行、或只进行其一;
在自动化打包的过程中,进行多次核查,在对软件代码进行编译时,判断是否编译成功,若编译失败,则停止测试;在对编译后的类文件进行静态扫描和/或单元测试时,核查正确性,若静态扫描结果出现问题或单元测试存在不通过的某个功能,则停止测试;在进行打包操作时,判断能否打包成功,若打包失败,停止测试;若出现停止测试的情况,则服务器向开发人员发送告警通知,以便开发人员尽快对软件代码进行修复。
CN201910123739.4A 2019-02-19 2019-02-19 一种自动化测试的方法和系统 Active CN109902005B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910123739.4A CN109902005B (zh) 2019-02-19 2019-02-19 一种自动化测试的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910123739.4A CN109902005B (zh) 2019-02-19 2019-02-19 一种自动化测试的方法和系统

Publications (2)

Publication Number Publication Date
CN109902005A CN109902005A (zh) 2019-06-18
CN109902005B true CN109902005B (zh) 2022-03-08

Family

ID=66945153

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910123739.4A Active CN109902005B (zh) 2019-02-19 2019-02-19 一种自动化测试的方法和系统

Country Status (1)

Country Link
CN (1) CN109902005B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110609793A (zh) * 2019-09-10 2019-12-24 深圳证券交易所 软件的送测方法、服务器及系统
CN111124914B (zh) * 2019-12-20 2023-10-24 广州品唯软件有限公司 自动化测试预编译方法、终端及计算机可读存储介质
CN111190785B (zh) * 2019-12-24 2023-08-04 中国航空工业集团公司西安飞机设计研究所 模块化的机电综合管理系统自动测试方法
CN111158947A (zh) * 2019-12-31 2020-05-15 深圳Tcl数字技术有限公司 预抄写文件制作方法、服务器及可读存储介质
CN111338940A (zh) * 2020-02-21 2020-06-26 中国建设银行股份有限公司 代码处理方法、装置及系统
CN111352847A (zh) * 2020-03-09 2020-06-30 中国邮政储蓄银行股份有限公司 移动应用终端实时调试方法及系统
CN111597115A (zh) * 2020-05-19 2020-08-28 上海航天计算机技术研究所 一种嵌入式操作系统自动化闭环测试系统及测试方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120072133A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 소프트웨어 정적 테스팅 장치 및 방법
CN105550001A (zh) * 2015-12-24 2016-05-04 厦门市美亚柏科信息股份有限公司 分布式自动构建方法及系统
CN108334437A (zh) * 2018-03-02 2018-07-27 江苏电力信息技术有限公司 一种基于持续集成及自动化测试的软件持续交付验收方法

Also Published As

Publication number Publication date
CN109902005A (zh) 2019-06-18

Similar Documents

Publication Publication Date Title
CN109902005B (zh) 一种自动化测试的方法和系统
CN111651366B (zh) Sdk测试方法、装置、设备及存储介质
US9355017B2 (en) Automated error checking system for a software application and method therefor
US10579513B2 (en) Test run control method and apparatus
CN109840194B (zh) 一种配置文件的检测方法及系统
CN107632901A (zh) 一种应用程序运行异常的自修复方法及装置
CN107820608A (zh) 用于产生、捕获、存储和加载失败的测试脚本的调试信息的方法和装置
CN111563032A (zh) App调试方法、装置、计算机设备及存储介质
CN111611157A (zh) Gms持续集成构建自动化测试方法及系统
CN111382077A (zh) 应用程序崩溃原因定位方法、装置、电子设备及存储介质
CN111831554B (zh) 一种代码检查方法及装置
CN110471828B (zh) 一种操作系统测试方法、装置及其设备
CN114546819A (zh) 代码处理方法、装置、电子设备及可读介质
CN109739756B (zh) 移动终端应用测试的方法及设备
CN115904952A (zh) 测试环境自动配置方法、装置、设备及存储介质
CN114880244A (zh) 应用测试方法及装置、存储介质及电子设备
CN113986263A (zh) 代码自动化测试方法、装置、电子设备、存储介质
CN113568834A (zh) Sdk代码的兼容性检测方法、装置、计算机设备和介质
US9792202B2 (en) Identifying a configuration element value as a potential cause of a testing operation failure
CN111427795A (zh) 代码测试控制方法与装置、存储介质、电子设备
CN109086173B (zh) 一种操作系统的设备测试方法、装置和存储介质
CN114064508B (zh) 基于群控技术的移动终端软件测试方法及系统
CN115858012B (zh) 程序变量配置方法、装置、电子设备及存储介质
CN114564230B (zh) 鸿蒙系统的一键上传实现方法、装置、电子设备及介质
CN112835801B (zh) 一种用于准备小游戏调试前环境的方法与设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20210719

Address after: 100016 no.4301, No.52 Jiuxianqiao hospital, Chaoyang District, Beijing

Applicant after: BEIJING TESTIN INFORMATION TECHNOLOGY Co.,Ltd.

Address before: Room 2016, building 2, No.8, Fenghuang Third Road, Zhongxin Guangzhou Knowledge City, Guangzhou 510260, Guangdong Province

Applicant before: GUANGZHOU TESTIN INFORMATION TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant