CN107688530B - 软件测试方法及装置 - Google Patents

软件测试方法及装置 Download PDF

Info

Publication number
CN107688530B
CN107688530B CN201710221079.4A CN201710221079A CN107688530B CN 107688530 B CN107688530 B CN 107688530B CN 201710221079 A CN201710221079 A CN 201710221079A CN 107688530 B CN107688530 B CN 107688530B
Authority
CN
China
Prior art keywords
buried point
software
data
tested
point data
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
CN201710221079.4A
Other languages
English (en)
Other versions
CN107688530A (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201710221079.4A priority Critical patent/CN107688530B/zh
Priority to PCT/CN2018/074874 priority patent/WO2018184420A1/zh
Publication of CN107688530A publication Critical patent/CN107688530A/zh
Application granted granted Critical
Publication of CN107688530B publication Critical patent/CN107688530B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics

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)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种软件测试方法及装置。该软件测试方法包括:在客户端上运行待测软件,待测软件包括至少一个功能模块,每一功能模块上设有至少一个埋点;当待测软件上的埋点被触发时,生成埋点数据,并将埋点数据发送给MongoDB数据库;埋点数据包括埋点ID、测试校验代码和参数信息;使MongoDB数据库上配置的awk脚本获取测试校验代码为失败的埋点数据,确定为待分析数据;采用预设分析算法对待分析数据中的参数信息进行分析,获取导致埋点测试失败的分析结果。该软件测试方法中,采用MongoDB数据库存储埋点数据,灵活性更强;采用awk脚本分析埋点数据获取待分析数据,具有门槛低、定位简单、数据处理效率快的优点。

Description

软件测试方法及装置
技术领域
本发明涉及计算机信息处理技术领域,尤其涉及一种软件测试方法及装置。
背景技术
随着计算机技术的迅速发展,具有文本编辑、图像处理、语音聊天、播放音视频等功能的各种软件层出不穷,为了保证软件各功能模块能够正常工作,需在软件发布之前,对软件各功能模块进行测试。现有软件测试方法中,在软件的各功能模块上分别设置至少一个埋点,当用户使用到某一功能模块时,会触发预设在该功能模块中的埋点,产生埋点数据并发送给服务器,服务器收集并分析对应的埋点数据,以查找出该软件运行过程中,容易出错的功能模块,并加以改进,从而达到完善软件的目的。
现有软件测试方法中,服务器接收到的埋点数据数量庞大且重复,由开发人员进行定点查找并分析,测试过程工作繁琐且工作量大,存在测试时间较长且人力成本高的问题。若采用专用分析软件(如Python软件)分析埋点数据,虽在一定程度上降低测试过程的工作量,但专用分析软件(如Python软件)需进行繁琐安装和配置,且需有代码能力较强的专业人员配合才可以完成软件测试过程,存在人力成本较高的问题。
发明内容
鉴于此,本发明提供一种软件测试方法及装置,以解决现有软件测试过程中工作繁琐且工作量大的问题。
本发明解决其技术问题所采用的技术方案是:
第一方面,本发明提供一种软件测试方法,包括:
在客户端上运行待测软件,所述待测软件包括至少一个功能模块,每一功能模块上设有至少一个埋点;
当所述待测软件上的所述埋点被触发时,生成埋点数据,并将所述埋点数据发送给MongoDB数据库;所述埋点数据包括埋点ID、测试校验代码和参数信息;
使MongoDB数据库上配置的awk脚本获取测试校验代码为失败的所述埋点数据,确定为待分析数据;
采用预设分析算法对所述待分析数据中的参数信息进行分析,获取导致所述埋点测试失败的分析结果。
优选地,所述在客户端上运行待测软件,之前还包括:
将所述MongoDB数据库安装在所述服务器,完成所述MongoDB数据库与所述服务器的信息配置,以使所述MongoDB数据库实时监控并获取所述埋点数据;
设置所述awk脚本定时获取所述测试校验代码为失败的埋点数据。
优选地,所述参数信息包括设备型号、设备配置、触发时间、网络类型、网络带宽和网络宽带时延积中的至少一个。
优选地,所述预设分析算法包括工作分解结构算法、资源分解结构算法或组织分解结构算法。
优选地,还包括:
接收客户通过所述客户端向所述服务器发送的查询指令,所述查询指令包括所述埋点ID;
基于所述查询指令,获取与所述埋点ID相对应的查询结果。
第二方面,本发明还提供一种软件测试装置,包括:
软件运行模块,用于在客户端上运行待测软件,所述待测软件包括至少一个功能模块,每一功能模块上设有至少一个埋点;
埋点数据生成模块,用于当所述待测软件上的所述埋点被触发时,生成埋点数据,并将所述埋点数据发送给MongoDB数据库;所述埋点数据包括埋点ID、测试校验代码和参数信息;
待分析数据确定模块,用于使MongoDB数据库上配置的awk脚本获取测试校验代码为失败的所述埋点数据,确定为待分析数据;
分析结果获取模块,用于采用预设分析算法对所述待分析数据中的参数信息进行分析,获取导致所述埋点测试失败的分析结果。
优选地,还包括:
信息配置模块,用于将所述MongoDB数据库安装在所述服务器,完成所述MongoDB数据库与所述服务器的信息配置,以使所述MongoDB数据库实时监控并获取所述埋点数据;
所述信息配置模块,还用于设置所述awk脚本定时获取所述测试校验代码为失败的埋点数据。
优选地,所述参数信息包括设备型号、设备配置、触发时间、网络类型、网络带宽和网络宽带时延积中的至少一个。
优选地,所述预设分析算法包括工作分解结构算法、资源分解结构算法或组织分解结构算法。
优选地,还包括:
查询指令接收模块,用于接收客户通过所述客户端向所述服务器发送的查询指令,所述查询指令包括所述埋点ID;
查询结果获取模块,用于基于所述查询指令,获取与所述埋点ID相对应的查询结果。
本发明与现有技术相比具有如下优点:本发明所提供的软件测试方法及装置中,采用MongoDB数据库存储客户端运行待测软件过程中触发形成的埋点数据,MongoDB数据库是开源的面向文档型数据库,其存储的埋点数据不受存储表的限制,灵活性更强。再通过MongoDB数据库上配置的awk脚本对埋点数据进行分析,以获取测试校验代码为失败的所有埋点数据确定为待分析数据,awk脚本具有门槛低、定位简单、数据处理效率快的优点,无需进行繁琐的安装和配置,即可对MongoDB数据库中的埋点数据直接操作。再采用预设分析算法对待分析数据中的参数信息进行分析,以获取导致埋点测试失败的分析结果,通过该分析结果可直观显示各参数信息对埋点所在功能模块测试失败的影响,以便于对待测软件进行改善。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例1中软件测试方法的一流程图。
图2是本发明实施例2中软件测试装置的一原理框图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
实施例1
图1示出本实施例中的软件测试方法的一流程图。该软件测试方法由客户端和服务器配合,完成对待测软件的测试过程。其中,客户端与服务器之间可通过WiFi网络、3G网络或4G网络等无线网络通信相连,也可通过有线网络通信相连。客户端可以是安装有待测软件的智能手机、笔记本、平板电脑、PAD或台式电脑等可与服务器通信相连的终端。如图1所示,该软件测试方法包括如下步骤:
S10:在客户端上运行待测软件,待测软件包括至少一个功能模块,每一功能模块上设有至少一个埋点。
具体地,在客户端上安装有待测软件并运行,该待测软件上设有至少一个功能模块,且每一功能模块上设有至少一个埋点,当客户端运行该待测软件的相应功能模块时,该功能模块上的埋点被触发。
S20:当待测软件上的埋点被触发时,生成埋点数据,并将埋点数据发送给MongoDB数据库;埋点数据包括埋点ID、测试校验代码和参数信息。
具体地,当待测软件上的埋点被触发时,触发生成的埋点数据可体现其测试结果,以便基于该埋点数据进行分析并改进,提高用户对待测软件的满意度。如在一理财产品APP中,包括用户登录模块、产品查询模块、上传产品和支付模块等,且用户登录模块包括用户注册、登录界面、找回用户名或找回密码等程序代码,则可在用户注册、登录界面、找回用户名或找回密码等程序代码均设有埋点,当用户通过客户端运行待测软件,并执行用户注册、登录界面、找回用户名或找回密码等相应操作时,客户端分别生成埋点数据并将埋点数据发送给MongoDB数据库。
其中,埋点ID用于唯一识别埋点的标识,该标识按预设编号规则进行编号。本实施例中,可以按功能模块ID+序号这一预设编号规则进行编号,如上述理财产品APP中,若用户登录模块的功能模块ID为X1,且用户注册的功能模块ID为X101,则可用X10101表示设置在用户注册程序代码中设有的第一个埋点。
测试校验代码用于标注埋点对应的程序代码测试是否成功,包括成功和失败两种测试校验代码。本实施例中,测试校验代码可分别用Y和N两个字母表示,也可用其他代码表示。通过测试校验代码区分埋点对应的程序代码测试是否成功,基于测试校验代码可将所有埋点数据划分成两类,通过对测试校验代码为失败的埋点数据进行分析,无需专门的开发人员定时排查,可在一定程度上减轻测试过程的工作量,减少测试时间,节省人力成本。
参数信息用于客观体现埋点所在的程序代码的运行环境,其与待测软件测试是否成功密切相关。具体地,参数信息包括设备型号、设备配置、触发时间、网络类型、网络带宽和网络宽带时延积中的至少一个。
本实施例中,设备型号是安装有待测软件的客户端的内部编号,该设备型号与客户端的性能相关联。以智能手机为例,每一智能手机厂家在生产相应品牌的智能手机时,以设备型号来区分不同版本的智能手机,如iphone4、iphone5等。设备配置可以是客户端上安装的操作***,如安卓***、IOS操作***、Windows***、Linux***等,或者可以是安装在客户端上的处理器或其他硬件的型号,如i5或i7处理器。触发时间可以是运行该待测软件的时间,该触发时间与客户端运行网络相关,一般情况下,在网络高峰触发待测软件的失败率会比在网络低峰触发待测软件的失败率高。网络类型是客户端与服务器通信所采用的网络,可以是有线网络,也可以是WiFi网络、3G网络或4G网络等无线网络。网络带宽是单位时间内传输的数据量,即数据传输率。网络宽带时延积是链路上最大比特数。
进一步地,客户端发送的埋点数据直接存储在MongoDB数据库中,而MongoDB数据库是一种开源且面向文档型数据库,相比于SQL等表结构存储的关系型数据库,其灵活性更强,以便于实现对存储在MongoDB数据库中的埋点数据进行分析。
S30:使MongoDB数据库上配置的awk脚本获取测试校验代码为失败的埋点数据,确定为待分析数据。
其中,awk脚本是一种强大的文本分析工具,可对存储在MongoDB数据库中所有埋点数据逐行读入,再以空格或其他默认分隔符将埋点数据进行分隔,并对分隔的内容进行分析处理。本实施例中,采用MongoDB数据库上配置的awk脚本对所有埋点数据进行分析,获取测试校验代码为失败的埋点数据,将其确定为待分析数据,以便基于待分析数据确定导致埋点所在的程序代码测试失败的原因,以基于失败原因对待测软件进行改进。可以理解地,可直接采用awk脚本将测试校验代码为失败的埋点数据确定为待分析数据,而无需再安装其他运行环境,具有门槛低、定位简单、数据处理效率快的优点,无需进行繁琐安装和配置,也无需代码能力较强的专业人员配合完成测试,进一步降低待测软件测试过程的人力成本。
S40:采用预设分析算法对待分析数据中的参数信息进行分析,获取导致埋点测试失败的分析结果。
具体地,MongoDB数据库上配置的awk脚本先将所有测试校验代码为失败的所有埋点数据确定为待分析数据,无需专门的开发人员定时排查,可在一定程度上减轻测试过程中的工作量,节省人力成本。采用预设分析算法对所有待分析数据中的参数信息进行分析,可获取导致该埋点对应的程序代码测试失败的原因,以形成分析结果,分析过程自动化,无需配置专业人员进行分析,有利于降低分析成本。
具体地,预设分析算法包括工作分解结构算法、资源分解结构算法或组织分解结构算法。工作分解结构(Work Breakdowm Structure,简称WBS)算法以可交付成果为导向,对项目要素进行的分组,它归纳和定义了项目的整个工作范围,每下降一层代表对项目工作的更详细定义。资源分解结构(Resouree Breakdowm Structure,简称RBS)算法是按照资源种类和形式而划分的资源层级结构,它是项目分解结构的一种,通过它可以在资源需求细节上制定进度计划,并可以通过汇总的方式向更高一层汇总资源需求和资源可用性。组织分解结构(Organizational Breakdowm Structure,简称OBS)算法是项目组织结构图的一种非凡形式,描述负责每个项目活动的具体组织单元,它将工作包与相关部门或单位分层次、有条理地联系起来的一种项目组织安排图形。
本实施例中,工作分解结构(Work Breakdowm Structure,简称WBS)算法是指按一定分类原则,将所有参数信息先分为设备型号、设备配置、触发时间、网络类型、网络带宽和网络宽带时延积等大类,再将每一大类再细分为若干小类,然后再将每一小类进一步细分成若干小组……,依次类推,以将所有参数信息划分成不可再分割的分类类别,然后判断每一分类类别的参数信息是否与待测软件测试失败相关联,其目的性明确,以避免分析过程中遗漏影响待测软件相应功能模块测试成功或失败的相关参数信息。具体地,每一不可再分割的分类类别对应一类别ID;可采用控制变量法判断每一分类类别ID对应的参数信息是否与待测软件测试失败相关联,以确定影响待测软件成功运行的相差参数信息。
本实施例所提供的软件测试方法中,采用MongoDB数据库存储客户端运行待测软件过程中触发形成的埋点数据,MongoDB数据库是开源的面向文档型数据库,其存储的埋点数据不受存储表的限制,灵活性更强。再通过MongoDB数据库上配置的awk脚本对埋点数据进行分析,以获取测试校验代码为失败的所有埋点数据确定为待分析数据,awk脚本具有门槛低、定位简单、数据处理效率快的优点,无需进行繁琐的安装和配置,即可对MongoDB数据库中的埋点数据直接操作。再采用预设分析算法对待分析数据中的参数信息进行分析,以获取导致埋点测试失败的分析结果,通过该分析结果可直观显示各参数信息对埋点所在功能模块测试失败的影响,以便于对待测软件进行改善。
在一具体实施方式中,由于待测软件上的埋点数据被触发时,需将触发生成的埋点数据发送给对应的MongoDB数据库,需进行相应的配置,以保证埋点数据直接发送给MongoDB数据库且awk脚本可对MongoDB数据库中的埋眯数据进行分析。因此,该软件测试方法中,步骤S10之前还包括如下步骤:
S01:将MongoDB数据库安装在服务器,完成MongoDB数据库与服务器的信息配置,以使MongoDB数据库实时监控并获取埋点数据。
具体地,在服务器上运行MongoDB数据库安装程序,运行mongod命令,以将MongoDB数据库安装在服务器上。然后在服务器上创建数据目录,并启动服务器,等待服务器与客户端连接。mongod一般在没有参数的情况下会默认数据目录/data/db,若不存在就会启动失败;本实施例中,创建数据目录为mkdir-p/data/db。再给MongoDB数据库配置27017端口以监听服务器,配置28017端口以监听HTTP请求,当客户端访问http://服务器地址28017,即实现客户端与服务器连接。
步骤S01中,完成MongoDB数据库与服务器之间的信息配置,由于MongoDB数据库支持存储数据类型比较复杂的数据,以使MongoDB数据库可实时监控服务器接收到的http请求,当客户端上传埋点数据服务器时,可直接存储在MongoDB数据库中,无需转换成存储表结构再存储。
S02:设置awk脚本定时获取测试校验代码为失败的埋点数据。
具体地,预先设置awk脚本定时获取测试校验代码为失败的埋点数据,以确定为待分析数据,awk脚本具有门槛低、定位简单等优点,无需专门的测试人员定点排查,有利于提高测试效率。通过awk脚本定时获取测试校验代码为失败的埋点数据并采用预设分析算法进行分析,可定时获取分析结果;而无需人工监控。
在一具体实施方式中,该软件测试方法还包括如下步骤:
S50:接收客户通过客户端向服务器发送的查询指令,查询指令包括埋点ID。
具体地,客户(如测试人员或开发人员)可向客户端输入查询指令,客户端接收到该查询指令后,将该查询指令发送给服务器。该查询指令可以仅包括一个埋点ID,以查询影响特定埋点所在的程序代码的参数信息,也可以是功能模块ID,该功能模块包括至少一个埋点ID,以查询影响特定功能模块的参数信息。
S60:基于查询指令,获取与埋点ID相对应的查询结果。
其中,该查询结果为与埋点ID相对应的分析结果。具体地,服务器上的MongoDB数据库在接收到查询指令后,可获取采用预设分析算法对与查询指令中的埋点ID对应的所有待分析数据进行分析的分析结果,并将该分析结果作为查询结果输出。客户端显示查询结果,以便客户基于查询结果对该埋点ID对应的程序代码或功能模块进行改善。
可以理解地,本实施例所提供的软件测试方法中,采用面向文档的MongoDB数据库和擅长处理文档行列的awk脚本配合,可直接对上传到MongoDB数据库中的所有埋点数据进行筛选、对比、统计、定时输出或循环输出等操作。而且,该软件测试方法中,可基于客户端原有的开发环境,无需对客户端的运行环境进行改变,在不牺牲用户体验、不延迟数据请求的基础上实现将埋点数据实时或批量上传到服务器的MongoDB数据库中,轻便简洁且可移植性高。
实施例2
图2示出本实施例中的软件测试装置的一原理框图。该软件测试装置包括客户端和服务器,通过客户端和服务器配合,完成对待测软件的测试过程。其中,客户端与服务器之间可通过WiFi网络、3G网络或4G网络等无线网络通信相连,也可通过有线网络通信相连。客户端可以是安装有待测软件的智能手机、笔记本、平板电脑、PAD或台式电脑等可与服务器通信相连的终端。如图2所示,该软件测试装置包括软件运行模块10、埋点数据生成模块20、待分析数据确定模块30、分析结果获取模块40、信息配置模块50、查询指令接收模块60和查询结果获取模块70。
软件运行模块10,用于在客户端上运行待测软件,待测软件包括至少一个功能模块,每一功能模块上设有至少一个埋点。
具体地,在客户端上安装有待测软件并运行,该待测软件上设有至少一个功能模块,且每一功能模块上设有至少一个埋点,当客户端运行该待测软件的相应功能模块时,该功能模块上的埋点被触发。
埋点数据生成模块20,用于当待测软件上的埋点被触发时,生成埋点数据,并将埋点数据发送给MongoDB数据库;埋点数据包括埋点ID、测试校验代码和参数信息。
具体地,当待测软件上的埋点被触发时,触发生成的埋点数据可体现其测试结果,以便基于该埋点数据进行分析并改进,提高用户对待测软件的满意度。如在一理财产品APP中,包括用户登录模块、产品查询模块、上传产品和支付模块等,且用户登录模块包括用户注册、登录界面、找回用户名或找回密码等程序代码,则可在用户注册、登录界面、找回用户名或找回密码等程序代码均设有埋点,当用户通过客户端运行待测软件,并执行用户注册、登录界面、找回用户名或找回密码等相应操作时,客户端分别生成埋点数据并将埋点数据发送给MongoDB数据库。
其中,埋点ID用于唯一识别埋点的标识,该标识按预设编号规则进行编号。本实施例中,可以按功能模块ID+序号这一预设编号规则进行编号,如上述理财产品APP中,若用户登录模块的功能模块ID为X1,且用户注册的功能模块ID为X101,则可用X10101表示设置在用户注册程序代码中设有的第一个埋点。
测试校验代码用于标注埋点对应的程序代码测试是否成功,包括成功和失败两种测试校验代码。本实施例中,测试校验代码可分别用Y和N两个字母表示,也可用其他代码表示。通过测试校验代码区分埋点对应的程序代码测试是否成功,基于测试校验代码可将所有埋点数据划分成两类,通过对测试校验代码为失败的埋点数据进行分析,无需专门的开发人员定时排查,可在一定程度上减轻测试过程的工作量,减少测试时间,节省人力成本。
参数信息用于客观体现埋点所在的程序代码的运行环境,其与待测软件测试是否成功密切相关。具体地,参数信息包括设备型号、设备配置、触发时间、网络类型、网络带宽和网络宽带时延积中的至少一个。
本实施例中,设备型号是安装有待测软件的客户端的内部编号,该设备型号与客户端的性能相关联。以智能手机为例,每一智能手机厂家在生产相应品牌的智能手机时,以设备型号来区分不同版本的智能手机,如iphone4、iphone5等。设备配置可以是客户端上安装的操作***,如安卓***、IOS操作***、Windows***、Linux***等,或者可以是安装在客户端上的处理器或其他硬件的型号,如i5或i7处理器。触发时间可以是运行该待测软件的时间,该触发时间与客户端运行网络相关,一般情况下,在网络高峰触发待测软件的失败率会比在网络低峰触发待测软件的失败率高。网络类型是客户端与服务器通信所采用的网络,可以是有线网络,也可以是WiFi网络、3G网络或4G网络等无线网络。网络带宽是单位时间内传输的数据量,即数据传输率。网络宽带时延积是链路上最大比特数。
进一步地,客户端发送的埋点数据直接存储在MongoDB数据库中,而MongoDB数据库是一种开源且面向文档型数据库,相比于SQL等表结构存储的关系型数据库,其灵活性更强,以便于实现对存储在MongoDB数据库中的埋点数据进行分析。
待分析数据确定模块30,用于使MongoDB数据库上配置的awk脚本获取测试校验代码为失败的埋点数据,确定为待分析数据。
其中,awk脚本是一种强大的文本分析工具,可对存储在MongoDB数据库中所有埋点数据逐行读入,再以空格或其他默认分隔符将埋点数据进行分隔,并对分隔的内容进行分析处理。本实施例中,采用MongoDB数据库上配置的awk脚本对所有埋点数据进行分析,获取测试校验代码为失败的埋点数据,将其确定为待分析数据,以便基于待分析数据确定导致埋点所在的程序代码测试失败的原因,以基于失败原因对待测软件进行改进。可以理解地,可直接采用awk脚本将测试校验代码为失败的埋点数据确定为待分析数据,而无需再安装其他运行环境,具有门槛低、定位简单、数据处理效率快的优点,无需进行繁琐安装和配置,也无需代码能力较强的专业人员配合完成测试,进一步降低待测软件测试过程的人力成本。
分析结果获取模块40,用于采用预设分析算法对待分析数据中的参数信息进行分析,获取导致埋点测试失败的分析结果。
具体地,MongoDB数据库上配置的awk脚本先将所有测试校验代码为失败的所有埋点数据确定为待分析数据,无需专门的开发人员定时排查,可在一定程度上减轻测试过程中的工作量,节省人力成本。采用预设分析算法对所有待分析数据中的参数信息进行分析,可获取导致该埋点对应的程序代码测试失败的原因,以形成分析结果,分析过程自动化,无需配置专业人员进行分析,有利于降低分析成本。
具体地,预设分析算法包括工作分解结构算法、资源分解结构算法或组织分解结构算法。工作分解结构(Work Breakdowm Structure,简称WBS)算法以可交付成果为导向,对项目要素进行的分组,它归纳和定义了项目的整个工作范围,每下降一层代表对项目工作的更详细定义。资源分解结构(Resouree Breakdowm Structure,简称RBS)算法是按照资源种类和形式而划分的资源层级结构,它是项目分解结构的一种,通过它可以在资源需求细节上制定进度计划,并可以通过汇总的方式向更高一层汇总资源需求和资源可用性。组织分解结构(Organizational Breakdowm Structure,简称OBS)算法是项目组织结构图的一种非凡形式,描述负责每个项目活动的具体组织单元,它将工作包与相关部门或单位分层次、有条理地联系起来的一种项目组织安排图形。
本实施例中,工作分解结构(Work Breakdowm Structure,简称WBS)算法是指按一定分类原则,将所有参数信息先分为设备型号、设备配置、触发时间、网络类型、网络带宽和网络宽带时延积等大类,再将每一大类再细分为若干小类,然后再将每一小类进一步细分成若干小组……,依次类推,以将所有参数信息划分成不可再分割的分类类别,然后判断每一分类类别的参数信息是否与待测软件测试失败相关联,其目的性明确,以避免分析过程中遗漏影响待测软件相应功能模块测试成功或失败的相关参数信息。具体地,每一不可再分割的分类类别对应一类别ID;可采用控制变量法判断每一分类类别ID对应的参数信息是否与待测软件测试失败相关联,以确定影响待测软件成功运行的相差参数信息。
本实施例所提供的软件测试装置中,采用MongoDB数据库存储客户端运行待测软件过程中触发形成的埋点数据,MongoDB数据库是开源的面向文档型数据库,其存储的埋点数据不受存储表的限制,灵活性更强。再通过MongoDB数据库上配置的awk脚本对埋点数据进行分析,以获取测试校验代码为失败的所有埋点数据确定为待分析数据,awk脚本具有门槛低、定位简单、数据处理效率快的优点,无需进行繁琐的安装和配置,即可对MongoDB数据库中的埋点数据直接操作。再采用预设分析算法对待分析数据中的参数信息进行分析,以获取导致埋点测试失败的分析结果,通过该分析结果可直观显示各参数信息对埋点所在功能模块测试失败的影响,以便于对待测软件进行改善。
在一具体实施方式中,由于待测软件上的埋点数据被触发时,需将触发生成的埋点数据发送给对应的MongoDB数据库,需进行相应的配置,以保证埋点数据直接发送给MongoDB数据库且awk脚本可对MongoDB数据库中的埋眯数据进行分析。因此,该软件测试装置还包括信息配置模块50。
信息配置模块50,用于将MongoDB数据库安装在服务器,完成MongoDB数据库与服务器的信息配置,以使MongoDB数据库实时监控并获取埋点数据。
具体地,在服务器上运行MongoDB数据库安装程序,运行mongod命令,以将MongoDB数据库安装在服务器上。然后在服务器上创建数据目录,并启动服务器,等待服务器与客户端连接。mongod一般在没有参数的情况下会默认数据目录/data/db,若不存在就会启动失败;本实施例中,创建数据目录为mkdir-p/data/db。再给MongoDB数据库配置27017端口以监听服务器,配置28017端口以监听HTTP请求,当客户端访问http://服务器地址28017,即实现客户端与服务器连接。
信息配置模块50可完成MongoDB数据库与服务器之间的信息配置,由于MongoDB数据库支持存储数据类型比较复杂的数据,以使MongoDB数据库可实时监控服务器接收到的http请求,当客户端上传埋点数据服务器时,可直接存储在MongoDB数据库中,无需转换成存储表结构再存储。
信息配置模块50,还用于设置awk脚本定时获取测试校验代码为失败的埋点数据。
具体地,预先设置awk脚本定时获取测试校验代码为失败的埋点数据,以确定为待分析数据,awk脚本具有门槛低、定位简单等优点,无需专门的测试人员定点排查,有利于提高测试效率。通过awk脚本定时获取测试校验代码为失败的埋点数据并采用预设分析算法进行分析,可定时获取分析结果;而无需人工监控。
在一具体实施方式中,该软件测试装置还包括查询指令接收模块60和查询结果获取模块70。
查询指令接收模块60,用于接收客户通过客户端向服务器发送的查询指令,查询指令包括埋点ID。
具体地,客户(如测试人员或开发人员)可向客户端输入查询指令,客户端接收到该查询指令后,将该查询指令发送给服务器。该查询指令可以仅包括一个埋点ID,以查询影响特定埋点所在的程序代码的参数信息,也可以是功能模块ID,该功能模块包括至少一个埋点ID,以查询影响特定功能模块的参数信息。
查询结果获取模块70,用于基于查询指令,获取与埋点ID相对应的查询结果。
其中,该查询结果为与埋点ID相对应的分析结果。具体地,服务器上的MongoDB数据库在接收到查询指令后,可获取采用预设分析算法对与查询指令中的埋点ID对应的所有待分析数据进行分析的分析结果,并将该分析结果作为查询结果输出。客户端显示查询结果,以便客户基于查询结果对该埋点ID对应的程序代码或功能模块进行改善。
可以理解地,本实施例所提供的软件测试装置中,采用面向文档的MongoDB数据库和擅长处理文档行列的awk脚本配合,可直接对上传到MongoDB数据库中的所有埋点数据进行筛选、对比、统计、定时输出或循环输出等操作。而且,该软件测试装置中,可基于客户端原有的开发环境,无需对客户端的运行环境进行改变,在不牺牲用户体验、不延迟数据请求的基础上实现将埋点数据实时或批量上传到服务器的MongoDB数据库中,轻便简洁且可移植性高。
本发明是通过几个具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换和等同替代。另外,针对特定情形或具体情况,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。

Claims (8)

1.一种软件测试方法,其特征在于,包括:
在客户端上运行待测软件,所述待测软件包括至少一个功能模块,每一功能模块上设有至少一个埋点;
当所述待测软件上的所述埋点被触发时,生成埋点数据,并将所述埋点数据发送给MongoDB数据库;所述埋点数据包括埋点ID、测试校验代码和参数信息;
使MongoDB数据库上配置的awk脚本获取测试校验代码为失败的所述埋点数据,确定为待分析数据;
采用预设分析算法对所述待分析数据中的参数信息进行分析,获取导致所述埋点测试失败的分析结果;
其中,所述预设分析算法包括工作分解结构算法,在对所述参数信息进行分析时,首先将所述参数信息划分成不可再分割的分类类别,然后判断每一分类类别的参数信息是否与所述待测软件的测试失败相关联,以获得所述分析结果。
2.根据权利要求1所述的软件测试方法,其特征在于,所述在客户端上运行待测软件,之前还包括:
将所述MongoDB数据库安装在服务器,完成所述MongoDB数据库与所述服务器的信息配置,以使所述MongoDB数据库实时监控并获取所述埋点数据;
设置所述awk脚本定时获取所述测试校验代码为失败的埋点数据。
3.根据权利要求1所述的软件测试方法,其特征在于,所述参数信息包括设备型号、设备配置、触发时间、网络类型、网络带宽和网络宽带时延积中的至少一个。
4.根据权利要求2所述的软件测试方法,其特征在于,还包括:
接收客户通过所述客户端向所述服务器发送的查询指令,所述查询指令包括所述埋点ID;
基于所述查询指令,获取与所述埋点ID相对应的查询结果。
5.一种软件测试装置,其特征在于,包括:
软件运行模块,用于在客户端上运行待测软件,所述待测软件包括至少一个功能模块,每一功能模块上设有至少一个埋点;
埋点数据生成模块,用于当所述待测软件上的所述埋点被触发时,生成埋点数据,并将所述埋点数据发送给MongoDB数据库;所述埋点数据包括埋点ID、测试校验代码和参数信息;
待分析数据确定模块,用于使MongoDB数据库上配置的awk脚本获取测试校验代码为失败的所述埋点数据,确定为待分析数据;
分析结果获取模块,用于采用预设分析算法对所述待分析数据中的参数信息进行分析,获取导致所述埋点测试失败的分析结果;
其中,所述预设分析算法包括工作分解结构算法,在对所述参数信息进行分析时,首先将所述参数信息划分成不可再分割的分类类别,然后判断每一分类类别的参数信息是否与所述待测软件的测试失败相关联,以获得所述分析结果。
6.根据权利要求5所述的软件测试装置,其特征在于,还包括:
信息配置模块,用于将所述MongoDB数据库安装在服务器,完成所述MongoDB数据库与所述服务器的信息配置,以使所述MongoDB数据库实时监控并获取所述埋点数据;
所述信息配置模块,还用于设置所述awk脚本定时获取所述测试校验代码为失败的埋点数据。
7.根据权利要求5所述的软件测试装置,其特征在于,所述参数信息包括设备型号、设备配置、触发时间、网络类型、网络带宽和网络宽带时延积中的至少一个。
8.根据权利要求6所述的软件测试装置,其特征在于,还包括:
查询指令接收模块,用于接收客户通过所述客户端向所述服务器发送的查询指令,所述查询指令包括所述埋点ID;
查询结果获取模块,用于基于所述查询指令,获取与所述埋点ID相对应的查询结果。
CN201710221079.4A 2017-04-06 2017-04-06 软件测试方法及装置 Active CN107688530B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710221079.4A CN107688530B (zh) 2017-04-06 2017-04-06 软件测试方法及装置
PCT/CN2018/074874 WO2018184420A1 (zh) 2017-04-06 2018-01-31 软件测试方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710221079.4A CN107688530B (zh) 2017-04-06 2017-04-06 软件测试方法及装置

Publications (2)

Publication Number Publication Date
CN107688530A CN107688530A (zh) 2018-02-13
CN107688530B true CN107688530B (zh) 2020-04-10

Family

ID=61152357

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710221079.4A Active CN107688530B (zh) 2017-04-06 2017-04-06 软件测试方法及装置

Country Status (2)

Country Link
CN (1) CN107688530B (zh)
WO (1) WO2018184420A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664401B (zh) * 2018-05-11 2021-10-12 创新先进技术有限公司 埋点合理性的评估方法及装置
CN109101414B (zh) * 2018-06-14 2021-10-15 挖财网络技术有限公司 基于埋点数据的海量ui测试生成方法及其装置
CN109684155B (zh) * 2018-08-27 2022-11-15 平安科技(深圳)有限公司 监控配置方法、装置、设备及可读存储介质
CN110875858B (zh) * 2018-08-31 2023-06-27 北京京东尚科信息技术有限公司 应用测试数据抓取方法、***、设备及存储介质
CN111190807B (zh) * 2018-11-14 2023-08-18 杭州萤石软件有限公司 一种埋点测试方法及设备
CN111506489B (zh) * 2019-01-30 2023-05-30 斑马智行网络(香港)有限公司 测试方法、***、设备、服务器及存储介质
CN109960651A (zh) * 2019-02-13 2019-07-02 北京达佳互联信息技术有限公司 埋点测试方法、***、装置和计算机可读存储介质
CN110515830A (zh) * 2019-07-15 2019-11-29 平安普惠企业管理有限公司 操作轨迹可视化方法、装置、设备及存储介质
CN110401899A (zh) * 2019-07-25 2019-11-01 厦门盈趣科技股份有限公司 音频测试方法及相关装置
CN110674048B (zh) * 2019-09-27 2023-09-22 北京新氧科技有限公司 一种埋点测试特征获取方法及相关装置
CN111090592A (zh) * 2019-12-20 2020-05-01 上海品顺信息科技有限公司 埋点的自动化测试方法、终端及可读存储介质
CN111813698A (zh) * 2020-08-27 2020-10-23 江苏洲际软件有限公司 一种软件测试装置及测试方法
CN112286834B (zh) * 2020-12-31 2021-04-16 智道网联科技(北京)有限公司 多设备软件测试方法、测试装置、电子设备及存储介质
CN113485889B (zh) * 2021-06-29 2023-08-15 平安银行股份有限公司 埋点数据校验方法、装置、电子设备及存储介质
CN113688031B (zh) * 2021-07-15 2024-03-26 上海浦东发展银行股份有限公司 一种基于字节码增强技术的测试定位方法
CN113673997A (zh) * 2021-08-27 2021-11-19 深圳鼎盛电脑科技有限公司 一种资金计算引擎的可视化处理方法、装置、设备及介质
CN114168430A (zh) * 2022-01-06 2022-03-11 携程旅游网络技术(上海)有限公司 前端异常告警配置方法、***、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101201787A (zh) * 2006-12-12 2008-06-18 英业达股份有限公司 软件程序的调试***及方法
CN103778244A (zh) * 2014-02-11 2014-05-07 五八同城信息技术有限公司 一种基于用户行为日志的自动化报表分析方法
CN104915296A (zh) * 2015-06-29 2015-09-16 北京金山安全软件有限公司 埋点测试方法、数据的查询方法及装置
CN106294091A (zh) * 2016-08-11 2017-01-04 福建富士通信息软件有限公司 一种无侵入式日志拦截性能分析方法及***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7865704B2 (en) * 2006-03-29 2011-01-04 Freescale Semiconductor, Inc. Selective instruction breakpoint generation based on a count of instruction source events
US9111030B1 (en) * 2008-10-03 2015-08-18 Federal Home Loan Mortgage Corporation Systems and methods for testing a software application
CN102053906A (zh) * 2009-10-30 2011-05-11 国际商业机器公司 用于收集程序运行时信息的***和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101201787A (zh) * 2006-12-12 2008-06-18 英业达股份有限公司 软件程序的调试***及方法
CN103778244A (zh) * 2014-02-11 2014-05-07 五八同城信息技术有限公司 一种基于用户行为日志的自动化报表分析方法
CN104915296A (zh) * 2015-06-29 2015-09-16 北京金山安全软件有限公司 埋点测试方法、数据的查询方法及装置
CN106294091A (zh) * 2016-08-11 2017-01-04 福建富士通信息软件有限公司 一种无侵入式日志拦截性能分析方法及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
从零到百亿互联网金融架构发展史;微笑很纯洁;《CSDN博客》;20170112;第4页 *

Also Published As

Publication number Publication date
WO2018184420A1 (zh) 2018-10-11
CN107688530A (zh) 2018-02-13

Similar Documents

Publication Publication Date Title
CN107688530B (zh) 软件测试方法及装置
US10372600B2 (en) Systems and methods for automated web performance testing for cloud apps in use-case scenarios
CN107908541B (zh) 接口测试方法、装置、计算机设备及存储介质
CN111026645B (zh) 用户界面自动化测试方法、装置、存储介质及电子设备
CN109684847B (zh) 脚本漏洞的自动修复方法、装置、设备及存储介质
CN111459794A (zh) 通信网络测试方法、装置、计算机设备和存储介质
CN111522922A (zh) 日志信息查询方法、装置、存储介质及计算机设备
CN107957940B (zh) 一种测试日志处理方法、***及终端
CN105787364B (zh) 任务的自动化测试方法、装置及***
CN107102949B (zh) 应用程序离线测试方法及工具
CN114077525A (zh) 异常日志处理方法、装置、终端设备、云服务器及***
CN110647471A (zh) 接口测试用例生成方法、电子装置及存储介质
CN112463588A (zh) 一种自动化测试***及方法、存储介质、计算设备
CN108255735B (zh) 关联环境测试方法、电子装置及计算机可读存储介质
CN112540924A (zh) 接口自动化测试方法、装置、设备及存储介质
CN111934953A (zh) 基于国产处理器计算机平台的批量测试方法
CN111930625B (zh) 基于云服务平台的日志获取方法、装置及***
US20150135015A1 (en) Cloud auto-test system, method and non-transitory computer readable storage medium of the same
KR20150030297A (ko) 애플리케이션 자동 검증을 위한 검증장치, 단말장치, 시스템, 방법 및 컴퓨터로 판독 가능한 기록 매체
CN107317723B (zh) 一种数据处理方法及服务器
CN115952098A (zh) 一种性能测试调优方案推荐方法及***
CN111339196B (zh) 基于区块链的数据处理方法、***及计算机可读存储介质
CN112506768A (zh) 一种测试方法、装置、电子设备和存储介质
CN115729727A (zh) 故障修复方法、装置、设备及介质
CN105391602A (zh) 一种数据采集测试方法和装置

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
GR01 Patent grant
GR01 Patent grant