CN108197031A - 应用程序页面改版的识别方法及装置 - Google Patents
应用程序页面改版的识别方法及装置 Download PDFInfo
- Publication number
- CN108197031A CN108197031A CN201810041711.1A CN201810041711A CN108197031A CN 108197031 A CN108197031 A CN 108197031A CN 201810041711 A CN201810041711 A CN 201810041711A CN 108197031 A CN108197031 A CN 108197031A
- Authority
- CN
- China
- Prior art keywords
- page
- source code
- version
- current source
- current
- 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/368—Test management for test version control, e.g. updating test cases to a new software version
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)
- Stored Programmes (AREA)
Abstract
本说明书一个或多个实施例提供一种应用程序页面改版的识别方法及装置,该方法可以包括:分别获取应用程序的历史版本和当前版本的源代码;将所述历史版本的历史源代码与所述当前版本的当前源代码进行比较,识别出所述当前版本相对于所述历史版本发生变化的展示对象;编辑所述当前源代码,使编辑后的当前源代码被执行时,在展示页面中对识别出的展示对象进行标注。
Description
技术领域
本说明书一个或多个实施例涉及终端技术领域,尤其涉及一种应用程序页面改版的识别方法及装置。
背景技术
随着相关技术的不断发展,应用程序的迭代改进也是越来越快,因而需要对改进的内容进行快速、精准的测试,以确保对应用程序的快速上线。在相关技术中,针对新版本应用程序的测试,往往是通过大量的测量人员进行手动执行,不仅耗时费力,而且容易造成漏测。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种应用程序页面改版的识别方法及装置。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种应用程序页面改版的识别方法,包括:
分别获取应用程序的历史版本和当前版本的源代码;
将所述历史版本的历史源代码与所述当前版本的当前源代码进行比较,识别出所述当前版本相对于所述历史版本发生变化的展示对象;
编辑所述当前源代码,使编辑后的当前源代码被执行时,在展示页面中对识别出的展示对象进行标注。
根据本说明书一个或多个实施例的第二方面,提出了一种应用程序页面改版的识别装置,包括:
获取单元,分别获取应用程序的历史版本和当前版本的源代码;
识别单元,将所述历史版本的历史源代码与所述当前版本的当前源代码进行比较,识别出所述当前版本相对于所述历史版本发生变化的展示对象;
编辑单元,编辑所述当前源代码,使编辑后的当前源代码被执行时,在展示页面中对识别出的展示对象进行标注。
根据本说明书一个或多个实施例的第三方面,提出了一种应用程序页面改版的识别装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为实现如上述实施例中任一所述的方法。
附图说明
图1是一示例性实施例提供的一种应用程序页面改版的识别系统的架构示意图。
图2是一示例性实施例提供的一种应用程序页面改版的识别方法的流程图。
图3是一示例性实施例提供的一种对新增页面进行标注的流程示意图。
图4是一示例性实施例提供的一种对新增控件或存在修改的控件进行标注的流程示意图。
图5是一示例性实施例提供的一种展示页面的示意图。
图6是一示例性实施例提供的一种设备的结构示意图。
图7是一示例性实施例提供的一种应用程序页面改版的识别装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
图1是一示例性实施例提供的一种应用程序页面改版的识别系统的架构示意图。在一实施例中,该系统可以仅包括如图1所示的电子设备13,该电子设备13可以包括诸如下述类型:PC、平板设备、笔记本电脑、掌上电脑(PDAs,Personal Digital Assistants)等,本说明书一个或多个实施例并不对此进行限制。在运行过程中,该电子设备13可以运行应用程序页面改版的识别系统,以自动识别出任一应用程序的页面改版情况。
在另一实施例中,如图1所示,该系统可以包括服务器11、网络12、电子设备13。服务器11可以为包含一独立主机的物理服务器,或者该服务器11可以为主机集群承载的虚拟服务器。网络12可以包括多种类型的有线或无线网络,比如公共交换电话网络(PublicSwitched Telephone Network,PSTN)、因特网等。电子设备13可以包括上述的PC、平板设备、笔记本电脑、掌上电脑等。其中,服务器11可以运行应用程序页面改版的识别系统的服务器侧的程序,而电子设备13可以运行应用程序页面改版的识别系统的客户端侧/网页端侧的程序,从而由服务器11基于该服务器侧的程序对应用程序的页面改版情况进行识别、而电子设备13通过客户端侧/网页端侧的程序向用户提供相应的人机交互功能。
图2是一示例性实施例提供的一种应用程序页面改版的识别方法的流程图。如图2所示,该方法可以包括以下步骤:
步骤202,分别获取应用程序的历史版本和当前版本的源代码。
在一实施例中,开发人员可以直接向测试人员提供该应用程序的历史版本和当前版本的源代码。在另一实施例中,测试人员可以从该应用程序的历史版本和当前版本的安装文件(如Android操作系统下为apk格式的文件)中,提取相应的源代码。在其他情况下,还可以通过其他方式获取上述的源代码,本说明书并不对此进行限制。
在一实施例中,本说明书的识别方案可以适用于任意操作系统下的应用程序,比如桌面级操作系统、移动级操作系统等,本说明书并不对此进行限制。
步骤204,将所述历史版本的历史源代码与所述当前版本的当前源代码进行比较,识别出所述当前版本相对于所述历史版本发生变化的展示对象。
在一实施例中,可以将所述历史源代码中的页面注册信息与所述当前源代码中的页面注册信息进行比较;当任一页面的页面注册信息被包含于所述当前源代码中,且未被包含于所述历史源代码中时,可以确定所述任一页面为所述当前版本的应用程序中的新增页面,以作为所述当前版本相对于所述历史版本发生变化的展示对象。
例如,在Android操作系统下,应用程序的所有页面均需要注册至AndroidManifest.xml文件中,因而通过分别读取历史版本与当前版本的应用程序的AndroidManifest.xml文件、并将两份文件中记录的源代码进行比较,即可基于每一页面分别唯一对应的页面ID,确定出当前版本中的新增页面。
在一实施例中,当所述历史源代码与所述当前源代码中均包含任一页面的页面注册信息时,可以根据所述任一页面的页面ID,确定所述任一页面对应的信息记录文件,所述信息记录文件记录有所述任一页面包含的控件的信息;然后,将所述历史源代码与所述当前源代码中分别对应于所述任一页面的信息记录文件进行比较,并根据比较结果确定所述当前版本的应用程序中的新增控件或存在修改的控件,以作为所述当前版本相对于所述历史版本发生变化的展示对象。
例如,在Android操作系统下,通过读取上述的AndroidManifest.xml文件,可以获知应用程序包含的所有页面及其页面ID;然后,由于每一页面对应的信息记录文件为固定的xml(或其他)文件格式,且文件名称直接采用各个页面的页面ID,因而基于页面ID可以获取各个页面对应的信息记录文件,比如页面的页面ID为Test_Activity时,相应的信息记录文件为“Test_Activity.xml”,该信息记录文件中记录有该页面Test_Activity内的布局信息、控件信息等。因此,通过将历史版本与当前版本中分别获取的信息记录文件“Test_Activity.xml”的源代码进行比较,可以识别出:当任一控件的控件信息被包含于所述当前源代码(即当前版本的信息记录文件“Test_Activity.xml”的源代码)中,且未被包含于历史源代码(即历史版本的信息记录文件“Test_Activity.xml”的源代码)中时,可以确定该任一控件为新增控件;当任一控件的控件信息被包含于所述当前源代码和历史源代码中,但两份源代码记录的控件信息不一致,可以确定该任一控件为存在修改的控件。
步骤206,编辑所述当前源代码,使编辑后的当前源代码被执行时,在展示页面中对识别出的展示对象进行标注。
在一实施例中,当识别出的展示对象包括新增页面时,可以根据所述新增页面的页面ID,确定所述新增页面对应的功能执行文件;然后,对所述新增页面对应的功能执行文件进行编辑,以添加对所述新增页面的标注指示信息,所述标注指示信息用于使编辑后的当前源代码在被执行时,对展示出的所述新增页面进行标注。
例如,在Android操作系统下,由于每一页面对应的功能执行文件为固定的Java(或其他)文件格式,且文件名称直接采用各个页面的页面ID,因而基于页面ID可以获取各个页面对应的功能执行文件,比如页面的页面ID为Test_Activity时,相应的功能执行文件为“Test_Activity.java”,该功能执行文件用于具体实现该页面Test_Activity的展示等相关功能。因此,通过上述的AndroidManifest.xml文件,可以获知新增页面的页面ID,并进一步确定该新增页面对应的功能执行文件,以添加相应的标注指示信息,使得测试人员在运行当前版本的应用程序时、能够在该新增页面中查看到展示出的标注内容,从而快速确定相应的展示页面为新增页面。
在一实施例中,当识别出的展示对象包括任一页面内的新增控件或存在修改的控件时,可以根据所述任一页面的页面ID,确定所述任一页面对应的功能执行文件;然后,对所述任一页面对应的功能执行文件进行编辑,以添加对所述新增控件或存在修改的控件的标注指示信息,所述标注指示信息用于使编辑后的当前源代码在被执行时,在展示出的所述任一页面中对所述新增控件或存在修改的控件进行标注。
例如,在Android操作系统下,每一控件的控件信息被记录于包含该控件的页面对应的信息记录文件中,因而可以根据该包含关系确定新增控件或存在修改的控件所处的页面。进一步的,与上述新增页面相类似的,可以基于页面ID确定出相应的功能执行文件,比如页面的页面ID为Test_Activity时,相应的功能执行文件为“Test_Activity.java”,从而在该功能执行文件中添加针对新增控件或存在修改的控件的标注指示信息,使得测试人员在运行当前版本的应用程序时、能够在该相关页面中的相关控件处查看到展示出的标注内容,从而快速确定相关控件为新增控件或存在修改的控件。
在一实施例中,可以根据识别出的展示对象的关联页面的页面ID,确定所述关联页面对应的功能执行文件;然后,在所述关联页面对应的功能执行文件记录的对应于初始化过程的源代码部分,添加对识别出的展示对象的标注指示信息,所述标注指示信息用于使编辑后的当前源代码在被执行时,在展示出的所述关联页面中对识别出的展示对象进行标注。
为了便于理解,下面以Android操作系统下的页面改版识别方案为例,对本说明书的技术方案进行详细说明;其中,将分别结合实施例,对新增页面的场景与新增控件/存在修改的控件的场景进行说明。
图3是一示例性实施例提供的一种对新增页面进行标注的流程示意图。如图3所示,该识别新增页面的流程可以包括以下步骤:
步骤①,分别获取应用程序的历史版本、当前版本的AndroidManifest.xml文件。
在图3所示的实施例中,假定用虚线绘制了历史版本的AndroidManifest.xml文件、用实线绘制了当前版本的AndroidManifest.xml文件。基于上文所述,该AndroidManifest.xml文件用于记录应用程序中所有页面分别对应的页面注册信息。
假定历史版本的AndroidManifest.xml文件中记录有:
<activity
android:name=".Test1Activity"
android:theme="@style/MyDialogStyle"/>
<activity
android:name=".Test2Activity"
android:theme="@android:style/Theme.NoTitleBar"/>
而当前版本的AndroidManifest.xml文件中记录有:
<activity
android:name=".Test_Activity"
android:label="Test_Activity"
android:theme="@android:style/Theme.NoTitleBar"/>
<activity
android:name=".Test1Activity"
android:theme="@style/MyDialogStyle"/>
<activity
android:name=".Test2Activity"
android:theme="@android:style/Theme.NoTitleBar"/>
通过比较上述源代码,可以确定:在当前版本的AndroidManifest.xml文件中至少比历史版本的AndroidManifest.xml文件新增了页面ID为“Test_Activity”的页面,因而可以确定当前版本的应用程序中包含新增页面Test_Activity。
步骤②,根据新增页面的页面ID,查找对应于该新增页面的功能执行文件。
针对上述的新增页面Test_Activity,可以确定该新增页面对应的功能执行文件的名称必然为页面ID-Test_Activity,并且由于功能执行文件的格式固定为java格式,因而可以确定该新增页面对应的功能执行文件为“Test_Activity.java”,从而在当前版本的应用程序中获取到该功能执行文件“Test_Activity.java”。
步骤③,对新增页面对应的功能执行文件进行编辑。
通过在功能执行文件“Test_Activity.java”中添加相应的标注指示信息,可以得到编辑后的功能执行文件“Test_Activity.java”,比如该编辑后的功能执行文件“Test_Activity.java”可以为图3中绘制的加粗边框的“Test_Activity.java”文件。基于添加的标注指示信息,可使测试人员在运行该当前版本的应用程序时,该新增页面内可以展示出特定的标注内容,比如在页面顶部标示的文字“新页面”或指示图标等,本说明书并不对此进行限制。
图4是一示例性实施例提供的一种对新增控件或存在修改的控件进行标注的流程示意图。如图4所示,该流程可以包括以下步骤:
步骤①,针对应用程序的历史版本与当前版本中的同一页面,通过将该同一页面在历史版本中的信息记录文件、当前版本中的信息记录文件进行比较,识别出新增控件或存在修改的控件。
以页面ID为“activity_test”的页面为例,该页面activity_test对应的信息记录文件的名称必然为页面ID-activity_test、文件格式为xml格式,因而该页面activity_test对应的信息记录文件为“activity_test.xml”。在图4所示的实施例中,假定用虚线绘制了历史版本的activity_test.xml文件、用实线绘制了当前版本的activity_test.xml文件。基于上文所述,该activity_test.xml文件用于记录页面activity_test的布局信息、控件信息等。
在一实施例中,假定历史版本的activity_test.xml文件中记录有:
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:paddingLeft="@dimen/app_start_mode_dispace"
android:text="@string/app_start_mode_back"
android:textColor="@color/app_primary"
android:textSize="@dimen/app_title_item_text_size"/>
当前版本的activity_test.xml文件中记录有:
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:paddingLeft="@dimen/app_start_mode_dispace"
android:text="@string/app_start_mode_back"
android:textColor="@color/app_primary"
android:textSize="@dimen/app_title_item_text_size"/>
<TextView
android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:paddingLeft="@dimen/app_start_mode_dispace"
android:text="@string/app_start_mode_back"
android:textColor="@color/app_primary"
android:textSize="@dimen/app_title_item_text_size"/>
通过比较上述源代码,可以确定:历史版本的activity_test.xml文件中记录了控件ID为“textview”的TextView类型的页面控件及其控件信息,而当前版本的activity_test.xml文件中记录了控件ID为“textview”、“textview1”的TextView类型的页面控件及其控件信息。可见,在当前版本的activity_test.xml文件中至少比历史版本的activity_test.xml文件新增了控件ID为“textview1”的TextView类型的页面控件,因而可以确定当前版本的应用程序中包含新增控件textview1。
在另一实施例中,假定在历史版本和当前版本的activity_test.xml文件中均记录了控件ID为“textview1”的TextView类型的页面控件及其控件信息,但是如果该控件textview1的控件信息在历史版本和当前版本的activity_test.xml文件中记录并不一致,可以确定该控件textview1为存在修改的控件。
为了便于理解,假定基于上述的步骤①,确定出当前版本的源代码中包含控件textview1,该控件textview1为新增控件或存在修改的控件,并在此基础上进一步描述后续步骤。
步骤②,当页面activity_test中包含新增控件或存在修改的控件时,可以根据页面ID-activity_test,确定相应的功能执行文件。
参考图3所示的实施例可知:根据页面activity_test的页面ID,可以确定相应的功能执行文件为“activity_test.java”。
步骤③,针对新增控件或存在修改的控件,对相应页面的功能执行文件进行编辑。
通过在功能执行文件“activity_test.java”中添加相应的标注指示信息,可以得到编辑后的功能执行文件“activity_test.java”,比如该编辑后的功能执行文件“activity_test.java”可以为图4中绘制的加粗边框的“activity_test.java”文件。
对于新增控件或存在修改的控件,可以在功能执行文件“activity_test.java”的源代码中确定对应于初始化过程的部分,比如通常为onCreate方法内,且布局名为页面ID。例如,以上述的页面activity_test为例,示例代码可以包括:
public class activity_test extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
然后,针对新增控件或存在修改的控件testview1,可以在对应于初始化过程的源代码部分,添加标注指示信息,可使测试人员在运行该当前版本的应用程序时,在页面activity_test内展示出针对控件testview1的标注内容,以使得测试人员能够快速确定相应的控件为新增控件或存在修改的控件。
在一实施例中,假定标注内容为添加至控件testview1右上角处的图标和文字,可以首先对该控件testview1的右上角进行定位,比如示例代码可以为:
final TextView tv=(TextView)findViewById(R.id.testview1);
int tvTop=tv.getTop()
int tvRight=tv.getRight()
然后,针对定位的该右上角,可以通过诸如下述的示例代码,指示所需展示的图标和文字:
View target=findViewById(R.id.testview1);
BadgeView badge=new BadgeView(this,target);
badge.setText("新");
badge.show();
基于上述示例代码,当测试人员运行当前版本的应用程序(包含编辑后的功能执行文件“activity_test.java”)时,可以展示出如图5所示的页面500,并且针对该页面500内对应于控件testview1的图标501,可以展示出位于图标501右上角的展示图标502、位于该展示图标502内的文字“新”,以表明该图标501为新增控件。类似地,针对存在修改的控件,可以在该控件的右上角展示文字“改”或其他标注内容。
综上所述,基于本说明书的技术方案,可以对应用程序进行自动分析,以快速、准确地识别出应用程序的改版情况。
图6是一示例性实施例提供的一种设备的示意结构图。请参考图6,在硬件层面,该设备包括处理器602、内部总线604、网络接口606、内存608以及非易失性存储器610,当然还可能包括其他业务所需要的硬件。处理器602从非易失性存储器610中读取对应的计算机程序到内存608中然后运行,在逻辑层面上形成应用程序页面改版的识别装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图7,在软件实施方式中,该应用程序页面改版的识别装置可以包括:
获取单元71,分别获取应用程序的历史版本和当前版本的源代码;
识别单元72,将所述历史版本的历史源代码与所述当前版本的当前源代码进行比较,识别出所述当前版本相对于所述历史版本发生变化的展示对象;
编辑单元73,编辑所述当前源代码,使编辑后的当前源代码被执行时,在展示页面中对识别出的展示对象进行标注。
可选的,所述识别单元72具体用于:
将所述历史源代码中的页面注册信息与所述当前源代码中的页面注册信息进行比较;
当任一页面的页面注册信息被包含于所述当前源代码中,且未被包含于所述历史源代码中时,确定所述任一页面为所述当前版本的应用程序中的新增页面,以作为所述当前版本相对于所述历史版本发生变化的展示对象。
可选的,所述识别单元72具体用于:
当所述历史源代码与所述当前源代码中均包含任一页面的页面注册信息时,根据所述任一页面的页面ID,确定所述任一页面对应的信息记录文件,所述信息记录文件记录有所述任一页面包含的控件的信息;
将所述历史源代码与所述当前源代码中分别对应于所述任一页面的信息记录文件进行比较,并根据比较结果确定所述当前版本的应用程序中的新增控件或存在修改的控件,以作为所述当前版本相对于所述历史版本发生变化的展示对象。
可选的,所述编辑单元73具体用于:
当识别出的展示对象包括新增页面时,根据所述新增页面的页面ID,确定所述新增页面对应的功能执行文件;
对所述新增页面对应的功能执行文件进行编辑,以添加对所述新增页面的标注指示信息,所述标注指示信息用于使编辑后的当前源代码在被执行时,对展示出的所述新增页面进行标注。
可选的,所述编辑单元73具体用于:
当识别出的展示对象包括任一页面内的新增控件或存在修改的控件时,根据所述任一页面的页面ID,确定所述任一页面对应的功能执行文件;
对所述任一页面对应的功能执行文件进行编辑,以添加对所述新增控件或存在修改的控件的标注指示信息,所述标注指示信息用于使编辑后的当前源代码在被执行时,在展示出的所述任一页面中对所述新增控件或存在修改的控件进行标注。
可选的,所述编辑单元73具体用于:
根据识别出的展示对象的关联页面的页面ID,确定所述关联页面对应的功能执行文件;
在所述关联页面对应的功能执行文件记录的对应于初始化过程的源代码部分,添加对识别出的展示对象的标注指示信息,所述标注指示信息用于使编辑后的当前源代码在被执行时,在展示出的所述关联页面中对识别出的展示对象进行标注。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (13)
1.一种应用程序页面改版的识别方法,其特征在于,包括:
分别获取应用程序的历史版本和当前版本的源代码;
将所述历史版本的历史源代码与所述当前版本的当前源代码进行比较,识别出所述当前版本相对于所述历史版本发生变化的展示对象;
编辑所述当前源代码,使编辑后的当前源代码被执行时,在展示页面中对识别出的展示对象进行标注。
2.根据权利要求1所述的方法,其特征在于,所述将所述历史版本的历史源代码与所述当前版本的当前源代码进行比较,识别出所述当前版本相对于所述历史版本发生变化的展示对象,包括:
将所述历史源代码中的页面注册信息与所述当前源代码中的页面注册信息进行比较;
当任一页面的页面注册信息被包含于所述当前源代码中,且未被包含于所述历史源代码中时,确定所述任一页面为所述当前版本的应用程序中的新增页面,以作为所述当前版本相对于所述历史版本发生变化的展示对象。
3.根据权利要求1所述的方法,其特征在于,所述将所述历史版本的历史源代码与所述当前版本的当前源代码进行比较,识别出所述当前版本相对于所述历史版本发生变化的展示对象,包括:
当所述历史源代码与所述当前源代码中均包含任一页面的页面注册信息时,根据所述任一页面的页面ID,确定所述任一页面对应的信息记录文件,所述信息记录文件记录有所述任一页面包含的控件的信息;
将所述历史源代码与所述当前源代码中分别对应于所述任一页面的信息记录文件进行比较,并根据比较结果确定所述当前版本的应用程序中的新增控件或存在修改的控件,以作为所述当前版本相对于所述历史版本发生变化的展示对象。
4.根据权利要求1所述的方法,其特征在于,所述编辑所述当前源代码,使编辑后的当前源代码被执行时,在展示页面中对识别出的展示对象进行标注,包括:
当识别出的展示对象包括新增页面时,根据所述新增页面的页面ID,确定所述新增页面对应的功能执行文件;
对所述新增页面对应的功能执行文件进行编辑,以添加对所述新增页面的标注指示信息,所述标注指示信息用于使编辑后的当前源代码在被执行时,对展示出的所述新增页面进行标注。
5.根据权利要求1所述的方法,其特征在于,所述编辑所述当前源代码,使编辑后的当前源代码被执行时,在展示页面中对识别出的展示对象进行标注,包括:
当识别出的展示对象包括任一页面内的新增控件或存在修改的控件时,根据所述任一页面的页面ID,确定所述任一页面对应的功能执行文件;
对所述任一页面对应的功能执行文件进行编辑,以添加对所述新增控件或存在修改的控件的标注指示信息,所述标注指示信息用于使编辑后的当前源代码在被执行时,在展示出的所述任一页面中对所述新增控件或存在修改的控件进行标注。
6.根据权利要求1所述的方法,其特征在于,所述编辑所述当前源代码,使编辑后的当前源代码被执行时,在展示页面中对识别出的展示对象进行标注,包括:
根据识别出的展示对象的关联页面的页面ID,确定所述关联页面对应的功能执行文件;
在所述关联页面对应的功能执行文件记录的对应于初始化过程的源代码部分,添加对识别出的展示对象的标注指示信息,所述标注指示信息用于使编辑后的当前源代码在被执行时,在展示出的所述关联页面中对识别出的展示对象进行标注。
7.一种应用程序页面改版的识别装置,其特征在于,包括:
获取单元,分别获取应用程序的历史版本和当前版本的源代码;
识别单元,将所述历史版本的历史源代码与所述当前版本的当前源代码进行比较,识别出所述当前版本相对于所述历史版本发生变化的展示对象;
编辑单元,编辑所述当前源代码,使编辑后的当前源代码被执行时,在展示页面中对识别出的展示对象进行标注。
8.根据权利要求7所述的装置,其特征在于,所述识别单元具体用于:
将所述历史源代码中的页面注册信息与所述当前源代码中的页面注册信息进行比较;
当任一页面的页面注册信息被包含于所述当前源代码中,且未被包含于所述历史源代码中时,确定所述任一页面为所述当前版本的应用程序中的新增页面,以作为所述当前版本相对于所述历史版本发生变化的展示对象。
9.根据权利要求7所述的装置,其特征在于,所述识别单元具体用于:
当所述历史源代码与所述当前源代码中均包含任一页面的页面注册信息时,根据所述任一页面的页面ID,确定所述任一页面对应的信息记录文件,所述信息记录文件记录有所述任一页面包含的控件的信息;
将所述历史源代码与所述当前源代码中分别对应于所述任一页面的信息记录文件进行比较,并根据比较结果确定所述当前版本的应用程序中的新增控件或存在修改的控件,以作为所述当前版本相对于所述历史版本发生变化的展示对象。
10.根据权利要求7所述的装置,其特征在于,所述编辑单元具体用于:
当识别出的展示对象包括新增页面时,根据所述新增页面的页面ID,确定所述新增页面对应的功能执行文件;
对所述新增页面对应的功能执行文件进行编辑,以添加对所述新增页面的标注指示信息,所述标注指示信息用于使编辑后的当前源代码在被执行时,对展示出的所述新增页面进行标注。
11.根据权利要求7所述的装置,其特征在于,所述编辑单元具体用于:
当识别出的展示对象包括任一页面内的新增控件或存在修改的控件时,根据所述任一页面的页面ID,确定所述任一页面对应的功能执行文件;
对所述任一页面对应的功能执行文件进行编辑,以添加对所述新增控件或存在修改的控件的标注指示信息,所述标注指示信息用于使编辑后的当前源代码在被执行时,在展示出的所述任一页面中对所述新增控件或存在修改的控件进行标注。
12.根据权利要求7所述的装置,其特征在于,所述编辑单元具体用于:
根据识别出的展示对象的关联页面的页面ID,确定所述关联页面对应的功能执行文件;
在所述关联页面对应的功能执行文件记录的对应于初始化过程的源代码部分,添加对识别出的展示对象的标注指示信息,所述标注指示信息用于使编辑后的当前源代码在被执行时,在展示出的所述关联页面中对识别出的展示对象进行标注。
13.一种应用程序页面改版的识别装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810041711.1A CN108197031A (zh) | 2018-01-16 | 2018-01-16 | 应用程序页面改版的识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810041711.1A CN108197031A (zh) | 2018-01-16 | 2018-01-16 | 应用程序页面改版的识别方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108197031A true CN108197031A (zh) | 2018-06-22 |
Family
ID=62589466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810041711.1A Pending CN108197031A (zh) | 2018-01-16 | 2018-01-16 | 应用程序页面改版的识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108197031A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030202012A1 (en) * | 2002-04-29 | 2003-10-30 | International Business Machines Corporation | Method, system and program product for determining differences between an existing graphical user interface (GUI) mapping file and a current GUI |
CN104516633A (zh) * | 2014-11-19 | 2015-04-15 | 微梦创科网络科技(中国)有限公司 | 一种用户界面元素管理方法和装置 |
US20150286556A1 (en) * | 2014-04-08 | 2015-10-08 | Turnkey Solutions Corp. | Software Test Automation System and Method |
CN105260301A (zh) * | 2015-09-24 | 2016-01-20 | 努比亚技术有限公司 | 用户界面的视效比对测试装置及其实现方法 |
-
2018
- 2018-01-16 CN CN201810041711.1A patent/CN108197031A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030202012A1 (en) * | 2002-04-29 | 2003-10-30 | International Business Machines Corporation | Method, system and program product for determining differences between an existing graphical user interface (GUI) mapping file and a current GUI |
US20150286556A1 (en) * | 2014-04-08 | 2015-10-08 | Turnkey Solutions Corp. | Software Test Automation System and Method |
CN104516633A (zh) * | 2014-11-19 | 2015-04-15 | 微梦创科网络科技(中国)有限公司 | 一种用户界面元素管理方法和装置 |
CN105260301A (zh) * | 2015-09-24 | 2016-01-20 | 努比亚技术有限公司 | 用户界面的视效比对测试装置及其实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8954893B2 (en) | Visually representing a hierarchy of category nodes | |
US20190243848A1 (en) | Generating a structured document guiding view | |
US20140164900A1 (en) | Appending content with annotation | |
US10169427B2 (en) | Personalized highlighter for textual media | |
US20130290944A1 (en) | Method and apparatus for recommending product features in a software application in real time | |
JP4299963B2 (ja) | 意味的まとまりに基づいて文書を分割する装置および方法 | |
CN110046637B (zh) | 一种合同段落标注模型的训练方法、装置及设备 | |
Feng et al. | Gifdroid: Automated replay of visual bug reports for android apps | |
CN106598964A (zh) | 页面加载方法及装置 | |
WO2011162959A2 (en) | Generating recommendations for improving a presentation document | |
CN110968314A (zh) | 一种页面生成方法及装置 | |
CN106484779B (zh) | 文件操作方法及装置 | |
CN111240962B (zh) | 测试方法、装置、计算机设备及计算机存储介质 | |
CN102346771B (zh) | 信息展现方法及装置 | |
CN113805861B (zh) | 基于机器学习的代码生成方法、代码编辑系统及存储介质 | |
CN107562423B (zh) | Ui页面开发方法及装置 | |
CN110737588A (zh) | 一种自动埋点的方法、装置、介质和电子设备 | |
CN108197031A (zh) | 应用程序页面改版的识别方法及装置 | |
KR102300444B1 (ko) | 문서에 적용되어 있는 글꼴이 지원되는 글꼴인지 확인이 가능한 문서 편집 장치 및 그 동작 방법 | |
CN111832254A (zh) | 图纸标注显示处理方法及装置 | |
KR20090053104A (ko) | 블록 그룹핑을 이용한 정보 추출 장치 및 그 방법 | |
CN115248803B (zh) | 适用于网盘文件的收藏方法、装置、网盘及存储介质 | |
CN109902278B (zh) | 一种批注的处理方法及装置 | |
US11288063B2 (en) | Method and apparatus for assisting in open source usage | |
Tomašević | Software System for Similarity Detection in the Picocomputer Assembly Programs |
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: 20180622 |