CN104714884A - 一种检查web应用和Android应用一致性的方法 - Google Patents
一种检查web应用和Android应用一致性的方法 Download PDFInfo
- Publication number
- CN104714884A CN104714884A CN201510007190.4A CN201510007190A CN104714884A CN 104714884 A CN104714884 A CN 104714884A CN 201510007190 A CN201510007190 A CN 201510007190A CN 104714884 A CN104714884 A CN 104714884A
- Authority
- CN
- China
- Prior art keywords
- android
- interface
- web
- application
- apk
- 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
Abstract
本发明实施例公开了一种检查web应用和Android应用一致性的方法,包括:从APK文件中获取APK信息;对APK文件进行重签名,使APK的签名与测试案例的签名一致;接收测试人员填写的配置文件,对本次测试进行参数设置;将APK文件安装到模拟器中;采用深度优先的方法对Android的界面进行遍历;通过网页爬虫技术遍历web应用;将Android的界面与web应用进行匹配;基于匹配的结果生成一致性检查结果。实施本发明实施例为软件开发和测试过程提供了参考,有利于软件开发人员和测试人员找出web应用和Android应用的一致性的问题,减少Android应用开发过程中的错误。
Description
技术领域
本发明涉及互联网技术领域,尤其涉一种检查web应用和Android应用一致性的方法。
背景技术
随着移动设备使用的越来越广泛,现如今的传统互联网网站都会开发一个相对应的移动应用程序,为移动设备的用户提供更佳的用户体验。因此,移动应用的开发,大部分是参照传统互联网web版本进行,其功能相对固定,可以说是web版本的一个子集。
但参照web应用进行移动应用的开发是一项耗时且重复性的工作,这样便可能产生一致性的问题。一致性的问题主要包括以下几个方面:web应用中不存在的功能或页面;某些信息的错误;错误的链接等等。
可以看出,对于传统互联网Web应用程序与移动互联网中应用程序中一致性的问题,并不一定是一种错误,也有可能是移动应用为了适配移动设备而进行的特殊设计,包含了一些移动设备上才有的功能。比如购物网站的手机应用版本中,可能为顾客提供了特价或者移动应用才有的折扣。因此,找出网站和移动应用之间的不一致,可以为软件开发过程提供很好的参考。如图1所示,左边为Android应用的界面,而右边为传统互联网中网页上相对应的模块,可以看出其在展现的信息上存在着不同之处,这便可以看成是不同平台上的不一致的展现。
在传统互联网的web平台中,已经有相当成熟的网络爬虫技术和网页解析技术。网络爬虫技术和网页解析技术结合,首先利用网页解析技术,对网页进行分析,提取出网页的超链接,再利用特定的爬虫策略,通过超链接,不断地进行网页的爬取。
网页爬虫技术没有涉及到一致性内容的对比,只是单纯的在web平台中获取到网页信息的技术,但是可以利用到一致性内容检查中来。
在移动平台中,随着Android成为移动设备最流行的操作系统,Android的测试技术成为研究的一大热点。Android的测试技术分为白盒和黑盒两种,白盒即需要Android应用的源代码,而黑盒则只需要拿到应用的Android安装包(Android Package,APK)文件即可进行相应的测试。Android的测试技术没有涉及到一致性内容的对比,只是单纯的在Android平台的可以用来获取Android界面信息的技术,但是可以利用到一致性内容检查中来。
在一致性的检查方面,主要是集中在统一建模语言(Unified ModelingLanguage,UML)模型的一致性检查,UML模型被广泛应用到软件开发的过程中,而UML模型的一致性影响到了代码生成的质量。UML模型的一致性检查,则主要是侧重在模型这方面,从比较抽象且宏观的角度来进行检查。而Web应用和Android应用的一致性检查,需要去对比具体的文本、链接等元素。
发明内容
本发明的目的在于克服现有技术的不足,本发明所提出的技术的目的是是对Android应用和web应用进行不一致的检查,为软件开发人员和测试人员提供web应用和Android应用的一致性的信息,减少Android应用开发过程中的错误。
为了解决上述问题,本发明提出了一种检查web应用和Android应用一致性的方法,包括:
从APK文件中获取APK信息;
对APK文件进行重签名,使APK的签名与测试案例的签名一致;
接收测试人员填写的配置文件,对本次测试进行参数设置;
将APK文件安装到模拟器中;
采用深度优先的方法对Android的界面进行遍历;
通过网页爬虫技术遍历web应用;
将Android的界面与web应用进行匹配;
基于匹配的结果生成一致性检查结果。
所述APK信息包括启动类名、包名。
所述对APK文件进行重签名,使APK的签名与测试案例的签名一致包括:首先删除APK文件中的“META-INF”文件夹,然后采用与测试案例一样的签名文件对APK文件进行重签名。
所述配置文件包括类名、包名、Android界面爬取的深度、等待界面时间以及算法策略配置。
所述采用深度优先的方法对Android的界面进行遍历包括:
a,初始化,安装应用并运行测试案例;
b,解析当前界面,判断是否已经遍历过,如果还没遍历过,则生成事件集并提取控件信息,并将界面加入到界面集合中,同时截图;
c,是否有事件可执行,如果是,执行d,如果否,跳到e执行;
d,执行事件,然后重复执行b;
e,是否满足结束条件,如果否,执行f,如果是,则执行g;
f,查找事件,并跳到d执行;
g,结束遍历。
所述通过网页爬虫技术遍历web应用包括:
采用宽度优先的方法,从web应用的主页开始遍历,对每一个网页进行解析,生成其文本信息、超链接信息。
所述将Android的界面与web应用进行匹配包括:
找出Android界面和相匹配的web网页,根据Android界面和web界面的文本信息的匹配程度,文本匹配最高的网页即是与Android界面对应的网页。
所述基于匹配的结果生成一致性检查结果包括:
Android界面和网页的匹配结果、不一致的元素、不一致的链接、时间运行的信息、界面数量运行的信息、网页数量运行的信息。
实施本发明实施例,本发明技术方案生成了一份web应用和Android应用一致性检查的报告,为软件开发和测试过程提供了参考,有利于软件开发人员和测试人员找出web应用和Android应用的一致性的问题,减少Android应用开发过程中的错误。另外,本技术方案实现了测试过程的全自动化执行,减少了测试人员和开发人员的工作量,为提高工作的效率也有很大的帮助。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是现有技术中的同内容在不同应用平台的不同展现示意图;
图2是本发明实施例中的检查web应用和Android应用一致性的方法流程图;
图3是本发明实施例中的Android应用遍历流程图;
图4是本发明实施例中的对Android和web应用分别遍历后的数据示例图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Android手机应用参照web应用进行开发,在功能上既是web应用的子集,也存在着其特殊的设计和功能,而在开发过程中可能出现错误。本发明所提出的技术的目的是是对Android应用和web应用进行不一致的检查,为软件开发人员和测试人员提供web应用和Android应用的一致性的信息,减少Android应用开发过程中的错误。
本发明提出了一种检查web应用和Android应用一致性的方法,该方法利用了Android自动化测试技术和网页爬虫技术,用户只需将APK部署到Android手机模拟器中,并进行相关的配置,就能生成一份一致性报告。本发明实施例中对不一致从界面、文本和链接三个方面去定义:
(1)无法从web应用中找到匹配网页的Android界面;
(2)Android界面上的文本无法从匹配的网页中找到;
(3)链接出去的界面相匹配,但是链接的信息不同。
除了进行简单的配置和部署,本发明的技术实现运行过程全自动化进行,图2是整个方法的实施流程图,其具体过程和实现描述如下:
S201、从APK文件中获取APK信息;
从APK文件中获取APK相关的信息,如启动类名、包名等,本方案只需要一个APK文件,也就是说是属于黑盒的测试。
S202、对APK文件进行重签名,使APK的签名与测试案例的签名一致;
对APK文件进行重签名,APK的签名必须与测试案例的签名一致。首先删除APK文件中的“META-INF”文件夹,然后采用与测试案例一样的签名文件对APK文件进行重签名,如果APK的签名与测试案例的签名文件不一样,则无法运行测试案例。
S203、接收测试人员填写的配置文件,对本次测试进行参数设置;
测试人员填写配置文件,对本次测试进行一系列的参数设置,配置文件包括类名、包名、Android界面爬取的深度、等待界面时间以及一些算法的策略的配置等。这里我们提出了限制Android界面的爬取深度,因为Android平台爬取的特殊性,无法进行宽度优先的爬取,而想达到与宽度优先相同的结果,只有限制了其爬取的深度,在达到某一深度值的时候返回。
S204、将APK文件安装到模拟器中;
将APK文件安装到模拟器中,每次重新进行一次测试,都需要把应用卸载然后重新安装,这是因为Android应用在运行之后,会保存了前一次运行的状态信息,这样可能会对下一次的测试结果产生影响,因为,把应用卸载之后重新安装,可以保持每次运行测试的独立性。
S205、采用深度优先的方法对Android的界面进行遍历;
启动测试程序开始测试,采用深度优先的方法对Android的界面进行遍历,这里限制了遍历的深度,每到达一个新的界面,便生成该界面的事件集,同时提取出该界面的文本信息,以便随后的Android界面和网页的匹配,从该事件集中取出一个还未执行的事件,执行进入另一个界面。最后生成Android端结果,结果包括了每个Android界面的控件信息、事件集和文本信息等。另外,还包括了每一个Android界面的截图。
本发明实施例中国限制了遍历的深度,当达到一定的深度的时候,就返回先前执行过的界面,这样可以使得最后大部分的界面的事件集都被执行完。
另外,在这里会碰到一个问题,就是当回到主界面,出现没有事件可执行,而且也不能返回的情况。我们的处理方法是,当出现这种情况,但是有些界面的事件还没处理完的时候,就采用搜索的方法找到到达还有未执行事件的界面的一条路径,将路径上的事件标记为未执行,然后到达该界面,处理未执行的事件。
图3为Android应用遍历的详细流程图,具体的描述如下:
a,初始化,安装应用并运行测试案例;
b,解析当前界面,判断是否已经遍历过,如果还没遍历过,则生成事件集并提取控件信息,并将界面加入到界面集合中,同时截图;
c,是否有事件可执行,如果是,执行d,如果否,跳到e执行;
d,执行事件,然后重复执行b;
e,是否满足结束条件,如果否,执行f,如果是,则执行g;
f,查找事件,并跳到d执行;
g,结束遍历。
S206、通过网页爬虫技术遍历web应用;
通过网页爬虫技术遍历web应用。采用宽度优先的方法,从web应用的主页开始遍历,对每一个网页进行解析,生成其文本信息、超链接信息。爬取下来的网页,保存到数据库上,这样不会重复爬取同一个超链接的网页。在图4中,左图和右图分别为从Android应用和web应用中爬取下来的数据的一个部分。
S207、将Android的界面与web应用进行匹配;
生成Android界面和网页的匹配结果,要检查Android界面和网页之间的一致性,首先必须找出Android界面和相匹配的网页,而Android界面和web界面的匹配,主要是根据各自的文本信息的匹配程度,文本匹配最高的网页即是与Android界面对应的网页。
S208、基于匹配的结果生成一致性检查结果。
生成一致性检查结果。结果包括了以下几个方面:Android界面和网页的匹配结果、不一致的元素、不一致的链接和其它运行的信息(时间、界面数量、网页数量等)。
通过上面的八步,就能我们得到了一个比较好的一致性的检查报告。在这个过程中,除了进行人工的布置和配置之外,整个测试的过程均为自动化执行。
本发明技术方案生成了一份web应用和Android应用一致性检查的报告,为软件开发和测试过程提供了参考,有利于软件开发人员和测试人员找出web应用和Android应用的一致性的问题,减少Android应用开发过程中的错误。
另外,本技术方案实现了测试过程的全自动化执行,减少了测试人员和开发人员的工作量,为提高工作的效率也有很大的帮助。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
另外,以上对本发明实施例所提供的数字家庭智能终端进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种检查web应用和Android应用一致性的方法,其特征在于,包括:
从APK文件中获取APK信息;
对APK文件进行重签名,使APK的签名与测试案例的签名一致;
接收测试人员填写的配置文件,对本次测试进行参数设置;
将APK文件安装到模拟器中;
采用深度优先的方法对Android的界面进行遍历;
通过网页爬虫技术遍历web应用;
将Android的界面与web应用进行匹配;
基于匹配的结果生成一致性检查结果。
2.如权利要求1所述的检查web应用和Android应用一致性的方法,其特征在于,所述APK信息包括启动类名、包名。
3.如权利要求2所述的检查web应用和Android应用一致性的方法,其特征在于,所述对APK文件进行重签名,使APK的签名与测试案例的签名一致包括:首先删除APK文件中的“META-INF”文件夹,然后采用与测试案例一样的签名文件对APK文件进行重签名。
4.如权利要求3所述的检查web应用和Android应用一致性的方法,其特征在于,所述配置文件包括类名、包名、Android界面爬取的深度、等待界面时间以及算法策略配置。
5.如权利要求4所述的检查web应用和Android应用一致性的方法,其特征在于,所述采用深度优先的方法对Android的界面进行遍历包括:
a,初始化,安装应用并运行测试案例;
b,解析当前界面,判断是否已经遍历过,如果还没遍历过,则生成事件集并提取控件信息,并将界面加入到界面集合中,同时截图;
c,是否有事件可执行,如果是,执行d,如果否,跳到e执行;
d,执行事件,然后重复执行b;
e,是否满足结束条件,如果否,执行f,如果是,则执行g;
f,查找事件,并跳到d执行;
g,结束遍历。
6.如权利要求5所述的检查web应用和Android应用一致性的方法,其特征在于,所述通过网页爬虫技术遍历web应用包括:
采用宽度优先的方法,从web应用的主页开始遍历,对每一个网页进行解析,生成其文本信息、超链接信息。
7.如权利要求6所述的检查web应用和Android应用一致性的方法,其特征在于,所述将Android的界面与web应用进行匹配包括:
找出Android界面和相匹配的web网页,根据Android界面和web界面的文本信息的匹配程度,文本匹配最高的网页即是与Android界面对应的网页。
8.如权利要求7所述的检查web应用和Android应用一致性的方法,其特征在于,所述基于匹配的结果生成一致性检查结果包括:
Android界面和网页的匹配结果、不一致的元素、不一致的链接、时间运行的信息、界面数量运行的信息、网页数量运行的信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510007190.4A CN104714884A (zh) | 2015-01-05 | 2015-01-05 | 一种检查web应用和Android应用一致性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510007190.4A CN104714884A (zh) | 2015-01-05 | 2015-01-05 | 一种检查web应用和Android应用一致性的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104714884A true CN104714884A (zh) | 2015-06-17 |
Family
ID=53414242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510007190.4A Pending CN104714884A (zh) | 2015-01-05 | 2015-01-05 | 一种检查web应用和Android应用一致性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104714884A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095090A (zh) * | 2015-09-16 | 2015-11-25 | 北京奇虎科技有限公司 | 应用安装包的测试方法及装置 |
CN109086201A (zh) * | 2018-07-16 | 2018-12-25 | 曙光信息产业(北京)有限公司 | 软件自动化测试方法及系统 |
CN109146625A (zh) * | 2018-08-14 | 2019-01-04 | 中山大学 | 一种基于内容的多版本App更新评价方法及系统 |
US10509717B1 (en) | 2016-10-05 | 2019-12-17 | Amdocs Development Limited | System, method, and computer program for automatically testing software applications including dynamic web pages |
CN111782528A (zh) * | 2020-06-30 | 2020-10-16 | 中国平安人寿保险股份有限公司 | 配置信息对比方法、装置、计算机设备及存储介质 |
CN112148254A (zh) * | 2019-06-27 | 2020-12-29 | Sap欧洲公司 | 用于实现微服务之间的接口设计一致性的应用评估系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440458A (zh) * | 2013-09-25 | 2013-12-11 | 西安交通大学 | 一种启发式静态识别Android系统恶意代码的方法 |
CN103530221A (zh) * | 2012-07-02 | 2014-01-22 | 北京大学 | 一种Android系统中程序行为与界面操作映射方法 |
CN103729595A (zh) * | 2014-01-02 | 2014-04-16 | 东南大学 | 一种Android应用程序隐私数据泄露离线检测方法 |
CN104050076A (zh) * | 2013-03-12 | 2014-09-17 | 阿里巴巴集团控股有限公司 | 移动终端上的应用软件测试方法、装置及系统 |
US20140289699A1 (en) * | 2009-08-18 | 2014-09-25 | Adobe Systems Incorporated | Methods and Systems for Data Service Development |
CN104216828A (zh) * | 2013-06-03 | 2014-12-17 | 刘伟 | 一种对被测应用程序进行功能遍历的测试方法 |
-
2015
- 2015-01-05 CN CN201510007190.4A patent/CN104714884A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140289699A1 (en) * | 2009-08-18 | 2014-09-25 | Adobe Systems Incorporated | Methods and Systems for Data Service Development |
CN103530221A (zh) * | 2012-07-02 | 2014-01-22 | 北京大学 | 一种Android系统中程序行为与界面操作映射方法 |
CN104050076A (zh) * | 2013-03-12 | 2014-09-17 | 阿里巴巴集团控股有限公司 | 移动终端上的应用软件测试方法、装置及系统 |
CN104216828A (zh) * | 2013-06-03 | 2014-12-17 | 刘伟 | 一种对被测应用程序进行功能遍历的测试方法 |
CN103440458A (zh) * | 2013-09-25 | 2013-12-11 | 西安交通大学 | 一种启发式静态识别Android系统恶意代码的方法 |
CN103729595A (zh) * | 2014-01-02 | 2014-04-16 | 东南大学 | 一种Android应用程序隐私数据泄露离线检测方法 |
Non-Patent Citations (1)
Title |
---|
XIANGPING CHEN等: ""Towards Automatic Consistency Checking between Web Application and its Mobile Application"", 《THE 26TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING & KNOWLEDGE ENGINEERING》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095090A (zh) * | 2015-09-16 | 2015-11-25 | 北京奇虎科技有限公司 | 应用安装包的测试方法及装置 |
US10509717B1 (en) | 2016-10-05 | 2019-12-17 | Amdocs Development Limited | System, method, and computer program for automatically testing software applications including dynamic web pages |
CN109086201A (zh) * | 2018-07-16 | 2018-12-25 | 曙光信息产业(北京)有限公司 | 软件自动化测试方法及系统 |
CN109146625A (zh) * | 2018-08-14 | 2019-01-04 | 中山大学 | 一种基于内容的多版本App更新评价方法及系统 |
CN109146625B (zh) * | 2018-08-14 | 2022-04-26 | 中山大学 | 一种基于内容的多版本App更新评价方法及系统 |
CN112148254A (zh) * | 2019-06-27 | 2020-12-29 | Sap欧洲公司 | 用于实现微服务之间的接口设计一致性的应用评估系统 |
CN112148254B (zh) * | 2019-06-27 | 2024-04-19 | Sap欧洲公司 | 用于实现微服务之间的接口设计一致性的应用评估系统 |
CN111782528A (zh) * | 2020-06-30 | 2020-10-16 | 中国平安人寿保险股份有限公司 | 配置信息对比方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104714884A (zh) | 一种检查web应用和Android应用一致性的方法 | |
US9983984B2 (en) | Automated modularization of graphical user interface test cases | |
US7996816B2 (en) | Method and apparatus for dynamically binding service component implementations for specific unit test cases | |
CN109145235B (zh) | 用于解析网页的方法、装置及电子设备 | |
US10546132B2 (en) | String property labels for static analysis | |
CN106681903B (zh) | 生成测试用例的方法及装置 | |
CN112100954A (zh) | 验证芯片的方法、装置和计算机存储介质 | |
EP3185027B1 (en) | Information processing method and device and computer storage medium | |
US8990746B1 (en) | Method for mutation coverage during formal verification | |
CN107766344B (zh) | 一种模板渲染的方法、装置及浏览器 | |
CN104200166A (zh) | 基于脚本的网站漏洞扫描方法和系统 | |
US20230114540A1 (en) | Checking source code validity at time of code update | |
US8910099B1 (en) | Method for debugging unreachable design targets detected by formal verification | |
US9645800B2 (en) | System and method for facilitating static analysis of software applications | |
CN107885658B (zh) | 测试前置实现方法、装置、终端设备及存储介质 | |
CN112068852B (zh) | 基于国产服务器的开源软件安装方法、系统及设备和介质 | |
CN108415821A (zh) | 测试报告的生成方法及装置 | |
Stocco et al. | Why creating web page objects manually if it can be done automatically? | |
CN111767217B (zh) | Js单元测试案例生成方法及装置 | |
CN103049374B (zh) | 一种自动化测试的方法及装置 | |
CN109657125A (zh) | 基于网络爬虫的数据处理方法、装置、设备及存储介质 | |
CN109614107A (zh) | 一种软件开发工具包的集成方法和装置 | |
US20170220449A1 (en) | Infrastructure rule generation | |
CN110659022B (zh) | 一种基于Java自动调用Python脚本的方法 | |
Bucchiarone et al. | Dynamic software architectures verification using dynalloy |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into 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: 20150617 |