CN113448814B - 用于评估应用程序接口的方法、设备和程序产品 - Google Patents

用于评估应用程序接口的方法、设备和程序产品 Download PDF

Info

Publication number
CN113448814B
CN113448814B CN202010224920.7A CN202010224920A CN113448814B CN 113448814 B CN113448814 B CN 113448814B CN 202010224920 A CN202010224920 A CN 202010224920A CN 113448814 B CN113448814 B CN 113448814B
Authority
CN
China
Prior art keywords
api
score
test
predetermined
determining
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
CN202010224920.7A
Other languages
English (en)
Other versions
CN113448814A (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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN202010224920.7A priority Critical patent/CN113448814B/zh
Priority to US16/874,150 priority patent/US11204862B2/en
Publication of CN113448814A publication Critical patent/CN113448814A/zh
Application granted granted Critical
Publication of CN113448814B publication Critical patent/CN113448814B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0639Performance analysis of employees; Performance analysis of enterprise or organisation operations
    • G06Q10/06393Score-carding, benchmarking or key performance indicator [KPI] analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Educational Administration (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Mathematical Physics (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)

Abstract

本公开的实施例提供用于评估应用程序接口(API)的方法、设备和程序产品。一种评估API的方法包括通过比较针对API的定义描述与API对应的预定规范来确定API的规范得分,规范得分指示定义描述与预定规范的匹配程度;通过向API的代码集应用预定测试用例集来确定API的测试得分,测试得分指示对代码集的测试状况;以及基于规范得分和测试得分来确定API的成熟度度量。通过该方案,可以衡量API是否被定义得符合预定规范且代码实现符合预期,从而自动且高效地实现API的成熟度评估。

Description

用于评估应用程序接口的方法、设备和程序产品
技术领域
本公开的实施例涉及计算机技术领域,并且更具体地,涉及用于评估应用程序接口(API)的方法、设备和计算机程序产品。
背景技术
API用于定义系统或服务与应用程序之间的功能性接口或操作的接口,这样系统或服务可以通过API来访问对应的应用程序。API通常包括一系列功能或一系列操作,并且可以执行系统或服务如何从应用程序中调用这些操作。借助API,开发人员可以访问功能或操作而无需访问源代码。由于这样的便利性,很多服务提供商将服务提供为API的形式供使用。然而,API的设计和开发是否准确、稳定且易于使用,是非常值得关心的问题。
发明内容
本公开的实施例提供了一种用于评估API的方案。
在本公开的第一方面中,提供了一种用于评估应用程序接口(API)的方法。该方法包括通过比较针对API的定义描述与API对应的预定规范来确定API的规范得分,规范得分指示定义描述与预定规范的匹配程度;通过向API的代码集应用预定测试用例集来确定API的测试得分,测试得分指示对代码集的测试状况;以及基于规范得分和测试得分来确定API的成熟度度量。
在本公开的第二方面中,提供了一种电子设备。该电子设备包括至少一个处理器;以及存储有计算机程序指令的至少一个存储器,至少一个存储器和计算机程序指令被配置为与至少一个处理器一起使得电子设备执行动作。动作包括通过比较针对应用程序接口(API)的定义描述与API对应的预定规范来确定API的规范得分,规范得分指示定义描述与预定规范的匹配程度;通过向API的代码集应用预定测试用例集来确定API的测试得分,测试得分指示对代码集的测试状况;以及基于规范得分和测试得分来确定API的成熟度度量。
在本公开的第三方面中,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使设备执行动作。动作包括通过比较针对应用程序接口(API)的定义描述与API对应的预定规范来确定API的规范得分,规范得分指示定义描述与预定规范的匹配程度;通过向API的代码集应用预定测试用例集来确定API的测试得分,测试得分指示对代码集的测试状况;以及基于规范得分和测试得分来确定API的成熟度度量。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据本公开的一些实施例的自动API评估系统的框图;
图2示出了根据本公开的一些实施例的评估API的过程的流程图;
图3示出了根据本公开的一些实施例的API的定义描述的解析结果的示例;
图4示出了根据本公开的一些实施例的呈现API的定义描述与预定规范之间的匹配结果的示例用户界面;
图5示出了根据本公开的一些实施例的呈现API的代码集的测试结果的示例用户界面;
图6示出了根据本公开的一些实施例的API的成熟度度量的呈现的示例;以及
图7示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如以上提及的,API的设计和开发是否准确、稳定且易于使用,是非常值得关心的问题。当前,在API代码开发完成之后,通常需要人工校验API是否遵循设计规范,以及API的代码实现是否与预期相同。然而,人工校验成本高,难以频繁实现。此外,评估结果的准确度依赖于经验,导致结果准确度难以保障,不同API的校验结果难以进行互相比较。因此,期望存在有效且自动的API评估手段,从而有助于改进API的设计。
根据本公开的实施例,提出了一种用于自动评估API的方案。该方案目标在于确定API的成熟度。具体地,通过比较针对API的定义描述与API对应的预定规范来确定API的规范得分来确定API的规范得分,以衡量定义描述与预定规范的匹配程度。此外,还通过向API的代码集应用预定测试用例集来确定API的测试得分,以指示API的代码集的测试状况。基于规范得分和测试得分来确定API的成熟度度量。成熟度度量例如可以衡量API是否被定义得符合预定规范且代码实现符合预期。通过该方案,可以自动且高效地实现API的成熟度评估,提供可度量的评估结果用于比较。所实现的成熟度评估可以有助于对成熟度低的API进行改进。
下文将结合附图来详细描述本公开的基本原理和若干示例实施例。
图1根据本公开的一些实施例的自动API评估系统102的框图。如图1所示,API评估系统102被配置为对特定API的成熟度进行评估。API的成熟度评估基于要评估的API对应的预定规范110、针对API的定义描述120、API的代码集130以及用于测试代码集130的测试用例集140。API评估系统102确定API的成熟度度量。成熟度度量用于衡量API的当前开发的程度是否符合预期,特别是是否匹配预定规范的规定,以及代码实现是否符合预期。
要评估的API可以是任何类型的API,包括但不限于用于网络(web)服务的API和用于其他服务或系统的API。一种典型的网络服务API包括表述性状态转移式(RESTful)API。RESTful API基于超文本传输协议(HTTP)和统一资源标识符(URI)。RESTful API适用于由移动互联网服务提供商作为业务使能接口,实现第三方调用网络资源的功能。RESTful API接口定义操作分别对应相应的HTTP方法。应当理解,本公开的实施例可应用于任何其他类型的API。
API评估系统102对API的评估过程将参考图2来描述。图2示出了评估API的过程200的流程图。在框210,API评估系统102通过比较针对API的定义描述120与API对应的预定规范110来确定API的规范得分。该规范得分指示定义描述120与预定规范110的匹配程度,从而可以衡量当前的定义描述120是否遵循预定规范110。
在设计API时要遵循对应的预定规范110。预定规范110规定了在定义API时需要满足的规则。预定规范110例如可以是文本格式。预定规范110可以是行业通用规范,例如不同类型的API应该遵循的通用规则,和/或各个服务提供方特定的规则等。预定规范110所指定的一些示例规则将在下文详细描述。
针对API的定义描述120包括用于定义要设计的API的功能如何实现的具体描述,例如在客户端与服务器端之间的消息如何生成、如何传输、如何生成,资源的URI,查询参数,响应的格式等等。基于定义描述120,代码开发人员可以编写代码以实现API的功能以及API的前端和后端应用。在一些实施例中,定义描述120还可以被发布给API的使用方,以供使用方理解如何使用该API。在一些实施例中,定义描述120例如可以被表示为开源API规范(OAS)格式,或者任何其他格式。
在设计API的过程中,通常期望API的定义描述120与预定规范110尽可能匹配,即API的定义描述120中对于各个功能的描述不违背预定规范110要求的各个规则。因此,在本公开的实施例中,在评估API时,通过确定针对API的定义描述120与预定规范110之间的匹配状况来确定API的规范得分。
在一些实施例中,为了确定规范得分,可以从预定规范110中预先提取规则集,其包括针对API的定义的多个预定规则。这些规则例如可以包括在定义API时参数如何表示、URI路径如何表示、API定义的各个字段的具体规则等等。以下表1列出了一些示例规则。然而应当理解,取决于行业规范以及各个公司/组织等个性化规范,还可以存在其他规则。
表1
在评估特定API时,API评估系统102可以获得从预定规范110提取的规则集。此外,API评估系统102还解析API的定义描述120,以确定定义描述120中对当前API的定义。图3示出了OAS格式的定义描述120的示例,其中呈现了对API的各个部分的定义,例如概要(summary)、描述(description)、操作Id(operationId)以及参数(parameter)、响应(response)等的定义。定义描述120例如可以由可编辑该定义描述的特定客户端来呈现。例如,OSA格式的定义描述120可以由Stoplight工具呈现,并且可以从中解析或提取所关心的部分。
API评估系统102可以比较定义描述120与从预定规范110提取的规则集,以确定定义描述120是否满足规则集中的多个预定规则,然后基于定义描述120对相应规则的满足程度来确定规范得分。
在一些实施例中,可以借助匹配工具来实现对多个规则的匹配检验。例如,可以将从预定规范110提取的多个预定规则表示为Lint规则集,并且可以借助Lint工具,诸如Spectral工具来检验定义描述120是否匹配多个预定规则。图4示出了呈现API的定义描述120与预定规范110之间的匹配结果的示例用户界面400。在图4的示例中,用户界面400中的部分401指示定义描述120的第9行第5列出现规则失配警告,因为tag-description Tag对象不具有“description”(描述)部分。规则失配警告指示某个部分的定义描述不足够规范。用户界面400的其他部分也指示定义描述120中出现规则失配警告的具体部分。在一些实施例中,除规则失配警告之外,匹配结果还可以包括规则失配错误,指示某个部分的定义描述错误是不可容忍,和/或包括规则失配提醒,指示某个部分的定义描述可以修改得更好,但这样的修改不是强制的。
应当理解,Spectral工具和图4的匹配结果仅是一些具体示例。在其他示例中,还可以利用其他工具实现自动的规则匹配的检验。在一些实施例中,规则失配将会影响规范得分,例如导致向规范得分施加惩罚。在一个示例中,出现不匹配规则的数目越多,规范得分会降低。在一些实施例中,除规则失配,规范得分的确定还考虑哪些规则、特别是哪些重要规则的满足。例如,一个或多个规则的满足将会对规范得分施加奖励,使规范得分更高。
在确定规范得分时,API评估系统102可以考虑定义描述120与预定规范110之间的规则匹配的一个或多个方面来确定规范得分。影响规范得分的方面可以包括匹配规则的数目、失配规则的数目、具体哪些规则匹配、具体哪些规则失配,等等。在一些实施例中,API评估系统102可以从定义描述120和匹配结果提取一个或多个特征,用于确定规范得分。以下表2示出了会影响API的规范得分的一些示例特征。
表2
应当理解,表2仅列出了可能影响规范得分的一些特征的示例。在其他实施例中,还可以从定义描述120和匹配结果提取一个或多个其他特征,用于确定规范得分。
继续参考图2,在框220,API评估系统102通过向API的代码集130应用预定测试用例集140来确定API的测试得分。API的代码集130也称为API的代码实现,其将被具体运行以实现API的功能。因此,API的成熟度也与API的代码集的测试状况相关。测试得分可以指示对代码集130的测试状况,例如对API的测试的程度以及API测试结果是否良好。
对API的代码集130的要求是期望所编写的代码集130遵循API的定义描述120,因为这意味着运行API的代码集130能够实现API的预期功能。通常,对API的代码集130的测试基于预定测试用例集140来实现。预定测试用例集140包括多个测试用例,用于测试API的代码集130针对不同使用场景是否均能够提供预期的输出。
测试用例包括针对API的测试目标、测试环境、输入数据、测试步骤、预期输出、测试脚本等。测试用例的生成可以基于API的定义描述120,从而可以从定义描述120直接确定当前API的正确环境、输入数据、预期输出等。在一些实施例中,每个测试用例可能还引用除当前API之外的一个或多个其他API。
预定测试用例集140可以被应用到API的代码集130,以实现测试。在一些实施例中,诸如Prism等测试工具可以用于实现对API的代码集130的测试。图5示出了呈现API的代码集130的测试结果的示例用户界面500。如图所示,用户界面500呈现了对API的代码集130应用多个测试用例后的测试结果501至508。这些测试结果501至508指示相应测试用例被应用后API的代码集130是否能够给出预期输出,其中符号“√”指示获得预期输出,而符号“×”指示无法获得预期输出。例如,测试结果501、503和505指示对应的3个测试用例在被应用后无法获得预期输出,而其余测试结果指示对应的测试用例在被应用后获得了预期输出。用户界面500还示出了对测试结果的统计510,其指示8个测试用例中共有3个测试用例失败,即无法提供预期输出。
在一些实施例中,为了确定API的测试得分,API评估系统102还可以确定对所述API的代码集130应用一个或多个测试用例后的测试结果,例如其中API的代码集130给出预期输出的测试用例的数目,和/或其中API的代码集130未给出预期输出的测试用例的数目。在一些示例中,给出预期输出的测试用例的数目越大,测试得分可以被确定为越高。
在一些实施例中,为了确定API的测试得分,API评估系统102可以从对API的代码集130的整个测试过程中确定预定测试用例集140中对API的代码集130的引用状况。如以上提及的,由于每个测试用例可能会引用多个API的代码集。如果当前API的代码集130在全部测试用例集中被应用的次数越多,这意味着API的代码集130可能经过了更多次的测试,那么代码集的稳定性、准确度等方面会更好,相应地,测试得分可以被确定为更高。因此,在一个实施例中,引用状况可以被具体确定为预定测试用例集140中引用API的代码集130的测试用例的数目。在另一个实施例中,引用状况还可以具体列出哪些测试用例引用了代码集130。
备选地或附加地,引用状况还可以指示预定测试用例集140中是否存在对当前API进行描述的测试用例,例如在测试场景中具体描述当前API。引用状况还可以指示这样的测试用例的数目。这方面会影响测试得分,原因在于,如果当前API在一些测试用例中被具体描述,这样的API可能已经被设计得较为成熟,因此存在对其使用方法、功能的具体描述。相应地,测试得分可以被确定为更高。
API评估系统102可以基于引用状况和/或测试结果来确定测试得分。在一些实施例中,引用状况的一个或多个方面和/或不同测试结果的一个或多个方面,均可以不同程度地影响测试得分。例如,可以类似于对规范得分的确定,预先指定不同测试结果对应的得分规则,不同引用状况的得分规则。在计算得分时,API评估系统102可以根据API的代码集130的具体情况和相应的得分规则,来确定针对该API的测试得分。
继续参考回图2,在框230,API评估系统102基于规范得分和测试得分来确定API的成熟度度量105。API的成熟度度量可以以数值、等级、或者任何其他适当的形式来表示。例如,API的成熟度度量可以被确定为规范得分和测试得分的直接加和,或者加权和。在另一个示例中,可以将规范得分和测试得分分别于相应的预定阈值(例如,第一预定阈值和第二预定阈值)进行比较。如果规范得分和测试得分均超过相应的预定阈值,API评估系统102可以确定API的成熟度等级较高。如果规范得分低于第一预定阈值或测试得分低于第二预定阈值,则API评估系统102可以确定API的成熟度等级较低。这样,可以更准确地衡量API的成熟度,使得被确定为成熟度高的API不仅其定义描述120与预定规范130的匹配程度较高,并且其代码集130也被编写得符合预期,例如符合预定描述120。
在一些实施例中,除考虑定义描述与预定规范的匹配以及代码实现外,API的成熟度度量还可以基于与该API相关的辅助使用描述。辅助使用描述指的是有助于辅助使用该API的相关信息。辅助使用描述通常可以来自于API的定义描述、API的外部文档,例如经常被编写作为技术使用说明的Markdown文档。API评估系统102可以从定义描述120和/或外部文档中标识与该API相关的辅助使用描述,并且基于所标识的辅助使用描述来确定API的辅助得分。
具体地,在确定辅助得分时,API评估系统102可以从API的定义描述120中确定API的概要部分和/或描述部分是否包括对API的更多描述,例如概要部分包括的词的数目,描述部分包括的词的数目。如果概要部分或描述部分包括预定量的词,这意味着这些部分具有辅助性描述,那么API评估系统102可以向辅助得分增加相应分值。备选地或附加地,API评估系统102还可以从API的定义描述120中确定API的一个或多个参数和/或一个或多个响应是否具有相关联的描述信息。例如,如果API的所有参数或响应均具有相关联的描述信息,那么API评估系统102可以向辅助得分增加一定分值,因为这些描述信息更有助于用户理解API如何操作,参数和响应如何使用。
在一些实施例中,API评估系统102还可以确定描述当前API的外部文档的数目,或者在所关心的特定外部文档中是否存在对当前API的描述。如果描述当前API的外部文档数目越高或者某些特定外部文档存在对API的描述,那么API评估系统102可以向辅助得分增加一定分值,以进一步提高辅助得分。
所确定的辅助得分也可以被用于与规范得分和测试得分一起来衡量API的成熟度。在API的设计中,如果存在对该API的功能的更多辅助描述性信息,更多外部使用说明,这意味着用户可能更容易使用该API,因此API的成熟度会被认为更高。在确定API的成熟度时,API评估系统102例如可以将API的成熟度度量确定为规范得分、测试得分和辅助得分的直接加和,或者加权和。
在另一个示例中,类似将规范得分和测试得分与预定阈值的比较,也可以将辅助得分与特定阈值(例如,第三预定阈值)进行比较。API的成熟度度量105基于三个类型的得分与预定阈值的比较结果。如果三个类型的得分均超过相应的预定阈值,则API的成熟度等级最高,如果只有其中两个得分超过相应的预定阈值,成熟度等级将被确定为中等。类似地,如果只有一个得分超过相应的预定阈值或者任何一个得分均备用超过预定阈值,那么API的成熟度等级也会相应降低。
API评估系统102可以使所确定的API的成熟度度量105被呈现。图6示出了API的成熟度度量105的呈现600的示例,其中呈现了名称为“aaa.oas2.yml”的API的规范得分、测试得分和辅助得分。在图6的示例中,假设三个得分均超过预定阈值,因此API“aaa.oas2.yml”的成熟度度量最高,例如由三颗星形符号指示。
根据本公开的实施例,可以对要评估的多个API分别确定对应的成熟度度量。这些API的成熟度度量之间可以相互比较。另一方面,对于同一个API,如果定义描述和/或代码集被更新,还可以通过比较更新前后的成熟度度量还判断更新是否能够显著改进当前API。
图7示出了可以用来实施本公开的实施例的示例设备700的示意性框图。设备700可以用于实现图2的过程200。图1中的API评估系统102例如可以包括一个或多个设备700。
如图所示,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元701执行上文所描述的各个方法和处理,例如过程200。例如,在一些实施例中,过程200可被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,诸如非瞬态计算机可读介质,诸如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序被加载到RAM 703并由CPU 701执行时,可以执行上文描述的过程200的一个或多个步骤。备选地,在其他实施例中,CPU 701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程200。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。

Claims (18)

1.一种评估应用程序接口API的方法,包括:
通过比较针对所述API的定义描述与所述API对应的预定规范来确定所述API的规范得分,所述规范得分指示所述定义描述与所述预定规范的匹配程度;
通过向所述API的代码集应用预定测试用例集来确定所述API的测试得分,所述测试得分指示对所述代码集的测试状况;
基于所述规范得分和所述测试得分来确定所述API的成熟度度量,
其中所述成熟度度量指示所述API满足所述预定规范、并且具有实现所述API的功能的所述代码集,并且
其中所述API的所述成熟度度量被确定为所述规范得分和所述测试得分的直接加和或者加权和;
标识与所述API相关的辅助使用描述;以及
基于所述辅助使用描述来确定所述API的辅助得分,并且
其中确定所述API的所述成熟度度量还包括:还基于所述辅助得分来确定所述成熟度度量。
2.根据权利要求1所述的方法,其中标识所述辅助使用描述包括以下至少一项:
从所述API的所述定义描述中标识与所述API相关的辅助使用描述;以及
从所述API的外部文档中标识与所述API相关的辅助使用描述。
3.根据权利要求1所述的方法,其中确定所述规范得分包括:
获得从所述预定规范提取的规则集,所述规则集包括针对所述API的定义的多个预定规则;
通过比较所述定义描述与所述规则集,确定针对所述API的所述定义描述是否满足所述多个预定规则中的相应规则;以及
基于所述定义描述对所述相应规则的满足程度来确定所述规范得分。
4.根据权利要求1所述的方法,其中确定所述测试得分包括:
确定以下至少一项:所述预定测试用例集中对所述API的代码集的引用状况,以及对所述API的代码集应用所述预定测试用例集中的至少一个测试用例后的测试结果,其中所述预定测试用例集基于所述API的定义描述生成;以及
基于所述引用状况和所述测试结果中所确定的至少一项来确定所述测试得分。
5.根据权利要求4所述的方法,其中确定所述引用状况包括以下至少一项:
所述预定测试用例集中引用所述API的代码集的测试用例的数目,
所述预定测试用例集中引用所述API的代码集的测试用例的指示,以及
所述预定测试用例集中包括对所述API的描述的测试用例数目。
6.根据权利要求1所述的方法,其中确定所述API的所述成熟度度量包括:
将所述规范得分与第一预定阈值比较并且将所述测试得分与第二预定阈值比较;以及
至少基于将所述规范得分与所述第一预定阈值比较并且将所述测试得分与所述第二预定阈值比较的结果来确定所述API的所述成熟度度量。
7.一种电子设备,包括:
至少一个处理器;以及
存储有计算机程序指令的至少一个存储器,所述计算机程序指令在由所述至少一个处理器执行时使得所述设备执行动作,所述动作包括:
通过比较针对应用程序接口API的定义描述与所述API对应的预定规范来确定所述API的规范得分,所述规范得分指示所述定义描述与所述预定规范的匹配程度;
通过向所述API的代码集应用预定测试用例集来确定所述API的测试得分,所述测试得分指示对所述代码集的测试状况;
基于所述规范得分和所述测试得分来确定所述API的成熟度度量,
其中所述成熟度度量指示所述API满足所述预定规范、并且具有实现所述API的功能的所述代码集,并且
其中所述API的所述成熟度度量被确定为所述规范得分和所述测试得分的直接加和或者加权和;
标识与所述API相关的辅助使用描述;以及
基于所述辅助使用描述来确定所述API的辅助得分,并且
其中确定所述API的所述成熟度度量还包括:还基于所述辅助得分来确定所述成熟度度量。
8.根据权利要求7所述的设备,其中标识所述辅助使用描述包括以下至少一项:
从所述API的所述定义描述中标识与所述API相关的辅助使用描述;以及
从所述API的外部文档中标识与所述API相关的辅助使用描述。
9.根据权利要求7所述的设备,其中确定所述规范得分包括:
获得从所述预定规范提取的规则集,所述规则集包括针对所述API的定义的多个预定规则;
通过比较所述定义描述与所述规则集,确定针对所述API的所述定义描述是否满足所述多个预定规则中的相应规则;以及
基于所述定义描述对所述相应规则的满足程度来确定所述规范得分。
10.根据权利要求7所述的设备,其中确定所述测试得分包括:
确定以下至少一项:所述预定测试用例集中对所述API的代码集的引用状况,以及对所述API的代码集应用所述预定测试用例集中的至少一个测试用例后的测试结果,其中所述预定测试用例集基于所述API的定义描述生成;以及
基于所述引用状况和所述测试结果中所确定的至少一项来确定所述测试得分。
11.根据权利要求10所述的设备,其中确定所述引用状况包括以下至少一项:
所述预定测试用例集中引用所述API的代码集的测试用例的数目,
所述预定测试用例集中引用所述API的代码集的测试用例的指示,以及
所述预定测试用例集中包括对所述API的描述的测试用例数目。
12.根据权利要求7所述的设备,其中确定所述API的所述成熟度度量包括:
将所述规范得分与第一预定阈值比较并且将所述测试得分与第二预定阈值比较;以及
至少基于将所述规范得分与所述第一预定阈值比较并且将所述测试得分与所述第二预定阈值比较的结果来确定所述API的所述成熟度度量。
13.一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在由处理器执行时使所述处理器执行动作,所述动作包括:
通过比较针对应用程序接口API的定义描述与所述API对应的预定规范来确定所述API的规范得分,所述规范得分指示所述定义描述与所述预定规范的匹配程度;
通过向所述API的代码集应用预定测试用例集来确定所述API的测试得分,所述测试得分指示对所述代码集的测试状况;
基于所述规范得分和所述测试得分来确定所述API的成熟度度量,
其中所述成熟度度量指示所述API满足所述预定规范、并且具有实现所述API的功能的所述代码集,并且
其中所述API的所述成熟度度量被确定为所述规范得分和所述测试得分的直接加和或者加权和;
标识与所述API相关的辅助使用描述;以及
基于所述辅助使用描述来确定所述API的辅助得分,并且
其中确定所述API的所述成熟度度量还包括:还基于所述辅助得分来确定所述成熟度度量。
14.根据权利要求13所述的计算机程序产品,其中标识所述辅助使用描述包括以下至少一项:
从所述API的所述定义描述中标识与所述API相关的辅助使用描述;以及
从所述API的外部文档中标识与所述API相关的辅助使用描述。
15.根据权利要求13所述的计算机程序产品,其中确定所述规范得分包括:
获得从所述预定规范提取的规则集,所述规则集包括针对所述API的定义的多个预定规则;
通过比较所述定义描述与所述规则集,确定针对所述API的所述定义描述是否满足所述多个预定规则中的相应规则;以及
基于所述定义描述对所述相应规则的满足程度来确定所述规范得分。
16.根据权利要求13所述的计算机程序产品,其中确定所述测试得分包括:
确定以下至少一项:预定测试用例集中对所述API的代码集的引用状况,以及对所述API的代码集应用所述预定测试用例集中的至少一个测试用例后的测试结果,其中所述预定测试用例集基于所述API的定义描述生成;以及
基于所述引用状况和所述测试结果中所确定的至少一项来确定所述测试得分。
17.根据权利要求16所述的计算机程序产品,其中确定所述引用状况包括以下至少一项:
所述预定测试用例集中引用所述API的代码集的测试用例的数目,
所述预定测试用例集中引用所述API的代码集的测试用例的指示,以及
所述预定测试用例集中包括对所述API的描述的测试用例数目。
18.根据权利要求13所述的计算机程序产品,其中确定所述API的所述成熟度度量包括:
将所述规范得分与第一预定阈值比较并且将所述测试得分与第二预定阈值比较;以及
至少基于将所述规范得分与所述第一预定阈值比较并且将所述测试得分与所述第二预定阈值比较的结果来确定所述API的所述成熟度度量。
CN202010224920.7A 2020-03-26 2020-03-26 用于评估应用程序接口的方法、设备和程序产品 Active CN113448814B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010224920.7A CN113448814B (zh) 2020-03-26 2020-03-26 用于评估应用程序接口的方法、设备和程序产品
US16/874,150 US11204862B2 (en) 2020-03-26 2020-05-14 Method for evaluating application program interface (AP) with API maturity matric and testing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010224920.7A CN113448814B (zh) 2020-03-26 2020-03-26 用于评估应用程序接口的方法、设备和程序产品

Publications (2)

Publication Number Publication Date
CN113448814A CN113448814A (zh) 2021-09-28
CN113448814B true CN113448814B (zh) 2024-04-26

Family

ID=77807256

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010224920.7A Active CN113448814B (zh) 2020-03-26 2020-03-26 用于评估应用程序接口的方法、设备和程序产品

Country Status (2)

Country Link
US (1) US11204862B2 (zh)
CN (1) CN113448814B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11474935B2 (en) * 2019-04-18 2022-10-18 Jpmorgan Chase Bank, N.A. Method and system for providing automated testing framework for service
US11461470B2 (en) * 2020-06-26 2022-10-04 Bank Of America Corporation System and method for providing an application programming interface (API) based on performance and security
US10956244B1 (en) * 2020-08-26 2021-03-23 Coupang Corp. Systems and methods for automated application programming interface evaluation and migration
US11281462B1 (en) 2020-11-13 2022-03-22 Salesforce.Com, Inc. Rule-based scoring for APIs
CN113688213B (zh) * 2021-02-09 2023-09-29 鼎捷软件股份有限公司 应用程序接口服务搜寻系统及其搜寻方法
US20230004651A1 (en) * 2021-06-30 2023-01-05 Cisco Technology, Inc. Penetration testing for api service security
US11704187B1 (en) * 2022-01-18 2023-07-18 Bank Of America Corporation Automated application programming interface (API) route testing system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662357B1 (en) * 1999-08-31 2003-12-09 Accenture Llp Managing information in an integrated development architecture framework
CN107766226A (zh) * 2016-08-18 2018-03-06 北京金山云网络技术有限公司 一种测试方法及装置
CN108073503A (zh) * 2016-11-16 2018-05-25 中国移动通信有限公司研究院 一种组件成熟度的评测方法及装置
CN109669831A (zh) * 2018-12-26 2019-04-23 无锡睿勤科技有限公司 一种测试方法及电子设备

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272822B1 (en) * 2002-09-17 2007-09-18 Cisco Technology, Inc. Automatically generating software tests based on metadata
US7412430B1 (en) * 2002-12-09 2008-08-12 Electronic Data Systems Corporation Determining the quality of computer software
US7305654B2 (en) * 2003-09-19 2007-12-04 Lsi Corporation Test schedule estimator for legacy builds
US7506311B2 (en) * 2004-02-19 2009-03-17 Oracle International Corporation Test tool for application programming interfaces
US7398510B2 (en) * 2004-04-21 2008-07-08 International Business Machines Corporation Estimating software project requirements for resolving defect backlogs
US8874477B2 (en) * 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US7895565B1 (en) * 2006-03-15 2011-02-22 Jp Morgan Chase Bank, N.A. Integrated system and method for validating the functionality and performance of software applications
US7872652B2 (en) * 2007-01-07 2011-01-18 Apple Inc. Application programming interfaces for synchronization
US7971180B2 (en) * 2007-06-13 2011-06-28 International Business Machines Corporation Method and system for evaluating multi-dimensional project plans for implementing packaged software applications
US8805930B2 (en) * 2009-02-24 2014-08-12 Red Hat, Inc. Managing application programming interfaces in a collaboration space
US8539282B1 (en) * 2009-06-30 2013-09-17 Emc Corporation Managing quality testing
US8589859B2 (en) * 2009-09-01 2013-11-19 Accenture Global Services Limited Collection and processing of code development information
US8601441B2 (en) * 2010-07-17 2013-12-03 Accenture Global Services Limited Method and system for evaluating the testing of a software system having a plurality of components
US8719799B2 (en) * 2011-03-07 2014-05-06 International Business Machines Corporation Measuring coupling between coverage tasks and use thereof
US8856724B2 (en) * 2011-06-20 2014-10-07 Ebay Inc. Systems and methods for incremental software development
CN104516994B (zh) * 2013-09-29 2019-03-19 国际商业机器公司 计算机实现的辅助发布规划的方法和装置
US9146787B2 (en) * 2013-11-07 2015-09-29 Accenture Global Services Limited Analytics for application programming interfaces
US10990516B1 (en) * 2017-06-08 2021-04-27 Liberty Mutual Insurance Company Method, apparatus, and computer program product for predictive API test suite selection
US10832173B1 (en) * 2019-08-28 2020-11-10 International Business Machines Corporation Cognitive software development
US10949333B1 (en) * 2019-10-09 2021-03-16 Visa International Service Association Application maturity console

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662357B1 (en) * 1999-08-31 2003-12-09 Accenture Llp Managing information in an integrated development architecture framework
CN107766226A (zh) * 2016-08-18 2018-03-06 北京金山云网络技术有限公司 一种测试方法及装置
CN108073503A (zh) * 2016-11-16 2018-05-25 中国移动通信有限公司研究院 一种组件成熟度的评测方法及装置
CN109669831A (zh) * 2018-12-26 2019-04-23 无锡睿勤科技有限公司 一种测试方法及电子设备

Also Published As

Publication number Publication date
CN113448814A (zh) 2021-09-28
US11204862B2 (en) 2021-12-21
US20210303454A1 (en) 2021-09-30

Similar Documents

Publication Publication Date Title
CN113448814B (zh) 用于评估应用程序接口的方法、设备和程序产品
CN112118232B (zh) 报文协议解析方法及装置
US9208044B2 (en) Methods for simulating message-oriented services and devices thereof
US20140026125A1 (en) Methods for generating software test input data and devices thereof
CN107145437B (zh) 一种java注解测试方法及装置
CN108536489B (zh) 匹配资源环境的方法、装置和计算机可读存储介质
CN112015752A (zh) 一种数据动态查询的方法、装置、电子设备和存储介质
CN114553784A (zh) 限流处理方法及装置
CN115599359A (zh) 一种代码生成方法、装置、设备及介质
CN110417880B (zh) 一种应用于web开发的数据处理方法、装置及系统
EP3671512A1 (en) Automated software vulnerability determination
CN110503504B (zh) 网络产品的信息识别方法、装置及设备
CN110516258B (zh) 数据校验方法及装置、存储介质、电子装置
CN109597819B (zh) 用于更新数据库的方法和装置
CN113342353B (zh) 一种mock数据生成方法和装置
CN113672233A (zh) 一种基于Redfish的服务器带外管理方法、装置及设备
CN111178044B (zh) 一种确定目标文本要素的方法及装置
CN116150037B (zh) 一种在用例中管理用户登录状态的方法及装置
US20240012909A1 (en) Correction of non-compliant files in a code repository
CN111158746B (zh) 一种调用关系的获取方法及装置
CN109189689B (zh) 用于测试的方法和装置
EP3098724A2 (en) Information processing device and information processing program
EP4266171A1 (en) System to identify and characterize code changes
CN112181539B (zh) 文件处理方法、装置、设备及介质
CN116127232A (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