CN109144884A - 程序错误定位方法、装置、及计算机可读存储介质 - Google Patents
程序错误定位方法、装置、及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109144884A CN109144884A CN201811152607.6A CN201811152607A CN109144884A CN 109144884 A CN109144884 A CN 109144884A CN 201811152607 A CN201811152607 A CN 201811152607A CN 109144884 A CN109144884 A CN 109144884A
- Authority
- CN
- China
- Prior art keywords
- code
- bug
- server
- error
- code line
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software 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
本发明提供一种程序错误定位方法。该方法利用网络代理工具抓取App向服务器发出的网络请求以及服务器响应所述网络请求所返回的请求结果,根据所返回的请求结果与预定的数据之间的比较结果,确定是服务器还是电子设备出现Bug,进而定位Bug并修正Bug。本发明还提供一种实现所述程序错误定位方法的装置和存储介质。本发明基于测试流程的改进可精准定位出现Bug的源头,提高了Bug定位效率。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种程序错误定位方法、装置、及计算机可读存储介质。
背景技术
程序错误(英语:Bug),是程序设计中的术语,是指在软件运行中因为程序本身有错误而造成的功能不正常、死机、数据丢失、非正常中断等现象。Bug定位即通过多种方法确定Bug是由于哪部分代码有问题导致的。目前行业内对于Bug定位分析的方法各有己见,定位效率低,暂未有成熟的、具有普适性的方案。
发明内容
鉴于以上内容,有必要提出一种程序错误定位方法、装置、及计算机可读存储介质,用以解决Bug定位效率低下的技术问题。
本发明的第一方面提供一种程序错误定位方法,所述方法包括:对电子设备的网络环境进行配置;控制所述电子设备执行指定的App并向服务器发出一个指定的网络请求;利用指定的网络代理工具抓取所述服务器响应所述网络请求所返回的请求结果;确定所返回的请求结果与预定的数据是否一致;当所返回的请求结果与预定的数据不一致时,读取所述服务器的第一系统日志,若所述第一系统日志中包括报错记录,从所述报错记录获取出现Bug的代码行,并将所述出现Bug的代码行反馈给相关人员;若所述第一系统日志中没有包括报错记录,则调用代码扫描工具识别所述服务器的代码结构,根据所述扫描获得的代码结构查找到出现Bug的代码行;当所返回的请求结果与预定的数据一致时,读取所述App的第二系统日志,若所述第二系统日志中包括报错记录,从所述报错记录获取出现Bug的代码行,并将所述出现Bug的代码行反馈给相关人员;若所述第二系统日志中没有包括报错记录,则调用代码扫描工具识别所述App的的代码结构,根据所述扫描获得的代码结构查找到出现Bug的代码行;根据所述相关人员的输入对所述出现Bug的代码行进行修正;根据所述相关人员的输入编写用于测试所述修正后的代码行的测试用例;及执行所述测试用例以验证修正后的代码行是否存在问题,并将测试结果反馈给所述相关人员。
优选地,所述对电子设备的网络环境进行配置包括将所述电子设备的网络代理的IP设定为与所述计算机装置的IP一致。
优选地,所述App向所述服务器所发出的网络请求为所述App之前向所述服务器曾经发出过的一个网络请求,但是所述网络请求没有请求成功,所述网络请求没有请求成功可以定义为所述App没有从所述服务器获取到对应请求结果。
优选地,所述确定所返回的请求结果与预定的数据是否一致包括:当所返回的请求结果与预定的数据不一致时,确定是所述服务器出现Bug;及当所返回的请求结果与预定的数据一致时,确定所述服务器没有出现Bug。
优选地,所述根据所述扫描获得的代码结构查找到出现Bug的代码行包括:通过web接口定位到实际应用层接口的代码查找出现Bug的代码行。
优选地,该方法在根据所述相关人员的输入对所述出现Bug的代码行进行修正后还包括:确定是否存在其他代码行调用了所述出现Bug的代码行;及当还存在其他代码行调用了所述出现Bug的代码行时,根据所述相关人员的输入编写用于测试所述其他代码行的测试用例。
优选地,该方法还包括步骤:执行所述用于测试所述其他代码行的测试用例以验证所述其他代码行是否存在问题,并将测试结果反馈给所述相关人员。
本发明的第二方面提供一种计算机装置,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述程序错误定位方法。
本发明的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述程序错误定位方法。
本发明的第四方面提供一种程序错误定位装置,所述装置包括:设置模块,用于对电子设备的网络环境进行配置;执行模块,用于控制所述电子设备执行指定的App并向服务器发出一个指定的网络请求;所述执行模块,还用于利用指定的网络代理工具抓取所述服务器响应所述网络请求所返回的请求结果;所述执行模块,还用于确定所返回的请求结果与预定的数据是否一致;所述执行模块,还用于当所返回的请求结果与预定的数据不一致时,读取所述服务器的第一系统日志,若所述第一系统日志中包括报错记录,从所述报错记录获取出现Bug的代码行,并将所述出现Bug的代码行反馈给相关人员;若所述第一系统日志中没有包括报错记录,则调用代码扫描工具识别所述服务器的代码结构,根据所述扫描获得的代码结构查找到出现Bug的代码行;所述执行模块,还用于当所返回的请求结果与预定的数据一致时,读取所述App的第二系统日志,若所述第二系统日志中包括报错记录,从所述报错记录获取出现Bug的代码行,并将所述出现Bug的代码行反馈给相关人员;若所述第二系统日志中没有包括报错记录,则调用代码扫描工具识别所述App的的代码结构,根据所述扫描获得的代码结构查找到出现Bug的代码行;所述执行模块,还用于根据所述相关人员的输入对所述出现Bug的代码行进行修正;所述执行模块,还用于根据所述相关人员的输入编写用于测试所述修正后的代码行的测试用例;及验证模块,用于执行所述测试用例以验证修正后的代码行是否存在问题,并将测试结果反馈给所述相关人员。
本发明实施例中所述的程序错误定位方法、装置、及计算机可读存储介质,通过抓包工具抓包服务器返回的数据,查看并分析返回数据以确定Bug出现在服务器端还是电子设备。然后再详细定位到Bug的源头,并确认Bug的关联影响,从而统一解决Bug的问题。本发明可精准定位出现Bug的源头,定位效率高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例一提供的程序错误定位方法的应用环境架构图。
图2是本发明实施例二提供的程序错误定位方法的流程图。
图3是本发明实施例三提供的程序错误定位装置的结构图。
图4是本发明实施例四提供的计算机装置的示意图。
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
实施例一
参阅图1所示,为本发明实施例一提供的程序错误定位方法的应用环境架构图。
本发明的程序错误定位方法应用在一个计算机装置及一个或多个电子设备构成的环境中。例如,由计算机装置3和电子设备4构成的环境中。
本实施例中,所述计算机装置3可以为服务器或个人电脑等设备。所述电子设备4可以为手机、平板电脑、智能电视、穿戴式设备、个人电脑等设备。
在一个实施例中,所述计算机装置3与电子设备4可以通过有线(例如USB(Universal Serial Bus,通用串行总线)或无线的方式建立通讯连接。所述计算机装置3还可以与服务器5可以通过有线(例如USB(Universal Serial Bus,通用串行总线)或无线的方式建立通讯连接。所述无线方式可以是传统无线通讯的任何类型,例如无线电、无线保真(Wireless Fidelity,WIFI)、蜂窝、卫星、广播等。无线通讯技术可以包括,但不限于,全球移动通信系统(Global System for Mobile Communications,GSM)、通用分组无线业务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA),宽带码分多址(W-CDMA)、CDMA2000、IMT单载波(IMT Single Carrier)、增强型数据速率GSM演进(Enhanced Data Rates for GSM Evolution,EDGE)、长期演进技术(Long-Term Evolution,LTE)、高级长期演进技术、时分长期演进技术(Time-Division LTE,TD-LTE)、高性能无线电局域网(High Performance Radio Local Area Network,HiperLAN)、高性能无线电广域网(High Performance Radio Wide Area Network,HiperWAN)、本地多点派发业务(Local Multipoint Distribution Service,LMDS)、全微波存取全球互通(Worldwide Interoperability for Microwave Access,WiMAX)、紫蜂协议(ZigBee)、蓝牙、正交频分复用技术(Flash Orthogonal Frequency-Division Multiplexing,Flash-OFDM)、大容量空分多路存取(High Capacity Spatial Division Multiple Access,HC-SDMA)、通用移动电信系统(Universal Mobile Telecommunications System,UMTS)、通用移动电信系统时分双工(UMTS Time-Division Duplexing,UMTS-TDD)、演进式高速分组接入(Evolved High Speed Packet Access,HSPA+)、时分同步码分多址(Time DivisionSynchronous Code Division Multiple Access,TD-SCDMA)、演进数据最优化(Evolution-Data Optimized,EV-DO)、数字增强无绳通信(Digital Enhanced CordlessTelecommunications,DECT)及其他。
实施例二
图2是本发明实施例二提供的程序错误定位方法的流程图。
在本实施例中,所述程序错误定位方法可以应用于计算机装置中,对于需要进行程序错误定位的计算机装置,可以直接在计算机装置上集成本发明的方法所提供的用于程序错误定位的功能,或者以软件开发工具包(Software Development Kit,SDK)的形式运行在计算机装置上。
如图2所示,所述程序错误定位方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
步骤S1、计算机装置对电子设备的网络环境进行配置,使得所述电子设备的指定App(Application,应用程序)可以透过作为网络代理的所述计算机装置向服务器发出网络请求(即Http请求、Https请求),以及使得所述计算机装置可以利用指定的网络代理工具抓取所述App向所述服务器发出的每个网络请求。
在一个实施例中,所述对电子设备的网络环境进行配置包括将所述电子设备的网络代理的IP设定为与所述计算机装置的IP一致,从而使得所述计算机装置可以利用指定的网络代理工具例如Charles或者fiddler抓取所述电子设备的所述App向服务器发出的网络请求。
在一个实施例中,所述计算机装置可以根据用户的输入来对所述电子设备的网络环境进行配置。在其他实施例中,所述计算机装置可以首先利用预设的命令(例如IPCONFIG命令)获取所述计算机装置的IP地址,然后将所述电子设备的网络代理的IP地址设置为所获取的IP地址。
在一个实施例中,所述App可以为任何能够和使用者进行交互,具有可视的使用者介面的应用程序,例如可以为视频播放器、音频播放器、游戏等。
步骤S2、所述计算机装置控制所述电子设备执行所述App并向所述服务器发出一个指定的网络请求。所述计算机装置利用所述网络代理工具抓取所述服务器响应所述网络请求所返回的请求结果。
在一个实施例中,所述网络请求可以包括,但不限于,请求方式(包括get、post、delete、put等等)、需传回响应参数类型、请求参数和参数值,以及URI(Uniform ResourceIdentifier,统一资源标识符)地址等等。
在一个实施例中,所述App向所述服务器所发出的网络请求可以为所述App之前向所述服务器曾经发出过的一个网络请求,但是所述网络请求没有请求成功。在一个实施例中,所述网络请求没有请求成功可以定义为没有从所述服务器获取到对应请求结果。
在一个实施例中,所述服务器将所述请求结果以Json格式返回给所述App。
步骤S3、所述计算机装置将所返回的请求结果与预定的数据进行比较,以确定是否是所述服务器出现Bug。当所返回的请求结果与预定的数据不一致时,确定是所述服务器出现Bug,执行步骤S31。当所返回的请求结果与预定的数据一致时,确定所述服务器没有出现Bug,执行步骤S32。
在一个实施例中,所述计算机装置可以将所述预定的数据预先存储在所述计算机装置中。
步骤S31、所述计算机装置读取所述服务器的系统日志(为方便描述,以下称为“第一系统日志”),查询所述第一系统日志是否包括报错记录,其中,每条报错记录记录了出现Bug的代码行(即记录了是哪一行代码出现Bug)。若所述第一系统日志中包括报错记录,所述计算机装置从所述报错记录获取出现Bug的代码行,并将所述出现Bug的代码行反馈给相关人员。若所述第一系统日志中没有包括报错记录,所述计算机装置则调用代码扫描工具识别所述服务器的代码结构,根据所述扫描获得的代码结构查找到出现Bug的代码行。执行完步骤S31后执行步骤S33。
在一个实施例中,所述计算机装置可以将所扫描获得的代码结构展示给所述相关人员,从而使得所述相关人员可以根据所述扫描获得的代码结构查找到出现Bug的代码行。
在一个实施例中,所述根据所述扫描获得的代码结构查找到出现Bug的代码行包括通过web接口定位到实际应用层接口的代码,来查找到出现Bug的代码行。
本实施例中,所述相关人员可以为软件开发人员或测试人员。
步骤S32、所述计算机装置读取所述App的系统日志(为方便描述,以下称为“第二系统日志”),查询所述第二系统日志是否包括报错记录,其中,每条报错记录记录了出现Bug的代码行(即记录了是哪一行代码出现Bug)。若所述第二系统日志中包括报错记录,所述计算机装置从所述报错记录获取出现Bug的代码行,并将所述出现Bug的代码行反馈给相关人员。若所述第二系统日志中没有包括报错记录,所述计算机装置则调用代码扫描工具识别所述App的的代码结构,根据所述扫描获得的代码结构查找到出现Bug的代码行。执行完步骤S32后执行步骤S33。
在一个实施例中,所述计算机装置可以将所扫描获得的代码结构展示给所述相关人员,从而使得所述相关人员可以根据所述扫描获得的代码结构查找到出现Bug的代码行。
在一个实施例中,所述根据所述扫描获得的代码结构查找到出现Bug的代码行包括通过web接口定位到实际应用层接口的代码,来查找到出现Bug的代码行。
步骤S33、所述计算机装置根据所述相关人员的输入对上述出现Bug的代码行进行修正。
例如,假设所述App是一个购物平台,所述出现Bug的代码行为获取商品价格的代码行。具体地,在支付时所输入的商品价格与库存中商品的实际价格不一致时却能支付成功。那么所述计算机装置则可以根据所述相关人员的输入,对获取商品价格的代码行进行修正。
步骤S34、所述计算机装置根据所述相关人员的输入编写用于测试上述修正后的代码行的第一测试用例。所述计算机装置查找是否存在其他代码行调用了上述出现Bug的代码行。其中,当还存在其他代码行调用了上述出现Bug的代码行时,所述计算机装置还根据所述相关人员的输入编写用于测试该其他代码行的第二测试用例。
仍然假设所述App是一个购物平台,所述出现Bug的代码行为获取商品价格的代码行。具体地,在支付时所输入的商品价格与库存中商品的实际价格不一致时却能支付成功。则所述计算机装置根据所述相关人员的输入设计一个测试用例,该测试用例可以为例如支付时输入价格为空并进行支付(即支付时所输入的商品价格与库存中商品的实际价格不一致)以查看是否能够支付成功,从而测试修正后的代码行。
步骤S35、所述计算机装置执行所述第一测试用例以验证修正后的代码行是否存在问题,以及执行所述第二测试用例以验证所述其他代码行是否存在问题,并将测试结果反馈给所述相关人员。
仍然以上述例举的测试用例为例,假设所述测试用例为支付时输入价格为空。若仍然能支付成功,则表示修正后的所述获取商品价格的代码行仍然存在问题,并提示相关人员测试结果。若不能支付成功,且提示了所输入价格与商品实际价格不一致则表示修正后的所述获取商品价格的代码行不存在问题。
综上所述,本发明实施例中所述的程序错误定位方法,通过抓包工具抓包服务器返回的数据,查看并分析返回数据以确定Bug出现在服务器端还是电子设备。然后再详细定位到Bug的源头,并确认Bug的关联影响,从而统一解决Bug的问题。本发明可精准定位出现Bug的源头,定位效率高。
上述图2详细介绍了本发明的程序错误定位方法,下面结合第3~4图,对实现所述程序错误定位方法的软件装置的功能模块以及实现所述程序错误定位方法的硬件装置架构进行介绍。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
实施例三
参阅图3所示,是本发明实施例三提供的程序错误定位装置的结构图。
在一些实施例中,所述程序错误定位装置30运行于计算机装置中。所述计算机装置通过网络连接了电子设备。所述程序错误定位装置30可以包括多个由程序代码段所组成的功能模块。所述程序错误定位装置30中的各个程序段的程序代码可以存储于计算机装置的存储器中,并由所述至少一个处理器所执行,以实现(详见图2描述)程序错误定位。
本实施例中,所述程序错误定位装置30根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:设置模块301、执行模块302、验证模块303。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
设置模块301对电子设备的网络环境进行配置,使得所述电子设备的指定App(Application,应用程序)可以透过作为网络代理的所述计算机装置向服务器发出网络请求(即Http请求、Https请求),以及使得所述执行模块302可以利用指定的网络代理工具抓取所述App向所述服务器发出的每个网络请求。
在一个实施例中,所述对电子设备的网络环境进行配置包括将所述电子设备的网络代理的IP设定为与所述计算机装置的IP一致,从而使得所述执行模块302可以利用指定的网络代理工具例如Charles或者fiddler抓取所述电子设备的所述App向服务器发出的网络请求。
在一个实施例中,所述设置模块301可以根据用户的输入来对所述电子设备的网络环境进行配置。在其他实施例中,所述设置模块301可以首先利用预设的命令(例如IPCONFIG命令)获取所述计算机装置的IP地址,然后将所述电子设备的网络代理的IP地址设置为所获取的IP地址。
在一个实施例中,所述App可以为任何能够和使用者进行交互,具有可视的使用者介面的应用程序,例如可以为视频播放器、音频播放器、游戏等。
所述执行模块302控制所述电子设备执行所述App并向所述服务器发出一个指定的网络请求。所述执行模块302利用所述网络代理工具抓取所述服务器响应所述网络请求所返回的请求结果。
在一个实施例中,所述网络请求可以包括,但不限于,请求方式(包括get、post、delete、put等等)、需传回响应参数类型、请求参数和参数值,以及URI(Uniform ResourceIdentifier,统一资源标识符)地址等等。
在一个实施例中,所述App向所述服务器所发出的网络请求可以为所述App之前向所述服务器曾经发出过的一个网络请求,但是所述网络请求没有请求成功。在一个实施例中,所述网络请求没有请求成功可以定义为所述App没有从所述服务器获取到对应请求结果。
在一个实施例中,所述服务器将所述请求结果以Json格式返回给所述App。
所述执行模块302将所返回的请求结果与预定的数据进行比较,以确定是否是所述服务器出现Bug。当所返回的请求结果与预定的数据不一致时,确定是所述服务器出现Bug。当所返回的请求结果与预定的数据一致时,确定所述服务器没有出现Bug。
在一个实施例中,所述执行模块302可以将所述预定的数据预先存储在所述计算机装置中。
当所返回的请求结果与预定的数据不一致时,所述执行模块302读取所述服务器的系统日志(为方便描述,以下称为“第一系统日志”),查询所述第一系统日志是否包括报错记录,其中,每条报错记录记录了出现Bug的代码行(即记录了是哪一行代码出现Bug)。若所述第一系统日志中包括报错记录,所述执行模块302从所述报错记录获取出现Bug的代码行,并将所述出现Bug的代码行反馈给相关人员。若所述第一系统日志中没有包括报错记录,所述执行模块302则调用代码扫描工具识别所述服务器的代码结构,根据所述扫描获得的代码结构查找到出现Bug的代码行。
在一个实施例中,所述执行模块302可以将所扫描获得的代码结构展示给所述相关人员,从而使得所述相关人员可以根据所述扫描获得的代码结构查找到出现Bug的代码行。
在一个实施例中,所述根据所述扫描获得的代码结构查找到出现Bug的代码行包括通过web接口定位到实际应用层接口的代码,来查找到出现Bug的代码行。
本实施例中,所述相关人员可以为软件开发人员或测试人员。
当所返回的请求结果与预定的数据一致时,所述执行模块302读取所述App的系统日志(为方便描述,以下称为“第二系统日志”),查询所述第二系统日志是否包括报错记录,其中,每条报错记录记录了出现Bug的代码行(即记录了是哪一行代码出现Bug)。若所述第二系统日志中包括报错记录,所述执行模块302从所述报错记录获取出现Bug的代码行,并将所述出现Bug的代码行反馈给相关人员。若所述第二系统日志中没有包括报错记录,所述执行模块302则调用代码扫描工具识别所述App的的代码结构,根据所述扫描获得的代码结构查找到出现Bug的代码行。在一个实施例中,所述执行模块302可以将所扫描获得的代码结构展示给所述相关人员,从而使得所述相关人员可以根据所述扫描获得的代码结构查找到出现Bug的代码行。
在一个实施例中,所述根据所述扫描获得的代码结构查找到出现Bug的代码行包括通过web接口定位到实际应用层接口的代码,来查找到出现Bug的代码行。
所述执行模块302根据所述相关人员的输入对上述出现Bug的代码行进行修正。
例如,假设所述App是一个购物平台,所述出现Bug的代码行为获取商品价格的代码行。具体地,在支付时所输入的商品价格与库存中商品的实际价格不一致时却能支付成功。那么所述执行模块302则可以根据所述相关人员的输入,对获取商品价格的代码行进行修正。
所述执行模块302根据所述相关人员的输入编写用于测试上述修正后的代码行的第一测试用例。所述执行模块302查找是否存在其他代码行调用了上述出现Bug的代码行。其中,当还存在其他代码行调用了上述出现Bug的代码行时,所述执行模块302还根据所述相关人员的输入编写用于测试该其他代码行的第二测试用例。
仍然假设所述App是一个购物平台,所述出现Bug的代码行为获取商品价格的代码行。具体地,在支付时所输入的商品价格与库存中商品的实际价格不一致时却能支付成功。则所述执行模块302根据所述相关人员的输入设计一个测试用例,该测试用例可以为例如支付时输入价格为空并进行支付(即支付时所输入的商品价格与库存中商品的实际价格不一致)以查看是否能够支付成功,从而测试修正后的代码行。
验证模块303执行所述第一测试用例以验证修正后的代码行是否存在问题以及所述其他代码行是否存在问题,并将测试结果反馈给所述相关人员。
仍然以上述例举的测试用例为例,假设所述测试用例为支付时输入价格为空。若仍然能支付成功,则表示修正后的所述获取商品价格的代码行仍然存在问题,并提示相关人员测试结果。若不能支付成功,且提示了所输入价格与商品实际价格不一致则表示修正后的所述获取商品价格的代码行不存在问题。
综上所述,本发明实施例中所述的程序错误定位装置,通过抓包工具抓包服务器返回的数据,查看并分析返回数据以确定Bug出现在服务器端还是电子设备。然后再详细定位到Bug的源头,并确认Bug的关联影响,从而统一解决Bug的问题。本发明可精准定位出现Bug的源头,定位效率高。
实施例四
参阅图4所示,为本发明实施例四提供的计算机装置的结构示意图。在本发明较佳实施例中,所述计算机装置3包括存储器31、至少一个处理器32、至少一条通信总线33。所述计算机装置3通过有线或者无线的方式分别与电子设备4和服务器5建立通讯连接。
本领域技术人员应该了解,图4示出的计算机装置3的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述计算机装置3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。
在一些实施例中,所述计算机装置3包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的终端,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。
需要说明的是,所述计算机装置3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在一些实施例中,所述存储器31用于存储程序代码和各种数据,例如安装在所述计算机装置3中的程序错误定位装置30,并在计算机装置3的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器31包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-OnlyMemory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
在一些实施例中,所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器32是所述计算机装置3的控制核心(Control Unit),利用各种接口和线路连接整个计算机装置3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行计算机装置3的各种功能和处理数据,例如执行程序错误定位的功能。
在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。
尽管未示出,所述计算机装置3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述计算机装置3还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是服务器、个人电脑等)或处理器(processor)执行本发明各个实施例所述方法的部分。
在进一步的实施例中,结合图3,所述至少一个处理器32可执行所述计算机装置3的操作装置以及安装的各类应用程序(如所述的程序错误定位装置30)、程序代码等,例如,上述的各个模块。
所述存储器31中存储有程序代码,且所述至少一个处理器32可调用所述存储器31中存储的程序代码以执行相关的功能。例如,图3中所述的各个模块是存储在所述存储器31中的程序代码,并由所述至少一个处理器32所执行,从而实现所述各个模块的功能以达到对电子设备4的应用程序41或者服务器5进行程序错误定位的目的。
在本发明的一个实施例中,所述存储器31存储多个指令,所述多个指令被所述至少一个处理器32所执行以实现对电子设备4的应用程序41或者服务器5进行程序错误定位。
具体地,所述至少一个处理器32对上述指令的具体实现方法可参考图2对应实施例中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种程序错误定位方法,其特征在于,所述方法包括:
对电子设备的网络环境进行配置;
控制所述电子设备执行指定的App并向服务器发出一个指定的网络请求;
利用指定的网络代理工具抓取所述服务器响应所述网络请求所返回的请求结果;
确定所返回的请求结果与预定的数据是否一致;
当所返回的请求结果与预定的数据不一致时,读取所述服务器的第一系统日志,若所述第一系统日志中包括报错记录,从所述报错记录获取出现Bug的代码行,并将所述出现Bug的代码行反馈给相关人员;若所述第一系统日志中没有包括报错记录,则调用代码扫描工具识别所述服务器的代码结构,根据所述扫描获得的代码结构查找到出现Bug的代码行;
当所返回的请求结果与预定的数据一致时,读取所述App的第二系统日志,若所述第二系统日志中包括报错记录,从所述报错记录获取出现Bug的代码行,并将所述出现Bug的代码行反馈给相关人员;若所述第二系统日志中没有包括报错记录,则调用代码扫描工具识别所述App的的代码结构,根据所述扫描获得的代码结构查找到出现Bug的代码行;
根据所述相关人员的输入对所述出现Bug的代码行进行修正;
根据所述相关人员的输入编写用于测试所述修正后的代码行的测试用例;及
执行所述测试用例以验证修正后的代码行是否存在问题,并将测试结果反馈给所述相关人员。
2.如权利要求1所述的程序错误定位方法,其特征在于,所述对电子设备的网络环境进行配置包括将所述电子设备的网络代理的IP设定为与所述计算机装置的IP一致。
3.如权利要求2所述的程序错误定位方法,其特征在于,所述App向所述服务器所发出的网络请求为所述App之前向所述服务器曾经发出过的一个网络请求,但是所述网络请求没有请求成功,所述网络请求没有请求成功可以定义为所述App没有从所述服务器获取到对应请求结果。
4.如权利要求1所述的程序错误定位方法,其特征在于,所述确定所返回的请求结果与预定的数据是否一致包括:
当所返回的请求结果与预定的数据不一致时,确定是所述服务器出现Bug;及
当所返回的请求结果与预定的数据一致时,确定所述服务器没有出现Bug。
5.如权利要求1所述的程序错误定位方法,其特征在于,所述根据所述扫描获得的代码结构查找到出现Bug的代码行包括:
通过web接口定位到实际应用层接口的代码查找出现Bug的代码行。
6.如权利要求1所述的程序错误定位方法,其特征在于,该方法在根据所述相关人员的输入对所述出现Bug的代码行进行修正后还包括:
确定是否存在其他代码行调用了所述出现Bug的代码行;及
当还存在其他代码行调用了所述出现Bug的代码行时,根据所述相关人员的输入编写用于测试所述其他代码行的测试用例。
7.如权利要求6所述的程序错误定位方法,其特征在于,该方法还包括步骤:
执行所述用于测试所述其他代码行的测试用例以验证所述其他代码行是否存在问题,并将测试结果反馈给所述相关人员。
8.一种计算机装置,其特征在于,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至7中任意一项所述的程序错误定位方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的程序错误定位方法。
10.一种程序错误定位装置,其特征在于,所述装置包括:
设置模块,用于对电子设备的网络环境进行配置;
执行模块,用于控制所述电子设备执行指定的App并向服务器发出一个指定的网络请求;
所述执行模块,还用于利用指定的网络代理工具抓取所述服务器响应所述网络请求所返回的请求结果;
所述执行模块,还用于确定所返回的请求结果与预定的数据是否一致;
所述执行模块,还用于当所返回的请求结果与预定的数据不一致时,读取所述服务器的第一系统日志,若所述第一系统日志中包括报错记录,从所述报错记录获取出现Bug的代码行,并将所述出现Bug的代码行反馈给相关人员;若所述第一系统日志中没有包括报错记录,则调用代码扫描工具识别所述服务器的代码结构,根据所述扫描获得的代码结构查找到出现Bug的代码行;
所述执行模块,还用于当所返回的请求结果与预定的数据一致时,读取所述App的第二系统日志,若所述第二系统日志中包括报错记录,从所述报错记录获取出现Bug的代码行,并将所述出现Bug的代码行反馈给相关人员;若所述第二系统日志中没有包括报错记录,则调用代码扫描工具识别所述App的的代码结构,根据所述扫描获得的代码结构查找到出现Bug的代码行;
所述执行模块,还用于根据所述相关人员的输入对所述出现Bug的代码行进行修正;
所述执行模块,还用于根据所述相关人员的输入编写用于测试所述修正后的代码行的测试用例;及
验证模块,用于执行所述测试用例以验证修正后的代码行是否存在问题,并将测试结果反馈给所述相关人员。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811152607.6A CN109144884A (zh) | 2018-09-29 | 2018-09-29 | 程序错误定位方法、装置、及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811152607.6A CN109144884A (zh) | 2018-09-29 | 2018-09-29 | 程序错误定位方法、装置、及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109144884A true CN109144884A (zh) | 2019-01-04 |
Family
ID=64814057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811152607.6A Pending CN109144884A (zh) | 2018-09-29 | 2018-09-29 | 程序错误定位方法、装置、及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144884A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110225543A (zh) * | 2019-05-30 | 2019-09-10 | 上海交通大学 | 基于网络请求数据的移动端软件质量态势感知系统及方法 |
CN113206755A (zh) * | 2021-04-20 | 2021-08-03 | 北京异乡旅行网络科技有限公司 | 用于问题定位的方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765689A (zh) * | 2015-04-20 | 2015-07-08 | 广州华多网络科技有限公司 | 一种接口性能数据实时监制方法和装置 |
CN105978723A (zh) * | 2016-05-11 | 2016-09-28 | 广州唯品会信息科技有限公司 | 网络信息管理方法及装置 |
US20160314061A1 (en) * | 2015-04-27 | 2016-10-27 | Michael Spengler | Software Defect Detection Identifying Location of Diverging Paths |
CN106294176A (zh) * | 2016-08-19 | 2017-01-04 | 暴风集团股份有限公司 | Mac OS系统中应用程序故障定位的方法及系统 |
CN106502907A (zh) * | 2016-10-28 | 2017-03-15 | 中国科学院软件研究所 | 一种基于执行轨迹追踪的分布式软件异常诊断方法 |
CN106528419A (zh) * | 2016-11-07 | 2017-03-22 | 合网络技术(北京)有限公司 | 一种业务系统的测试方法及装置 |
CN107643956A (zh) * | 2017-08-22 | 2018-01-30 | 北京京东尚科信息技术有限公司 | 定位异常数据的异常起源的方法和装置 |
CN107678869A (zh) * | 2017-07-26 | 2018-02-09 | 上海壹账通金融科技有限公司 | 客户端异常定位方法、装置、计算机设备和存储介质 |
-
2018
- 2018-09-29 CN CN201811152607.6A patent/CN109144884A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765689A (zh) * | 2015-04-20 | 2015-07-08 | 广州华多网络科技有限公司 | 一种接口性能数据实时监制方法和装置 |
US20160314061A1 (en) * | 2015-04-27 | 2016-10-27 | Michael Spengler | Software Defect Detection Identifying Location of Diverging Paths |
CN105978723A (zh) * | 2016-05-11 | 2016-09-28 | 广州唯品会信息科技有限公司 | 网络信息管理方法及装置 |
CN106294176A (zh) * | 2016-08-19 | 2017-01-04 | 暴风集团股份有限公司 | Mac OS系统中应用程序故障定位的方法及系统 |
CN106502907A (zh) * | 2016-10-28 | 2017-03-15 | 中国科学院软件研究所 | 一种基于执行轨迹追踪的分布式软件异常诊断方法 |
CN106528419A (zh) * | 2016-11-07 | 2017-03-22 | 合网络技术(北京)有限公司 | 一种业务系统的测试方法及装置 |
CN107678869A (zh) * | 2017-07-26 | 2018-02-09 | 上海壹账通金融科技有限公司 | 客户端异常定位方法、装置、计算机设备和存储介质 |
CN107643956A (zh) * | 2017-08-22 | 2018-01-30 | 北京京东尚科信息技术有限公司 | 定位异常数据的异常起源的方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110225543A (zh) * | 2019-05-30 | 2019-09-10 | 上海交通大学 | 基于网络请求数据的移动端软件质量态势感知系统及方法 |
CN113206755A (zh) * | 2021-04-20 | 2021-08-03 | 北京异乡旅行网络科技有限公司 | 用于问题定位的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108614726B (zh) | 虚拟机创建方法及装置 | |
CN106302008A (zh) | 数据更新方法和装置 | |
CN112162753B (zh) | 软件部署方法、装置、计算机设备和存储介质 | |
CN109697153A (zh) | 监控方法、监控系统及计算机可读存储介质 | |
CN106484509A (zh) | 一种弹窗的输出方法、装置及终端 | |
CN109885624A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN105915657B (zh) | 数据的同步方法、装置及客户端 | |
US10210079B2 (en) | Touch free disaster recovery | |
CN112565317B (zh) | 混合云系统及其数据处理方法、设备及存储介质 | |
CN109656572A (zh) | 安装包的打包方法及装置、计算机设备、存储介质 | |
CN109902028A (zh) | Acl特性的自动化测试方法、装置、设备及存储介质 | |
CN107733710A (zh) | 链路调用关系的构建方法、装置、计算机设备及存储介质 | |
CN109144884A (zh) | 程序错误定位方法、装置、及计算机可读存储介质 | |
CN109814957A (zh) | 一种用于ios系统的标签添加方法和装置 | |
CN106294037A (zh) | 拷机测试方法及装置 | |
CN109634630A (zh) | 应用程序更新方法、装置、电子设备及存储介质 | |
US9053084B1 (en) | Self-service testing | |
CN107526636B (zh) | 资源识别方法及装置 | |
CN112448833B (zh) | 一种多管理域的通信方法和装置 | |
CN107704362A (zh) | 一种基于Ambari监控大数据组件的方法及装置 | |
CN110096409A (zh) | 异常报警方法、装置、监控装置及计算机可读存储介质 | |
KR20140046895A (ko) | 사업전략 기반 단계별 매트릭스 우선순위화와 매트릭스간 연계를 통한 시나리오 식별과 적기 변화관리 구현을 위한 기술기획 자동화 시스템 및 그 방법 | |
CN111736807B (zh) | 租户功能定制方法、装置及基于租户的办公系统 | |
CN113301089B (zh) | 一种云服务节点部署方法和装置 | |
CN109885779A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190104 |
|
RJ01 | Rejection of invention patent application after publication |