CN104850489B - 移动应用测试系统 - Google Patents
移动应用测试系统 Download PDFInfo
- Publication number
- CN104850489B CN104850489B CN201410050296.8A CN201410050296A CN104850489B CN 104850489 B CN104850489 B CN 104850489B CN 201410050296 A CN201410050296 A CN 201410050296A CN 104850489 B CN104850489 B CN 104850489B
- Authority
- CN
- China
- Prior art keywords
- test
- mobile solution
- simulator
- context profiles
- mobile
- 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.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本公开涉及移动应用测试系统和方法。根据本公开的移动应用测试系统包括:多个模拟器,被配置成模拟运行移动应用的多种运行环境;输入单元,被配置成输入移动应用的执行文件和测试脚本;上下文简档数据库,被配置成存储用于配置模拟器的多个上下文简档;测试控制器,被配置成根据移动应用的执行文件从多个模拟器中选择相应的模拟器,从上下文简档数据库中选择相应的上下文简档,使用所选择的上下文简档配置所选择的模拟器,并且使用执行文件和测试脚本在所选择的模拟器上运行移动应用并且生成移动应用的测试结果;以及输出单元,被配置成输出移动应用的测试结果。
Description
技术领域
本公开涉及移动应用测试技术领域,更具体而言,涉及一种移动应用测试系统和方法。
背景技术
随着移动互联网的飞速发展,人们开始使用移动设备进行工作和娱乐。制造商开始生产各种不同类型的高性能智能移动设备,诸如美国苹果公司的iPhone系列移动电话、iPad系列平板电脑,韩国三星公司的Galaxy系列移动电话和平板电脑,芬兰诺基亚公司的Lumia系列移动电话等。这些移动设备使用不同的操作系统,例如美国苹果公司的iPhone系列移动电话和iPad系列平板电脑使用iOS操作系统,韩国三星公司的Galaxy系列移动电话和平板电脑使用Android操作系统,芬兰诺基亚公司的Lumia系列移动电话使用WindowsPhone操作系统。同时,企业和个人应用开发者每天开发出成千上万的针对各种操作系统的移动应用。
传统的移动应用测试方法通常采用如下方式,由开发者在计算机上单独地搭建一个模拟器或者使用真实移动设备连接到计算机上,并且在开发过程中对移动应用进行调试和测试。但是这种传统测试方法的测试效率较低,并且测试成本较高。例如,如果需要在具有不同操作系统的不同移动设备上测试同一款移动应用,则需要准备相应的真实移动设备或模拟器,导致测试成本增加。此外,传统测试方法也无法针对移动应用进行关于上下文参数(context parameters)的多样性的测试。
可见,目前移动应用的测试技术还不够成熟。例如,美国谷歌公司的Android应用商店Google Play Store和美国苹果公司的iOS应用商店AppStore中的大部分移动应用缺乏充分的测试,因此移动应用的质量和用户体验并不是非常好。原因主要在于移动应用的测试与传统的软件测试有很大不同。例如,在进行移动应用的测试时,需要考虑移动应用的上下文参数的动态改变。例如,当用户移动时,用户携带的移动设备的地理位置发生改变,移动设备的网络连接方式有可能从3G切换到WiFi,从而导致无线网络连接速度改变,同时。在测试过程中,很难针对这些情况在单个模拟器或真实移动设备上进行测试。另一方面,移动应用在异常环境中的运行情况也难以测试,例如,网络突然中断。因此,移动应用的测试问题是移动互联网的发展中面对的一个重要问题。
发明内容
在下文中将给出关于本公开的简要概述,以便提供关于本公开的某些方面的基本理解。应当理解,这个概述并不是关于本公开的穷举性概述。它并不是意图确定本公开的关键或重要部分,也不是意图限定本公开的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
鉴于现有技术的上述现况,本公开的目的在于提供一种基于上下文感知的移动设备云测试系统和方法。测试者可以上传移动应用文件和测试脚本文件,根据所需的移动设备的运行环境来选择模拟器,并且选择相应的上下文参数来配置模拟器,然后通过所选择的模拟器对移动应用进行自动化测试。在移动应用测试结束后,生成测试结果并且发送给测试者。
根据本公开的一个方面,提供了一种移动应用测试系统,包括:多个模拟器,被配置成模拟运行移动应用的多种运行环境;输入单元,被配置成输入移动应用的执行文件和测试脚本;上下文简档数据库,被配置成存储用于配置模拟器的多个上下文简档;测试控制器,被配置成根据移动应用的执行文件从多个模拟器中选择相应的模拟器,从上下文简档数据库中选择相应的上下文简档,使用所选择的上下文简档配置所选择的模拟器,并且使用执行文件和测试脚本在所选择的模拟器上运行移动应用并且生成移动应用的测试结果;以及输出单元,被配置成输出移动应用的测试结果。
根据本公开的另一方面,提供了一种移动应用测试方法,包括:输入移动应用的执行文件和测试脚本;根据移动应用的执行文件,从模拟运行移动应用的多种运行环境的多个模拟器中选择相应的模拟器,从存储用于配置模拟器的多个上下文简档的上下文简档数据库中选择相应的上下文简档;使用所选择的上下文简档配置所选择的模拟器;使用执行文件和测试脚本在所选择的模拟器上运行移动应用并且生成移动应用的测试结果;以及输出移动应用的测试结果。
另外,本公开的实施例还提供了用于实现上述移动应用测试方法的计算机程序。
此外,本公开的实施例还提供了至少计算机可读介质形式的计算机程序产品,其上记录有用于实现上述移动应用测试方法的计算机程序代码。
本公开提出的方法使得移动应用测试者可以配置用于模拟不同的移动设备的模拟器,将移动应用同时部署在多台模拟器中进行测试,解决了关于移动设备的多样性的测试问题,而且可以使用存储在上下文简档数据库中的上下文简档对模拟器的上下文参数进行配置,从而解决了关于上下文参数的多样性的测试问题。因此,较之传统的移动应用测试方法,本公开的移动应用测试方法的测试效率更高且测试成本更低。
附图说明
参照下面结合附图对本公开实施例的说明,会更加容易地理解本公开的以上和其它目的、特点和优点。附图中的部件不是成比例绘制的,而只是为了示出本公开的原理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。
图1是图示根据本公开的第一实施例的移动应用测试系统的框图;
图2是图示根据测试位置配置模拟器的一个示例的示意图;
图3是图示具有特定场景的随时间变化的上下文参数的一个示例的示意图;
图4是图示根据本公开的第一实施例的移动应用测试方法的处理流程的流程图;
图5是图示根据本公开的第二实施例的移动应用测试系统的框图;
图6是图示模糊化单元对上下文参数进行模糊化处理的一个示例的示意图;
图7是图示对服务器返回的响应数据进行模糊化处理的一个示例的示意图;
图8是图示生成错误输入数据集合的一个示例的示意图;
图9是图示基于协同过滤算法生成经模糊化处理的输入数据的一个示例的示意图;
图10是图示根据本公开的第二实施例的移动应用测试方法的处理流程的流程图;以及
图11是图示可用来实现根据本公开的实施例的系统和方法的通用计算机系统的结构简图。
具体实施方式
在下文中将结合附图对本公开的示例性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施方式的过程中可以做出很多特定于实施方式的决定,以便实现开发人员的具体目标,并且这些决定可能会随着实施方式的不同而有所改变。
在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本公开,在附图中仅仅示出了与根据本公开的方案密切相关的部件,而省略了与本公开关系不大的其他细节。
[第一实施例]
图1是图示了根据本公开的第一实施例的移动应用测试系统100的框图。系统100包括多个模拟器110a、110b和110c,输入单元120,上下文简档数据库130,测试控制器140以及输出单元150。
模拟器110a、110b和110c可以被配置成模拟运行移动应用的多种运行环境。移动应用的运行环境可以包括运行所述移动应用的操作系统和移动设备。运行移动应用的操作系统可以包括基于Linux系统的Android操作系统、基于Windows系统的Windows Phone操作系统、基于Mac系统的iOS操作系统等。例如,模拟器110a可以模拟运行Android操作系统的移动设备,模拟器110b可以模拟运行Windows Phone操作系统的移动设备,并且模拟器110c可以模拟运行iOS操作系统的移动设备。模拟器110a、110b和110c的其他配置参数可以获取自下文描述的上下文简档数据库130中存储的上下文简档。
此外,模拟器110a、110b和110c可以由通用计算机构成,也可以由针对测试目的而专门设计的诸如专用集成电路(ASIC)的专用硬件构成。本领域技术人员应认识到,尽管这里仅示出了三个模拟器,但是可以设置更多或更少的模拟器以模拟具有不同的操作系统的不同的移动设备。这些模拟器一起构成了用于测试移动应用的云测试平台。
输入单元120可以被配置成由测试者输入移动应用的执行文件和测试脚本。
除移动应用的源代码之外,执行文件还可以包括运行移动应用的运行环境的上下文参数。该上下文参数可以包括与运行移动应用的操作系统和移动设备相关的各种参数。例如,上下文参数可以包括操作系统的版本和移动设备的硬件配置。移动设备的硬件配置可以包括移动设备的制式、处理器速度、存储器容量等。此外,上下文参数还可以包括运行移动应用的移动设备的网络接入方式(例如,3G、Edge、WiFi等)、网络接入速度、移动设备的语言(例如,简体中文、日文)、移动设备所在的时区等。
此外,当移动应用是需要访问网络上的服务器的移动应用时,该执行文件可以进一步包括移动应用访问的服务器的网络地址,其中通过该网络地址获取来自服务器的响应数据。
移动应用的测试脚本可以包括用于测试移动应用的输入数据,例如移动应用的用户输入的文本或图像。
此外,输入单元120可以被进一步配置成由测试者输入移动应用的测试位置。
移动应用的测试位置指的是测试者指定的进行测试的地理位置。例如,测试者可以指定在中国北京进行移动应用的测试。根据测试位置,可以推定与测试位置相关的上下文参数,诸如测试位置处的移动设备通常使用的语言、测试位置所在的时区等。在指定在中国北京进行移动应用的测试的情况下,可以推定在该测试位置处的移动设备通常使用简体中文,所在的时区为东八区。
上下文简档数据库130可以被配置成存储多个上下文简档。这些上下文简档用于配置模拟器。上下文简档数据库中存储的上下文简档可以由位于不同的测试位置的贡献者使用不同的移动设备在不同时间获得的上下文参数构成。这里所称的贡献者是指提供关于真实移动设备的上下文参数的人。与测试者输入的上下文参数相似,贡献者所提供的上下文参数也可以包括与贡献者的运行移动应用的操作系统和移动设备相关的各种参数。例如,上下文参数可以包括贡献者的移动设备的硬件配置和操作系统的版本。移动设备的硬件配置可以包括移动设备的制式、处理器速度、存储器容量等。此外,上下文参数还可以包括运行移动应用的移动设备的网络接入方式(例如,3G、Edge、WiFi等)、网络接入速度、移动设备的语言(例如,简体中文、日文)、移动设备所在的时区等。
贡献者可以在其移动设备上安装用于收集和上传上下文参数的专用移动应用。当贡献者携带移动设备进行各种活动时,例如留在家中、爬山、购物等,该专用移动应用可以自动地在不同时间收集贡献者的移动设备在不同位置的上下文参数并且将其实时上传到上下文简档数据库130中以构成关于贡献者使用的具有特定操作系统的移动设备的上下文简档。
此外,上下文简档数据库130可以将上下文简档按照场景进行分类。例如,上下文简档的场景可以包括留在家中、购物、乘火车旅行等。
测试控制器140可以被配置成根据移动应用的执行文件和测试位置,从多个模拟器110a、110b、110c中选择相应的模拟器,从上下文简档数据库130中选择相应的上下文简档,并且使用所选择的上下文简档配置所选择的模拟器。
测试控制器140可以根据执行文件中包括的操作系统的版本和移动设备的硬件配置从多个模拟器110a、110b、110c中选择相应的模拟器从上下文简档数据库130中选择相应的上下文简档,并且使用所选择的上下文简档配置所选择的模拟器。例如,当执行文件中包括的上下文参数指示运行移动应用的移动设备是运行Android操作系统的韩国三星公司的Galaxy S4移动电话时,测试控制器140选择模拟器110a,并且从上下文简档数据库130中选择与韩国三星公司的Galaxy S4移动电话对应的上下文简档来配置模拟器110a。
在执行文件中没有包括操作系统的版本和移动设备的硬件配置的情况下,测试控制器140可以根据测试位置来选择相应的模拟器。例如,测试控制器140可以基于测试位置选择在测试位置最常见的移动设备机型,并且据此选择并且配置模拟器。例如,当指定在中国北京进行移动应用的测试时,测试控制器140可以选择在中国北京最流行的三款移动设备机型,并且使用上下文简档数据库130中与这三款移动设备机型对应的上下文简档来配置所选择的模拟器。
图2图示了根据测试位置配置模拟器的一个示例。在图2中示出了在中国北京最流行的三款移动设备机型。以排名第一的韩国三星公司的Galaxy Note II移动电话为例,测试控制器140选择模拟器110a,并且根据上下文简档数据库130中存储的与Galaxy Note II移动电话对应的上下文简档来配置模拟器110a。
如果在上下文简档数据库130中不存在与执行文件中包括的操作系统的版本和移动设备的硬件配置对应的上下文简档,则测试控制器140根据上下文简档的排序分数来选择上下文简档。上下文简档的排序分数是通过对所指定的运行移动应用的移动设备与贡献者使用的移动设备之间的相似度、上下文简档的使用次数、以及上下文简档的错误检测率进行加权计算而获得的。
例如,测试控制器140可以根据执行文件中包括的移动设备的硬件配置来选择相似度最高的移动设备,并且据此选择相应的上下文简档。具体地,测试控制器140使用下式(1)来计算移动设备的相似度:
其中相似度函数similarity()计算测试者预期使用的测试用移动设备的硬件配置devicetester和贡献者使用的移动设备的硬件配置devicei之间的相似度。i是贡献者(contributor)的索引。移动设备的硬件配置可以包括移动设备的高度、宽度、厚度、处理器速度、存储器容量等。
上下文简档的使用次数指的是上下文简档数据库中存储的各上下文简档在对移动应用进行测试时被使用的次数。上下文简档的使用次数越多,表明该上下文简档越被常用于对移动应用进行测试。
上下文简档的错误检测率指的是在使用上下文简档数据库中存储的上下文简档对移动应用进行测试时引起移动应用运行错误的比率。上下文简档的错误检测率越高,表明该上下文简档在对移动应用进行测试时越容易检测到运行错误,因而该上下文简档对于测试是更为有价值的。
然后,测试控制器150通过对设备相似度similarity,上下文简档被使用的次数useTimesRate以及上下文简档在被使用时检测到移动应用的错误的错误检测率bugDetectionRate进行加权计算,并且根据计算出的排序分数rankScore对上下文简档数据库中的上下文简档进行排序。排序分数rankScore的计算可由下式(2)表示。
rankScore=similarity*α+useTimesRate*β+(1-α-β)*bugDectionRate (2)
其中根据经验,α取值为0.5,β取值为0.2。
例如,下表列出了基于贡献者提供的上下文简档的排序。
表1基于贡献者提供的上下文简档排序
测试控制器140根据排序后的上下文简档列表来选择上下文简档,并且使用所选择的上下文简档来配置模拟器。例如,测试控制器140可以选择具有最大排序分值0.8的上下文简档Profile1来配置一个模拟器。应当注意,测试控制器140也可以根据测试者的需要选择排序分数较高的若干个上下文简档来配置若干个模拟器。
此外,还需要注意,由于上下文简档数据库130中存储的上下文简档是贡献者使用真实移动设备基于真实环境而记录的,因此上下文简档可以具有特定的使用场景,并且可以随时间动态改变。因此,由该上下文简档配置的模拟器也相应地具有时间特性,也就是说,模拟器的上下文参数,例如地理位置、网络连接速度、可用存储器容量等,可以随时间变化。图3图示了具有特定场景(乘火车旅行)的随时间变化的上下文参数的一个示例。如图3中所示,在乘火车旅行的特性场景下,上下文参数随时间发生变化。例如,在时间T1、T2、T3,上下文参数GPS位置、网络接入速度和可用存储器容量均可能发生变化。因此,不同于传统的移动应用测试技术对移动应用进行三维测试,根据本公开的该实施例的移动应用测试技术考虑到时间相关性,对移动应用进行四维测试。
在使用所选择的上下文简档配置所选择的模拟器之后,测试控制器140使用输入到输入单元120的执行文件和测试脚本在所选择的模拟器上运行移动应用并且生成移动应用的测试结果。
此外,当移动应用是需要访问网络上的服务器的移动应用时,移动应用的执行文件进一步包括移动应用访问的服务器的网络地址。此时,测试控制器140可以通过该网络地址获取来自服务器的响应数据,并且使用测试脚本以及通过来自服务器的响应数据在所选择的模拟器上运行移动应用。
输出单元150可以被配置成输出测试结果。该测试结果可以包括截图,测试日志,结果分析等。输出单元150可以通过各种方式将测试结果呈递给测试者。例如,可以通过电子邮件将测试结果发送给测试者。
图4图示了根据本公开的第一实施例的移动应用测试方法200的处理流程。该处理开始于步骤S201,并且前往步骤S202。
在步骤S202,通过输入单元输入移动应用的执行文件和测试脚本。随后,处理前往步骤S203。
在步骤S203,通过测试控制器,根据移动应用的执行文件,从模拟运行移动应用的多种运行环境的多个模拟器中选择相应的模拟器,从存储用于配置模拟器的多个上下文简档的上下文简档数据库中选择相应的上下文简档。随后,处理前往步骤S204。
在步骤S204,通过测试控制器,使用所选择的上下文简档配置所选择的模拟器。随后,处理前往步骤S205。
在步骤S205,通过测试控制器,使用执行文件和测试脚本在所选择的模拟器上运行移动应用并且生成移动应用的测试结果。随后,处理前往步骤S206。
在步骤S206,通过输出单元输出移动应用的测试结果。随后,处理前往步骤S207并结束。
通过根据本公开的第一实施例的移动应用测试系统和方法,可以在最大程度上模拟移动应用的真实运行环境,从而提高测试的真实性。此外,根据输入数据来选择上下文简档以配置模拟器,可以提高测试效率并且降低测试成本。
[第二实施例]
在上述第一实施例中,当测试者将测试脚本输入到输入单元后,测试控制器选择并配置模拟器,对移动应用进行自动化测试。然而,在一些情况下,需要对移动应用在异常的环境下进行测试。
图5是图示了根据本公开的第二实施例的移动应用测试系统300的框图。系统300包括多个模拟器310a、310b和310c,输入单元320,上下文简档数据库330,测试控制器340,输出单元350,模糊化单元360,测试知识数据库370和测试历史数据库380。
根据本公开的第二实施例的移动应用测试系统300中的多个模拟器310a、310b和310c,输入单元320,上下文简档数据库330和输出单元350与根据本公开的第一实施例的移动应用测试系统100中的模拟器110a、110b和110c,输入单元120,上下文简档数据库130和输出单元150的结构和功能相同,并且这里省略了相应的描述。
在移动应用的实际测试中,由于测试者个人的测试经验有限,不可能编写出能够完全覆盖各种异常情况(例如,上下文参数异常,网络访问异常,输入数据异常)的执行文件和测试脚本。为此,在移动应用测试系统300中设置了模糊化单元360、测试知识数据库370和测试历史数据库380。
模糊化单元360可以根据测试知识数据库370中存储的测试知识信息对从上下文简档数据库330提取的上下文简档中包含的上下文参数进行模糊化处理,并且测试控制器340使用经模糊化处理的上下文简档来配置所选择的模拟器。
具体地,测试知识数据库370可以是存储关于测试的测试知识信息的专家测试知识库,在该专家测试知识库中存储了很多模糊测试实例。模糊化单元360可以使用测试知识数据库370中存储的测试知识信息对从上下文简档数据库330提取的上下文简档中包含的上下文参数进行模糊化处理。具体地,模糊化单元360可以对测试控制器340已选择上下文简档中包含的上下文参数进行分析,在测试知识数据库370中寻找与所述上下文参数对应的模糊测试实例,并且基于模糊测试实例使易于引起移动应用运行错误的上下文参数模糊化,并且使用经模糊化处理的上下文参数重新构造上下文简档。在模糊化单元360能够获得多个经模糊化处理的上下文简档的情况下,测试控制器340可以使用与上式(2)相似的方式计算排序分数,根据排序分数选择一个或更多个上下文简档,并且使用所选择的上下文简档来配置模拟器。
例如,如果移动应用是针对移动电话的移动应用,考虑到移动电话的上下文参数随时间和地理位置的不同而实时地发生变化,在测试过程中有必要对相应的上下文参数进行模糊化,例如考虑网络连接方式从3G变换到2G、移动应用运行过程中的突发的来电或短信等情况。
此外,模糊化单元360可以进一步生成中断指令,用于模拟移动应用中断的情况,并且在此情况下将经模糊化的上下文简档和中断指令输入到测试控制器340。测试控制器340根据中断指令中断移动应用的运行,并且使用经模糊化的上下文简档重新配置模拟器以对移动应用进行异常情况下的测试。
图6图示了模糊化单元360对上下文参数进行模糊化处理的一个示例。如图6中所示,模糊化单元可以根据已选择的上下文简档中包含的上下文参数进行分析,在测试知识数据库中寻找与所述上下文参数对应的模糊测试实例。例如,模糊化单元可以对诸如存储器容量、网络接入速度、语言、时区、GPS位置等的上下文参数进行模糊化处理。此外,模糊化单元可以设定不同的中断情况,据此根据经模糊化处理的上下文参数对模拟器进行配置以测试移动应用在异常情况下的运行情况。
此外,当移动应用是需要访问网络的移动应用时,模糊化单元360可以根据测试知识数据库370中存储的测试知识信息对从移动应用访问的服务器返回的响应数据进行模糊化处理,并且测试控制器340使用输入到输入单元320的执行文件、测试脚本以及经模糊化处理的响应数据对移动应用进行测试。
在该情况下,模糊化单元360也可以使用代理服务器对从移动应用访问的服务器返回的响应数据进行模糊化处理。
例如,当移动应用是需要访问网络的移动应用时,网络连接可能突然中断,此时不存在从服务器返回的响应数据,或者说,从服务器返回的响应数据是空值。
图7示出了对服务器返回的响应数据进行模糊化处理的一个示例。例如,当移动应用访问网络上的服务器时,在正常情况下返回移动应用的响应数据是是json(JavaScriptObject Notation)格式的字符串,其中记录了日程安排系统中的会议室详细使用情况。模糊化单元360使用代理服务器将字段time的值修改为“null”,“10:00-25:00”,“??????”这种非标准的异常化数据,而这样的响应数据很可能引起移动应用的崩溃。通过进行这种模糊化处理,可以检测移动应用在异常化的环境下能否正常地运行。
此外,模糊化单元360还可以根据测试历史数据库380中存储的测试历史信息对输入到输入单元320的测试脚本进行模糊化处理,并且测试控制器340使用执行文件和经模糊化的测试脚本对移动应用进行测试。
根据本公开的实施例的移动应用测试系统300是云测试平台,可以中设置测试历史数据库380,其中存储关于测试者已进行的测试的大量测试历史数据。通过数据分析方法,模糊化单元360可以基于测试历史数据库380中存储的测试历史数据对输入数据进行模糊化处理,并且将经模糊化处理的输入数据提供给测试控制器340。模糊化控制器350可以使用执行文件和经模糊化的测试脚本对移动应用进行测试,从而对移动应用进行更充分的测试。
例如,移动应用中通常具有许多用于用户输入数据的输入控件,例如“textfield”、“text view”等。在本公开的该实施例中,模糊化单元360可以使用协同过滤方法基于测试历史数据库380中存储的测试历史数据对测试脚本中包含的输入数据进行模糊化处理,并且将经模糊化处理的输入数据提供给测试控制器340以对移动应用进行测试。这些经模糊化处理的输入数据易于引起移动应用的运行错误,有助于对移动应用的耐错性和鲁棒性进行测试。
以下将具体描述模糊化单元360生成经模糊化处理的输入数据的过程。
首先,模糊化单元360基于测试脚本中包含的输入数据,从测试历史数据库中选取与其匹配的引起应用程序运行错误的历史错误输入数据,并且使用这些历史错误输入数据编写相应的测试脚本对移动应用进行测试并且生成易于引起移动应用运行错误的错误输入数据集合。
图8示出了生成错误输入数据集合的一个示例。如图8中所示,模糊化单元在使用根据历史错误输入数据编写的测试脚本进行测试之后,发现错误输入数据4和5引起当前测试的移动应用的运行错误,从而获得了错误输入数据集合{“??????”,“Hello”}。该错误输入数据集合中的错误输入数据会引起移动应用的崩溃。另一方面,如果所获得的错误输入数据集合为空,则模糊化单元停止对输入数据的模糊化处理。
在错误输入数据集合不为空的情况下,模糊化单元360基于协同过滤算法生成用于对移动应用进行测试的经模糊化处理的输入数据。
图9示出了基于协同过滤算法生成经模糊化处理的输入数据的一个示例。例如,如图9中所示,模糊化单元搜索测试历史数据库,发现其他3个测试者A、B和C在测试其他移动应用时具有相同的错误输入集合{“??????”,“Hello”}。基于协同过滤算法的思想,如果使用测试者A、B和C编写的其他引起移动应用运行错误的输入数据对当前移动应用进行测试,也很有可能检测出当前移动应用的运行错误。
例如,模糊化单元统计测试者A、B和C的其他引起移动应用的运行错误的输入数据。例如,如图9中所示,输入数据“######”、“******”和“你好”会引起移动应用的运行错误。模糊化单元统计这三个输入数据的使用频率,发现“######”的使用频率是3,“******”的使用频率是2,并且“你好”的使用频率是1。这里可以将使用频率的阈值T预先设定为2,从而模糊化单元360将使用频率低于该阈值的输入数据排除,因此将输入数据“######”和“******”作为经模糊化处理的输入数据提供给测试控制器用于对当前移动应用进行测试。
基于上述协同过滤算法,可以使用经模糊化处理的输入数据对移动应用进行更进一步的模糊测试。如果在使用经模糊化处理的输入数据的情况下,移动应用仍能够通过测试,则可以认为移动应用的耐错性和鲁棒性较强。
本领域技术人员应认识到,本公开的该实施例中的模糊化单元360可以对执行文件中包含的上下文参数、测试脚本中包含的输入数据和/或从服务器返回的响应数据进行模糊化处理。然而,在本公开的技术方案的实际实施过程中,模糊化单元360不一定对上下文参数、输入数据和响应数据三者均执行模糊化处理,而是可以从中选取一个或两个进行模糊化处理。
图10图示了根据本公开的第二实施例的移动应用测试方法400的处理流程。该处理开始于步骤S401,并且前往步骤S402。
在步骤S402,通过输入单元输入移动应用的执行文件和测试脚本。随后,处理前往步骤S403。
在步骤S403,通过测试控制器根据移动应用的执行文件,从模拟运行移动应用的多种运行环境的多个模拟器中选择相应的模拟器,从存储用于配置模拟器的多个上下文简档的上下文简档数据库中选择相应的上下文简档。随后,处理前往步骤S404。
在步骤S404,通过模糊化单元对所选择的上下文简档中包含的上下文参数和/或测试脚本中包含的输入数据进行模糊化处理,从而生成经模糊化处理的上下文简档和经模糊化处理的测试脚本。随后,处理前往步骤S405。
在步骤S405,通过测试控制器,用经模糊化处理的上下文简档配置所选择的模拟器。随后,处理前往步骤S406。
在步骤S406,通过测试控制器,使用执行文件和经模糊化处理的测试脚本在所选择的模拟器上运行移动应用并且生成移动应用的测试结果。随后,处理前往步骤S407。
在步骤S407,通过输出单元输出移动应用的测试结果。随后,处理前往步骤S408并结束。
通过根据本公开的第二实施例的移动应用测试系统和方法,可以对移动应用在异常情况下的运行情况进行测试,从而进一步提高了测试效率并且降低了测试成本。
图11是示出了可用来实现根据本公开的实施例的系统和方法的通用计算机系统的结构简图。计算机系统1100只是一个示例,并非暗示对本公开的方法和装置的使用范围或者功能的局限。也不应将计算机系统1100解释为对示例性操作系统1100中示出的任一组件或其组合具有依赖或需求。
在图11中,中央处理单元(CPU)1101根据只读存储器(ROM)1102中存储的程序或从存储部分1108加载到随机存取存储器(RAM)1103的程序执行各种处理。在RAM1103中,还根据需要存储当CPU1101执行各种处理等等时所需的数据。CPU1101、ROM1102和RAM1103经由总线1104彼此连接。输入/输出接口1105也连接到总线1104。
下述部件也连接到输入/输出接口1105:输入部分1106(包括键盘、鼠标等等)、输出部分1107(包括显示器,例如阴极射线管(CRT)、液晶显示器(LCD)等,和扬声器等)、存储部分1108(包括硬盘等)、通信部分1109(包括网络接口卡例如LAN卡、调制解调器等)。通信部分1109经由网络例如因特网执行通信处理。根据需要,驱动器1110也可连接到输入/输出接口1105。可拆卸介质1111例如磁盘、光盘、磁光盘、半导体存储器等等可以根据需要被安装在驱动器1110上,使得从中读出的计算机程序可根据需要被安装到存储部分1108中。
在通过软件实现上述系列处理的情况下,可以从网络例如因特网或从存储介质例如可拆卸介质1111安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图11所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质1111。可拆卸介质1111的例子包含磁盘(包含软盘)、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM1102、存储部分1108中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。
因此,本公开还提出了一种存储有机器可读取的指令代码的程序产品。所述指令代码由机器读取并执行时,可执行上述根据本公开的实施例的移动应用测试方法。相应地,用于承载这种程序产品的上面列举的各种存储介质也包括在本公开的范围内。
在上面对本公开的具体实施例的描述中,针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。涉及序数的术语“第一”,“第二”等并不表示这些术语所限定的特征、要素、步骤或组件的实施顺序或者重要性程度,而仅仅是为了描述清楚起见而用于在这些特征、要素、步骤或组件之间进行标识。
此外,本公开的各实施例的方法不限于按照说明书中描述的或者附图中示出的时间顺序来执行,也可以按照其他的时间顺序、并行地或独立地执行。因此,本说明书中描述的方法的执行顺序不对本公开的技术范围构成限制。
综上,在根据本公开的实施例中,本公开提供了如下方案,但不限于此:
方案1.一种移动应用测试系统,包括:
多个模拟器,被配置成模拟运行移动应用的多种运行环境;
输入单元,被配置成输入所述移动应用的执行文件和测试脚本;
上下文简档数据库,被配置成存储用于配置所述模拟器的多个上下文简档;
测试控制器,被配置成根据所述移动应用的执行文件从所述多个模拟器中选择相应的模拟器,从上下文简档数据库中选择相应的上下文简档,使用所选择的上下文简档配置所选择的模拟器,并且使用所述执行文件和所述测试脚本在所选择的模拟器上运行所述移动应用并且生成所述移动应用的测试结果;以及
输出单元,被配置成输出所述移动应用的测试结果。
方案2.根据方案1所述的系统,其中
输入单元被进一步配置成输入所述移动应用的测试位置;以及
测试控制器被进一步配置成根据所述移动应用的测试位置从所述多个模拟器中选择相应的模拟器,从上下文简档数据库中选择相应的上下文简档,使用所选择的上下文简档配置所选择的模拟器,并且使用所述执行文件和所述测试脚本在所选择的模拟器上运行所述移动应用并且生成所述移动应用的测试结果。
方案3.根据方案1或2所述的系统,其中
所述移动应用的运行环境包括运行所述移动应用的操作系统和移动设备。
方案4.根据方案1至3中任一项所述的系统,其中
当所述移动应用是需要访问网络上的服务器的移动应用时,所述移动应用的执行文件进一步包括所述移动应用访问的服务器的网络地址;以及
其中所述测试控制器通过所述网络地址获取来自服务器的响应数据,并且使用所述执行文件、所述测试脚本以及所述响应数据在所选择的模拟器上运行所述移动应用。
方案5.根据方案1至4中任一项所述的系统,其中
所述上下文简档数据库中存储的上下文简档由位于不同的测试位置的贡献者使用不同的移动设备在不同时间获得的上下文参数构成。
方案6.根据方案5所述的系统,其中
所述上下文简档数据库将上下文简档按照场景进行分类。
方案7.根据方案5或6所述的系统,其中所述上下文参数包括所述贡献者使用的移动设备接入网络的方式、所述贡献者使用的移动设备的接入网络的速度、以及所述贡献者使用的移动设备的硬件配置中的至少一个。
方案8.根据方案1至7中任一项所述的系统,其中
所述测试控制器根据上下文简档的排序分数来选择上下文简档。
方案9.根据方案8所述的系统,其中
上下文简档的排序分数通过对所指定的运行所述移动应用的移动设备与贡献者使用的移动设备之间的相似度、上下文简档的使用次数、以及上下文简档的错误检测率进行加权计算获得。
方案10.根据方案1至9中任一项所述的系统,进一步包括:
测试知识数据库,被配置成存储关于测试的测试知识信息;以及
模糊化单元,被配置成根据所述测试知识信息对所选择的上下文简档进行模糊化处理,
其中所述测试控制器使用经模糊化处理的上下文简档对所选择的模拟器进行配置。
方案11.根据方案10所述的系统,其中
在所述移动应用是需要访问网络的移动应用时,所述模糊化单元根据所述测试知识数据库中存储的测试知识信息,对从所述移动应用访问的服务器返回的响应数据进行模糊化处理,并且所述测试控制器使用所述执行文件、所述测试脚本以及经模糊化处理的响应数据对所述移动应用进行测试。
方案12.根据方案11所述的系统,其中
所述模糊化单元使用代理服务器对从所述移动应用访问的服务器返回的响应数据进行模糊化处理。
方案13.根据方案10至12中任一项所述的系统,进一步包括:
测试历史数据库,被配置成存储测试历史数据;
其中所述模糊化单元根据所述测试历史数据库中存储的测试历史数据,对所述测试脚本进行模糊化处理,并且使用所述执行文件和经模糊化处理的测试脚本对所述移动应用进行测试。
方案14.根据方案10至13中任一项所述的系统,其中
所述模糊化单元被进一步配置成模拟移动应用中断的情况,并且所述测试控制器在此情况下生成所述移动应用的测试结果。
方案15.根据方案10至14中任一项所述的系统,其中所述模糊化单元被进一步配置成:
基于所述测试脚本中包含的输入数据,生成易于引起移动应用运行错误的错误输入数据集合;
在所述测试历史数据库中搜索具有相同的错误输入数据集合的用户;以及
选择搜索到的用户的其他引起测试错误的测试脚本以在所选择的模拟器上运行所述移动应用以便对所述移动应用进行测试。
方案16.根据方案15所述的系统,其中
如果搜索到的用户的其他引起测试错误的测试脚本的使用频率超过预设阈值,则该测试脚本被选择用于对所述移动应用进行测试。
方案17.一种移动应用测试方法,包括:
输入移动应用的执行文件和测试脚本;
根据所述移动应用的执行文件,从模拟运行移动应用的多种运行环境的多个模拟器中选择相应的模拟器,从存储用于配置所述模拟器的多个上下文简档的上下文简档数据库中选择相应的上下文简档;
使用所选择的上下文简档配置所选择的模拟器;
使用所述执行文件和所述测试脚本在所选择的模拟器上运行所述移动应用并且生成所述移动应用的测试结果;以及
输出所述移动应用的测试结果。
方案18.根据方案17所述的方法,进一步包括:
输入所述移动应用的测试位置;以及
根据所述移动应用的测试位置从所述多个模拟器中选择相应的模拟器,从上下文简档数据库中选择相应的上下文简档,使用所选择的上下文简档配置所选择的模拟器。
方案19.根据方案17或18所述的方法,其中
当所述移动应用是需要访问网络上的服务器的移动应用时,所述移动应用的执行文件进一步包括所述移动应用访问的服务器的网络地址,以及
所述方法进一步包括:通过所述网络地址获取来自服务器的响应数据,并且使用所述执行文件、所述测试脚本以及所述响应数据在所选择的模拟器上运行所述移动应用。
方案20.根据方案17至19中任一项所述的方法,进一步包括:
根据测试知识数据库中存储的关于测试的测试知识信息对所选择的上下文简档进行模糊化处理;以及
使用经模糊化处理的上下文简档对所选择的模拟器进行配置。
尽管上面已经通过对本公开的具体实施例的描述对本公开进行了披露,但是,应该理解,本领域的技术人员可在所附权利要求的精神和范围内设计对本公开的各种修改、改进或者等同物。这些修改、改进或者等同物也应当被认为包括在本公开的保护范围内。
Claims (9)
1.一种移动应用测试系统,包括:
多个模拟器,被配置成模拟运行移动应用的多种运行环境;
输入单元,被配置成输入所述移动应用的执行文件和测试脚本;
上下文简档数据库,被配置成存储用于配置所述模拟器的多个上下文简档;
测试知识数据库,被配置成存储关于测试的测试知识信息;
测试控制器,被配置成根据所述移动应用的执行文件从所述多个模拟器中选择相应的模拟器,从上下文简档数据库中选择相应的上下文简档,通过模糊化单元根据所述测试知识信息对所选择的上下文简档进行模糊化处理,使用经模糊化处理的上下文简档配置所选择的模拟器,并且使用所述执行文件和所述测试脚本在所选择的模拟器上运行所述移动应用并且生成所述移动应用的测试结果;以及
输出单元,被配置成输出所述移动应用的测试结果。
2.根据权利要求1所述的系统,其中
输入单元被进一步配置成输入所述移动应用的测试位置;以及
测试控制器被进一步配置成根据所述移动应用的测试位置从所述多个模拟器中选择相应的模拟器,从上下文简档数据库中选择相应的上下文简档,使用所选择的上下文简档配置所选择的模拟器,并且使用所述执行文件和所述测试脚本在所选择的模拟器上运行所述移动应用并且生成所述移动应用的测试结果。
3.根据权利要求1或2所述的系统,其中
当所述移动应用是需要访问网络上的服务器的移动应用时,所述移动应用的执行文件进一步包括所述移动应用访问的服务器的网络地址;以及
其中所述测试控制器通过所述网络地址获取来自服务器的响应数据,并且使用所述执行文件、所述测试脚本以及所述响应数据在所选择的模拟器上运行所述移动应用。
4.根据权利要求1或2所述的系统,其中
所述上下文简档数据库中存储的上下文简档由位于不同的测试位置的贡献者使用不同的移动设备在不同时间获得的上下文参数构成。
5.根据权利要求1所述的系统,其中
在所述移动应用是需要访问网络的移动应用时,所述模糊化单元根据所述测试知识数据库中存储的测试知识信息,对从所述移动应用访问的服务器返回的响应数据进行模糊化处理,并且所述测试控制器使用所述执行文件、所述测试脚本以及经模糊化处理的响应数据对所述移动应用进行测试。
6.根据权利要求1所述的系统,进一步包括:
测试历史数据库,被配置成存储测试历史数据;
其中所述模糊化单元根据所述测试历史数据库中存储的测试历史数据,对所述测试脚本进行模糊化处理,并且使用所述执行文件和经模糊化处理的测试脚本对所述移动应用进行测试。
7.根据权利要求6所述的系统,其中所述模糊化单元被进一步配置成:
基于所述测试脚本中包含的输入数据,生成易于引起移动应用运行错误的错误输入数据集合;
在所述测试历史数据库中搜索具有相同的错误输入数据集合的用户;以及
选择搜索到的用户的其他引起测试错误的测试脚本以在所选择的模拟器上运行所述移动应用以便对所述移动应用进行测试。
8.根据权利要求7所述的系统,其中
如果搜索到的用户的其他引起测试错误的测试脚本的使用频率超过预设阈值,则该测试脚本被选择用于对所述移动应用进行测试。
9.一种移动应用测试方法,包括:
输入移动应用的执行文件和测试脚本;
根据所述移动应用的执行文件,从模拟运行移动应用的多种运行环境的多个模拟器中选择相应的模拟器,从存储用于配置所述模拟器的多个上下文简档的上下文简档数据库中选择相应的上下文简档;
根据测试知识数据库中存储的关于测试的测试知识信息对所选择的上下文简档进行模糊化处理,
使用经模糊化处理的上下文简档配置所选择的模拟器;
使用所述执行文件和所述测试脚本在所选择的模拟器上运行所述移动应用并且生成所述移动应用的测试结果;以及
输出所述移动应用的测试结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410050296.8A CN104850489B (zh) | 2014-02-13 | 2014-02-13 | 移动应用测试系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410050296.8A CN104850489B (zh) | 2014-02-13 | 2014-02-13 | 移动应用测试系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104850489A CN104850489A (zh) | 2015-08-19 |
CN104850489B true CN104850489B (zh) | 2017-11-28 |
Family
ID=53850143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410050296.8A Expired - Fee Related CN104850489B (zh) | 2014-02-13 | 2014-02-13 | 移动应用测试系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104850489B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569942A (zh) * | 2015-10-08 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 一种测试方法和装置 |
CN106934081B (zh) * | 2015-12-29 | 2020-03-20 | 伊姆西Ip控股有限责任公司 | 磁盘驱动器模拟方法和装置 |
CN106021095B (zh) * | 2016-05-06 | 2018-11-30 | 北京邮电大学 | 一种基于推送机制的Android应用自动化测试方法 |
CN106254145B (zh) * | 2016-09-06 | 2019-07-19 | 腾讯科技(深圳)有限公司 | 网络请求跟踪处理方法和装置 |
CN106776294B (zh) * | 2016-11-29 | 2020-06-16 | 任子行网络技术股份有限公司 | 安卓手机自动化测试方法和系统 |
FR3069670A1 (fr) * | 2017-07-27 | 2019-02-01 | Safran Identity and Security | Pare-feu logiciel |
CN107656870A (zh) * | 2017-09-27 | 2018-02-02 | 四川久远银海软件股份有限公司 | 应用调试方法及装置 |
CN110865931B (zh) * | 2018-08-28 | 2023-05-12 | 阿里巴巴集团控股有限公司 | 模拟方法、装置、电子设备和存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9485322B2 (en) * | 2007-07-07 | 2016-11-01 | Qualcomm Incorporated | Method and system for providing targeted information using profile attributes with variable confidence levels in a mobile environment |
US8429614B2 (en) * | 2008-06-23 | 2013-04-23 | International Business Machines Corporation | Method and apparatus of effective functional test data generation for web service testing |
CN101715204A (zh) * | 2008-10-07 | 2010-05-26 | 大唐移动通信设备有限公司 | 一种用于移动终端一致性测试的装置及方法 |
US9015667B2 (en) * | 2010-10-06 | 2015-04-21 | Microsoft Technology Licensing, Llc | Fuzz testing of asynchronous program code |
CN102819488B (zh) * | 2012-06-29 | 2016-01-20 | 用友网络科技股份有限公司 | 测试处理装置和测试处理方法 |
CN103581247A (zh) * | 2012-07-30 | 2014-02-12 | 杭州洱海科技有限公司 | 一种基于云计算环境的分布式Web测试方法 |
CN202799166U (zh) * | 2012-10-08 | 2013-03-13 | 北京云测信息技术有限公司 | 移动应用网络测试系统 |
-
2014
- 2014-02-13 CN CN201410050296.8A patent/CN104850489B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN104850489A (zh) | 2015-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104850489B (zh) | 移动应用测试系统 | |
CN110337641B (zh) | 使用屏幕截图元数据确定应用测试结果 | |
CN108141645A (zh) | 具有成对深度排序的视频重点检测 | |
CN107798557A (zh) | 电子装置、基于lbs数据的服务场所推荐方法及存储介质 | |
CN110008300A (zh) | Poi别名的确定方法、装置、计算机设备和存储介质 | |
CN104703125B (zh) | 基于即时通信的信息推荐方法、装置和终端 | |
CN103718206B (zh) | 推荐其他用户或对象的方法、系统和装置 | |
CN105865478A (zh) | 一种导航信息推送方法和装置、设备 | |
CN113515837B (zh) | 仿真测试平台的建立方法、装置和电子设备 | |
JP2014515514A (ja) | 提案される語を提供するための方法および装置 | |
CN109886290A (zh) | 用户请求的检测方法、装置、计算机设备及存储介质 | |
CN103455396A (zh) | 电子设备硬件性能的测试方法及装置 | |
CN110059468A (zh) | 一种小程序风险识别方法和装置 | |
CN109783388A (zh) | Ui自动化测试方法、装置及电子设备 | |
CN105187608B (zh) | 一种获取移动终端上应用程序耗电量的方法和装置 | |
CN102135983A (zh) | 基于网络用户行为的群体划分方法和装置 | |
CN109309596A (zh) | 一种压力测试方法、装置及服务器 | |
CN106681903A (zh) | 生成测试用例的方法及装置 | |
CN108734304A (zh) | 一种数据模型的训练方法、装置、及计算机设备 | |
CN106161133A (zh) | 一种网页加载时间的测试方法及装置 | |
CN107220308A (zh) | Poi的合理性的检测方法及装置、设备及可读介质 | |
CN107315833A (zh) | 基于应用程序的检索与下载的方法和装置 | |
CN104063307B (zh) | 一种软件测试方法和系统 | |
CN107767155A (zh) | 一种评估用户画像数据的方法及系统 | |
CN109542754A (zh) | 移动设备的接入方法、应用程序的调试方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171128 Termination date: 20190213 |