(12)发明专利申请
(10)申请公布号 CN 109213675 A(43)申请公布日 2019.01.15
(21)申请号 201810539004.5(22)申请日 2018.05.30(30)优先权数据
15/1,823 2017.07.05 US(71)申请人 瞻博网络公司
地址 美国加利福尼亚州
(72)发明人 V·K·古普塔 R·贾恩
M·塔尔拉普拉加达 (74)专利代理机构 北京市金杜律师事务所
11256
代理人 张维 李峥宇(51)Int.Cl.
G06F 11/36(2006.01)
权利要求书3页 说明书19页 附图16页
(54)发明名称
软件分析平台(57)摘要
一种设备可以接收与在设备上执行的软件程序相关联的信息,并且可以基于与软件程序相关联的信息来生成事件记录。设备可以标识与事件记录相关联的模式信息,并且可以对事件记录和模式信息执行数据分析,以标识与软件程序相关联的一个或多个缺陷,以及确定软件程序的预期行为。设备可以基于与软件程序相关联的一个或多个缺陷以及软件程序的预期行为来生成一个或多个报告,并且可以提供一个或多个报告。
CN 109213675 ACN 109213675 A
权 利 要 求 书
1/3页
1.一种设备,包括:
用于接收与在另一设备上执行的软件程序相关联的信息的装置;
用于基于与所述软件程序相关联的所述信息来生成事件记录的装置;用于标识与所述事件记录相关联的模式信息的装置;用于对所述事件记录和所述模式信息执行数据分析,以标识与所述软件程序相关联的一个或多个缺陷以及确定所述软件程序的预期行为的装置;
用于基于与所述软件程序相关联的所述一个或多个缺陷以及所述软件程序的所述预期行为来生成一个或多个报告的装置;以及
用于提供所述一个或多个报告的装置。2.根据权利要求1所述的设备,还包括:
用于确定用于解决与所述软件程序相关联的所述一个或多个缺陷的一个或多个推荐的装置;以及
用于在所述一个或多个报告中提供指示所述一个或多个推荐的信息的装置。3.根据权利要求1所述的设备,还包括:
用于确定用于解决与所述软件程序相关联的所述一个或多个缺陷的一个或多个校正的装置;以及
用于使得所述另一设备在所述软件程序中实现所述一个或多个校正的装置。4.根据权利要求1所述的设备,还包括:
用于确定与所述另一设备相关联的平台的装置;用于选择与所述平台兼容的协议的装置;以及
用于经由所述协议与所述另一设备协商将要由所述另一设备提供的所述软件程序的属性的装置。
5.根据权利要求4所述的设备,其中用于接收与所述软件程序相关联的所述信息的装置包括:
用于基于协商所述软件程序的所述属性而从所述另一设备接收与所述软件程序相关联的所述信息的装置,
所述软件程序的所述属性对应于与所述软件程序相关联的所述信息。6.根据权利要求1所述的设备,还包括:
用于接收第一格式的与所述软件程序相关联的所述信息的装置;以及
用于将与所述软件程序相关联的所述信息从所述第一格式转换为与所述第一格式不同的第二格式的装置。
7.根据权利要求1所述的设备,其中所述数据分析包括以下中的一个或多个:机器学习技术,人工智能技术,数据挖掘技术,建模技术,或者神经网络技术。
8.一种存储指令的非暂时性计算机可读介质,所述指令包括:一个或多个指令,所述一个或多个指令在由一个或多个处理器执行时使得所述一个或
2
CN 109213675 A
权 利 要 求 书
2/3页
多个处理器:
接收与在设备上执行的软件程序相关联的信息;
基于与所述软件程序相关联的所述信息来生成事件记录;标识与所述事件记录相关联的模式信息;
对所述事件记录和所述模式信息执行数据分析,以标识与所述软件程序相关联的一个或多个缺陷以及确定所述软件程序的预期行为;
基于与所述软件程序相关联的所述一个或多个缺陷以及所述软件程序的所述预期行为来生成一个或多个报告;以及
提供所述一个或多个报告。
9.根据权利要求8所述的非暂时性计算机可读介质,其中所述指令还包括:一个或多个指令,所述一个或多个指令在由所述一个或多个处理器执行时,使得所述一个或多个处理器:
确定用于解决与所述软件程序相关联的所述一个或多个缺陷的一个或多个推荐;以及在所述一个或多个报告中提供指示所述一个或多个推荐的信息。10.根据权利要求8所述的非暂时性计算机可读介质,其中所述指令还包括:一个或多个指令,所述一个或多个指令在由所述一个或多个处理器执行时,使得所述一个或多个处理器:
确定用于解决与所述软件程序相关联的所述一个或多个缺陷的一个或多个校正;以及使得所述设备在所述软件程序中实现所述一个或多个校正。11.根据权利要求8所述的非暂时性计算机可读介质,其中所述指令还包括:一个或多个指令,所述一个或多个指令在由所述一个或多个处理器执行时,使得所述一个或多个处理器:
确定与所述设备相关联的平台;选择与所述平台兼容的协议;以及
经由所述协议与所述设备协商要由所述另一设备提供的所述软件程序的属性。12.根据权利要求11所述的非暂时性计算机可读介质,其中所述指令还包括:一个或多个指令,所述一个或多个指令在由所述一个或多个处理器执行时,使得所述一个或多个处理器:
基于协商所述软件程序的所述属性,从所述设备接收与所述软件程序相关联的所述信息,
所述软件程序的所述属性对应于与所述软件程序相关联的所述信息。13.根据权利要求8所述的非暂时性计算机可读介质,其中所述指令还包括:一个或多个指令,所述一个或多个指令在由所述一个或多个处理器执行时,使得所述一个或多个处理器:
接收第一格式的与所述软件程序相关联的所述信息;以及
将与所述软件程序相关联的所述信息从所述第一格式转换为与所述第一格式不同的第二格式。
14.根据权利要求8所述的非暂时性计算机可读介质,其中所述数据分析包括以下中的一个或多个:
3
CN 109213675 A
权 利 要 求 书
3/3页
机器学习技术,人工智能技术,数据挖掘技术,建模技术,或者神经网络技术。15.一种方法,包括:
由设备接收与在另一设备上执行的软件程序相关联的信息;
由所述设备基于与所述软件程序相关联的所述信息来生成事件记录;由所述设备标识与所述事件记录相关联的模式信息;
由所述设备对所述事件记录和所述模式信息执行数据分析,以标识与所述软件程序相关联的一个或多个缺陷以及确定所述软件程序的预期行为;
由所述设备基于与所述软件程序相关联的所述一个或多个缺陷以及所述软件程序的所述预期行为来生成一个或多个报告;以及
由所述设备提供所述一个或多个报告。16.根据权利要求15所述的方法,还包括:
确定用于解决与所述软件程序相关联的所述一个或多个缺陷的一个或多个推荐;以及在所述一个或多个报告中提供指示所述一个或多个推荐的信息。17.根据权利要求15所述的方法,还包括:
确定用于解决与所述软件程序相关联的所述一个或多个缺陷的一个或多个校正;以及使得所述另一设备在所述软件程序中实现所述一个或多个校正。18.根据权利要求15所述的方法,还包括:确定与所述另一设备相关联的平台;选择与所述平台兼容的协议;以及
经由所述协议与所述另一设备协商要由所述另一设备提供的所述软件程序的属性。19.根据权利要求18所述的方法,其中接收与所述软件程序相关联的所述信息包括:基于协商所述软件程序的所述属性,从所述另一设备接收与所述软件程序相关联的所述信息,
所述软件程序的所述属性对应于与所述软件程序相关联的所述信息。20.根据权利要求15所述的方法,还包括:
接收第一格式的与所述软件程序相关联的所述信息;以及
将与所述软件程序相关联的所述信息从所述第一格式转换为与所述第一格式不同的第二格式。
4
CN 109213675 A
说 明 书软件分析平台
1/19页
背景技术
[0001]随着面向软件的解决方案的推进,软件编程正确性、缺陷标识和解析时间需要缩短。因为硬件正在成为商品,并且作为商用现货(COTS)硬件或者开放硬件而可得到,因而软件程序质量对于赢得和保留客户是重要的。基于规模和部署,在做出很少改变或者不做改变的情况下,软件程序现在需要运行在许多平台(例如,Windows、UNIX、Linux、网络设备平台、其他硬件平台、虚拟平台等等)上,并且现在对错误或者缺陷更加灵敏。另外,软件程序部署在第三方经由可编程接口而可访问的虚拟环境中。
发明内容
[0002]根据一些可能的实现,一种设备可以包括一个或多个处理器,其用于:接收与在另一设备上执行的软件程序相关联的信息;基于与软件程序相关联的信息来生成事件记录;标识与事件记录相关联的模式信息;对事件记录和模式信息执行数据分析,以标识与软件程序相关联的一个或多个缺陷以及确定软件程序的预期行为(expected behavior);基于与软件程序相关联的一个或多个缺陷以及软件程序的预期行为来生成一个或多个报告;以及提供一个或多个报告。
[0003]根据一些可能的实现,一种非暂时性计算机可读介质可以存储一个或多个指令,其在由一个或多个处理器执行时使得一个或多个处理器:接收与在设备上执行的软件程序相关联的信息;基于与软件程序相关联的信息来生成事件记录;标识与事件记录相关联的模式信息;对事件记录和模式信息执行数据分析,以标识与软件程序相关联的一个或多个缺陷以及确定软件程序的预期行为;基于与软件程序相关联的一个或多个缺陷以及软件程序的预期行为来生成一个或多个报告;以及提供一个或多个报告。[0004]根据一些可能的实现,一种方法可以包括:由设备接收与在另一设备上执行的软件程序相关联的信息;由该设备基于与软件程序相关联的信息来生成事件记录;由该设备标识与事件记录相关联的模式信息;由该设备对事件记录和模式信息执行数据分析,以标识与软件程序相关联的一个或多个缺陷以及确定软件程序的预期行为;由该设备基于与软件程序相关联的一个或多个缺陷以及软件程序的预期行为来生成一个或多个报告;以及由该设备提供一个或多个报告。
附图说明
[0005]图1A和图1B是本文描述的示例实现的概述的示图;
[0006]图2是本文描述的系统和/或方法可以在其中实现的示例环境的示图;[0007]图3是图2的一个或多个设备的示例组件的示图;
[0008]图4是用于标识软件程序中的缺陷和软件程序的预期行为的示例过程的流程图;[0009]图5A-图5E是用于标识软件程序中的缺陷和软件程序的预期行为的示例实现的示图;
[0010]图6是用于协商与待分析的软件程序相关联的信息的检索(retrieval)的示例过
5
CN 109213675 A
说 明 书
2/19页
程的流程图;以及
[0011]图7A-图7E是用于协商与待分析的软件程序相关联的信息的检索的示例实现的示图。
具体实施方式
[0012]示例实现的以下详细描述参考附图。不同附图中的相同参考标号可以标识相同或者相似的元件。
[0013]软件程序的预期行为是非常主观的,并且确定预期行为所需的信息经常不易得到。开发者通常使用调试和错误日志来标识、隔离和解决在软件程序的测试期间或者在软件程序的实际使用期间报告的软件程序缺陷。然而,开发者使用的技术不能确定软件程序的预期行为。
[0014]本文描述的一些实现可以提供自动化软件分析平台,其使用调试和错误日志来确定软件程序的预期行为。例如,软件分析平台可以使用调试和错误日志来标识软件程序中的缺陷,并且记录软件程序的预期行为中的改变。在一些实现中,软件分析平台可以生成事件记录和日志模式,并且可以对事件记录和日志模式执行数据分析。在一些实现中,软件分析平台可以基于对事件记录和日志模式的数据分析来标识软件程序的预期行为的特性。[0015]在一些实现中,软件分析平台可以验证软件程序的配置(例如,确定软件程序是否满足基于要实现软件程序的平台和/或拓扑的要求)。在一些实现中,软件分析平台可以分析针对编程错误和/或行为改变的软件程序改变(例如,可以接收并且注释一些软件程序改变,以辅助软件程序的正确性和/或预期行为的分析)。在一些实现中,软件分析平台可以基于与软件程序的先前发布的调试和错误日志的比较,来分析调试和错误日志中的非预期行为、事件信息、错误等等。在一些实现中,软件分析平台可以使用如下来分析软件程序:调试和错误日志(例如,其包括错误、资源中断信息、接口和输入/输出(I/O)信息等等)、系统日志(例如,其用于监测系统,诸如网络中的交换机或者服务器)、来自网络监测系统的信息、来自网络供应系统的信息等等。[0016]在一些实现中,软件分析平台可以提供集中式日志记录平台,其与远程设备交互,并且协商远程设备(例如,网络设备、计算设备、存储设备等等)的日志记录能力。在一些实现中,软件分析平台可以由在线数据分析系统、离线数据分析系统等等来使用。在一些实现中,软件分析平台可以提供开放日志记录框架、数据收集框架、监测和校正框架等等。在一些实现中,软件分析平台可以使用一个或多个方法(例如,基于类型长度值(TLV)的方法),来与一个或多个计算设备协商和交换日志记录能力,并且可以将从一个或多个计算设备接收的数据和错误日志转换为可以被数据分析技术更加容易地使用的结构化信息。[0017]图1A和图1B是本文描述的示例实现100的概述的示图。如图所示,示例实现100可以包括软件分析平台、第一平台类型(例如,Windows平台)计算设备、第二平台类型(例如,网络平台)计算设备和第三平台类型(例如,UNIX平台)计算设备。[0018]如图1A所示,软件分析平台可以确定第一平台类型计算设备与第一协议相关联。因此,软件分析平台可以使用第一协议来执行与第一平台类型计算设备的属性协商。属性可以包括与第一平台类型计算设备正在执行的软件程序相关联的信息(例如,数据和错误日志)。基于属性协商,软件分析平台可以从第一平台类型计算设备获得第一属性集合。
6
CN 109213675 A[0019]
说 明 书
3/19页
如图1A进一步所示,软件分析平台可以确定第二平台类型计算设备与第二协议相
关联。因此,软件分析平台可以使用第二协议来执行与第二平台类型计算设备的属性协商。属性可以包括与第二平台类型计算设备正在执行的软件程序相关联的信息(例如,数据和错误日志)。基于属性协商,软件分析平台可以从第二平台类型计算设备获得第二属性集合。[0020]另外,如图1A所示,软件分析平台可以确定第三平台类型计算设备与第三协议相关联。因此,软件分析平台可以使用第三协议来执行与第三平台类型计算设备的属性协商。属性可以包括与第三平台类型计算设备正在执行的软件程序相关联的信息(例如,数据和错误日志)。基于属性协商,软件分析平台可以从第三平台类型计算设备获得第三属性集合。在一些实现中,软件分析平台可以将第一属性集合、第二属性集合和/或第三属性集合转换为可以由数据分析技术更加容易使用的格式(例如,结构化属性)。[0021]如图1B所示,软件分析平台可以包括数据收集元件、数据提取元件和数据分析元件。软件分析平台的数据收集元件可以从计算设备接收第一属性集合、第二属性集合和/或第三属性集合,并且可以存储接收到的信息。软件分析平台的数据提取元件可以从第一属性集合、第二属性集合和/或第三属性集合提取特定数据,举例而言,诸如可以用于数据分析的数据。软件分析平台的数据分析元件可以对特定数据执行数据分析。如图1B进一步所示,软件分析平台可以基于对特定数据执行数据分析,来确定(例如,与计算设备执行的软件程序相关联的)自动回复信息、缺陷发现信息、预期行为信息等等。[0022]以这种方式,软件分析平台可以使用调试和错误日志来确定软件程序的预期行为。这样的布置可以使得设备(例如,软件分析平台)能够执行当前系统不能执行的功能(例如,确定软件程序的预期行为)。另外,软件分析平台保存与计算设备、使用计算设备的网络等相关联的资源,否则这些资源将被用于确定软件程序中的漏洞(bug)和/或错误。[0023]如上文所述,图1A和图1B仅作为示例提供。其他示例是可能的,并且可以与关于图1A和图1B所描述的不同。
[0024]图2是其中可以实现本文描述的系统和/或方法的示例环境200的示图。如图2所示,环境200可以包括软件分析平台210、多个计算设备220和网络230。环境200的设备可以经由有线连接、无线连接或者有线连接和无线连接的组合而互连。[0025]软件分析平台210包括能够接收、生成、存储、处理和/或提供信息(诸如本文描述的信息)的一个或多个设备。例如,软件分析平台210可以包括计算设备,诸如服务器设备或者服务器设备组。在一些实现中,软件分析平台210可以从计算设备220接收信息和/或向计算设备220发射信息。[0026]在一些实现中,软件分析平台210可以被设计为模块,以使得某些软件组件可以取决于特定需要而被换入或者换出。由此,软件分析平台210可以为了不同的使用而容易和/或快速地重新配置。
[0027]在一些实现中,如所示的,软件分析平台210可以在云计算环境212中托管。需要注意,虽然本文描述的实现描述了软件分析平台210在云计算环境212中托管,但是在一些实现中,软件分析平台210可以不是基于云的(即,可以在云计算环境的外部实现)或者可以是部分基于云的。
[0028]云计算环境212包括托管软件分析平台210的环境。云计算环境212可以提供计算、
7
CN 109213675 A
说 明 书
4/19页
软件、数据访问、存储等服务,其不需要最终用户(例如,用户设备220)知道托管软件分析平台210的(一个或多个)系统和/或(一个或多个)设备的物理位置和配置。如所示的,云计算环境212可以包括计算资源214的组(统称为“多个计算资源214”并且单独称为“计算资源214”)。
[0029]计算资源214包括一个或多个个人计算机、工作站计算机、服务器设备或者其他类型的计算和/或通信设备。在一些实现中,计算资源214可以托管软件分析平台210。云资源可以包括计算资源214中执行的计算实例、计算资源214中提供的存储设备、计算资源214提供的数据传送设备等。在一些实现中,计算资源214可以经由有线连接、无线连接或者有线连接与无线连接的组合而与其他计算资源214通信。[0030]如图2进一步所示,计算资源214包括云资源组,诸如一个或多个应用(“APP”)214-1、一个或多个虚拟机(“VM”)214-2、虚拟化存储(“VS”)214-3、一个或多个管理程序(“HYP”)214-4等等。
[0031]应用214-1包括可以提供给用户设备220或者由用户设备220访问的一个或多个软件应用。应用214-1可以消除在用户设备220上安装和执行软件应用的需要。例如,应用214-1可以包括与软件分析平台210和/或能够经由云计算环境212提供的任何其他软件相关联的软件。在一些实现中,一个应用214-1可以经由虚拟机214-2向/从一个或多个其他应用214-1发送/接收信息。
[0032]虚拟机214-2包括类似于物理机器的执行程序的机器(例如,计算机)的软件实现。取决于虚拟机214-2对任何真实机器的使用和对应程度,虚拟机214-2可以是系统虚拟机或者过程虚拟机。系统虚拟机可以提供支持完整操作系统(“OS”)的执行的完整系统平台。过程虚拟机可以执行单个程序,并且可以支持单个过程。在一些实现中,虚拟机214-2可以代表用户(例如,用户设备220)执行,并且可以管理云计算环境212的基础架构,诸如数据管理、同步或者长持续时间的数据传送。
[0033]虚拟化存储214-3包括使用计算资源214的存储系统或者设备内的虚拟化技术的一个或多个存储系统和/或一个或多个设备。在一些实现中,在存储系统的上下文中,虚拟化的类型包括块虚拟化和文件虚拟化。块虚拟化可以指逻辑存储从物理存储的抽象(或者分离),以使得可以在不考虑物理存储或者异类结构的情况下访问存储系统。分离可以允许存储系统的管理员在管理员如何管理针对最终用户的存储方面具有灵活性。文件虚拟化可以消除在文件级别访问的数据与文件物理存储的位置之间的依赖性。这可以支持存储使用、服务器整合和/或无中断文件迁移的性能的优化。[0034]管理程序214-4可以提供硬件虚拟化技术,其允许多个操作系统(例如,“客户操作系统”)在主计算机(诸如计算资源214)上同时执行。管理程序214-4可以向客户操作系统呈现虚拟操作平台,并且可以管理客户操作系统的执行。多种操作系统的多个实例可以共享虚拟化硬件资源。
[0035]计算设备220包括能够经由网络230接收、发射、处理、路由信息等的设备。在本文描述的实现中,计算设备220可以包括服务器设备、服务器设备组、网络设备(例如,路由器、交换机、网关、调制解调器、网络接口控制器(NIC)、集线器、桥接器、代理服务器、光分插复用器(OADM)等),等等。
[0036]网络230包括一个或多个有线和/或无线网络。例如,网络230可以包括蜂窝网络、
8
CN 109213675 A
说 明 书
5/19页
公共陆地移动网络(“PLMN”)、局域网(“LAN”)、广域网(“WAN”)、城域网(“MAN”)、电话网络(例如,公共交换电话网络(“PSTN”))、自组织网络、内联网、因特网、基于光纤的网络、云计算网络和/或这些或其他类型的网络的组合。
[0037]图2中所示的设备和网络的数目作为示例提供。在实践中,可以存在附加的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络,或者与图2中所示的那些不同地布置的设备和/或网络。另外,
[0038]图2中所示的两个或者更多个设备可以在单个设备内实现,或者图2中所示的单个设备可以实现为多个、分布式设备。附加地,环境200的设备中的一个或多个设备可以执行被描述为由环境200的另外一个或多个设备执行的一个或多个功能。[0039]图3是设备300的示例组件的示图。设备300可以与软件分析平台210和/或计算设备220相对应。在一些实现中,软件分析平台210和/或计算设备220可以包括一个或多个设备300和/或设备300的一个或多个组件。如图3所示,设备300可以包括总线310、处理器320、存储器330、存储组件340、输入组件350、输出组件360和通信接口370。[0040]总线310包括允许设备300的组件之间的通信的组件。处理器320在硬件、固件或者硬件和软件的组合中实现。处理器320包括处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)、微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或者另一类型的处理器。在一些实现中,处理器320包括能够被编程以执行功能的一个或多个处理器。存储器330包括随机存取存储器(RAM)、只读存储器(ROM)和/或存储由处理器320使用的信息和/或指令的另一类型的动态或静态存储设备(例如,闪速存储器、磁存储器、光学存储器等)。
[0041]存储组件340存储与设备300的操作和使用相关的信息和/或软件。例如,存储组件340可以包括硬盘(例如,磁盘、光盘、磁光盘、固态盘等)、压缩盘(CD)、数字多功能盘(DVD)、软盘、盒式磁带、磁带和/或另一类型的非暂时性计算机可读介质,以及相对应的驱动器。[0042]输入组件350包括允许设备300诸如经由用户输入(例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关、麦克风等)来接收信息的组件。附加地或者备选地,输入组件350可以包括用于感测信息的传感器(例如,全球定位系统(GPS)组件、加速度计、陀螺仪、致动器等)。输出组件360包括提供来自设备300的输出信息的组件(例如,显示器、扬声器、一个或多个发光二极管(LED)等)。
[0043]通信接口370包括收发机类组件(例如,收发机、分离的接收机和发射机等),其使得设备300能够诸如经由有线连接、无线连接或者有线连接与无线连接的组合与其他设备通信。通信接口370可以允许设备300从另一设备接收信息和/或向另一设备提供信息。例如,通信接口370可以包括以太网接口、光学接口、同轴电缆接口、红外接口、射频(RF)接口、通用串行总线(USB)接口、Wi-Fi接口、蜂窝网络接口等等。[0044]设备300可以执行本文描述的一个或多个过程。设备300可以响应于处理器320执行由非暂时性计算机可读介质(诸如存储器330和/或存储组件340)存储的软件指令而执行这些过程。计算机可读介质在本文中被定义为非暂时性存储器设备。存储器设备包括单个物理存储设备内的存储器空间或者跨多个物理存储设备扩散的存储器空间。
[0045]软件指令可以经由通信接口370从另一计算机可读介质或者从另一设备读取到存储器330和/或存储组件340中。在执行时,存储在存储器330和/或存储组件340中的软件指
9
CN 109213675 A
说 明 书
6/19页
令可以导致处理器320执行本文描述的一个或多个过程。附加地或者备选地,硬连线电路可以代替软件指令或者与软件指令组合地使用,以执行本文描述的一个或多个过程。由此,本文描述的实现不限于硬件电路和软件的任何特定组合。[0046]图3中所示的组件的数目和布置作为示例提供。在实践中,设备300可以包括附加组件、更少的组件、不同的组件,或者与图3中所示的那些不同地布置的组件。附加地或者备选地,设备300的组件集合(例如,一个或多个组件)可以执行被描述为由设备300的另一组件集合执行的一个或多个功能。
[0047]图4是用于标识软件程序中的缺陷和软件程序的预期行为的示例过程400的流程图。在一些实现中,图4的一个或多个过程框可以由软件分析平台210来执行。在一些实现中,图4的一个或多个过程框可以由与软件分析平台210分离的或者包括软件分析平台210的另一设备或者设备组来执行。[0048]如图4所示,过程400可以包括接收与软件程序相关联的信息(框410)。例如,软件分析平台210可以从计算设备220接收与软件程序相关联的信息。在一些实现中,与软件程序相关联的信息可以包括与软件程序相关联的调试和错误日志(例如,其包括错误、资源中断信息、接口和输入/输出(I/O)信息等)、系统日志(例如,其用于监测系统,诸如网络中的交换机或者服务器)、状态信息、代码覆盖信息等等;与软件程序相关联的由网络监测系统生成的信息;与软件程序相关联的由网络供应系统生成的信息,等等。下文结合图6-图7D来描述接收与软件程序相关联的信息的进一步细节。[0049]如图4进一步所示,过程400可以包括基于与软件程序相关联的信息来生成事件记录(框420)。例如,软件分析平台210可以基于与软件程序相关联的信息来生成一个或多个事件记录。在一些实现中,软件分析平台210可以在数据结构(例如,数据库、阵列、表格、树结构、平面文件、链表等)中存储事件记录。虽然本文中使用数据库来描述数据结构,但是数据库可以利用前述数据结构中的一个或多个来替换或者与其相结合地使用。在一些实现中,软件分析平台210可以使用日志记录来接收在软件程序的执行期间发生的事件,并且标识软件程序的正确性。例如,软件分析平台210可以将事件的序列与软件程序相关联的错误日志进行相关。在一些实现中,如果软件分析平台210不能接收软件程序的事件(例如,由于软件程序的复杂度),软件分析平台210可以从与软件程序相关联的设计文档接收事件。[0050]在一些实现中,软件分析平台210可以基于接收到的软件程序的事件来生成一个或多个事件记录。在一些实现中,软件分析平台210可以使用单元测试框架、系统测试框架、集成测试用例、回归测试用例、规模测试用例等,以基于接收到的软件程序的事件来生成事件记录。
[0051]在一些实现中,软件分析平台210可以接收软件程序的事件和/或可以生成事件记录,同时递增地对软件程序执行测试。这样的布置可以防止软件分析平台210在数据结构中存储过多事件记录,并且可以保存数据结构中的存储空间。例如,软件分析平台210可以仅接收与软件程序的配置相关联的事件、与软件程序的特定特征相关联的事件、与软件程序的特定错误和/或异常相关联的事件等等,并且可以仅生成针对此类接收的事件的事件记录。
[0052]在一些实现中,软件分析平台210可以接收与软件程序的单个模块、模块组、整个平台等相关联的事件。附加地或者备选地,软件分析平台210可以基于软件程序的测试场景
10
CN 109213675 A
说 明 书
7/19页
的复杂度、软件程序的组件类的基础架构、软件程序的特定应用等来接收软件程序的事件。[0053]在一些实现中,软件分析平台210可以生成针对软件程序的事件的事件记录,其包括以下示例信息:
[0054]event_record{event_record_id;event_record_type;trigger_type;test_id;[0055]test_suite_id;traffic_pattern;show_output;software_event_lists;[0056]software_module_lists},[0057]其中,event_record(事件_记录)对应于针对软件程序的事件的事件记录;event_record_id(事件_记录_id)对应于与事件记录相关联的标识符(例如,数字标识符、字母标识符、字母数字标识符等);event_record_type(事件_记录_类型)对应于与事件记录相关联的事件类型(例如,错误、代码覆盖、告警、中断、网络监测、网络供应等);trigger_type(触发_类型)对应于与事件记录相关联的触发类型(例如,配置命令、测试用例、自动化测试套件、基于软件程序的执行的事件等);test_id(测试_id)对应于与事件记录相关联的测试的标识符(例如,数字标识符、字母标识符、字母数字标识符等);test_suite_id(测试_套件_id)对应于与事件记录相关联的测试套件(例如,测试用例的收集)的标识符(例如,数字标识符、字母标识符、字母数字标识符等);traffic_pattern(业务_模式)对应于与测试或者测试套件相关联的业务模式;show_output(示出_输出)对应于与软件程序的执行相关联的输出;software_event_lists(软件_事件_列表)对应于与软件程序的执行相关联的事件列表;以及,software_module_lists(软件_模块_列表)对应于与软件程序相关联的模块列表。
[0058]以上事件记录仅作为示例提供。事件记录的其他示例是可能的,并且可以与针对以上事件记录和相关于框420所描述的内容不同。在一些实现中,软件分析平台210可以接收软件程序的其他事件和/或可以生成除了以上描述的之外的事件记录的其他示例。[0059]如图4进一步所示,过程400可以包括标识与事件记录相关联的模式信息(框430)。例如,软件分析平台210可以标识与事件记录相关联的模式,并且可以基于所标识的模式来生成模式信息。在一些实现中,软件分析平台210可以将与所标识的模式相关联的模式信息存储在数据库中。在一些实现中,模式信息可以包括存储在数据库中的一个或多个日志模式记录。在一些实现中,模式信息可以包括稳定日志模式、定义日志模式等。在一些实现中,模式信息可以基于与软件程序相关联的一个或多个测试用例、一个或多个特征、一个或多个模块等而变化。在一些实现中,软件分析平台210可以使用与软件程序相关联的特征添加、缺陷解决、参考发布等作为用于生成模式信息(例如,日志模式记录)的参考点。[0060]在一些实现中,软件分析平台210可以基于与软件程序相关联的事件和事件记录来生成日志模式记录,其包括以下示例信息:[0061]log_pattern{log_pattern_id;log_pattern_type;event_record_id;[0062]event_record_type;module_id_list;task_id_list},[0063]其中,log_pattern(日志_模式)对应于日志模式记录;log_pattern_id(日志_模式_id)对应于与日志模式记录相关联的标识符(例如,数字标识符、字母标识符、字母数字标识符等);log_pattern_type(日志_模式_类型)对应于与日志模式记录相关联的日志模式类型(例如,稳定日志模式、定义日志模式等);event_record_id(事件_记录_id)对应于与事件记录相关联的标识符(例如,数字标识符、字母标识符、字母数字标识符等);event_
11
CN 109213675 A
说 明 书
8/19页
record_type(事件_记录_类型)对应于与事件记录相关联的事件类型(例如,错误、代码覆盖、告警、中断、网络监测、网络供应等);module_id_list(模块_id_列表)对应于与软件程序的模块相关联的标识符(例如,数字标识符、字母标识符、字母数字标识符等)的列表;以及,task_id_list(任务_id_列表)对应于与由软件程序执行的任务相关联的标识符(例如,数字标识符、字母标识符、字母数字标识符等)的列表。[00]以上日志模式记录仅作为示例提供。日志模式记录的其他示例是可能的,并且可以与针对以上日志模式记录和关于框430描述的不同。在一些实现中,软件分析平台210可以确定与软件程序相关联的其他日志模式和/或可以生成除了以上描述的之外的日志模式记录的其他示例。
[0065]如图4进一步所示,过程400可以包括对事件记录和/或模式信息执行数据分析,以标识软件程序的一个或多个缺陷以及预期行为(框440)。例如,软件分析平台210可以对(例如,存储在数据库中的)事件记录和/或模式信息执行数据分析,以标识软件程序的一个或多个缺陷以及软件程序的预期行为。
[0066]软件程序在生命周期期间可能基于软件程序的各种发布、对软件程序的特征的改变、对软件程序的增强、软件程序在不同平台上的可用性等等而经历若干改变。改变可能造成对事件记录和/或日志模式记录的一个或多个改变。在一些实现中,软件分析平台210可以执行数据分析以针对稳定和/或定义模式来分析日志模式记录,以确定软件程序的预期行为中的一个或多个改变,以验证软件程序中的改变,以记录软件程序中的改变,等等。在一些实现中,软件分析平台210可以基于软件程序中的改变的审查来验证软件程序中的改变。在这样的实现中,软件分析平台210可以生成与软件程序中的改变相关联的改变日志。在一些实现中,软件分析平台210可以执行数据分析以确定软件程序中的缺陷,并且在长期基础上生成改变日志,以使得软件分析平台210可以确定软件程序的预期行为。[0067]在一些实现中,为了执行对事件记录和/或模式信息的数据分析,软件分析平台210可以应用机器学习技术、人工智能技术、数据挖掘技术、建模技术、神经网络技术、另一类型的大数据技术或者这些技术中的两个或者更多个的组合来标识软件程序的一个或多个缺陷以及软件程序的预期行为。
[0068]机器学习技术可以包括例如可以基于新数据来改变的算法。机器学习技术可以搜索数据以检测数据中的模式,并且可以基于检测到的模式来调整机器学习算法的动作。机器学习算法可以被归类为被监督的或无监督的。被监督的机器学习算法可以将过去已经学习的内容应用于新数据,而无监督的机器学习算法可以从数据中得出推论。[0069]人工智能技术可以包括例如计算机对人类智能过程的仿真。过程可以包括学习(例如,信息的采集以及用于使用信息的规则)、推理(例如,使用规则来得到近似或者确切结论)以及自校正。人工智能技术可以比人类更加有效和精确地执行诸如标识数据中的模式等任务,并且在提交不熟悉的任务时,可以包括足够的智能来找到任务的解决方案。[0070]数据挖掘技术可以包括例如对数据进行排序以标识模式并且建立关系。数据挖掘技术的参数可以包括:关联(例如,搜索其中一个事件连接到另一事件的日志模式);序列或者路径分析(例如,搜索其中一个事件导致另一后续事件的日志模式);分类(例如,在数据中搜索可以导致组织数据的方式改变的新日志模式);聚类(例如,确定和记载先前未知的事实组);以及预报(例如,发现数据中可能导致关于未来的合理预测的日志模式,其也称为
12
CN 109213675 A
说 明 书
9/19页
预测分析)。
[0071]建模技术可以包括例如对数据进行建模以解决数据之间复杂的关系,对数据进行定义和归类,建立标准定义和描述符以使得数据可以被其他系统使用。[0072]神经网络技术可以包括例如在人类大脑中的神经元的操作之后被模式化的硬件和/或软件的系统。神经网络技术可以解决复杂问题,诸如模式识别问题。神经网络初始可以基于大量数据进行训练。训练可以包括向神经网络提供输入,以及告知神经网络什么应当被输出。
[0073]在一些实现中,软件程序中的缺陷可以包括软件程序中的漏洞(bug)、错误、缺点(flaw)、失效或者故障,其导致软件程序产生错误或者非预期的结果,以非预期的方式运转,等等。例如,软件程序中的缺陷可以包括算法缺陷(例如,除以零、算术溢出、算术精度损失等)、逻辑缺陷(例如,无限循环、无限递归、差一错误等(off-by-one error))、语法缺陷(例如,使用不正确的运算符)、资源缺陷(例如,空指针解引用、使用未初始化变量、对错误数据类型使用另外有效的指令、访问冲突、资源泄漏、缓冲区溢出、过度递归、释放后使用错误、双重释放错误等)、多线程缺陷(例如,由于任务依赖造成的死锁、竞争状态、并发性错误等)、对接缺陷(例如,不正确的应用编程接口(API)使用、不正确的协议实现、不正确的硬件处理、特定平台的不正确假设、不兼容系统等),等等。[0074]在一些实现中,软件程序的预期行为可以包括基于软件程序的配置的软件程序的精确度、软件程序执行的平台、与软件程序相关联的部署(例如,网络、设备中等)、与软件程序相关联的规模(例如,部署的大小),等等。例如,软件程序的预期行为可以包括指示软件程序的部分(例如,单元、模块等)正确执行的信息、指示软件程序的部分一起正确执行(即,正确集成)的信息、指示软件程序满足既定目的的信息,等等。在一些实现中,软件程序的预期行为可以指示软件程序的部分不正确地执行、软件程序的部分一起不正确地执行、软件程序无法满足既定目的,等等。在一些实现中,软件程序的预期行为可以包括指示软件程序的部分如何可以在任何时间点彼此影响、或者软件程序的部分何时可以在给定系统状态下彼此影响的信息。例如,软件程序的预期行为可以包括指示软件程序的部分之间的交互的排序的信息、指示软件程序的部分中并发性的时机的信息、指示交互的时间依赖性的信息,等等。
[0075]在一些情况下,软件程序的预期行为可以是非常描述性的,并且可以(例如,由软件分析平台210)从各种文档(例如,设计文档、实现注释、配置文档、发布管理文档、系统测试文档等)中确定。在其他情况下,与软件程序相关联的合并日志和各种文档可能是不可用的,并且软件程序的预期行为的确定可能需要针对给定平台的软件程序的理解。[0076]在一些实现中,软件分析平台210可以针对软件程序的预期行为来标识和合并日志。在一些实现中,合并日志可以包括与软件程序相关联的信息(例如,特性)。在一些实现中,特性可以包括基于对事件记录和/或日志模式记录执行数据分析而生成的信息。在一些实现中,特性可以包括标识在其上实现软件程序的平台和/或应用环境(例如,硬件平台、在其上实现软件程序的虚拟机、在其上实现软件程序的基于云的平台、在其上实现软件程序的开放可编程应用环境、在其上实现软件程序的第三方应用、在其上实现软件程序的操作系统、在其上实现软件程序的组件等)的信息。在一些实现中,基于以上特性,软件分析平台210可以生成用于表征软件程序的一个或多个日志模式记录。
13
CN 109213675 A[0077]
说 明 书
10/19页
在一些实现中,特性可以包括标识在其上实现软件程序的平台和/或应用环境的
配置的信息。例如,软件分析平台210可以标识在其上实现软件程序的特定平台和/或应用环境的配置,并且可以使用该配置来定义软件程序的预期行为。在一些实现中,特性可以包括标识与不同平台相关联的和规模的信息、标识软件程序中的一个或多个缺陷的信息、标识被执行用于在软件程序中实现特征、添加特征、删除特征、校正问题等对软件程序的改变的信息,等等。[0078]在一些实现中,软件分析平台210可以基于本文描述的特性来生成预期行为记录。附加地或者备选地,软件分析平台210可以基于对软件程序的改变、日志模式改变、对软件程序的作者的改变、与软件程序相关联的配置改变等来生成预期行为记录。[0079]在一些实现中,软件分析平台210可以生成包括以下示例信息的预期行为记录:[0080]expected_behaviour{application_id;module_id;platform_type_list;[0081]release_version;configuration_list;scale_value_list;defect_list;[0082]review_code_change_list;test_suite_id_list},[0083]其中,expected_behaviour(预期_行为)对应于预期行为记录,application_id(应用_id)对应于与软件程序(例如,应用)相关联的标识符(例如,数字标识符、字母标识符、字母数字标识符等),module_id(模块_id)对应于与软件程序的模块相关联的标识符(例如,数字标识符、字母标识符、字母数字标识符等),platform_type_list(平台_类型_列表)对应于在其上执行软件程序的平台类型的列表,release_version(发布_版本)对应于与软件程序相关联的发布版本,configuration_list(配置_列表)对应于与软件程序相关联的配置设置的列表,scale_value_list(规模_值_列表)对应于与软件程序相关联的规模值的列表,defect_list对(缺陷_列表)应于与软件程序相关联的缺陷的列表,review_code_change_list(审查_代码_改变_列表)对应于对要被审查的软件程序的代码改变的列表,以及,test_suite_id_list(测试_套件_id_列表)对应于与软件程序相关联的测试套件(例如,测试用例的收集)的标识符(例如,数字标识符、字母标识符、字母数字标识符等)。[0084]以上预期行为记录仅作为示例提供。预期行为记录的其他示例是可能的,并且可以与针对以上预期行为记录以及关于框440所描述的不同。在一些实现中,软件分析平台210可以确定与软件程序相关联的其他预期行为和/或可以生成除了上文描述的之外的预期行为记录的其他示例。[0085]如图4进一步所示,过程400可以包括基于软件程序的一个或多个缺陷和预期行为来生成一个或多个报告(框450)。例如,软件分析平台210可以基于软件程序的一个或多个缺陷和/或预期行为来生成一个或多个报告。在一些实现中,软件分析平台210可以生成多种报告,诸如指示软件程序的预期行为中的改变的报告、指示多个软件程序的报告、支持与软件程序相关联的错误的快速解决的报告,等等。在一些实现中,软件分析平台210可以生成与软件程序的日志模式改变相关联的报告、与对软件程序的改变相关联的报告、于软件程序的作者相关联的报告、与对软件程序的配置改变相关联的报告、与在其上执行软件程序的平台相关联的报告,等等。此类报告可以支持软件程序的评估,可以保证软件程序的正确性,并且可以保存否则将被用于评估软件程序的资源。[0086]如图4进一步所示,过程400可以包括提供一个或多个报告(框460)。例如,软件分析平台210可以提供基于软件程序的缺陷和预期行为而生成的一个或多个报告。在一些实
14
CN 109213675 A
说 明 书
11/19页
现中,软件分析平台210可以提供用于向软件分析平台210的用户(例如,软件开发者、网络管理员等)显示的一个或多个报告。在一些实现中,软件分析平台210可以向其他设备(例如,计算设备、移动设备、服务器设备等)的一个或多个用户提供一个或多个报告,并且其他设备可以存储和/或显示一个或多个报告。在一些实现中,软件分析平台210可以(例如,在数据库、存储器330、存储组件340等中)存储一个或多个报告。[0087]在一些实现中,软件分析平台210可以确定用于处理软件程序的缺陷和/或预期行为的一个或多个推荐,并且可以在一个或多个报告中或者与一个或多个报告分离地提供此类推荐。在一些实现中,软件分析平台210可以确定用于处理软件程序的缺陷和/或预期行为的一个或多个校正,并且可以自动地使得计算设备200实现软件程序中的一个或多个校正。备选地或者附加地,软件分析平台210可以在自动地实现一个或多个校正之前请求(例如,软件分析平台210和/或与软件分析平台210相关联的设备的)用户批准一个或多个校正。在一些实现中,软件分析平台210可以调度技术人员来校正软件程序的缺陷和/或预期行为,可以自动地生成用于校正软件程序的缺陷和/或预期行为的替换代码或者补丁,等等。
[0088]虽然图4示出了过程400的示例框,但是在一些实现中,过程400可以包括附加框、更少的框、不同的框或者与图4中所描绘的不同地布置的框。附加地或者备选地,可以并行执行过程400的框中的两个或更多个框。
[00]图5A-图5E是用于标识软件程序中的缺陷以及软件程序的预期行为的示例实现500的示图。如所示的,实现500可以包括软件分析平台210和计算设备220(例如,以网络设备220的形式)。
[0090]如图5A所示,网络设备220可以包括网络软件程序505。网络软件程序505可以包括在软件程序的测试期间或者在与网络设备220相关联的网络中使用软件程序期间,由网络设备220执行的软件程序。例如,网络软件程序505可以包括标识网络中的业务以及将业务引导至网络中的正确目的地的软件程序。如图5A进一步所示,网络设备220可以向软件分析平台210提供网络软件程序信息510,并且软件分析平台210可以接收网络软件程序信息510。网络软件程序信息510可以包括在网络软件程序505的执行期间生成的调试和错误日志、系统日志、状态信息、代码覆盖信息等。[0091]如图5B所示,网络软件程序信息510可以包括例如在网络软件程序505的执行期间生成的系统日志(Syslog)。系统日志可以包括指示网络软件程序505何时开始执行的信息(例如,“程序启动”)、指示在网络软件程序505的执行期间生成的第一事件(事件1)(例如,指示由网络软件程序505生成的错误的事件)的信息、指示在网络软件程序505的执行期间生成的第二事件(事件2)(例如,指示网络软件程序505导致向第一网络目的地发送第一业务量的事件)的信息以及指示在网络软件程序505的执行期间生成的第三事件(事件3)(例如,指示网络软件程序505接收目的地是第二网络目的地的第二业务量的事件)的信息。[0092]如图5B进一步所示,软件分析平台210可以基于网络软件程序信息510来生成事件记录515。例如,软件分析平台210可以生成针对第一事件(事件1)的第一事件记录(事件记录1)、针对第二事件(事件2)的第二事件记录(事件记录2)和针对第三事件(事件3)的第三事件记录(事件记录3)。事件记录515中的每一个可以包括以上针对事件记录所描述的信息中的一些或者全部(例如,指示event_record_id、event_record_type、trigger_type、
15
CN 109213675 A
说 明 书
12/19页
test_id、test_suite_id、traffic_pattern、show_output、software_event_lists和software_module_lists的信息)。软件分析平台210可以将事件记录515存储在与软件分析平台210相关联的数据库520中,如参考标号525所指示。[0093]如图5C所示,软件分析平台210可以基于事件记录515来确定日志模式记录530(例如,模式信息)。例如,软件分析平台210可以基于事件记录515来确定第一日志模式记录(日志模式1)(例如,指示网络软件程序505生成针对特定业务类型的错误)、第二日志模式记录(日志模式2)(例如,指示网络软件程序505总是正确地向第一网络目的地转发业务)以及第三日志模式记录(日志模式3)(例如,指示网络软件程序505停止执行一段时间)。日志模式记录530中的每一个可以包括以上针对日志模式记录所描述的信息中的一些或者全部(例如,指示log_pattern_id、log_pattern_type、event_record_id、event_record_type、module_id_list和task_id_list的信息)。软件分析平台210可以将日志模式记录530存储在数据库520中,如参考标号535所指示。
[0094]如图5D并且通过参考标号540所示,软件分析平台210可以对存储在数据库520中的事件记录515和日志模式记录530执行数据分析。基于执行数据分析,软件分析平台210可以标识与网络软件程序505相关联的一个或多个软件缺陷545(例如,软件缺陷1,其指示网络软件程序505不能转发特定业务类型)和预期行为信息550。预期行为信息550可以包括指示网络软件程序505的预期行为的信息(例如,指示网络软件程序505总是过滤出特定业务类型的信息)。在一些实现中,预期行为信息550可以包括一个或多个预期行为记录。预期行为记录中的每一个可以包括以上针对预期行为记录所描述的信息中的一些或者全部(例如,指示application_id、module_id、platform_type_list、release_version、configuration_list、scale_value_list、defect_list、review_code_change_list和test_suite_id_list的信息)。软件分析平台210可以将标识软件缺陷545的信息和预期行为信息550存储在数据库520中,如参考555所指示。[0095]如图5E所示,软件分析平台210可以基于与网络软件程序505相关联的软件缺陷545和预期行为信息550来生成一个或多个报告560。例如,软件分析平台210可以生成报告560,其包括指示网络软件程序505在20%的时间中生成假警报,偶尔锁定网络设备220,并且预期在88%的时间中正常操作的信息。如参考标号565所示,软件分析平台210可以向与网络管理员相关联的设备(例如,计算机、移动设备等)提供报告560。网络管理员可以使用该设备来审查报告560并且采取适当的行动。[0096]如上文指示的,图5A-图5E仅作为示例提供。其他示例是可能的,并且可以与关于图5A-图5E所描述的不同。在一些实现中,接合图5A-图5E所描述的各种操作可以(在没有用户输入的情况下)自动地执行或者在用户的请求下执行。
[0097]图6是用于协商与待分析的软件程序相关联的信息的检索的示例过程600的流程图。在一些实现中,过程600中的一些或者全部可以对应于图4的过程框410。在一些实现中,图6的一个或多个过程框可以由软件分析平台210执行。在一些实现中,图6的一个或多个过程框可以由与软件分析平台210分离的或者包括软件分析平台210的另一设备或者设备组来执行。
[0098]如图6所示,过程600可以包括确定与正在执行软件程序的设备相关联的平台(框610)。例如,软件分析平台210可以确定与正在执行软件程序的计算设备220相关联的平台
16
CN 109213675 A
说 明 书
13/19页
(例如,操作系统)。在一些实现中,软件分析平台210可以维护或者有权访问平台信息,该平台信息指示与执行软件程序的设备相关联的平台。在这样的实现中,软件分析平台210可以标识正在执行软件程序的特定设备,并且可以基于平台信息来确定与特定设备相关联的平台。在一些实现中,软件分析平台210可以(例如,经由用户输入)接收标识正在执行软件程序的特定设备的信息,并且可以基于标识特定设备的信息来确定与特定设备相关联的平台。在一些实现中,软件分析平台210可以(例如,经由用户输入)接收标识与正在执行软件程序的特定设备相关联的平台的信息,并且可以基于接收到的信息来确定与特定设备相关联的平台。
[0099]在一些实现中,与正在执行软件程序的设备相关联的平台可以包括Windows、UNIX、Linux、安卓、Mac OS X、网络设备平台、服务器平台、其他硬件平台、虚拟平台等。以上平台仅作为示例提供。其他示例平台是可能的,并且可以与关于框610所描述的不同。例如,软件分析平台210可以将本文描述的平台与其他适当的系统一起使用,以保证与软件分析平台210的兼容性。
[0100]如图6进一步所示,过程600可以包括选择与平台兼容的协议以用于协商将要由设备提供的软件程序的属性(框620)。例如,软件分析平台210可以选择与正在执行软件程序的计算设备220兼容的平台兼容的协议,并且可以协商要由计算设备220提供的软件程序的属性。在一些实现中,软件分析平台210可以维护或者有权访问指示与平台相关联的协议的协议信息。在此类实现中,软件分析平台210可以确定正在执行软件程序的设备的平台(如上所述),并且可以基于协议信息来选择与所确定的平台相关联的协议。[0101]在一些实现中,所选择的协议可以使得软件分析平台210能够与正在执行软件程序的设备通信和协商属性。在一些实现中,协议可以包括能够与Windows、UNIX、安卓、Mac OS X、Linux、网络设备平台、服务器平台、其他硬件平台、虚拟平台等通信的协议。例如,协议可以包括电气和电子工程师标准协会(IEEE)802.1Q协议、OpenFlow协议、网络配置(NetConf)协议、Open vSwitch数据库(OVSDB)协议等。在一些实现中,软件分析平台210可以使用已有的协议,或者可以使用本文其他部分描述的类型长度值(TLV)协商方法来扩展已有协议。
[0102]如图6进一步所示,过程600可以包括经由协议与设备协商软件程序的属性(框630)。例如,软件分析平台210可以经由所选择的协议与计算设备220协商软件程序的属性。在一些实现中,如果先前与计算设备220协商了特定属性,则软件分析平台210可以在任何时间点更新特定属性。在一些实现中,软件分析平台210可以经由属性协商会话与计算设备220协商软件程序的属性。在此类实现中,如果属性协商会话基于计算设备220的能力的改变而终止,则软件分析平台210可以建立与计算设备220的另一属性协商会话。[0103]在一些实现中,软件分析平台210可以经由OpenFlow协议与计算设备220协商软件程序的属性。在实现OpenFlow协议时,软件分析平台210可以使用特定消息类型(例如,对称消息、不对称消息等)来与计算设备220交换信息。例如,软件分析平台210可以使用对称消息和特定TLV(例如,OpenFlow协议的实验者TLV)以用于与计算设备220协商和交换信息。在一些实现中,软件分析平台210可以获得针对OpenFlow协议的实验者标识符和实验者消息的定义。
[0104]在一些实现中,软件分析平台210可以经由OVSDB协议与计算设备220协商软件程
17
CN 109213675 A
说 明 书
14/19页
序的属性。例如,软件分析平台210可以使用JavaScript对象标记远程过程调用(JSON-RPC)来与计算设备220交换信息。在此类实现中,软件分析平台210可以在针对属性的请求下向计算设备220提供属性列表。在一些实现中,计算设备220可以响应于针对属性的请求而返回确认(Ack)消息或者否认(NAck)消息。确认消息和/或否认消息可以包括针对属性列表中的每个属性的标志。在一些实现中,软件分析平台210可以在指示针对属性列表中的每个属性的真状态(即,属性可用)或者假状态(即,属性不可用)的响应阵列中接收标志。[0105]在一些实现中,软件分析平台210可以经由NetConf协议与计算设备220协商软件程序的属性。例如,软件分析平台210可以使用基于可扩展标记语言(XML)的RPC机制来与计算设备220交换信息。在此类实现中,软件分析平台210可以将属性信息转换为XML格式,并且可以向计算设备220提供经转换的属性信息。[0106]在一些实现中,软件分析平台210可以经由802.1Qbr协议与计算设备220协商软件程序的属性。例如,软件分析平台210可以使用链路层发现协议(LLDP)、思科发现协议(CDP)、JSON-RPC等来协商属性。在一些实现中,软件分析平台210可以经由其他协议(例如,私有协议)与计算设备220协商软件程序的属性。[0107]如图6进一步所示,过程600可以包括基于协商属性来接收与软件程序相关联的信息(属性)(框0)。例如,软件分析平台210可以基于协商属性来接收与软件程序相关联的信息(属性)。在一些实现中,属性可以包括与软件程序相关联的调试和错误日志中提供的任何信息、系统日志中提供的任何信息、从网络监测系统提供的任何信息、从网络供应系统提供的任何信息,等等。例如,属性可以包括核心消息、用户级消息、邮件系统消息、系统守护进程、安全/授权消息、时钟守护进程、紧急消息、报警、临界情况消息、错误情况、硬设备错误、告警情况、通知情况、信息消息、调试消息、错误代码、执行期间发生的事件、用户改变消息、安全消息、系统信息(例如,执行软件程序的处理器的类型、执行软件程序的处理器的量、在软件程序的执行期间可用于平台的存储器的量、与执行软件程序相关使用的存储器的量等),等等。
[0108]在一些实现中,软件分析平台210可以将属性转换为保证跨计算设备220的平台的一致属性定义的一个或多个结构化格式(例如,一个或多个结构化日志)。在一些实现中,结构化日志可以是平立的和/或平台相关的,并且可以按照可以由软件分析平台210的数据分析更加容易地处理的格式。此类结构化日志可以减少软件分析平台210在执行数据分析时对处理资源的使用。[0109]在一些实现中,结构化日志可以包括静态/动态日志记录属性、在线/离线属性、日志记录类别属性、事件的时间顺序属性、事件类别属性、平台/应用/模块/任务/线程属性、对象/生命周期属性、对象/资源属性、粒度属性、日志记录文件大小属性、基于服务器的日志记录属性、模块/特征/守护程序/任务/线程生命周期属性、协议状态机属性、日志字符串类型属性,等等。上述属性仅作为属性的示例提供,并且可以包括在结构化日志中。在一些实现中,结构化日志可以包括附加属性、更少的属性、不同的属性或者与上文描述的不同地布置的属性。
[0110]在一些实现中,静态/动态日志记录属性可以指示结构化日志要包括在软件程序的编译期间或者在软件程序的执行期间生成的信息。在一些实现中,在线/离线属性可以指示结构化日志要包括指定针对软件程序的登录是在线还是离线的信息。在一些实现中,日
18
CN 109213675 A
说 明 书
15/19页
志记录类别属性可以指示结构化日志要包括来自与软件程序相关联的特定日志类别(例如,错误日志、调试日志、系统日志等)的信息。[0111]在一些实现中,事件的时间顺序属性可以指示结构化日志要包括针对结构化日志中提供的信息而计算的时间戳。附加地或者备选地,事件的时间顺序属性可以指示结构化日志要包括标识软件程序的事件之间的时间差的信息。事件之间的时间差可以使得软件分析平台210能够确定与软件程序相关联的竞争状态。[0112]在一些实现中,事件类别属性可以指示结构化日志要包括与软件程序相关联的配置事件、配置状态、周期性事件、存储器分配事件、过程状态机事件等。在一些实现中,平台/应用/模块/任务/线程属性可以指示结构化日志要包括标识与软件程序相关联的平台、应用、模块、任务、线程等的信息。在一些实现中,对象/生命周期属性可以指示结构化日志要包括标识与软件程序相关联的对象何时被创建、修改、删除等的信息。在一些实现中,对象/资源属性可以指示结构化日志要包括标识与软件程序相关联的对象和/或资源何时被创建、修改、删除等的信息。[0113]在一些实现中,粒度属性可以指示结构化日志要包括标识结构化日志的粒度的信息(例如,粒度可以在与软件程序相关联的每模块、每软件特征、每任务、每线程对象标识符、每时间戳、每平台、每对象、每对象标识符、每存储器使用、每动作、每日志消息等的基础上定义)。在一些实现中,日志记录文件大小属性可以指示结构化日志要包括标识与软件程序相关联的每个计算设备220的日志大小的信息。在一些实现中,基于服务器的日志记录属性可以指示结构化日志要包括标识服务器地址(例如,服务器因特网协议(IP)地址)和/或服务器位置信息的信息。[0114]在一些实现中,模块/特征/守护程序/任务/线程生命周期属性可以指示结构化日志要包括标识与软件程序相关联的模块、特征、守护程序、任务、线程生命周期等的信息。在一些实现中,协议状态机属性可以指示结构化日志要包括标识与软件程序相关联的协议状态机的信息。在一些实现中,日志字符串类型属性可以指示结构化日志要包括信息,该信息标识与软件程序相关联的、要与对象日志、模块日志、特征日志、状态机日志等相关联的字符串。
[0115]在一些实现中,软件分析平台210可以使用一个或多个结构化日志来生成一个或多个事件记录以及一个或多个日志模式记录。在此类实现中,结构化日志可以使得软件分析平台210能够更加快速地生成可以由软件分析平台210的数据分析更加容易地处理的格式的事件记录和日志模式记录。由此,结构化日志可以减少软件分析平台在生成事件记录和日志模式记录以及在执行数据分析时对处理资源的使用。[0116]虽然图6示出了过程600的示例框,但是在一些实现中,过程600可以包括附加框、更少的框、不同的框或者与图6所描绘的不同地布置的框。附加地或者备选地,过程600的框中的两个或者更多个可以并行执行。
[0117]图7A-图7E是用于协商与待分析的软件程序相关联的信息的检索的示例实现700的示图。如所示的,实现700可以包括软件分析平台210和两个计算设备220(例如,以服务器设备220和网络设备220的形式)。[0118]如图7A所示,软件分析平台210可以接收信息705,其指示服务器设备220正在使用服务器平台来执行服务器设备220中包括的服务器软件程序710。服务器软件程序710可以
19
CN 109213675 A
说 明 书
16/19页
包括在软件程序的测试期间或者软件程序在与服务器设备220相关联的网络中使用期间由服务器设备220执行的软件程序。例如,服务器软件程序710可以包括高速缓存用于由与网络相关联的客户端设备检索的内容的软件程序。[0119]如图7A进一步所示,软件分析平台210可以接收信息715,其指示网络设备220正在使用网络设备平台来执行网络设备220中包括的网络软件程序720。网络软件程序720可以包括在软件程序的测试期间或者在软件程序在与网络设备220相关联的网络中使用期间由网络设备220执行的软件程序。例如,网络软件程序720可以包括从网络中过滤出恶意业务的软件程序。
[0120]在一些实现中,软件分析平台210可以确定平台相关联的服务器设备220和网络设备220。例如,并且如参考标号725所指示的,软件分析平台210可以基于指示服务器设备220正在使用服务器平台的信息705来确定服务器设备220正在使用服务器平台,并且可以基于指示网络设备220正在使用网络设备平台的信息715来确定网络设备220正在使用网络设备平台。
[0121]参考图7B,软件分析平台210可以选择与服务器平台和网络设备平台兼容的协议,以使得服务器软件程序710和网络软件程序720的属性可以被协商。例如,如参考标号730所指示的,软件分析平台210可以选择服务器协议与服务器设备220协商服务器软件程序710的属性,并且可以选择网络协议与网络设备220协商网络软件程序720的属性。[0122]在一些实现中,使用针对服务器设备220和网络设备220所选择的协议,软件分析平台210可以用于服务器设备220和网络设备220分别协商服务器软件程序710和网络软件程序720的属性。例如,由图7B中的参考标号735所指示的,软件分析平台210可以使用服务器协议与服务器设备220协商服务器软件程序710的属性。如图7B中的参考标号740所指示的,软件分析平台210可以使用网络协议与网络设备220协商网络软件程序720的属性。[0123]在一些实现中,软件分析平台210可以基于与服务器设备220和网络设备220协商属性来接收与软件程序相关联的信息(属性)。例如,如图7C中的参考标号745所示,在属性协商阶段期间,软件分析平台210可以向计算设备220(例如,服务器设备220或者网络设备220)提供日志记录属性协商请求消息(例如,请求计算设备220协商属性),并且计算设备220可以向软件分析平台210提供日志记录属性协商回复消息(例如,指示计算设备220已准备好协商属性)。在属性设置阶段期间,软件分析平台210可以向计算设备220提供日志记录属性设置请求消息(例如,标识计算设备220要提供的属性),并且计算设备220可以向软件分析平台210提供日志记录属性设置回复消息(例如,指示计算设备220已准备好提供所标识的属性)。在接收周期性日志阶段期间,软件分析平台210可以向计算设备220提供开始日志记录消息(例如,请求属性由计算设备220发送),并且计算设备220可以向软件分析平台210周期性地提供日志(例如,属性)。在日志记录会话终止阶段期间,软件分析平台210可以向计算设备220提供日志记录会话终止请求消息(例如,请求计算设备220停止提供属性),并且计算设备220可以向软件分析平台210提供日志记录会话终止回复消息(例如,指示计算设备220已经停止提供属性)。
[0124]如图7D中的参考标号750所示,在属性更新阶段期间,软件分析平台210可以向计算设备220发送日志记录属性更新请求消息(例如,请求计算设备220提供更新的属性),并且计算设备220可以向软件分析平台210发送日志记录属性更新回复消息(例如,指示计算
20
CN 109213675 A
说 明 书
17/19页
设备220已经准备好提供更新的属性)。在接收周期日志阶段期间,软件分析平台210可以向计算设备220提供开始日志记录更新属性消息(例如,请求更新的属性由计算设备220发送),并且计算设备220可以向软件分析平台周期性地提供日志(例如,更新的属性)。在日志记录会话终止阶段期间,软件分析平台210可以向计算设备220提供日志记录会话终止请求消息(例如,请求计算设备220停止提供更新的属性),并且计算设备220可以向软件分析平台210提供日志记录会话终止回复消息(例如,指示计算设备220已经停止提供更新的属性)。
[0125]如图7E所示,软件分析平台210可以将从服务器设备220和/或网络设备220接收的属性(例如,在数据结构中)存储为半结构化日志755(例如,从服务器设备220和/或网络设备220接收的格式的日志)。如参考标号760所指示的,软件分析平台210可以将半结构化日志755转换为结构化日志765(例如,转换为如上所述的格式)。结构化日志可以包括一个或多个属性(例如,属性1、属性2、……属性N)。如图7E进一步所示,软件分析平台210可以基于结构化日志765来生成一个或多个事件记录770(例如,事件记录1)和/或一个或多个日志模式记录775(例如,日志模式1)。[0126]如上所述,图7A-图7E仅作为示例提供。其他示例是可能的,并且可以与关于图7A-图7E所描述的不同。在一些实现中,结合图7A-图7E所描述的各种操作可以(在没有用户输入的情况下)自动地执行或者在用户的请求下执行。
[0127]本文描述的一些实现可以提供自动化软件分析平台,其使用调试和错误日志来确定软件程序的预期行为。例如,软件分析平台可以使用调试和错误日志来标识软件程序中的缺陷,并且记录软件程序的预期行为的改变。在一些实现中,软件分析平台可以生成事件记录和日志模式,并且可以对事件记录和日志模式执行数据分析。在一些实现中,软件分析平台可以基于对事件记录和日志模式执行数据分析来标识软件程序的预期行为的特性。[0128]前面的公开内容提供了图示和描述,但是非旨在穷举的或者将实现于所公开的精确形式。鉴于上述公开内容,修改和变化是可能的,或者可以从实现的实践中获取。[0129]如本文使用的,术语组件旨在广泛地解释为硬件、固件和/或硬件和软件的组合。[0130]将易见的是,本文描述的系统和/或方法能够以硬件、固件或者硬件和软件的组合的不同形式实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码不是对实现的。由此,本文描述了系统和/或方法的操作和行为而没有参考具体软件代码——可以理解,软件和硬件可以被设计为基于本文的描述来实现系统和/或方法。[0131]虽然权利要求和/或说明书公开记载了特征的特定组合,但是这些组合并非旨在可能实现的公开内容。实际上,这些特征中的许多特征可以按照没有在权利要求和/或说明书公开中具体记载的方式进行组合。虽然以下列出的每个从属权利要求可以直接从属于仅一个权利要求,但是可能实现的公开内容包括每个从属权利要求与权利要求集合中的每个其他权利要求的组合。[0132]除非明确描述,否则本文使用的元件、动作或者指令都不应当被解释为关键的或者必要的。而且,如本文使用的,冠词“一”、“一个”旨在包括一个或多个项目,并且可以与“一个或多个”互换使用。另外,如本文使用的,术语“集合”旨在包括一个或多个项目(例如,相关项目、不相关项目、相关项目和不相关项目的组合等),并且可以与“一个或多个”互换使用。在旨在只有一个项目的情况下,使用术语“一个”或者类似语言。而且,如本文使用的,
21
CN 109213675 A
说 明 书
18/19页
术语“具有”、“拥有”、“具备”等旨在作为开放式术语。另外,词组“基于”旨在意味着“至少部分地基于”,除非另外明确陈述。[0133]在本文中,提供了一种设备。该设备包括:一个或多个处理器,用于:接收与在另一设备上执行的软件程序相关联的信息;基于与软件程序相关联的信息来生成事件记录;标识与事件记录相关联的模式信息;对事件记录和模式信息执行数据分析,以标识与软件程序相关联的一个或多个缺陷以及确定软件程序的预期行为;基于与软件程序相关联的一个或多个缺陷以及软件程序的预期行为来生成一个或多个报告;以及提供一个或多个报告。[0134]在本文中,一个或多个处理器还用于:确定用于解决与软件程序相关联的一个或多个缺陷的一个或多个推荐;以及在一个或多个报告中提供指示一个或多个推荐的信息。[0135]在本文中,一个或多个处理器还用于:确定用于解决与软件程序相关联的一个或多个缺陷的一个或多个校正;以及使得另一设备在软件程序中实现一个或多个校正。[0136]在本文中,一个或多个处理器还用于:确定与另一设备相关联的平台;选择与平台兼容的协议;以及经由协议与另一设备协商将要由另一设备提供的软件程序的属性。[0137]在本文中,一个或多个处理器在接收到与软件程序相关联的信息时,用于:基于协商软件程序的属性,从另一设备接收与软件程序相关联的信息,软件程序的属性对应于与软件程序相关联的信息。[0138]在本文中,一个或多个处理器还用于:接收第一格式的与软件程序相关联的信息;以及将与软件程序相关联的信息从第一格式转换为与第一格式不同的第二格式。[0139]在本文中,数据分析包括以下中的一个或多个:机器学习技术,人工智能技术,数据挖掘技术,建模技术,或者神经网络技术。[0140]在本文中,提供了一种存储指令的非暂时性计算机可读介质。述指令包括:一个或多个指令,一个或多个指令在由一个或多个处理器执行时使得一个或多个处理器:接收与在设备上执行的软件程序相关联的信息;基于与软件程序相关联的信息来生成事件记录;标识与事件记录相关联的模式信息;对事件记录和模式信息执行数据分析,以标识与软件程序相关联的一个或多个缺陷以及确定软件程序的预期行为;基于与软件程序相关联的一个或多个缺陷以及软件程序的预期行为来生成一个或多个报告;以及提供一个或多个报告。
[0141]在本文中,指令还包括:一个或多个指令,一个或多个指令在由一个或多个处理器执行时,使得一个或多个处理器:确定用于解决与软件程序相关联的一个或多个缺陷的一个或多个推荐;以及在一个或多个报告中提供指示一个或多个推荐的信息。[0142]在本文中,指令还包括:一个或多个指令,一个或多个指令在由一个或多个处理器执行时,使得一个或多个处理器:确定用于解决与软件程序相关联的一个或多个缺陷的一个或多个校正;以及使得设备在软件程序中实现一个或多个校正。[0143]在本文中,指令还包括:一个或多个指令,一个或多个指令在由一个或多个处理器执行时,使得一个或多个处理器:确定与设备相关联的平台;选择与平台兼容的协议;以及经由协议与设备协商要由另一设备提供的软件程序的属性。[0144]在本文中,指令还包括:一个或多个指令,一个或多个指令在由一个或多个处理器执行时,使得一个或多个处理器:基于协商软件程序的属性,从设备接收与软件程序相关联的信息,软件程序的属性对应于与软件程序相关联的信息。
22
CN 109213675 A[0145]
说 明 书
19/19页
在本文中,指令还包括:一个或多个指令,一个或多个指令在由一个或多个处理器
执行时,使得一个或多个处理器:接收第一格式的与软件程序相关联的信息;以及将与软件程序相关联的信息从第一格式转换为与第一格式不同的第二格式。[0146]在本文中,数据分析包括以下中的一个或多个:机器学习技术,人工智能技术,数据挖掘技术,建模技术,或者神经网络技术。[0147]在本文中,提供了一种方法,包括:由设备接收与在另一设备上执行的软件程序相关联的信息;由设备基于与软件程序相关联的信息来生成事件记录;由设备标识与事件记录相关联的模式信息;由设备对事件记录和模式信息执行数据分析,以标识与软件程序相关联的一个或多个缺陷以及确定软件程序的预期行为;由设备基于与软件程序相关联的一个或多个缺陷以及软件程序的预期行为来生成一个或多个报告;以及由设备提供一个或多个报告。
[0148]在本文中,该方法还包括:确定用于解决与软件程序相关联的一个或多个缺陷的一个或多个推荐;以及在一个或多个报告中提供指示一个或多个推荐的信息。[0149]在本文中,该方法还包括:确定用于解决与软件程序相关联的一个或多个缺陷的一个或多个校正;以及使得另一设备在软件程序中实现一个或多个校正。[0150]在本文中,该方法还包括:确定与另一设备相关联的平台;[0151]选择与平台兼容的协议;以及经由协议与另一设备协商要由另一设备提供的软件程序的属性。
[0152]在本文中,接收与软件程序相关联的信息包括:基于协商软件程序的属性,从另一设备接收与软件程序相关联的信息,软件程序的属性对应于与软件程序相关联的信息。[0153]在本文中,该方法还包括:接收第一格式的与软件程序相关联的信息;以及将与软件程序相关联的信息从第一格式转换为与第一格式不同的第二格式。
23
CN 109213675 A
说 明 书 附 图
1/16页
图1A
24
说 明 书 附 图
2/16页
图1B
25
CN 109213675 A
CN 109213675 A
说 明 书 附 图
3/16页
图2
26
CN 109213675 A
说 明 书 附 图
4/16页
图3
27
CN 109213675 A
说 明 书 附 图
5/16页
图4
28
CN 109213675 A
说 明 书 附 图
6/16页
图5A
29
CN 109213675 A
说 明 书 附 图
7/16页
图5B
30
CN 109213675 A
说 明 书 附 图
8/16页
图5C
31
CN 109213675 A
说 明 书 附 图
9/16页
图5D
32
CN 109213675 A
说 明 书 附 图
10/16页
图5E
33
CN 109213675 A
说 明 书 附 图
11/16页
图6
34
CN 109213675 A
说 明 书 附 图
12/16页
图7A
35
CN 109213675 A
说 明 书 附 图
13/16页
图7B
36
CN 109213675 A
说 明 书 附 图
14/16页
图7C
37
CN 109213675 A
说 明 书 附 图
15/16页
图7D
38
CN 109213675 A
说 明 书 附 图
16/16页
图7E
39
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务