CN103778056B - 无线应用稳定性测试方法及系统 - Google Patents

无线应用稳定性测试方法及系统 Download PDF

Info

Publication number
CN103778056B
CN103778056B CN201210407443.3A CN201210407443A CN103778056B CN 103778056 B CN103778056 B CN 103778056B CN 201210407443 A CN201210407443 A CN 201210407443A CN 103778056 B CN103778056 B CN 103778056B
Authority
CN
China
Prior art keywords
internal memory
wireless application
ram leakage
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.)
Active
Application number
CN201210407443.3A
Other languages
English (en)
Other versions
CN103778056A (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201210407443.3A priority Critical patent/CN103778056B/zh
Publication of CN103778056A publication Critical patent/CN103778056A/zh
Application granted granted Critical
Publication of CN103778056B publication Critical patent/CN103778056B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明涉及一种无线应用稳定性测试方法,涉及测试技术。本发明的方法包括:采用测试脚本循环运行根据应用的内存动作所开发的测试用例,对内存进行监测;收集内存使用状态,判断是否存在内存泄露;以及如内存发生泄露,分析内存泄露的对象或代码段。本发明还涉及一种无线应用稳定性测试系统。本发明提供的无线应用稳定性测试方法及无线应用稳定性测试系统可将移动设备的常用操作,如内存读写频繁的操作提炼出来,进行针对性的压力测试,同时分析内存的使用情况,判断有哪些特定的操作会导致内存泄露,并通过特定的分析方法分析出最可疑的代码段,从而助于排除应用的潜在风险,保证移动设备运行更稳定。

Description

无线应用稳定性测试方法及系统
技术领域
本发明涉及测试技术,尤其涉及一种无线应用稳定性测试方法及系统。
背景技术
现有的无线应用,例如电话信息联系人,应用中心,图库相机文件管理等应用,这些应用的数据在频繁的被增添删改过程中,内存问题便会显现出来,而内存的异常使用大部分会导致手机出现比较严重的问题,例如导致手机崩溃而无法使用。
现有技术并未有对应用的潜在风险在项目早期发现并有效解决的测试方法和系统。
发明内容
有鉴于此,本发明实施例提出了一种无线应用稳定性测试方法和系统。所述技术方案如下:
一种无线应用稳定性测试方法,包括:
采用测试脚本循环运行根据应用的内存动作所开发的测试用例,对内存进行监测;
收集内存使用状态,判断是否存在内存泄露;以及
如内存发生泄露,分析内存泄露的对象或代码段。
一种无线应用稳定性测试系统,包括:
测试用例运行及内存监测单元,用于采用测试脚本循环运行根据应用的内存动作所开发的测试用例,并对内存进行监测;
收集判断单元,用于收集内存使用状态,判断是否存在内存泄露;以及
分析单元,用于在内存发生泄露时,分析内存泄露的对象或代码段。
相对于现有技术,本发明实施例提供的无线应用稳定性测试方法及无线应用稳定性测试系统可将移动设备的常用操作,如内存读写频繁的操作提炼出来,进行针对性的压力测试,同时分析内存的使用情况,判断有哪些特定的操作会导致内存泄露,并通过特定的分析方法分析出最可疑的代码段,从而助于排除应用的潜在风险,保证移动设备运行更稳定。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中使用的附图作一简单地介绍,显而易见地,下面所列附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的无线应用稳定性测试方法的流程示意图;
图2是本发明第二实施例提供的无线应用稳定性测试方法所生成的heap值趋势图;
图3是本发明第二实施例提供的无线应用稳定性测试方法所使用的DDMS程序运行界面图;
图4是本发明第二实施例提供的无线应用稳定性测试方法所生成的heap dump文件;
图5是本发明第三实施例提供的无线应用稳定性测试系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
目前的移动设备,如手机包含了多种无线应用,例如电话信息联系人,应用中心,图库相机文件管理等应用,这些应用的数据在频繁的增添删改过程中,内存问题便会显现出来,而内存的异常使用大部分会导致手机出现比较严重的问题。
本发明可将移动设备的常用操作,如内存读写频繁的操作提炼出来,进行针对性的压力测试,同时分析内存的使用情况,判断有哪些特定的操作会导致内存泄露,并通过特定的分析方法分析出最可疑的代码段,从而助于排除应用的潜在风险,保证移动设备运行更稳定。
以下通过实施例对本发明进行进一步的说明。
实施例1
本发明第一实施例提出了一种无线应用稳定性测试方法,其流程如图1所示,包括:
步骤101:采用测试脚本循环运行根据应用的内存动作所开发的测试用例,对内存进行监测;
步骤102:收集内存使用状态,判断是否存在内存泄露;以及
步骤103:如内存发生泄露,分析内存泄露的对象或代码段。
本发明实施例提供的无线应用稳定性测试方法可将移动设备的常用操作,如内存读写频繁的操作提炼出来,进行针对性的压力测试,同时分析内存的使用情况,判断有哪些特定的操作会导致内存泄露,并通过特定的分析方法分析出最可疑的代码段,从而助于排除应用的潜在风险,保证移动设备运行更稳定。
实施例2
本发明第二实施例提出了一种无线应用稳定性测试方法,其是在第一实施例基础上改进而来。
在本实施例中,将手机的环境准备成普通用户常用情景,例如,手机中包含500个联系人,500条信息,并存储有数量不等的其它文件如图片、音乐等。
首先,进行测试用例的开发。具体而言,将某个应用的高频率使用内存的动作提炼出来,开发成测试用例。所述测试用例包括:联系人的创建与删除,信息的收发,相机的拍照,文件管理文件增加或删除等。
接着,进行测试脚本的开发。在本实施例中,可以使用python或者java开发测试脚本。
再接着,采用所述测试脚本循环运行所述测试用例,对内存进行监测。在该步骤中,可以使用DDMS(Dalvik Debug Monitor Service)调试监控服务对内存进行监测,并且可以将内存值进行定时采样,这样,通过分析采样数据,可易于分析内存泄露状况。在具体实施情形中,手机将按照写好的特定场景的测试脚本循环运行某个测试用例。测试人员可定期对内存值进行采样,收集手机的内存使用状态,将各个进程使用的堆(heap)值写入excel表中进行记录。
然后,对内存结果进行分析,判断是否存在内存泄露。具体地,当循环运行某个测试用例一段时间后,测试人员可以取出内存分析文件,如下表所示:
测试人员可以按照“name”列进行排序,对相同进程号的进程进行排序分析,如图2所示,若此进程所占用heap值持续增加,则此进程存在内存泄露。
当循环运行到某一时候进程崩溃(crash)时,提示“某某程序停止运行”,需要指明的是,若测试人员发现此时进程号已经不同于脚本开始运行时的状态,那么说明此进程已经发生过崩溃现象。
接下来,收集内存泄漏进程的堆转存文件(heap dump)。利用该步骤,可以使得当测试人员确定了哪个进程会导致内存泄露和崩溃问题后,除了提供各种日志(log),还可以对此问题进行定位,能够定位到导致应用崩溃的对象或者代码段。具体地,在操作时,可以打开DDMS,当程序执行到即将崩溃的点时,选中进程(如图3中的com.tencent.camera,选择update heap和dump HPROF)则生成了如图4所示的heap dump文件。可以理解的是,还可以在Eclipse中配置VM参数(如参数-XX:+HeapDumpOnOutOfMemoryError),这样当程序执行到崩溃的点时,会自动生成heap dump文件,测试效率更高。
最后,分析heap dump文件,定位发生问题的对象或者代码段。具体地,可打开mat,打开生成的heap dump文件,在打开heap dump文件的过程中,选择“finish(完成)”继续进行内存泄漏可疑点的分析,当“finish”完毕后,将会分析出导致内存泄漏可疑的对象或代码段,由此将能够对开发人员提供更有力的定位问题的帮助,提高了测试的效率。
本发明实施例提供的无线应用稳定性测试方法可将移动设备的常用操作,如内存读写频繁的操作提炼出来,进行针对性的压力测试,同时分析内存的使用情况,判断有哪些特定的操作会导致内存泄露,并通过特定的分析方法分析出最可疑的代码段,从而助于排除应用的潜在风险,保证移动设备运行更稳定。
实施例3
本发明第三实施例提出了一种无线应用稳定性测试系统200,其结构如图5所示,包括:
测试用例运行及内存监测单元201,用于采用测试脚本循环运行根据应用的内存动作所开发的测试用例,并对内存进行监测。所述测试用例可包括:联系人的创建与删除、信息的收发、相机的拍照、文件管理文件增加或删除。
收集判断单元202,用于收集内存使用状态,判断是否存在内存泄露;以及
分析单元203,用于在内存发生泄露时,分析内存泄露的对象或代码段。
在本实施例中,所述测试用例运行及内存监测单元201采用DDMS调试监控服务对内存进行监测。
所述收集判断单元202具体用于对相同进程号的进程进行排序分析,若此进程所占用heap值持续增加,则判定进程存在内存泄露。另外,所述收集判断单元202可收集内存泄露进程的heap dump文件,相应地,所述分析单元203可对内存泄露的对象或代码段包括对heap dump文件进行分析,从而定位发生问题的对象或者代码段。
本发明实施例提供的无线应用稳定性测试系统200可将移动设备的常用操作,如内存读写频繁的操作提炼出来,进行针对性的压力测试,同时分析内存的使用情况,判断有哪些特定的操作会导致内存泄露,并通过特定的分析方法分析出最可疑的代码段,从而助于排除应用的潜在风险,保证移动设备运行更稳定。
本发明第三实施例所述的系统,与前述的第一和第二实施例的方法构思和原理相同,因此在第三实施例中对与第一和第二实施例中相同的部分不再赘述。
本发明实施例可以应用于无线应用稳定性测试,当然这只是本发明实施例的一个举例说明,并非是对本发明实施例用途的限定。
发明实施例所述集成的单元可以软件功能单元的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种无线应用稳定性测试方法,其特征在于,包括:
将某个应用的高频率使用内存的动作提炼出来,开发成测试用例;
采用测试脚本循环运行根据应用的内存动作所开发的测试用例,使用调试监控服务对内存进行监测,并且将内存值进行定时采样并以表格形式记录,以便于分析内存泄露状况;
收集内存使用状态,判断是否存在内存泄露;以及
如内存发生泄露,分析内存泄露的对象或代码段:
对相同进程号的进程进行排序分析,若此进程所占用堆值持续增加,则判定进程存在内存泄露;若进程号已经不同于脚本开始运行时的状态,那么说明此进程已经发生过崩溃现象。
2.根据权利要求1所述的无线应用稳定性测试方法,其特征在于,所述测试用例包括:联系人的创建与删除、信息的收发、相机的拍照、文件管理文件增加或删除。
3.根据权利要求1所述的无线应用稳定性测试方法,其特征在于,采用调试监控服务对内存进行监测。
4.根据权利要求3所述的无线应用稳定性测试方法,其特征在于,所述收集内存使用状态,判断是否存在内存泄露包括收集内存泄露进程的堆转存(heapdump)文件,所述分析内存泄露的对象或代码段包括对heapdump文件进行分析。
5.一种无线应用稳定性测试系统,其特征在于,包括:
测试用例运行及内存监测单元,用于采用测试脚本循环运行根据应用的内存动作所开发的测试用例,并使用调试监控服务对内存进行监测,并且将内存值进行定时采样并以表格形式记录,以便于分析内存泄露状况;所述测试用例由某个应用的高频率使用内存的动作提炼出来而生成;
收集判断单元,用于收集内存使用状态,判断是否存在内存泄露;对相同进程号的进程进行排序分析,若此进程所占用堆值持续增加,则判定进程存在内存泄露;若进程号已经不同于脚本开始运行时的状态,那么说明此进程已经发生过崩溃现象;以及
分析单元,用于在内存发生泄露时,分析内存泄露的对象或代码段。
6.根据权利要求5所述的无线应用稳定性测试系统,其特征在于,所述测试用例包括:联系人的创建与删除、信息的收发、相机的拍照、文件管理文件增加或删除。
7.根据权利要求5所述的无线应用稳定性测试系统,其特征在于,所述测试用例运行及内存监测单元采用调试监控服务对内存进行监测。
8.根据权利要求7所述的无线应用稳定性测试系统,其特征在于,所述收集判断单元具体用于收集内存泄露进程的堆转存(heapdump)文件,所述分析单元具体用于对内存泄露的对象或代码段包括对heapdump文件进行分析。
CN201210407443.3A 2012-10-23 2012-10-23 无线应用稳定性测试方法及系统 Active CN103778056B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210407443.3A CN103778056B (zh) 2012-10-23 2012-10-23 无线应用稳定性测试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210407443.3A CN103778056B (zh) 2012-10-23 2012-10-23 无线应用稳定性测试方法及系统

Publications (2)

Publication Number Publication Date
CN103778056A CN103778056A (zh) 2014-05-07
CN103778056B true CN103778056B (zh) 2017-08-22

Family

ID=50570317

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210407443.3A Active CN103778056B (zh) 2012-10-23 2012-10-23 无线应用稳定性测试方法及系统

Country Status (1)

Country Link
CN (1) CN103778056B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866409A (zh) * 2015-05-29 2015-08-26 小米科技有限责任公司 内存泄露监控方法和装置
CN104932970A (zh) * 2015-05-29 2015-09-23 小米科技有限责任公司 内存泄露监控方法和装置
CN104991847B (zh) * 2015-07-03 2018-11-23 厦门美图移动科技有限公司 一种内存泄露自动化检测方法、装置及移动终端
CN105373479B (zh) * 2015-12-14 2019-03-15 厦门美图移动科技有限公司 一种内存泄露的自动化测试方法、装置及移动终端
CN106560796A (zh) * 2015-12-31 2017-04-12 哈尔滨安天科技股份有限公司 内网终端应用程序内存堆栈异常预警方法及系统
CN106227650A (zh) * 2016-07-08 2016-12-14 北京奇虎科技有限公司 一种检测应用的内存泄漏的方法和装置
CN107656859B (zh) * 2017-09-28 2020-07-28 四川长虹电器股份有限公司 针对云端系统具备高容错性的稳定性测试方法
CN109032827A (zh) * 2018-07-03 2018-12-18 郑州云海信息技术有限公司 一种跟踪导致内存溢出异常的测试系统及方法
CN111176972A (zh) * 2018-11-12 2020-05-19 阿里巴巴集团控股有限公司 测试方法与系统
CN111858317B (zh) * 2020-06-30 2024-10-01 北京金山云网络技术有限公司 内存泄漏的检测方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101819549A (zh) * 2010-04-13 2010-09-01 东莞宇龙通信科技有限公司 一种内存泄露的定位方法及装置
CN102662828A (zh) * 2012-03-14 2012-09-12 浪潮(北京)电子信息产业有限公司 一种实现软件自动测试的方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519867B2 (en) * 2004-12-21 2009-04-14 National Instruments Corporation Test executive which provides heap validity checking and memory leak detection for user code modules
US9064048B2 (en) * 2011-02-17 2015-06-23 Red Hat, Inc. Memory leak detection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101819549A (zh) * 2010-04-13 2010-09-01 东莞宇龙通信科技有限公司 一种内存泄露的定位方法及装置
CN102662828A (zh) * 2012-03-14 2012-09-12 浪潮(北京)电子信息产业有限公司 一种实现软件自动测试的方法及装置

Also Published As

Publication number Publication date
CN103778056A (zh) 2014-05-07

Similar Documents

Publication Publication Date Title
CN103778056B (zh) 无线应用稳定性测试方法及系统
Banerjee et al. Detecting energy bugs and hotspots in mobile apps
CN103425574B (zh) 一种测试应用程序的方法及装置
Aggarwal et al. The power of system call traces: Predicting the software energy consumption impact of changes
CN102968374B (zh) 一种数据仓库测试方法
US8990792B2 (en) Method for constructing dynamic call graph of application
CN102419727A (zh) 一种自动化测试方法及装置
Basar et al. Resource usage analysis of a mobile banking application using sensor-and-touchscreen-based continuous authentication
CN106604362B (zh) 一种无线保真Wi-Fi扫描方法及移动终端
Hunt et al. Java performance
CN102231131A (zh) 测试电子设备内的软件
CN104932963B (zh) 管理终端的方法及装置
Arnatovich et al. A comparison of android reverse engineering tools via program behaviors validation based on intermediate languages transformation
CN104536863B (zh) 一种应用程序的测试方法及装置
CN103440175A (zh) 智能卡的异常处理方法及装置
US20160259714A1 (en) Production sampling for determining code coverage
CN101201776A (zh) 多操作系统平台整合测试方法
US9471237B1 (en) Memory consumption tracking
Mujahid et al. Examining user complaints of wearable apps: A case study on android wear
CN105068934A (zh) 一种用于云平台的基准测试系统及方法
CN110597704B (zh) 应用程序的压力测试方法、装置、服务器和介质
CN109032929A (zh) 一种程序日志记录获取方法、装置及电子设备
Schuler et al. Examining the energy impact of sorting algorithms on android: an empirical study
CN109783381B (zh) 一种测试数据生成方法、装置及系统
CN109992614B (zh) 数据获取方法、装置和服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant