CN103312851A - 一种智能手机应用交互界面程序可用性测试方法 - Google Patents

一种智能手机应用交互界面程序可用性测试方法 Download PDF

Info

Publication number
CN103312851A
CN103312851A CN2013102137610A CN201310213761A CN103312851A CN 103312851 A CN103312851 A CN 103312851A CN 2013102137610 A CN2013102137610 A CN 2013102137610A CN 201310213761 A CN201310213761 A CN 201310213761A CN 103312851 A CN103312851 A CN 103312851A
Authority
CN
China
Prior art keywords
state machine
user
finite state
interface program
interactive
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.)
Granted
Application number
CN2013102137610A
Other languages
English (en)
Other versions
CN103312851B (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.)
Nanjing University
Original Assignee
Nanjing University
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 University filed Critical Nanjing University
Priority to CN201310213761.0A priority Critical patent/CN103312851B/zh
Publication of CN103312851A publication Critical patent/CN103312851A/zh
Application granted granted Critical
Publication of CN103312851B publication Critical patent/CN103312851B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明给出一种智能手机应用交互界面程序可用性测试方法,该方法不再需要人工记录用户操作手机程序的工作,通过在应用程序中嵌入少量的代码,在用户操作手机的过程中将用户操作事件上传到服务器,测试人员再根据收集到的数据通过有限状态机进行分析。本发明在智能手机应用交互界面程序可用性测试中对原程序只做出少量的修改,能够在不影响原程序的性能情况下实现自动化可用性测试,可以收集更多、更精细的用户操作数据,发现更多的程序缺陷。

Description

一种智能手机应用交互界面程序可用性测试方法
技术领域
本发明涉及一种智能手机应用程序非功能性测试中可用性测试方法,主要利用特定的应用编程接口收集用户操作事件序列,通过有限状态机查找程序缺陷,属于软件工程技术应用领域。
背景技术
智能手机一般允许用户自定义安装和卸载程序,开发者可开发程序供用户下载,在这种背景下产生了大量的应用程序,这些应用程序区别于以往的程序,其重点是为用户提供交互界面,因而非功能性测试就更加重要。
非功能性测试包含性能、安全性、可用性、兼容性等方面的测试。在智能手机应用程序中,可用性是程序存活的关键,大多数手机程序由于劣质的用户体验而被淘汰。Android、iPhone、Symbian应用程序都需要做大量的可用性测试实验,良好的用户体验成为关键。
传统的交互界面程序可用性测试采用基于实验室的测试方法,测试人员需要征集志愿者先使用程序,在实验室中测试人员坐在志愿者旁边,志愿者执行操作来完成预先定义的任务,而测试人员记录用户操作中存在的问题或者与志愿者做简单的交流,经过几次实验后,测试人员能够收集到许多有用的信息,在程序发布之前找到缺陷。上述的方法需要人工操作记录用户的操作过程,测试人员一般来不及做详细的记录,有时发现的问题不能重现。
智能手机应用交互界面程序是以事件为驱动的,程序是获取用户输入继续执行的。本发明为解决传统的交互界面程序可用性测试不足,通过在交互界面程序中嵌入少量代码有效的获取用户的输入信息,再通过无线网络将这些信息发送到远程的服务器。用户的操作事件序列可以保存在内存或者SD卡等存储设备上,连接到3G或Wifi等通信网络自动发送到服务器上。对于上述接收到的用户事件序列,本发明采用有限状态机和序列比对技术分析数据,将每一个界面看作一个状态,一个用户输入事件作为一个状态转换,从而实现智能手机应用交互界面程序可用性测试方法。
发明内容
技术问题:本发明的目的是提供一种智能手机应用交互界面程序可用性测试方法,解决基于实验室的测试方法不足,减少智能手机应用交互界面程序可用性测试中手动工作量,收集更多、更精细的用户操作数据,同时可以发现更多的程序缺陷。
技术方案:本发明所述智能手机应用交互界面程序可用性测试方法通过在应用程序中做出较少的改动,嵌入少量的代码,在用户操作手机的过程中将用户的操作事件上传到远程服务器,然后测试人员再根据收集到的数据进行分析,分析中通过在有限状态机上使用序列比对技术发现程序缺陷。
本发明所述应用交互界面程序运行所在的智能手机具有足够空间的本地存储设备,具有可将信息发送到外部网络或服务器的通信网络。
本发明所述的智能手机应用交互界面程序使用特定的软件开发工具包编写,由界面类组成,每一个界面类继承一个软件开发工具包中特定的类,允许用户嵌入代码。
本发明所述的智能手机应用交互界面程序具有事件驱动特征,程序的执行需要用户输入事件或者系统事件。
本发明所述智能手机应用交互界面程序可用性测试方法在实验前为用户指定应用交互操作任务,该任务根据应用交互界面程序运行过程确定必要的用户操作事件序列,为每个应用交互操作任务的操作事件序列绘制出原始有限状态机,该状态机只包含完成当前任务的必需状态,每一个事件激发状态之间的转换。
本发明所述智能手机应用交互界面程序可用性测试方法根据服务器接收收集的用户操作信息,生成实际的有限状态机,该状态机包含用户操作进入的非必需状态。
智能手机应用交互界面程序可用性测试方法包括以下步骤:
步骤1:在智能手机应用交互界面程序中嵌入收集用户操作信息的代码,
步骤2:为用户指定应用交互操作任务,根据每个应用交互操作任务必要的操作事件序列,绘制出完成每个应用交互操作任务的原始有限状态机,该状态机只包含完成任务的必需状态,
步骤3:智能手机应用交互界面程序启动运行,嵌入其中的代码执行收集用户实际的操作事件序列,将该用户实际操作事件序列存放在本地存储设备中,一批用户操作事件序列在达到一个预定数量阀值后通过可用的通信网络传送到可用性测试服务器,或者当没有可用的通信网络时,继续存放在本地存储设备中,并与下一批用户操作事件序列一起传送到可用性测试服务器,
步骤4:可用性测试服务器根据收集到的实际用户操作事件序列,为每个应用交互操作任务生成实际的有限状态机,所述智能手机应用交互界面程序可用性测试方法根据服务器接收收集的用户操作信息,生成实际的有限状态机,该状态机包含用户操作进入的非必需状态,
步骤5:运用序列比对技术分析每个应用交互操作任务的原始有限状态机和实际有限状态机,通过状态转换是否异常获得用户操作过程中可能存在的交互界面程序缺陷,根据所有应用交互操作任务的分析结果,找出可能存在错误的位置,
步骤51:分别分析每一个应用交互操作任务的实际有限状态机,依次取该有限状态机上的每个状态,遍历对应应用交互操作任务的原始有限状态机,当遍历中所有的实际有限状态机状态都位于原始有限状态机上,说明该任务的实际有限状态机和原始有限状态机完全吻合,用户操作正常;当遍历中达到了某个实际有限状态机状态没有位于原始有限状态机上,说明状态转换异常,认为该状态为非必需状态,记录下该非必需状态,继续遍历,遍历结束后找到实际有限状态机中的非必需状态,这些非必需状态是交互界面程序可能存在缺陷的位置,
步骤52:根据步骤51中所有应用交互操作任务运用序列比对技术分析的结果,统计进入每一个非必需状态的人数;根据进入人数从多到少顺序,依次分析各个非必需状态,根据该非必需状态相应的用户实际操作事件,确定智能手机应用交互界面程序可能存在错误的位置。
有益效果:本发明给出一种智能手机应用交互界面程序可用性测试方法,具有如下的有益效果:
(1)本发明所述的一种智能手机应用交互界面程序可用性测试方法中,通过在程序中嵌入少量代码收集用户操作信息,实现了自动收集信息功能,避免了传统的人工操作;另外,这种方法收集的信息相对于传统方法更加全面。
(2)本发明所述的一种智能手机应用交互界面程序可用性测试方法中,在分析阶段使用有限状态机和序列比对技术,将可用性问题映射到形式化方法上,通过数学方法准确的发现问题。同时,仍然可以采用传统方法发现问题。
(3)本发明所述的一种智能手机应用交互界面程序可用性测试方法中,实现了一套完整的可用性测试新方法,该方法的任何一个阶段都能有效的扩展,也可用于实现其他功能。
附图说明
图1是智能手机应用交互界面程序可用性测试方法流程图。
图2是用户操作事件分类图。
图3是原始有限状态机示意图。
图4是实际有限状态机示意图。
具体实施方式
智能手机应用交互界面程序可用性测试方法包括以下步骤:
步骤1:在智能手机应用交互界面程序中嵌入收集用户操作信息的代码,
步骤2:为用户指定应用交互操作任务,根据每个应用交互操作任务必要的操作事件序列,绘制出完成每个应用交互操作任务的原始有限状态机,该状态机只包含完成任务的必需状态,
步骤3:智能手机应用交互界面程序启动运行,嵌入其中的代码执行收集用户实际的操作事件序列,将该用户实际操作事件序列存放在本地存储设备中,一批用户操作事件序列在达到一个预定数量阀值后通过可用的通信网络传送到可用性测试服务器,或者当没有可用的通信网络时,继续存放在本地存储设备中,并与下一批用户操作事件序列一起传送到可用性测试服务器,
步骤4:可用性测试服务器根据收集到的实际用户操作事件序列,为每个应用交互操作任务生成实际的有限状态机,所述智能手机应用交互界面程序可用性测试方法根据服务器接收收集的用户操作信息,生成实际的有限状态机,该状态机包含用户操作进入的非必需状态,
步骤5:运用序列比对技术分析每个应用交互操作任务的原始有限状态机和实际有限状态机,通过状态转换是否异常获得用户操作过程中可能存在的交互界面程序缺陷,根据所有应用交互操作任务的分析结果,找出可能存在错误的位置,
步骤51:分别分析每一个应用交互操作任务的实际有限状态机,依次取该有限状态机上的每个状态,遍历对应应用交互操作任务的原始有限状态机,当遍历中所有的实际有限状态机状态都位于原始有限状态机上,说明该任务的实际有限状态机和原始有限状态机完全吻合,用户操作正常;当遍历中达到了某个实际有限状态机状态没有位于原始有限状态机上,说明状态转换异常,认为该状态为非必需状态,记录下该非必需状态,继续遍历,遍历结束后找到实际有限状态机中的非必需状态,这些非必需状态是交互界面程序可能存在缺陷的位置,
步骤52:根据步骤51中所有应用交互操作任务运用序列比对技术分析的结果,统计进入每一个非必需状态的人数;根据进入人数从多到少顺序,依次分析各个非必需状态,根据该非必需状态相应的用户实际操作事件,确定智能手机应用交互界面程序可能存在错误的位置。
本发明在具体实施中区别于以往基于实验室的测试方法,不再需要人工记录用户操作手机程序的工作,在用户操作手机的过程中嵌入代码自动运行将用户操作事件上传到服务器,测试人员再根据收集到的数据进行分析,分析中使用有限状态机,图1给出本发明所述智能手机应用交互界面程序可用性测试方法流程
本发明适用于由特定的类组成的智能手机应用交互界面程序。例如,基于Android的智能手机应用交互界面程序中,每一屏是一个继承Activity类的java类,Activities使用Views作为用户图形界面来显示信息和相应用户操作;每一个activity可以被视为每一屏幕的根视图,它由一系列小视图组成,这些小视图包含许多交互组件;当然也有其他许多组件依附于activity,如对话框、菜单。无论是否占据整个屏幕,最前端的窗口将负责与用户交互。
在智能手机应用交互界面程序可用性测试具体实施中,为获得用户完成指定任务的操作信息,首先要找到交互界面程序中实现用户输入处理功能的最内层窗口代码,测试人员使用特定的类库在上述最内层窗口代码中相应的位置嵌入代码,这些代码在用户操作手机时记录当前正在执行的事件,包括记录当前的时间截、相应窗口的属性,形成用户操作事件序列。
在具体实施中,应用交互界面程序和嵌入的代码重新编译后在智能手机上运行。嵌入的代码作为一个线程执行收集用户操作信息,将完成指定任务的用户操作事件序列存放在本地存储设备中,一批用户操作事件序列在达到一个预定数量阀值后传送到可用性测试服务器,这些用户操作事件序列数据被测试人员用来做可用性测试分析。
在具体实施中,用户操作事件序列数据不是立即传输到远程服务器,而是使用一个线程在后台记录并将这些数据放到队列中;当收集的数据达到了预期的阀值,通过3G或者WiFi等通信网络传送到可用性测试服务器。如果在需要传输的时候,没有合适的网络,这些事件会被保存到内存或SD卡等本地存储设备上,与下一批用户操作事件序列一起传送到可用性测试服务器。可用性测试服务器提供一个关系数据库,所有的用户操作事件根据类型被保存到不同的表中,事件的分类如图2所示。
在根据用户操作事件序列数据进行可用性测试分析时,每一个指定任务用有限状态机来表示。在具体实施中,首先根据指定任务的必要步骤形成原始有限状态机,然后根据用户操作事件序列数据得到指定任务的实际有限状态机,最后通过实际有限状态机和原始有限状态机的序列比对,获知用户是如何偏离原始状态机的,最终分析出智能手机应用交互界面程序中的缺陷。图3和图4给出本发明的一个具体应用实例,图3所示为使用软件完成某一任务的原始有限状态机示意图,图4为收集到的某一用户完成该任务时的实际有限状态机图。根据图3,完成这一任务共需要5个必需状态,它们之间的转换靠7个事件实现。最好的情况是,用户在状态0转换到状态1后,依次直接转换到状态2、状态3、状态4,这样结束了一个测试任务。但有时回溯也是必需的,例如我们的测试任务是让用户下载一款喜欢的软件,用户在状态2看到推荐的软件下载列表,选中一款软件查看介绍信息进入状态3,这时用户发现这款软件并不适合自己又返回到状态2,此类状态转换也是必需的。对于图4,服务器根据用户操作序列生成实际有限状态机图,这里比图3多了三个状态N1、N2、N3,这些状态是用户在测试过程中进入的非必需状态。例如,用户在状态0时不小心点击了HOME键进入状态N1,然后再进入状态0;也有可能用户进入一个非必需状态后没能找到完成任务的正确操作,如状态N3。也就是说,通过序列比对技术分析图3和图4的差别来发现存在的缺陷。对于图4,根据收集多个用户的信息,标记出进入每个状态的人数;如果测试中有10个用户,其中9个用户从状态0进入状态N1,那这里最有可能存在应用交互界面程序缺陷。

Claims (1)

1.一种智能手机应用交互界面程序可用性测试方法,其特征在于该方法包含的步骤为:
步骤1:在智能手机应用交互界面程序中嵌入收集用户操作信息的代码,
步骤2:为用户指定应用交互操作任务,根据每个应用交互操作任务必要的操作事件序列,绘制出完成每个应用交互操作任务的原始有限状态机,该状态机只包含完成任务的必需状态,
步骤3:智能手机应用交互界面程序启动运行,嵌入其中的代码执行收集用户实际的操作事件序列,将该用户实际操作事件序列存放在本地存储设备中,一批用户操作事件序列在达到一个预定数量阀值后通过可用的通信网络传送到可用性测试服务器,或者当没有可用的通信网络时,继续存放在本地存储设备中,并与下一批用户操作事件序列一起传送到可用性测试服务器,
步骤4:可用性测试服务器根据收集到的实际用户操作事件序列,为每个应用交互操作任务生成实际的有限状态机,所述智能手机应用交互界面程序可用性测试方法根据服务器接收收集的用户操作信息,生成实际的有限状态机,该状态机包含用户操作进入的非必需状态,
步骤5:运用序列比对技术分析每个应用交互操作任务的原始有限状态机和实际有限状态机,通过状态转换是否异常获得用户操作过程中可能存在的交互界面程序缺陷,根据所有应用交互操作任务的分析结果,找出可能存在错误的位置,
步骤51:分别分析每一个应用交互操作任务的实际有限状态机,依次取该有限状态机上的每个状态,遍历对应应用交互操作任务的原始有限状态机,当遍历中所有的实际有限状态机状态都位于原始有限状态机上,说明该任务的实际有限状态机和原始有限状态机完全吻合,用户操作正常;当遍历中达到了某个实际有限状态机状态没有位于原始有限状态机上,说明状态转换异常,认为该状态为非必需状态,记录下该非必需状态,继续遍历,遍历结束后找到实际有限状态机中的非必需状态,这些非必需状态是交互界面程序可能存在缺陷的位置,
步骤52:根据步骤51中所有应用交互操作任务运用序列比对技术分析的结果,统计进入每一个非必需状态的人数;根据进入人数从多到少顺序,依次分析各个非必需状态,根据该非必需状态相应的用户实际操作事件,确定智能手机应用交互界面程序可能存在错误的位置。
CN201310213761.0A 2013-05-31 2013-05-31 一种智能手机应用交互界面程序可用性测试方法 Active CN103312851B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310213761.0A CN103312851B (zh) 2013-05-31 2013-05-31 一种智能手机应用交互界面程序可用性测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310213761.0A CN103312851B (zh) 2013-05-31 2013-05-31 一种智能手机应用交互界面程序可用性测试方法

Publications (2)

Publication Number Publication Date
CN103312851A true CN103312851A (zh) 2013-09-18
CN103312851B CN103312851B (zh) 2015-05-13

Family

ID=49137627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310213761.0A Active CN103312851B (zh) 2013-05-31 2013-05-31 一种智能手机应用交互界面程序可用性测试方法

Country Status (1)

Country Link
CN (1) CN103312851B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104834596A (zh) * 2015-03-05 2015-08-12 浙江大学 一种基于多层降维的移动应用可用性评估系统及评估方法
CN104866384A (zh) * 2014-02-20 2015-08-26 纬创资通股份有限公司 快速测试及检测移动装置的方法及系统
CN105893253A (zh) * 2016-03-29 2016-08-24 百度在线网络技术(北京)有限公司 应用软件测试方法、测试装置及测试设备
CN105991366A (zh) * 2015-03-05 2016-10-05 中国移动通信集团福建有限公司 一种业务监控方法及系统
CN107688533A (zh) * 2017-07-25 2018-02-13 上海壹账通金融科技有限公司 应用程序测试方法、装置、计算机设备和存储介质
CN107967209A (zh) * 2017-10-09 2018-04-27 中国银联股份有限公司 一种检测前端网页代码中错误的方法、检测设备及服务器
CN108415831A (zh) * 2018-02-05 2018-08-17 五八有限公司 测试用例生成方法及装置、电子设备和可读存储介质
CN109582147A (zh) * 2018-08-08 2019-04-05 亮风台(上海)信息科技有限公司 一种用于呈现增强交互内容的方法以及用户设备
CN112422515A (zh) * 2020-10-27 2021-02-26 锐捷网络股份有限公司 一种协议漏洞的测试方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030196189A1 (en) * 2002-04-12 2003-10-16 Sun Microsystems, Inc. System and method Xlet and applet manager testing
CN101739322A (zh) * 2008-11-14 2010-06-16 鸿富锦精密工业(深圳)有限公司 嵌入式系统的测试装置及方法
CN103106133A (zh) * 2011-11-09 2013-05-15 阿里巴巴集团控股有限公司 软件缺陷定位方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030196189A1 (en) * 2002-04-12 2003-10-16 Sun Microsystems, Inc. System and method Xlet and applet manager testing
CN101739322A (zh) * 2008-11-14 2010-06-16 鸿富锦精密工业(深圳)有限公司 嵌入式系统的测试装置及方法
CN103106133A (zh) * 2011-11-09 2013-05-15 阿里巴巴集团控股有限公司 软件缺陷定位方法及系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866384A (zh) * 2014-02-20 2015-08-26 纬创资通股份有限公司 快速测试及检测移动装置的方法及系统
CN104834596A (zh) * 2015-03-05 2015-08-12 浙江大学 一种基于多层降维的移动应用可用性评估系统及评估方法
CN105991366A (zh) * 2015-03-05 2016-10-05 中国移动通信集团福建有限公司 一种业务监控方法及系统
CN104834596B (zh) * 2015-03-05 2018-04-10 浙江大学 一种基于多层降维的移动应用可用性评估系统及评估方法
CN105893253A (zh) * 2016-03-29 2016-08-24 百度在线网络技术(北京)有限公司 应用软件测试方法、测试装置及测试设备
CN107688533A (zh) * 2017-07-25 2018-02-13 上海壹账通金融科技有限公司 应用程序测试方法、装置、计算机设备和存储介质
CN107967209A (zh) * 2017-10-09 2018-04-27 中国银联股份有限公司 一种检测前端网页代码中错误的方法、检测设备及服务器
CN108415831A (zh) * 2018-02-05 2018-08-17 五八有限公司 测试用例生成方法及装置、电子设备和可读存储介质
CN109582147A (zh) * 2018-08-08 2019-04-05 亮风台(上海)信息科技有限公司 一种用于呈现增强交互内容的方法以及用户设备
CN109582147B (zh) * 2018-08-08 2022-04-26 亮风台(上海)信息科技有限公司 一种用于呈现增强交互内容的方法以及用户设备
CN112422515A (zh) * 2020-10-27 2021-02-26 锐捷网络股份有限公司 一种协议漏洞的测试方法、装置及存储介质
CN112422515B (zh) * 2020-10-27 2023-03-21 锐捷网络股份有限公司 一种协议漏洞的测试方法、装置及存储介质

Also Published As

Publication number Publication date
CN103312851B (zh) 2015-05-13

Similar Documents

Publication Publication Date Title
CN103312851B (zh) 一种智能手机应用交互界面程序可用性测试方法
CN105553769B (zh) 一种数据采集分析系统和方法
CN105094783B (zh) 安卓应用稳定性测试的方法及装置
CN106649107B (zh) 安卓系统稳定性的自动化测试方法及装置
US20170099560A1 (en) System, a method and a computer program product for automated remote control
Ma et al. Design and implementation of a toolkit for usability testing of mobile apps
CN106776294B (zh) 安卓手机自动化测试方法和系统
KR101637371B1 (ko) 스마트기기용 어플리케이션의 테스트 시스템 및 그 방법
CN102289373A (zh) 一种实现指标评价体系动态配置的方法
JP2017117309A (ja) スマートフォンアプリケーションテスト自動化システム
CN103246606B (zh) Esb平台的性能测试方法和系统
CN106897207A (zh) 用户界面测试方法与装置
CN104503910A (zh) 通过监测用户使用行为对产品进行测试的方法
CN104268083A (zh) 软件自动化测试方法和装置
CN110018963A (zh) 一种测试方法、系统及电子设备和存储介质
CN111581067B (zh) 一种数据采集方法和装置
CN105099801A (zh) 信息管理系统的测试系统和测试环境模拟方法
CN113792341A (zh) 应用程序的隐私合规自动化检测方法、装置、设备及介质
US9547537B2 (en) Automatic profiling report generation
CN104933147A (zh) 智能卡片信息推送、显示方法、装置及系统
CN104123397A (zh) Web页面的自动化测试装置及方法
CN105760300A (zh) 一种stk/utk业务的自动化测试方法及测试系统
CN111813648A (zh) 一种应用于App的自动化测试方法、装置、存储介质及电子设备
CN105339974B (zh) 模拟传感器
CN115562993A (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
C14 Grant of patent or utility model
GR01 Patent grant