CN112346955A - 一种基于控件融合的群体智能测试方法 - Google Patents

一种基于控件融合的群体智能测试方法 Download PDF

Info

Publication number
CN112346955A
CN112346955A CN201910724051.1A CN201910724051A CN112346955A CN 112346955 A CN112346955 A CN 112346955A CN 201910724051 A CN201910724051 A CN 201910724051A CN 112346955 A CN112346955 A CN 112346955A
Authority
CN
China
Prior art keywords
control
test
flow graph
testing
control flow
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
Application number
CN201910724051.1A
Other languages
English (en)
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.)
Nanjing Muce Information Technology Co ltd
Original Assignee
Nanjing Muce 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 Nanjing Muce Information Technology Co ltd filed Critical Nanjing Muce Information Technology Co ltd
Priority to CN201910724051.1A priority Critical patent/CN112346955A/zh
Publication of CN112346955A publication Critical patent/CN112346955A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test 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)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种基于控件融合的群体智能测试方法,为所有进入平台的用户提供了基于Android的测试追踪与展示环境,用户通过这个平台可以方便的查看测试进度以及进行测试节点的回放,同时对其他用户可以提供基于定向路径引导测试。本发明的特点在于:1.测试人员对APP的组件覆盖信息能够实时的检测并转发到服务器,进行跟踪。2.用户可以打开浏览器,查看生产的测试节点控件流图。3.用户点击控制流图的节点,在真实的设备上可以自动执行对应的测试回放。4.基于定向路径引导测试。本发明的有益效果是:实时跟踪测试人员的测试进度,通过生成控件流图直观的展示了测试的路径与深度,点击控件流图某个测试节点可以自动进行该节点对应路径的测试,基于定向路径引导测试,大大提高了测试效率。

Description

一种基于控件融合的群体智能测试方法
技术领域
本发明属于软件测试技术领域,尤其是软件测试中的针对Android的UI测试。其目的在于为软件测试人员提供测试进度的快速反馈,是一种帮助软件测试人员在有限时间内提升软件测试质量的方法。
技术背景
软件测试是软件开发中控制软件质量的重要方式,UI测试一般是软件测试中比较靠后的一部分,此时软件的每个部分基本已经集成完毕,能对软件的整体上进行很好的测试,UI测试是通过对软件中的控件进行覆盖来实现。在实际应用中,UI测试路径非常复杂,不同控件的点击顺序能够组成的路径非常多,把每个路径遍历完需要很大的人力和时间。同时,这种独立的测试,测试进度非常不直观,测试人员之间也无法知道哪些路径已经被测试,造成了大量的重复测试。很多软件也需要在不同的设备上进行兼容性测试,但是在有限的时间内,往往效率较低。软件测试是在软件发布前的最后一环,时间非常紧迫,缺乏一个能够减少重复测试,自动执行测试的对应平台。
如何整合测试流水线,使得执行测试用例、测试效果展示、用例管理和分析能够在统一的平台上得到实现是开发者关注的重点。一款实时追踪的、可视化的、具备完善的编辑和分析模块的平台是测试人员们所期待的。
发明内容
本发明要解决的问题是:当前测试分析工具测试进度无法实时、直观的展示,无法基于定向路径引导测试,无法进行测试回放的问题。
本发明的技术方案为一种基于Java反射的HOOK方法,并基于该方法对Android应用中的控件进行了劫持,可以实时跟踪测试人员的操作,并传送到服务器。服务器对这些信息进行处理后,在前端Web页面生成控件流图,并随着测试的不断深入,该控件流图会不断的增长。该平台可以分为两部分,一部分是Android端。基于Java的HOOK,Android应用通过继承一个显式的父类BasicActivity来实现对所有Activity下的所有控件进行劫持,获取控件的相关信息,例如控件id,所在Activity等等,再传送给服务端。另一部分则是服务器获取到这些信息后,维护测试路径信息,同时把信息推送给前端,由前端渲染出可点击的控制流图。测试人员点击控制流图的节点,在图中通过最短路径生成测试用例,该测试用例可以回放执行。
1.本发明的特点在于:1)通过HOOK控件获得执行控件信息;2)通过控件信息构建控件流图;3)融合众包测试者控件流图;4)基于定向路径引导测试。将这4点结合,本发明可以支持目前Android所有的UI测试,通过反射机制Hook移动应用控件,收集控件运行时信息;生成移动应用的执行控件树,准确展示测试路径以及计算测试覆盖率。
本发明的有益效果是:可以减少测试人员重复测试的情况,对每个测试展示精确的路径,基于定向路劲引导测试,使得测试人员可以用更少的进行更多的测试,节省了时间成本。
附图说明
图1为本发明的整体架构逻辑图。
图2为本Android应用组织结构图。
图3位本发明定义的控件流图。
具体实施方式
本发明中涉及的几项关键的技术分别是:Java技术,Android技术,Nodejs技术,WebSocket协议,JS技术以及图算法。接下来进行一些说明:
1、Java
Java是当前Android最流行的开发语言。Android平台的控件通过Java反射来进行HOOK。Java是当前最为流行的开发语言之一,其具有简单性、面向对象、分布式、健壮性、安全性、平***立与可移植性、多线程、动态性等特点,同时还支持运行时绑定、生命周期管理等高级功能。
2、Android
Android是一个开源的,基于Linux的移动设备操作***,主要使用于移动设备,如智能手机和平板电脑。Android是由谷歌及其他公司带领的开放手机联盟开发的,是当前市场占有率最高的移动设备操作***。本平台主要针对Android***来提供测试的实时跟踪。
3、Nodejs
该平台使用了Nodejs作为服务端的主要语言,Node.js是一个基于Chrome V8引擎的JavaScript运行环境。Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效。
4、WebSocket协议
WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。
5、前端技术
Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。本平台通过使用Vue和开源的Echarts图表工具来渲染控制流图以及其它的前端基本功能。
6、最短路径算法
Dijkstra
求单源、无负权的最短路。时效性较好,时间复杂度为O(V*V+E)。源点可达的话,O(V*lgV+E*lgV)=>O(E*lgV)。
当是稀疏图的情况时,此时E=V*V/lgV,所以算法的时间复杂度可为O(V^2)。若是斐波那契堆作优先队列的话,算法时间复杂度,则为O(V*lgV+E)。
Floyd
求多源、无负权边的最短路。用矩阵记录图。时效性较差,时间复杂度O(V^3)。
Floyd-Warshall算法(Floyd-Warshall algorithm)是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题。
本方法默认所有边都单源单向且都权值都为1,所以将使用经典的Dijkstra算法。
根据该平台进行测试的步骤如下:
1)配置本地JDK环境,要求JDK版本是1.8及以上。
2)在Android应用的每个Activity里面,继承BasicActivity父类
3)打包编译运行,测试人员在该应用上进行测试,测试环境应保证网络良好。
4)测试时点击对应的控件,收集<id,activity>信息传送到服务器。
5)维护一个执行队列,生成控件流图,并通过WebSocket协议推送给前端渲染。
6)在WEB页面查看实时控件流图。
7)融合众包测试者控件流图。
8)点击控件流图上的节点,会在设备上回放执行该测试用例。
9)能够基于已有的控件流图,定向引导测试。
工具在运行时解决的问题主要有:
1)通过提供BasicActivity父类,使得应用能够无侵入式HOOK,收集测试信息。
2)通过绘制控件流图的形式,使得整个测试进度和测试路径变得直观,测试覆盖率也能很易于观察,减少了重复测试的几率,测试人员可以针对没有覆盖到的路径进行测试,不同的测试人员能很好的协同测试。
3)点击控件流图节点可以回放测试用例,减少了人工操作,提高测试效率。
4)基于定向路径引导测试,能够及时覆盖到没有被测试的控件。

Claims (4)

1.一种基于控件融合的群体智能测试方法,本发明的特点在于:1)通过HOOK控件获得执行控件信息;2)通过控件信息构建控件流图;3)融合众包测试者控件流图;4)基于定向路径引导测试。将这4点结合,本发明可以支持目前Android所有的UI测试,通过反射机制Hook移动应用控件,收集控件运行时信息;生成移动应用的执行控件树,准确展示测试路径以及计算测试覆盖率。
2.根据权利要求1所描述的一种基于Java反射的Android组件HOOK方法。其特征是,在Java语言的Android项目中,通过反射技术,在控件点击的时候,加入获取控件信息以及其所在Activity信息的代码。
3.根据权利要求1所描述的一种生成控件树状图的方法,其特征是,定义控件流图G<E,V>,E为边集,节点之间存在边说明可达,且每条边的权值为1;V为点集,节点信息为<id>或<activty>;收集控件信息<id,activity>,维护一个控件执行队列,通过控件的执行顺序依次构建控件流图。
4.根据权利要求1所描述的一种测试用例回放执行方法,其特征是,对测试工人的控件流图进行融合,然后在图中通过最短路径方法智能搜索最优路径,并将其通过插桩机制实施发送到移动设备执行。
CN201910724051.1A 2019-08-07 2019-08-07 一种基于控件融合的群体智能测试方法 Pending CN112346955A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910724051.1A CN112346955A (zh) 2019-08-07 2019-08-07 一种基于控件融合的群体智能测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910724051.1A CN112346955A (zh) 2019-08-07 2019-08-07 一种基于控件融合的群体智能测试方法

Publications (1)

Publication Number Publication Date
CN112346955A true CN112346955A (zh) 2021-02-09

Family

ID=74366497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910724051.1A Pending CN112346955A (zh) 2019-08-07 2019-08-07 一种基于控件融合的群体智能测试方法

Country Status (1)

Country Link
CN (1) CN112346955A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238931A (zh) * 2021-04-26 2021-08-10 广东拓思软件科学园有限公司 一种基于执行路径追踪技术的测试覆盖计算方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238931A (zh) * 2021-04-26 2021-08-10 广东拓思软件科学园有限公司 一种基于执行路径追踪技术的测试覆盖计算方法及装置

Similar Documents

Publication Publication Date Title
Mirzaei et al. Testing android apps through symbolic execution
CN102567198B (zh) 对应用程序在物理***环境中进行测试的***及其方法
Muccini et al. Using software architecture for code testing
CN104461894B (zh) 安卓软件的操作录制装置和方法
Humayoun et al. A three-fold integration framework to incorporate user–centered design into agile software development
CN105247493A (zh) 从静态收集的数据中标识受影响的测试
CN105103133A (zh) 消息传递计算的动态可视化
CN103246606B (zh) Esb平台的性能测试方法和***
CN105677561B (zh) 移动产品多平台测试方法及***
CN109876445A (zh) 一种基于行为树的高解耦引导方法及***
Westergaard Access/CPN 2.0: a high-level interface to coloured petri net models
CN102999419B (zh) 一种Android测试事件记录回放方法及装置
KR100988597B1 (ko) 웹 환경에서의 사용자 친화형 로봇 컨텐츠 저작시스템
Regnell et al. Towards integration of use case modelling and usage-based testing
Lutati et al. Agentzero: A framework for simulating and evaluating multi-agent algorithms
CN104010045B (zh) 基于云平台的移动节点执行任务的方法
Collier et al. Test-driven agent-based simulation development
CN112346955A (zh) 一种基于控件融合的群体智能测试方法
CN108762765B (zh) 基于contiki***的开发板程序编译下载方法
Perrone et al. The design of an output data collection framework for ns-3
Saidallah et al. A Survey and comparative study of open-source wireless sensor network simulators
CN110209565A (zh) 一种元数据模型调试方法及其装置
Djouad et al. A new approach based on modelled traces to compute collaborative and individual indicators human interaction
CN113220561A (zh) 一种测试用例管理方法、装置、设备及介质
Petriu et al. Software performance models from system scenarios

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20210209

WD01 Invention patent application deemed withdrawn after publication