CN107038117B - 一种基于事件处理函数间定义-引用的web自动化测试方法 - Google Patents

一种基于事件处理函数间定义-引用的web自动化测试方法 Download PDF

Info

Publication number
CN107038117B
CN107038117B CN201710177955.8A CN201710177955A CN107038117B CN 107038117 B CN107038117 B CN 107038117B CN 201710177955 A CN201710177955 A CN 201710177955A CN 107038117 B CN107038117 B CN 107038117B
Authority
CN
China
Prior art keywords
event processing
web
definition
processing function
web application
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.)
Expired - Fee Related
Application number
CN201710177955.8A
Other languages
English (en)
Other versions
CN107038117A (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.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
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 Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN201710177955.8A priority Critical patent/CN107038117B/zh
Publication of CN107038117A publication Critical patent/CN107038117A/zh
Application granted granted Critical
Publication of CN107038117B publication Critical patent/CN107038117B/zh
Expired - Fee Related 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/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/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

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)
  • Stored Programmes (AREA)

Abstract

本发明公开一种基于事件处理函数间定义‑引用的web自动化测试方法,包括:1)在web自动测试工具中设置被测web应用程序的路径;2)web自动测试工具自动分析被测web应用程序源码;自动识别web应用程序的事件处理函数、事件处理函数中的过程间程序控制流程图,并自动向事件处理函数中注入监控代码;保存自动分析过程获取的数据;3)将步骤2)中注入监控代码的web应用程序拷贝至提供web服务的服务器端,并在服务器端设置web应用程序对外提供web服务的网址;4)在测试机器上的web自动测试工具中设置被测web应用程序的网址,即步骤3)中设置的web服务网址;5)自动测试工具根据被测web应用程序的网址,自动生成测试用例并自动执行。

Description

一种基于事件处理函数间定义-引用的web自动化测试方法
技术领域
本发明属于软件自动化领域以及用户界面领域,尤其涉及一种基于事件处理函数间定义-引用的web自动化测试方法。
背景技术
HTML和Javascript是当前开发web应用程序的主要脚本技术语言,HTML主要用于表示web应用程序的显示逻辑,Javascript主要用于表示web应用程序的执行逻辑,随着Javascript标准的发展以及Node.js技术的推广,Javascript也逐步被应用到服务器端开发。
在此背景下,基于录制/回放技术的自动化测试工具被广泛应用于web测试,这类工具主要针对web页面元素如超链接、表单等HTML元素表现层的一致性进行测试。web应用程序的内部执行逻辑是完成web应用程序功能的核心。
目前,业界提供的自动化测试工具包括Selenium、Watij等,这类工具需要测试人员首先撰写测试用例脚本,然后再批量执行,其优势在于批量执行和自动化执行;然而,这类工具的主要问题是:当web应用的版本更新,特别是当界面存在变化时,版本更新之前的大量测试用例无法在新版本上运行测试,需要测试人员重新撰写。当版本更新较为频繁时,导致两个问题:1)测试成本快速增加;2)当版本发布时间比较紧迫,需要快速发布时,难以对web应用快速实施测试。针对这两个问题,本发明根据HTML和javascript技术的特点,针对web功能测试,提出了一种基于事件处理函数间定义-引用的web应用自动化方法,此方法在无需测试人员撰写测试用例的前提下,快速对web应用进行测试,降低web应用的测试成本,提高应用发布效率。
发明内容
根据web应用程序中HTML和Javascript脚本的特征,本发明提供了一种基于事件处理函数间定义-引用的web自动化测试方法,此方法从用户操作web应用程序以及web应用程序内部执行逻辑的角度,自动模拟用户操作,监控web应用程序内部执行逻辑,对web应用程序进行自动化测试。
为了完成上述发明,本发明采用如下技术方案:
一种基于事件处理函数间定义-引用的web自动化测试方法,包括如下步骤:
1)在测试机器上安装web自动测试工具,在web自动测试工具中设置被测web应用程序的路径;
2)web自动测试工具自动分析被测web应用程序源码;自动识别web应用程序的事件处理函数、事件处理函数中的过程间程序控制流程图,并自动向事件处理函数中注入监控代码;保存自动分析过程获取的数据;
3)将步骤2)中注入监控代码的web应用程序拷贝至提供web服务的服务器端,并在服务器端设置web应用程序对外提供web服务的网址;
4)在测试机器上的web自动测试工具中设置被测web应用程序的网址,即步骤3)中设置的web服务网址;
5)自动测试工具根据步骤2)中获取的数据以及步骤4)中设置的被测web应用程序的网址,自动生成测试用例并自动执行。
作为优选,所述步骤2)中待分析的web应用程序源码包括HTML脚本和Javascript脚本。
作为优选,所述步骤2)中的事件处理函数通过静态分析HTML脚本和Javascript脚本自动获取;所述静态分析通过两种方式自动识别事件处理函数,一种是根据HTML脚本中的web元素定义方法识别,如<button onclick=”copyText()”>copy test</button>,copyText函数即为事件处理函数;另一种方式则是通过对Javascript脚本静态分析识别。
作为优选,所述步骤2)中,对事件处理函数静态分析,根据事件处理函数直接或间接调用其它函数的关系自动构建事件处理函数的过程间控制流程图,自动遍历事件处理函数的过程间控制流图中的完整最短路径,记录每条完整最短路径中的定义和引用,计算事件处理函数间的定义-引用关系。
作为优选,所述步骤2)中保存的完整最短路径定义以及事件处理函数间的定义-引用关系定义如下:
事件处理函数的过程间控制流图的起始节点和结束节点分别为start、end,事件处理函数的过程间控制流图的完整最短路径起始与start,结束于end,且不会覆盖过程间控制流图的同一条边两次;
如两个事件处理函数存在完整最短路径分别为p1、p2以及变量var,若在p1中定义var而在p2中引用var,则p1和p2关于变量var存在事件处理函数间的定义-引用关系。
作为优选,所述步骤2)中注入监控代码的方法为:在构建事件处理函数的过程间控制流图时,每遇见一个分支,在分支中注入一个表征当前分支执行的监控语句。
作为优选,所述步骤2)中自动分析获取的数据包括web元素、web元素上的操作和对应的事件处理函数三者之间的关系、每个事件处理函数对应的过程间控制流图、每个事件处理函数对应的过程间控制流图上的完整最短路径以及每条完整最短路径上的变量定义和引用、事件处理函数间的定义-引用关系、以及注入监控代码后的web应用程序。
作为优选,所述步骤3)中,服务器端以IP地址或域名网址的形式对外提供被测web应用程序访问地址。
作为优选,所述步骤5)中,测试机器上的web自动测试工具采用基于反馈的方式自动遍历被测web应用程序,包括如下步骤:
5.1)自动访问被测web应用程序首页并获取首页HTML脚本源码,根据被测web应用程序执行时的监控语句执行信息获取事件处理函数执行路径以及执行时覆盖的事件处理函数间的定义-引用信息,并记录当前已覆盖的事件处理函数间的定义-引用信息,当前页面为web应用程序首页;
5.2)对当前页面的可以执行的事件处理函数进行分析。若当前所有的事件处理函数间的定义-应用关系均已覆盖,则测试完毕;若前述执行的事件处理函数的完整最短路径与当前页面web元素对应的事件处理函数的完整最短路径不存在事件处理函数之间的定义-引用关系,则随机选择一个可以操作的web元素;若前述执行的事件处理函数的完整最短路径与当前页面web元素对应的事件处理函数的完整最短路径存在事件处理函数之间的定义-引用关系且未覆盖,则执行对应元素上的操作,触发事件处理函数执行,并记录覆盖执行过程中覆盖的事件处理函数间的定义-引用信息,置当前页面为事件处理函数执行后的新的web应用程序页面,重复执行步骤5.2)。
作为优选,所述步骤1)中web应用程序由HTML文件、Javascript文件以及其它声音、视频文件组成。
附图说明
图1为本发明方法执行的流程图;
具体实施方式
为了更清楚地理解本发明,特此将本发明的具体实施过程结合附图描述如下:
本发明实施例描述了一次web应用程序自动化测试的流程,其流程中涉及测试机器和web服务器,其中测试机器对web应用程序进行自动化分析获取事件处理函数及其相关信息,并注入监控信息;在web服务器配置已注入监控信息的web应用程序,并对外以IP地址或域名地址的形式对外提供;在测试执行过程中,测试机器与web服务器通过http协议进行通信。下面描述整个测试流程的具体实施过程,如图1所示。
(1)将自动化测试工具安装在测试机器上,将被测web应用程序拷贝至测试机器,在自动化测试工具上设置被测web应用程序文件夹的路径。
(2)利用自动化测试工具对被测web应用程序进行自动分析,记录分析过程中获取的数据。具体包括:
a)事件处理函数的自动识别。通过两种方式识别,一种是通过分析HTML脚本获取,其方法为:分析HTML元素的属性,若HTML元素存在用户操作事件属性opEvt,其值为func,其定义形如<htmlElm attr1=xxx,attr2=yyy,…,opEvt=”func”,…>,则func为事件处理函数,其中opEvt是HTML标准事件,其形式和对应的语义如下表所示:
Figure BDA0001252862250000041
Figure BDA0001252862250000051
Figure BDA0001252862250000061
Figure BDA0001252862250000071
另一种则是通过分析Javascript源码,若Javascript脚本代码中存在如下模式的片段:
Figure BDA0001252862250000072
则func为事件处理函数,其中getElementByAttribute的形式为getElementById、getElementByTagName、getElementByClassName三种形式之一,att表示对应的属性(当形式为getElementById时,att表示html元素的id属性值;当形式为getElementByTagName时,att表示html元素标签名称;当形式为getElementByClass时,att表示html元素的class属性值),而onEvt形式与HTML分析中的形式一致。记录HTML元素、HTML元素上的事件以及HTML元素上对应的事件处理函数三者之间的关系,用三元组(HTML元素,事件,事件处理函数)表示。
b)事件处理函数完整最短路径以及完整最短路径上的定义和引用自动分析。对a)步骤中识别的事件处理函数进行分析,自动构建每个事件处理函数的过程间控制流图,获取过程间控制流图中的所有完整最短路径,并记录每条完整最短路径上的定义和引用。完整最短路径定义以及事件处理函数间的定义-引用关系定义如下:
完整最短路径:事件处理函数的过程间控制流图的起始节点和结束节点分别为start、end,事件处理函数的过程间控制流图的完整最短路径起始与start,结束于end,且不会覆盖过程间控制流图的同一条边两次。
事件处理函数间的定义-引用:如两个事件处理函数存在完整最短路径分别为p1、p2以及变量var,若在p1中定义var而在p2中引用var,则p1和p2关于变量var存在事件处理函数间的定义-引用关系。
c)监控代码注入。遍历事件处理函数,对事件处理函数的每个分支中注入一条监控语句,表征当前分支是否执行。根据b)和c)计算事件处理函数中每条完整最短路径与监控语句的关系。
(3)将(2)中注入监控代码的web应用程序安装在web服务器端,并配置web应用程序对外服务的接口,接口可采用如下两种形式之一:
●网址形式。如www.domainname.com
●IP和端口的组合形式。如192.168.3.10:80。
(4)在测试机器上设置被测web应用程序的访问接口,其接口与(3)中的接口和形式保持一致。
(5)测试机器上的web自动测试工具以一种基于反馈的方式自动测试web应用程序,其步骤如下:
1)自动访问被测web应用程序首页并获取首页HTML脚本源码,根据被测web应用程序执行时的监控语句执行信息获取事件处理函数执行路径以及执行时覆盖的事件处理函数间的定义-引用信息,并记录当前已覆盖的事件处理函数间的定义-引用信息,当前页面为web应用程序首页;
2)根据(2)中保存的信息,对当前页面的可以执行的事件处理函数进行分析。若当前所有的事件处理函数间的定义-应用关系均已覆盖,则测试完毕;若前述执行的事件处理函数的完整最短路径与当前页面web元素对应的事件处理函数的完整最短路径不存在事件处理函数之间的定义-引用关系,则随机选择一个可以操作的web元素;若前述执行的事件处理函数的完整最短路径与当前页面web元素对应的事件处理函数的完整最短路径存在事件处理函数之间的定义-引用关系且未覆盖,则触发执行,并记录覆盖执行过程中覆盖的事件处理函数间的定义-引用信息,置当前页面为执行后的新的web应用程序页面,重复执行步骤2)。
具体算法如下所示:
Figure BDA0001252862250000091
上面对本发明所述的一种基于事件处理函数间定义-引用关系的web自动化测试方法进行了详细的说明,但显然仍然可以做出各种修改和变换而不背离本发明的精神和范围,因此,说明书应被认为是说明性的而非限制性的,其中的各个接口的解释是示意性的,完成类似功能的接口仍然属于本方法的精神和权利要求范围,对于本技术领域的一般技术人员来说,在不背离本发明所述方法的精神和权利要求范围的情况下对它进行的各种显而易见的改变都在本发明的保护范围之内。

Claims (5)

1.一种基于事件处理函数间定义-引用的web自动化测试方法,其特征在于,包括如下步骤:
1)在测试机器上安装web自动测试工具,在web自动测试工具中设置被测web应用程序的路径;
2)web自动测试工具自动分析被测web应用程序源码;自动识别web应用程序的事件处理函数、事件处理函数中的过程间程序控制流程图,并自动向事件处理函数中注入监控代码;保存自动分析过程获取的数据;具体为:
所述步骤2)中,对事件处理函数静态分析,根据事件处理函数直接或间接调用其它函数的关系自动构建事件处理函数的过程间控制流程图,自动遍历事件处理函数的过程间控制流图中的完整最短路径,记录每条完整最短路径中的定义和引用,计算事件处理函数间的定义-引用关系;
所述步骤2)中保存的完整最短路径定义以及事件处理函数间的定义-引用关系定义如下:
事件处理函数的过程间控制流图的起始节点和结束节点分别为start、end,事件处理函数的过程间控制流图的完整最短路径起始于start,结束于end,且不会覆盖过程间控制流图的同一条边两次;
如两个事件处理函数存在完整最短路径分别为p1、p2以及变量var,若在p1中定义var而在p2中引用var,则p1和p2关于变量var存在事件处理函数间的定义-引用关系;
所述步骤2)中注入监控代码的方法为:在构建事件处理函数的过程间控制流图时,每遇见一个分支,在分支中注入一个表征当前分支执行的监控语句;
所述步骤2)中自动分析获取的数据包括web元素、web元素上的操作和对应的事件处理函数三者之间的关系、每个事件处理函数对应的过程间控制流图、每个事件处理函数对应的过程间控制流图上的完整最短路径以及每条完整最短路径上的变量定义和引用、事件处理函数间的定义-引用关系、以及注入监控代码后的web应用程序;
3)将步骤2)中注入监控代码的web应用程序拷贝至提供web服务的服务器端,并在服务器端设置web应用程序对外提供web服务的网址;
4)在测试机器上的web自动测试工具中设置被测web应用程序的网址,即步骤3)中设置的web服务网址;
5)自动测试工具根据步骤2)中获取的数据以及步骤4)中设置的被测web应用程序的网址,自动生成测试用例并自动执行,具体为:
所述步骤5)中,测试机器上的web自动测试工具采用基于反馈的方式自动遍历被测web应用程序,包括如下步骤:
5.1)自动访问被测web应用程序首页并获取首页HTML脚本源码,根据被测web应用程序执行时的监控语句执行信息获取事件处理函数执行路径以及执行时覆盖的事件处理函数间的定义-引用信息,并记录当前已覆盖的事件处理函数间的定义-引用信息,当前页面为web应用程序首页;
5.2)对当前页面的可以执行的事件处理函数进行分析,若当前所有的事件处理函数间的定义-应用关系均已覆盖,则测试完毕;若前述执行的事件处理函数的完整最短路径与当前页面web元素对应的事件处理函数的完整最短路径不存在事件处理函数之间的定义-引用关系,则随机选择一个可以操作的web元素;若前述执行的事件处理函数的完整最短路径与当前页面web元素对应的事件处理函数的完整最短路径存在事件处理函数之间的定义-引用关系且未覆盖,则执行对应元素上的操作,触发事件处理函数执行,并记录覆盖执行过程中覆盖的事件处理函数间的定义-引用信息,置当前页面为事件处理函数执行后的新的web应用程序页面,重复执行步骤5.2)。
2.如权利要求1所述的基于事件处理函数间定义-引用的web自动化测试方法,其特征在于,所述步骤2)中待分析的web应用程序源码包括HTML脚本和Javascript脚本。
3.如权利要求1所述的基于事件处理函数间定义-引用的web自动化测试方法,其特征在于,所述步骤2)中的事件处理函数通过静态分析HTML脚本和Javascript脚本自动获取。
4.如权利要求1所述的基于事件处理函数间定义-引用的web自动化测试方法,其特征在于,所述步骤3)中,服务器端以IP地址或域名网址的形式对外提供被测web应用程序访问地址。
5.如权利要求1所述的基于事件处理函数间定义-引用的web自动化测试方法,其特征在于,所述步骤1)中web应用程序由HTML文件、Javascript文件以及其它声音、视频文件组成。
CN201710177955.8A 2017-03-23 2017-03-23 一种基于事件处理函数间定义-引用的web自动化测试方法 Expired - Fee Related CN107038117B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710177955.8A CN107038117B (zh) 2017-03-23 2017-03-23 一种基于事件处理函数间定义-引用的web自动化测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710177955.8A CN107038117B (zh) 2017-03-23 2017-03-23 一种基于事件处理函数间定义-引用的web自动化测试方法

Publications (2)

Publication Number Publication Date
CN107038117A CN107038117A (zh) 2017-08-11
CN107038117B true CN107038117B (zh) 2020-11-06

Family

ID=59533327

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710177955.8A Expired - Fee Related CN107038117B (zh) 2017-03-23 2017-03-23 一种基于事件处理函数间定义-引用的web自动化测试方法

Country Status (1)

Country Link
CN (1) CN107038117B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558307B (zh) * 2017-09-26 2022-03-22 卓望数码技术(深圳)有限公司 一种游戏程序的测试方法及系统
CN109992496A (zh) * 2017-12-29 2019-07-09 北京京东尚科信息技术有限公司 一种用于自动化测试的数据处理方法和装置
CN110688321B (zh) * 2019-09-29 2022-07-08 南京大学 一种结合群体智能与机器智能增强移动应用测试的方法
CN111596975B (zh) * 2020-04-29 2021-07-16 五八有限公司 事件调用方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005208749A (ja) * 2004-01-20 2005-08-04 Hitachi Electronics Service Co Ltd Webサービスシステム稼動監視方法及び稼動監視システム
CN101339532A (zh) * 2007-07-06 2009-01-07 中国银联股份有限公司 一种Web应用系统的自动化测试方法及装置
CN102012857A (zh) * 2009-09-08 2011-04-13 中国工商银行股份有限公司 一种对Web页面进行自动化测试的装置及方法
US9003378B2 (en) * 2010-12-14 2015-04-07 Bmc Software, Inc. Client-side application script error processing
CN105677569A (zh) * 2016-01-11 2016-06-15 南京理工大学 基于事件处理器的Android自动化测试工具及测试方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005208749A (ja) * 2004-01-20 2005-08-04 Hitachi Electronics Service Co Ltd Webサービスシステム稼動監視方法及び稼動監視システム
CN101339532A (zh) * 2007-07-06 2009-01-07 中国银联股份有限公司 一种Web应用系统的自动化测试方法及装置
CN102012857A (zh) * 2009-09-08 2011-04-13 中国工商银行股份有限公司 一种对Web页面进行自动化测试的装置及方法
US9003378B2 (en) * 2010-12-14 2015-04-07 Bmc Software, Inc. Client-side application script error processing
CN105677569A (zh) * 2016-01-11 2016-06-15 南京理工大学 基于事件处理器的Android自动化测试工具及测试方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
一种基于事件处理函数的GUI测试方法;陈军成等;《软件学报》;20131231;全文 *
基于HTML代码分析的Web应用自动化测试方法研究;陈少林;《中国优秀硕士学位论文全文数据库信息科技辑》;20160815;全文 *
基于事件处理函数的GUI测试用例集约简技术;陈军成等;《软件学报》;20151231;全文 *

Also Published As

Publication number Publication date
CN107038117A (zh) 2017-08-11

Similar Documents

Publication Publication Date Title
US10552301B2 (en) Completing functional testing
CN108614707B (zh) 静态代码检查方法、装置、存储介质和计算机设备
US9195572B2 (en) Systems and methods for identifying user interface (UI) elements
Ocariza et al. An empirical study of client-side JavaScript bugs
CN110442511B (zh) 可视化埋点测试方法及装置
CN107291438B (zh) 自动化脚本的生成方法、装置及电子设备
CN107038117B (zh) 一种基于事件处理函数间定义-引用的web自动化测试方法
US8875103B2 (en) Method of testing multiple language versions of a software system using one test script
US9262311B1 (en) Network page test system and methods
CN110908895A (zh) 页面自动化测试方法、装置、计算机设备及存储介质
US8745727B2 (en) Graphical user interface tester
US12079298B2 (en) Methods and systems for browser extension used to generate relative XPath, absolute XPath and/or CSS selectors
WO2017044069A1 (en) Automatic regression identification
CN111679976A (zh) 一种页面对象的查找方法及装置
US20210224184A1 (en) Automation Testing Tool Framework
CN112882933A (zh) 脚本录制方法、装置、设备及存储介质
WO2017164856A1 (en) Comparable user interface object identifications
US10846206B2 (en) Adaptive software testing
CN117493158A (zh) 测试方法及其装置、电子设备、存储介质
KR20100069147A (ko) 웹사이트 품질 테스트 방법 및 시스템
CN110413518B (zh) 控件对象库的生成方法及生成装置和计算机可读存储介质
CN112667502A (zh) 页面测试方法、装置及介质
Wang et al. Fast reproducing web application errors
JP7380851B2 (ja) テストスクリプト生成装置、テストスクリプト生成方法及びプログラム
US20140245159A1 (en) Transport script generation based on a user interface script

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20201106