CN106776327A - 一种应用程序回归测试方法及装置 - Google Patents
一种应用程序回归测试方法及装置 Download PDFInfo
- Publication number
- CN106776327A CN106776327A CN201611190652.1A CN201611190652A CN106776327A CN 106776327 A CN106776327 A CN 106776327A CN 201611190652 A CN201611190652 A CN 201611190652A CN 106776327 A CN106776327 A CN 106776327A
- Authority
- CN
- China
- Prior art keywords
- sectional drawing
- function
- application program
- test case
- test
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用程序回归测试方法,包括:在对应用程序的第一版本的第一功能进行回归测试时,获取第一功能对应的第一测试用例,应用程序的第一版本安装在移动终端上;运行第一测试用例;在运行第一测试用例结束后,对移动终端的显示屏输出的图像进行截屏,获得第一截图;获取第一测试用例对应的第一标准截图,第一标准截图是第一功能正常实现时移动终端的显示屏输出的图像;比较第一截图与第一标准截图,若第一截图与第一标准截图一致,则回归测试通过;若第一截图与第一标准截图不一致,则回归测试未通过。本发明实现了提高回归测试效率的技术效果。同时,本发明还公开了一种应用程序回归测试方法及装置。
Description
技术领域
本发明涉及软件测试技术领域,尤其涉及一种应用程序回归测试方法及装置。
背景技术
回归测试,是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。
目前,Android应用的自动化回归测试方法繁多(例如:Instrumentation、robotium、monkey、等等)。但是,这些自动化回归测试方法存在过程繁琐、效率较低的问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的应用程序回归测试方法及装置。
本发明的一个方面,提供了一种应用程序回归测试方法,包括:
在对应用程序的第一版本的第一功能进行回归测试时,获取所述第一功能对应的第一测试用例,其中,所述应用程序的第一版本安装在移动终端上;
运行所述第一测试用例;
在运行所述第一测试用例结束后,对所述移动终端的显示屏输出的图像进行截屏,获得第一截图;
获取所述第一测试用例对应的第一标准截图,其中,所述第一标准截图是所述第一功能正常实现时所述移动终端的显示屏输出的图像;
比较所述第一截图与所述第一标准截图,其中,若所述第一截图与所述第一标准截图一致,则所述回归测试通过;若所述第一截图与所述第一标准截图不一致,则所述回归测试未通过。
可选地,所述获取所述第一功能对应的第一测试用例之前,还包括:
在所述移动终端上安装所述应用程序的第一版本。
可选地,所述运行所述第一测试用例,包括:
基于所述第一测试用例,确定需要调用的API函数序列,其中,所述API函数序列中包含每个API函数的名称、以及每个API函数被调用的先后顺序;
调用所述API函数序列。
可选地,所述API函数为MonkeyRunner对应的MonkeyRunner API函数。
可选地,所述MonkeyRunner API函数,包括以下函数中的任意组合:
用于启动应用程序的MonkeyDevice.startActivity()函数;
用于点击显示屏的MonkeyDevice.touch()函数;
用于触发按键的MonkeyDevice.press()函数;
用于输入文本的MonkeyDevice.type()函数。
可选地,所述获取所述第一测试用例对应的第一标准截图,包括:
从标准截图库中提取与所述一测试用例对应的所述第一标准截图。
可选地,所述标准截图库的生成方法,包括:
在对应用程序的第一版本的第一功能进行回归测试之前,在所述移动终端上安装所述应用程序的第二版本,其中,所述第二版本在所述第一版本之前,所述第二版本上的全部功能都可以正常实现;
基于所述应用程序的第二版本的M个功能,获得M个测试用例,其中,所述M个测试用例与所述M个功能一一对应,所述第一测试用例属于所述M个测试用例,所述第一功能属于所述M个功能,M为正整数;
依次运行所述M个测试用例;
在所述M个测试用例运行结束后,依次对所述移动终端的显示屏输出的图像进行截屏,获得M个标准截图,其中,所述M个标准截图与所述M个测试用例一一对应,所述第一标准截图属于所述M个标准截图;
基于所述M个标准截图,生成所述标准截图库。
可选地,所述比较所述第一截图与所述第一标准截图之后,还包括:
若所述回归测试未通过,则输出一表示所述回归测试未通过的警示信息。
本发明的另一个方面,提供一种应用程序回归测试装置,包括:
第一获取模块,用于在对应用程序的第一版本的第一功能进行回归测试时,获取所述第一功能对应的第一测试用例,其中,所述应用程序的第一版本安装在移动终端上;
第一运行模块,用于运行所述第一测试用例;
第一截屏模块,用于在运行所述第一测试用例结束后,对所述移动终端的显示屏输出的图像进行截屏,获得第一截图;
第二获取模块,用于获取所述第一测试用例对应的第一标准截图,其中,所述第一标准截图是所述第一功能正常实现时所述移动终端的显示屏输出的图像;
比较模块,用于比较所述第一截图与所述第一标准截图,其中,若所述第一截图与所述第一标准截图一致,则所述回归测试通过;若所述第一截图与所述第一标准截图不一致,则所述回归测试未通过。
可选地,所述的应用程序回归测试装置,还包括:
第一安装模块,用于所述获取所述第一功能对应的第一测试用例之前,在所述移动终端上安装所述应用程序的第一版本。
可选地,所述运行模块,具体用于:
基于所述第一测试用例,确定需要调用的API函数序列,其中,所述API函数序列中包含每个API函数的名称、以及每个API函数被调用的先后顺序;调用所述API函数序列。
可选地,所述API函数为MonkeyRunner对应的MonkeyRunner API函数。
可选地,所述MonkeyRunner API函数,包括以下函数中的任意组合:
用于启动应用程序的MonkeyDevice.startActivity()函数;
用于点击显示屏的MonkeyDevice.touch()函数;
用于触发按键的MonkeyDevice.press()函数;
用于输入文本的MonkeyDevice.type()函数。
可选地,所述第二获取模块,具体用于:
从标准截图库中提取与所述一测试用例对应的所述第一标准截图。
可选地,所述的应用程序回归测试装置,还包括:
第二安装模块,用于在对应用程序的第一版本的第一功能进行回归测试之前,在所述移动终端上安装所述应用程序的第二版本,其中,所述第二版本在所述第一版本之前,所述第二版本上的全部功能都可以正常实现;
获得模块,用于基于所述应用程序的第二版本的M个功能,获得M个测试用例,其中,所述M个测试用例与所述M个功能一一对应,所述第一测试用例属于所述M个测试用例,所述第一功能属于所述M个功能,M为正整数;
第二运行模块,用于依次运行所述M个测试用例;
第二截屏模块,用于在所述M个测试用例运行结束后,依次对所述移动终端的显示屏输出的图像进行截屏,获得M个标准截图,其中,所述M个标准截图与所述M个测试用例一一对应,所述第一标准截图属于所述M个标准截图;
生成模块,用于基于所述M个标准截图,生成所述标准截图库。
可选地,所述的应用程序回归测试装置,还包括:
输出模块,用于所述比较所述第一截图与所述第一标准截图之后,若所述回归测试未通过,则输出一表示所述回归测试未通过的警示信息。
本发明实施例中提供的技术方案,至少具有如下技术效果或优点:
在本发明实施例中,公开了一种应用程序回归测试方法,包括:在对应用程序的第一版本的第一功能进行回归测试时,获取第一功能对应的第一测试用例;运行第一测试用例,并在运行第一测试用例结束后对移动终端的显示屏输出的图像进行截屏,获得第一截图;获取第一测试用例对应的第一标准截图,第一标准截图是第一功能正常实现时移动终端的显示屏输出的图像;比较第一截图与第一标准截图,若第一截图与第一标准截图一致,则回归测试通过;若第一截图与第一标准截图不一致,则回归测试未通过。本发明通过比较第一截图与第一标准截图是否一致,即可判断回归测试是否通过,过程简单,从而提高了回归测试的效率。所以有效地解决了现有的自动化回归测试方法存在过程繁琐、效率较低的技术问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种应用程序回归测试系统的架构图;
图2示出了根据本发明一个实施例的一种应用程序回归测试方法的流程图;
图3示出了根据本发明一个实施例的标准截图库的生成方法的流程图;
图4示出了根据本发明一个实施例的一种应用程序回归测试装置的结构图。
具体实施方式
本发明实施例提供了一种应用程序回归测试方法及装置,用以解决现有技术的自动化回归测试方法存在过程繁琐、效率较低的技术问题。
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在正式介绍本实施例中的应用程序回归测试方法之前,先对用于实现该应用程序回归测试方法的系统的进行介绍。如图1所示,该应用程序回归测试系统主要由PC(Personal Computer,个人电脑)和移动终端组成。其中,所述移动终端可以是:智能手机、或平板电脑、或车载电脑等智能终端,此处不做具体限定。在PC侧安装有一测试脚本,本实施例提供的应用程序回归测试方法,主要由PC侧的测试脚本完成。
实施例一
本实施例提供了一种应用程序回归测试方法,如图2所示,包括:
步骤S101:在对应用程序的第一版本的第一功能进行回归测试时,获取第一功能对应的第一测试用例,其中,应用程序的第一版本安装在移动终端上。
在具体实施过程中,所述应用程序即需为要进行回归测试的Android平台下的应用程序。所述应用程序,可以是:游戏类应用程序、或视频类应用程序、或音乐类应用程序、或购物类应用程序、或安全类应用程序、或拍照类应用程序、或炒股类应用程序、或社交类应用程序、或团购类应用程序、或点餐类应用程序、或支付类应用程序,或浏览器类应用程序,等等。此处,对于所述应用程序具体是何种应用程序,本实施例不做具体限定。
在具体实施过程中,所述应用程序的第一版本是该应用程序第二版本(第二版本可以是应用程序开发过程中的最终版,即Final Build)后的升级版本,其中,该第一版相较于第二版本,某些功能进行了修改,对应的代码也发生了变化,所以,需要对这个修改过的功能进行回归测试,从而确认该修改是否引入了新的错误或是否导致其他代码产生错误。
作为一种可选的实施例,在步骤S101之前,还包括:在移动终端上安装应用程序的第一版本。
在本申请实施例中,采用MonkeyRunner作为辅助测试工具,因此,需要事先在PC侧安装配置MonkeyRunner环境,然后利用MonkeyRunner将应用程序的第一版本安装在移动终端中。具体来讲,可以利用MonkeyRunner提供的MonkeyDevice.installPackage()函数将应用程序的第一版本安装在移动终端中。此处,选用MonkeyRunner作为辅助测试工具,相比于其他测试工具(例如:Instrumentation、robotium或monkey),不用破坏待测应用程序的签名,并且可以更加方便、快捷地对移动终端进行操控(例如:按键输入、触摸屏输入、手势输入等等),可以节省大量时间,从而提高回归测试效率。
在具体实施过程中,所述应用程序的第一版本和第二版本具有相同的M个功能,M为正整数,第一功能为所述M个功能中的任一功能,且第一功能即为第一版本中被修改过的功能,所以,需要对第一功能进行回归测试。
在具体实施过程中,在采用人工方式实现每个功能时,每个功能都对应有一套操作测试流程,其也就对应有一测试用例,该测试用例用于模拟人工对该功能进行操作的流程。具体来讲,每个功能对应的操作控件(例如:按钮、输入框,等等)是不同的,对应的操作步骤也是不同的。例如:在启动应用程序的第一版本后,移动终端的显示屏(例如:电容式电视屏)会输出一UI(User Interface,用户界面),在实现某一功能时,是该点击显示屏上的哪个位置,或者,点击显示屏上的哪个按钮,或者,该功能对应有一输入框时,该输入什么内容,等等;每个功能都对应有一套操作流程。第一测试用例就是用来模拟人工实现第一功能时的操作流程的。
在具体实施过程中,所述M个功能各自对应有一个测试用例(共有M个测试用例),每个测试用例用来测试对应的功能,所述M个测试用例可以是应用程序的开发过程中测试人员所使用的测试用例。此处,即可从这M个测试用例中选出第一功能对应的第一测试用例。
步骤S102:运行第一测试用例。
在具体实施过程中,在运行第一测试用例时,可以基于第一测试用例,确定需要调用的API函数序列,再调用该API函数序列;其中,该API函数序列中包含每个API函数的名称、以及每个API函数被调用的先后顺序。
具体来讲,第一测试用例对应有一API函数序列,该API函数序列中按顺序记录有多个API函数(例如:用于启动应用程序的API函数,或用于点击显示屏的API函数,或用于触发按键的API函数,或用于输入文本的输入文本的API函数,等等),通过调用该API函数序列,即可对第一工能对应的控件进行操作,继而模拟人工实现第一功能时的操作流程来尝试实现第一功能。
在具体实施过程中,可以调用为MonkeyRunner提供的MonkeyRunner API函数,来对第一功能对应的控件进行操作。其中,所述MonkeyRunner API函数,包括以下函数中的任意组合:用于启动应用程序的MonkeyDevice.startActivity()函数;用于点击显示屏的MonkeyDevice.touch()函数;用于触发按键的MonkeyDevice.press()函数;用于输入文本的MonkeyDevice.type()函数,等等。
步骤S103:在运行第一测试用例结束后,对移动终端的显示屏输出的图像进行截屏,获得第一截图。
在具体实施过程中,可以通过调用MonkeyRunner提供的MonkeyDevice.takeSnapshot()函数进行截屏,从而获得第一截图。
步骤S104:获取第一测试用例对应的第一标准截图,其中,第一标准截图是第一功能正常实现时移动终端的显示屏输出的图像。
在具体实施过程中,可以从标准截图库中提取与一测试用例对应的第一标准截图。其中,第一标准截图是第一功能正常实现时移动终端的显示屏输出的图像,通过比较第一截图与第一标准截图,即可知道在运行第一测试用例后,第一功能是否正常实现。
作为一种可选的实施例,如图3所示,该标准截图库的生成方法,包括(步骤S201~步骤S 204):
步骤S201:在对应用程序的第一版本的第一功能进行回归测试之前,在移动终端上安装应用程序的第二版本,其中,第二版本在第一版本之前,第二版本上的全部功能都可以正常实现。
在具体实施过程中,步骤S201~步骤S 204在步骤S101之前执行,从而事先得到标准截图库。其中,第二版本为第一版本之前的早期版本,其可以是应用程序开发过程中的最终版。可以在MonkeyRunner环境下,利用MonkeyRunner提供的MonkeyDevice.installPackage()函数将应用程序的第二版本安装待移动终端中。
步骤S201:基于应用程序的第二版本的M个功能,获得M个测试用例,其中,M个测试用例与M个功能一一对应,第一测试用例属于M个测试用例,第一功能属于M个功能,M为正整数。
在具体实施过程中,所述M个功能可以是第二版本的全部功能,第一版本的第一功能也属于所述M个功能中。
步骤S202:依次运行M个测试用例。
步骤S203:在M个测试用例运行结束后,依次对移动终端的显示屏输出的图像进行截屏,获得M个标准截图,其中,M个标准截图与M个测试用例一一对应,第一标准截图属于M个标准截图。
在具体实施过程中,可以依次运行M个测试用例中的每个测试用例。具体来讲,先运行一个测试用例,调用该测试用例对应的API序列(包括以下函数的任意组合:MonkeyDevice.startActivity()、MonkeyDevice.touch()、MonkeyDevice.press()、MonkeyDevice.type()、等等),在调用结束后通过MonkeyDevice.takeSnapshot()函数进行截图,获得该测试用例对应的标准截图。再运行下一个测试用例,获得下一个测试用例对应的标准截图;以此类推,直到所述M个测试用例都被运行,得到M个标准截图。
步骤S204:基于M个标准截图,生成标准截图库。
在具体实施过程中,所述标准截图库中存储有所述M个标准截图,以及每个标准截图和测试用例的对应关系。
步骤S105:比较第一截图与第一标准截图,其中,若第一截图与第一标准截图一致,则回归测试通过;若第一截图与第一标准截图不一致,则回归测试未通过。
在具体实施过程中,可以利用自动化图片比较工具(例如:Beyond Compare—picture view)来比较第一截图与第一标准截图。在进行比较时,可以采用相对严格的标准,例如:若发现第一截图中的内容与第一标准截图中的内容有一处不同,则认为第一截图与第一标准截图不一致。
作为一种可选的实施例,步骤S105之后,还包括:若回归测试未通过,则输出一表示回归测试未通过的警示信息。
在具体实施过程中,所述警示信息可以是声音类警示信息或文字/符号类警示信息,在为文字/符号类警示信息时,可以由PC的显示屏输出;若为声音类警示信息时,可以由PC的扬声器输出。另外,PC也可以将该警示信息发送到测试人员的邮箱中。在测试人员在收到该警示消息后,即可对应用程序的第一版本出现问题的原因进行分析,及时找出原因所在。
本发明实施例中提供的技术方案,至少具有如下技术效果或优点:
在本发明实施例中,公开了一种应用程序回归测试方法,包括:在对应用程序的第一版本的第一功能进行回归测试时,获取第一功能对应的第一测试用例;运行第一测试用例,并在运行第一测试用例结束后对移动终端的显示屏输出的图像进行截屏,获得第一截图;获取第一测试用例对应的第一标准截图,第一标准截图是第一功能正常实现时移动终端的显示屏输出的图像;比较第一截图与第一标准截图,若第一截图与第一标准截图一致,则回归测试通过;若第一截图与第一标准截图不一致,则回归测试未通过。本发明通过比较第一截图与第一标准截图是否一致,即可判断回归测试是否通过,过程简单,从而提高了测试效率。所以有效地解决了现有的自动化回归测试方法存在过程繁琐、效率较低的技术问题。
实施例二
本实施例还提供了一种应用程序回归测试装置,如图4所示,包括:
第一获取模块301,用于在对应用程序的第一版本的第一功能进行回归测试时,获取第一功能对应的第一测试用例,其中,应用程序的第一版本安装在移动终端上;
第一运行模块302,用于运行第一测试用例;
第一截屏模块303,用于在运行第一测试用例结束后,对移动终端的显示屏输出的图像进行截屏,获得第一截图;
第二获取模块304,用于获取第一测试用例对应的第一标准截图,其中,第一标准截图是第一功能正常实现时移动终端的显示屏输出的图像;
比较模块305,用于比较第一截图与第一标准截图,其中,若第一截图与第一标准截图一致,则回归测试通过;若第一截图与第一标准截图不一致,则回归测试未通过。
作为一种可选的实施例,所示应用程序回归测试装置,还包括:
第一安装模块,用于获取第一功能对应的第一测试用例之前,在移动终端上安装应用程序的第一版本。
作为一种可选的实施例,第一运行模块302,具体用于:
基于第一测试用例,确定需要调用的API函数序列,其中,API函数序列中包含每个API函数的名称、以及每个API函数被调用的先后顺序;调用API函数序列。
作为一种可选的实施例,API函数为MonkeyRunner对应的MonkeyRunner API函数。
作为一种可选的实施例,MonkeyRunner API函数,包括以下函数中的任意组合:
用于启动应用程序的MonkeyDevice.startActivity()函数;
用于点击显示屏的MonkeyDevice.touch()函数;
用于触发按键的MonkeyDevice.press()函数;
用于输入文本的MonkeyDevice.type()函数。
作为一种可选的实施例,第二获取模块304,具体用于:
从标准截图库中提取与一测试用例对应的第一标准截图。
作为一种可选的实施例,所述应用程序回归测试装置,还包括:
第二安装模块,用于在对应用程序的第一版本的第一功能进行回归测试之前,在移动终端上安装应用程序的第二版本,其中,第二版本在第一版本之前,第二版本上的全部功能都可以正常实现;
获得模块,用于基于应用程序的第二版本的M个功能,获得M个测试用例,其中,M个测试用例与M个功能一一对应,第一测试用例属于M个测试用例,第一功能属于M个功能,M为正整数;
第二运行模块,用于依次运行M个测试用例;
第二截屏模块,用于在M个测试用例运行结束后,依次对移动终端的显示屏输出的图像进行截屏,获得M个标准截图,其中,M个标准截图与M个测试用例一一对应,第一标准截图属于M个标准截图;
生成模块,用于基于M个标准截图,生成标准截图库。
作为一种可选的实施例,所述应用程序回归测试装置,还包括:
输出模块,用于比较第一截图与第一标准截图之后,若回归测试未通过,则输出一表示回归测试未通过的警示信息。
由于本实施例所介绍的应用程序回归测试装置为实施本申请实施例中用于应用程序回归测试方法所采用的装置,故而基于本申请实施例中所介绍的应用程序回归测试方法,本领域所属技术人员能够了解本实施例的应用程序回归测试装置的具体实施方式以及其各种变化形式,所以在此对于该应用程序回归测试装置如何实现本申请实施例中的应用程序回归测试方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中应用程序回归测试方法所采用的装置,都属于本申请所欲保护的范围。
本发明实施例中提供的技术方案,至少具有如下技术效果或优点:
在本发明实施例中,公开了一种应用程序回归测试装置,包括:第一获取模块,用于在对应用程序的第一版本的第一功能进行回归测试时,获取第一功能对应的第一测试用例,其中,应用程序的第一版本安装在移动终端上;第一运行模块,用于运行第一测试用例;第一截屏模块,用于在运行第一测试用例结束后,对移动终端的显示屏输出的图像进行截屏,获得第一截图;第二获取模块,用于获取第一测试用例对应的第一标准截图,其中,第一标准截图是第一功能正常实现时移动终端的显示屏输出的图像;比较模块,用于比较第一截图与第一标准截图,其中,若第一截图与第一标准截图一致,则回归测试通过;若第一截图与第一标准截图不一致,则回归测试未通过。本发明通过比较第一截图与第一标准截图是否一致,即可判断回归测试是否通过,过程简单,从而提高了测试效率。所以有效地解决了现有的自动化回归测试方法存在过程繁琐、效率较低的技术问题。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一种应用程序回归测试装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了,A1、一种应用程序回归测试方法,其特征在于,包括:
在对应用程序的第一版本的第一功能进行回归测试时,获取所述第一功能对应的第一测试用例,其中,所述应用程序的第一版本安装在移动终端上;
运行所述第一测试用例;
在运行所述第一测试用例结束后,对所述移动终端的显示屏输出的图像进行截屏,获得第一截图;
获取所述第一测试用例对应的第一标准截图,其中,所述第一标准截图是所述第一功能正常实现时所述移动终端的显示屏输出的图像;
比较所述第一截图与所述第一标准截图,其中,若所述第一截图与所述第一标准截图一致,则所述回归测试通过;若所述第一截图与所述第一标准截图不一致,则所述回归测试未通过。
A2、如A1所述的应用程序回归测试方法,其特征在于,所述获取所述第一功能对应的第一测试用例之前,还包括:
在所述移动终端上安装所述应用程序的第一版本。
A3、如A1所述的应用程序回归测试方法,其特征在于,所述运行所述第一测试用例,包括:
基于所述第一测试用例,确定需要调用的API函数序列,其中,所述API函数序列中包含每个API函数的名称、以及每个API函数被调用的先后顺序;
调用所述API函数序列。
A4、如A3所述的应用程序回归测试方法,其特征在于,所述API函数为MonkeyRunner对应的MonkeyRunner API函数。
A5、如A4所述的应用程序回归测试方法,其特征在于,所述MonkeyRunner API函数,包括以下函数中的任意组合:
用于启动应用程序的MonkeyDevice.startActivity()函数;
用于点击显示屏的MonkeyDevice.touch()函数;
用于触发按键的MonkeyDevice.press()函数;
用于输入文本的MonkeyDevice.type()函数。
A6、如A1所述的应用程序回归测试方法,其特征在于,所述获取所述第一测试用例对应的第一标准截图,包括:
从标准截图库中提取与所述一测试用例对应的所述第一标准截图。
A7、如A6所述的应用程序回归测试方法,其特征在于,所述标准截图库的生成方法,包括:
在对应用程序的第一版本的第一功能进行回归测试之前,在所述移动终端上安装所述应用程序的第二版本,其中,所述第二版本在所述第一版本之前,所述第二版本上的全部功能都可以正常实现;
基于所述应用程序的第二版本的M个功能,获得M个测试用例,其中,所述M个测试用例与所述M个功能一一对应,所述第一测试用例属于所述M个测试用例,所述第一功能属于所述M个功能,M为正整数;
依次运行所述M个测试用例;
在所述M个测试用例运行结束后,依次对所述移动终端的显示屏输出的图像进行截屏,获得M个标准截图,其中,所述M个标准截图与所述M个测试用例一一对应,所述第一标准截图属于所述M个标准截图;
基于所述M个标准截图,生成所述标准截图库。
A8、如A1~A7任一所述的应用程序回归测试方法,其特征在于,所述比较所述第一截图与所述第一标准截图之后,还包括:
若所述回归测试未通过,则输出一表示所述回归测试未通过的警示信息。
B9、一种应用程序回归测试装置,其特征在于,包括:
第一获取模块,用于在对应用程序的第一版本的第一功能进行回归测试时,获取所述第一功能对应的第一测试用例,其中,所述应用程序的第一版本安装在移动终端上;
第一运行模块,用于运行所述第一测试用例;
第一截屏模块,用于在运行所述第一测试用例结束后,对所述移动终端的显示屏输出的图像进行截屏,获得第一截图;
第二获取模块,用于获取所述第一测试用例对应的第一标准截图,其中,所述第一标准截图是所述第一功能正常实现时所述移动终端的显示屏输出的图像;
比较模块,用于比较所述第一截图与所述第一标准截图,其中,若所述第一截图与所述第一标准截图一致,则所述回归测试通过;若所述第一截图与所述第一标准截图不一致,则所述回归测试未通过。
B10、如B9所述的应用程序回归测试装置,其特征在于,还包括:
第一安装模块,用于所述获取所述第一功能对应的第一测试用例之前,在所述移动终端上安装所述应用程序的第一版本。
B11、如B9所述的应用程序回归测试装置,其特征在于,所述运行模块,具体用于:
基于所述第一测试用例,确定需要调用的API函数序列,其中,所述API函数序列中包含每个API函数的名称、以及每个API函数被调用的先后顺序;调用所述API函数序列。
B12、如B11所述的应用程序回归测试装置,其特征在于,所述API函数为MonkeyRunner对应的MonkeyRunner API函数。
B13、如B12所述的装置,其特征在于,所述MonkeyRunner API函数,包括以下函数中的任意组合:
用于启动应用程序的MonkeyDevice.startActivity()函数;
用于点击显示屏的MonkeyDevice.touch()函数;
用于触发按键的MonkeyDevice.press()函数;
用于输入文本的MonkeyDevice.type()函数。
B14、如B9所述的应用程序回归测试装置,其特征在于,所述第二获取模块,具体用于:
从标准截图库中提取与所述一测试用例对应的所述第一标准截图。
B15、如B14所述的应用程序回归测试装置,其特征在于,还包括:
第二安装模块,用于在对应用程序的第一版本的第一功能进行回归测试之前,在所述移动终端上安装所述应用程序的第二版本,其中,所述第二版本在所述第一版本之前,所述第二版本上的全部功能都可以正常实现;
获得模块,用于基于所述应用程序的第二版本的M个功能,获得M个测试用例,其中,所述M个测试用例与所述M个功能一一对应,所述第一测试用例属于所述M个测试用例,所述第一功能属于所述M个功能,M为正整数;
第二运行模块,用于依次运行所述M个测试用例;
第二截屏模块,用于在所述M个测试用例运行结束后,依次对所述移动终端的显示屏输出的图像进行截屏,获得M个标准截图,其中,所述M个标准截图与所述M个测试用例一一对应,所述第一标准截图属于所述M个标准截图;
生成模块,用于基于所述M个标准截图,生成所述标准截图库。
B16、如B9~B15任一所述的应用程序回归测试装置,其特征在于,还包括:
输出模块,用于所述比较所述第一截图与所述第一标准截图之后,若所述回归测试未通过,则输出一表示所述回归测试未通过的警示信息。
Claims (10)
1.一种应用程序回归测试方法,其特征在于,包括:
在对应用程序的第一版本的第一功能进行回归测试时,获取所述第一功能对应的第一测试用例,其中,所述应用程序的第一版本安装在移动终端上;
运行所述第一测试用例;
在运行所述第一测试用例结束后,对所述移动终端的显示屏输出的图像进行截屏,获得第一截图;
获取所述第一测试用例对应的第一标准截图,其中,所述第一标准截图是所述第一功能正常实现时所述移动终端的显示屏输出的图像;
比较所述第一截图与所述第一标准截图,其中,若所述第一截图与所述第一标准截图一致,则所述回归测试通过;若所述第一截图与所述第一标准截图不一致,则所述回归测试未通过。
2.如权利要求1所述的应用程序回归测试方法,其特征在于,所述获取所述第一功能对应的第一测试用例之前,还包括:
在所述移动终端上安装所述应用程序的第一版本。
3.如权利要求1所述的应用程序回归测试方法,其特征在于,所述运行所述第一测试用例,包括:
基于所述第一测试用例,确定需要调用的API函数序列,其中,所述API函数序列中包含每个API函数的名称、以及每个API函数被调用的先后顺序;
调用所述API函数序列。
4.如权利要求3所述的应用程序回归测试方法,其特征在于,所述API函数为MonkeyRunner对应的MonkeyRunner API函数。
5.如权利要求4所述的应用程序回归测试方法,其特征在于,所述MonkeyRunner API函数,包括以下函数中的任意组合:
用于启动应用程序的MonkeyDevice.startActivity()函数;
用于点击显示屏的MonkeyDevice.touch()函数;
用于触发按键的MonkeyDevice.press()函数;
用于输入文本的MonkeyDevice.type()函数。
6.如权利要求1所述的应用程序回归测试方法,其特征在于,所述获取所述第一测试用例对应的第一标准截图,包括:
从标准截图库中提取与所述一测试用例对应的所述第一标准截图。
7.如权利要求6所述的应用程序回归测试方法,其特征在于,所述标准截图库的生成方法,包括:
在对应用程序的第一版本的第一功能进行回归测试之前,在所述移动终端上安装所述应用程序的第二版本,其中,所述第二版本在所述第一版本之前,所述第二版本上的全部功能都可以正常实现;
基于所述应用程序的第二版本的M个功能,获得M个测试用例,其中,所述M个测试用例与所述M个功能一一对应,所述第一测试用例属于所述M个测试用例,所述第一功能属于所述M个功能,M为正整数;
依次运行所述M个测试用例;
在所述M个测试用例运行结束后,依次对所述移动终端的显示屏输出的图像进行截屏,获得M个标准截图,其中,所述M个标准截图与所述M个测试用例一一对应,所述第一标准截图属于所述M个标准截图;
基于所述M个标准截图,生成所述标准截图库。
8.如权利要求1~7任一所述的应用程序回归测试方法,其特征在于,所述比较所述第一截图与所述第一标准截图之后,还包括:
若所述回归测试未通过,则输出一表示所述回归测试未通过的警示信息。
9.一种应用程序回归测试装置,其特征在于,包括:
第一获取模块,用于在对应用程序的第一版本的第一功能进行回归测试时,获取所述第一功能对应的第一测试用例,其中,所述应用程序的第一版本安装在移动终端上;
第一运行模块,用于运行所述第一测试用例;
第一截屏模块,用于在运行所述第一测试用例结束后,对所述移动终端的显示屏输出的图像进行截屏,获得第一截图;
第二获取模块,用于获取所述第一测试用例对应的第一标准截图,其中,所述第一标准截图是所述第一功能正常实现时所述移动终端的显示屏输出的图像;
比较模块,用于比较所述第一截图与所述第一标准截图,其中,若所述第一截图与所述第一标准截图一致,则所述回归测试通过;若所述第一截图与所述第一标准截图不一致,则所述回归测试未通过。
10.如权利要求9所述的应用程序回归测试装置,其特征在于,还包括:
第一安装模块,用于所述获取所述第一功能对应的第一测试用例之前,在所述移动终端上安装所述应用程序的第一版本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611190652.1A CN106776327A (zh) | 2016-12-21 | 2016-12-21 | 一种应用程序回归测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611190652.1A CN106776327A (zh) | 2016-12-21 | 2016-12-21 | 一种应用程序回归测试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106776327A true CN106776327A (zh) | 2017-05-31 |
Family
ID=58893500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611190652.1A Pending CN106776327A (zh) | 2016-12-21 | 2016-12-21 | 一种应用程序回归测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776327A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239404A (zh) * | 2017-07-27 | 2017-10-10 | 广州云测信息技术有限公司 | 一种问题定位方法和设备 |
CN107436846A (zh) * | 2017-08-04 | 2017-12-05 | 网易(杭州)网络有限公司 | 测试方法、装置、计算可读存储介质和计算设备 |
CN107844426A (zh) * | 2017-11-24 | 2018-03-27 | 网易(杭州)网络有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
CN109116129A (zh) * | 2017-06-26 | 2019-01-01 | 深圳回收宝科技有限公司 | 终端检测方法、检测设备、系统及存储介质 |
CN109344047A (zh) * | 2018-08-14 | 2019-02-15 | 中国平安人寿保险股份有限公司 | 系统回归测试方法、计算机可读存储介质和终端设备 |
CN112711526A (zh) * | 2019-10-25 | 2021-04-27 | 腾讯科技(深圳)有限公司 | Ui测试方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101175285A (zh) * | 2006-11-01 | 2008-05-07 | 联想移动通信科技有限公司 | 手机软件的自动测试方法及系统 |
CN102981954A (zh) * | 2012-11-28 | 2013-03-20 | 百度国际科技(深圳)有限公司 | 一种输入法的兼容性测试方法及电子装置 |
CN104978270A (zh) * | 2015-07-03 | 2015-10-14 | 上海触乐信息科技有限公司 | 一种自动化地软件测试方法和装置 |
US9268671B2 (en) * | 2013-12-06 | 2016-02-23 | Testfire, Inc. | Embedded test management for mobile applications |
CN105653438A (zh) * | 2014-11-12 | 2016-06-08 | 成都鼎桥通信技术有限公司 | 安卓设备的跨进程自动化测试方法和装置 |
CN106161134A (zh) * | 2015-04-21 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 移动终端自动化测试方法、装置及移动终端 |
-
2016
- 2016-12-21 CN CN201611190652.1A patent/CN106776327A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101175285A (zh) * | 2006-11-01 | 2008-05-07 | 联想移动通信科技有限公司 | 手机软件的自动测试方法及系统 |
CN102981954A (zh) * | 2012-11-28 | 2013-03-20 | 百度国际科技(深圳)有限公司 | 一种输入法的兼容性测试方法及电子装置 |
US9268671B2 (en) * | 2013-12-06 | 2016-02-23 | Testfire, Inc. | Embedded test management for mobile applications |
CN105653438A (zh) * | 2014-11-12 | 2016-06-08 | 成都鼎桥通信技术有限公司 | 安卓设备的跨进程自动化测试方法和装置 |
CN106161134A (zh) * | 2015-04-21 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 移动终端自动化测试方法、装置及移动终端 |
CN104978270A (zh) * | 2015-07-03 | 2015-10-14 | 上海触乐信息科技有限公司 | 一种自动化地软件测试方法和装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109116129A (zh) * | 2017-06-26 | 2019-01-01 | 深圳回收宝科技有限公司 | 终端检测方法、检测设备、系统及存储介质 |
CN107239404A (zh) * | 2017-07-27 | 2017-10-10 | 广州云测信息技术有限公司 | 一种问题定位方法和设备 |
CN107436846A (zh) * | 2017-08-04 | 2017-12-05 | 网易(杭州)网络有限公司 | 测试方法、装置、计算可读存储介质和计算设备 |
CN107844426A (zh) * | 2017-11-24 | 2018-03-27 | 网易(杭州)网络有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
CN109344047A (zh) * | 2018-08-14 | 2019-02-15 | 中国平安人寿保险股份有限公司 | 系统回归测试方法、计算机可读存储介质和终端设备 |
CN109344047B (zh) * | 2018-08-14 | 2024-02-09 | 中国平安人寿保险股份有限公司 | 系统回归测试方法、计算机可读存储介质和终端设备 |
CN112711526A (zh) * | 2019-10-25 | 2021-04-27 | 腾讯科技(深圳)有限公司 | Ui测试方法、装置、设备及存储介质 |
CN112711526B (zh) * | 2019-10-25 | 2024-05-14 | 腾讯科技(深圳)有限公司 | Ui测试方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776327A (zh) | 一种应用程序回归测试方法及装置 | |
CN104050417B (zh) | 一种在移动终端对软件状态进行检测的方法及装置 | |
US8533691B2 (en) | Managing non-common features for program code translation | |
US20140289700A1 (en) | Methods and Systems for Visual Code Refactoring | |
CN104881343B (zh) | 一种测试方法和测试系统 | |
JP2014510482A (ja) | モバイル・コミュニケーション・デバイスのコンテンツをテストするシステムおよび方法 | |
CN104618574A (zh) | 实现app统一管理智能硬件设备的方法、装置和客户端 | |
CN106844772A (zh) | 应用数据库的更新方法及装置 | |
CN108388515A (zh) | 测试数据生成方法、装置、设备以及计算机可读存储介质 | |
CN110515679B (zh) | 数据采集方法、装置、设备及存储介质 | |
CN105095078A (zh) | 一种系统自动化测试设备、方法和计算设备 | |
CN105653056A (zh) | 输入法的测试方法及装置 | |
Xu et al. | A pilot study of an inspection framework for automated usability guideline reviews of mobile health applications | |
Pattakou et al. | Towards the design of usable privacy by design methodologies | |
CN106951248A (zh) | 添加代码的方法、装置和可读存储介质 | |
CN110532159A (zh) | 数据监听方法、装置、设备及计算机可读存储介质 | |
CN105653438A (zh) | 安卓设备的跨进程自动化测试方法和装置 | |
CN106294161A (zh) | 一种应用的界面功能测试方法和装置 | |
JP2016531352A (ja) | 入力システムをアップデートする方法、デバイス、プログラム及びデバイス | |
EP3311266A1 (en) | A method and system for modifying machine instructions within compiled software | |
CN106843984A (zh) | 应用数据库的更新方法及装置 | |
CN106919597B (zh) | 信息推荐方法及装置 | |
CN104915244B (zh) | 键鼠脚本回放的方法及装置 | |
CN109543409A (zh) | 用于检测恶意应用及训练检测模型的方法、装置及设备 | |
CN111427737B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |