CN107608874A - 测试方法和装置 - Google Patents
测试方法和装置 Download PDFInfo
- Publication number
- CN107608874A CN107608874A CN201610547984.4A CN201610547984A CN107608874A CN 107608874 A CN107608874 A CN 107608874A CN 201610547984 A CN201610547984 A CN 201610547984A CN 107608874 A CN107608874 A CN 107608874A
- Authority
- CN
- China
- Prior art keywords
- test
- tested
- component
- testing procedure
- testing
- 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
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
本申请公开了一种测试方法和装置,该方法包括:获取由一个或多个测试模板构成的测试用例,其中,测试模板中包括一个或多个测试步骤,测试步骤为对待测试对象所进行的操作,一个或多个测试步骤中的部分或者全部是用自然语言描述的;通过自然语言与机器语言的对应关系将测试用例中的测试步骤翻译成机器语言,其中,机器语言是机器能够识别并执行的语言;使用机器语言对待测试对象执行测试用例;记录测试结果。通过本申请可以使用自然语言来编写测试用例,还可以通过预先编辑的模板来创建测试用例,由于用例本身是可以直接执行的,从而省去了自动化测试过程中脚本开发的步骤。通过本申请解决现有技术中使用编制脚本进行自动化测试需要测试人员具有编程能力而导致的问题。
Description
技术领域
本发明涉及测试领域,具体而言,涉及一种测试方法和装置。
背景技术
随着技术的发展各种软件产品越来越多。尤其是随着互联网+时代到来,各种互联网产品也与日俱增,极大的方便了现代都市人的生活、商业和工作。互联网产品越来越普及到每个人的生活的点点滴滴,每天都有软件产品投入市场,随着各种需求的增加,已经上市的产品也在不停迭代更新加入新元素。
这些各种各样的软件在投入市场以前,都会有专门的产品质量检测过程。这些检测过程,会涉及到需要检查软件能否正常实现其功能和用户界面完整性。为了使用户对软件产品有较高的满意度,各软件开发商在软件质量测试环节投入了大量的人力和物力。
在目前的测试中,包括白盒测试、灰盒测试和黑盒测试,白盒测试一般情况下需要软件开发人员来进行,是通过代码的编写对已经完成的代码进行测试。黑盒测试是测试人员在不需要了解软件代码的情况下,根据功能测试的需求,对软件的功能进行测试。灰盒测试基于白盒测试和黑盒测试之间。
目前,黑盒测试需要靠人工来进行,一般提前写好需要测试的功能,然后由测试人员按照写好的步骤,一步一步进行执行,人工操作软件,再人工检查软件的响应和功能、性能或者用户界面的质量。操作过程和检查过程全部由人工完成,人工记录结果,生成测试报告。如果该功能没有通过,则该测试失败。在测试失败则记录测试结果,并且上报Bug,这种全人工测试耗时耗力,还容易出错。
这种人工测试的方式比较耗费人力,对企业来说成本比较高。而且人力测试有一些人为的因素,可以受到测试人员的工作状态影响。
在现有技术中,也有一种录制软件,该录制软件可以录制人的操作动作,然后对该动作进行重放,这样可以重复某种测试动作。但是这种录制测试方式在重放的时候受到录制的脚本的机器的限制,难以在另一台机器重放;或者是录制的脚本代表的动作本身就是不可重复的,导致脚本不具备可重用性。测试人员还可以编制测试脚本,通过编制测试脚本从而实现测试的部分自动化。但是,编制测试脚本需要测试人员需要基本的编程知识,一般情况下,非自动化测试人员不具有这样的技能,自动化工程师成本高,脚本开发维护本身也需要占用大量的人力、物理、财力,并花费大量时间,在被测试对象产生变化时的通用性不能保证等等,从而限制了使用编制测试脚本测试方式的推广。
针对现有技术中使用编制脚本进行自动化测试需要测试人员具有编程能力而导致的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种测试方法和装置,以至少解决现有技术中使用编制脚本进行自动化测试需要测试人员具有编程能力而导致的问题。
根据本发明实施例的一个方面,提供了一种测试方法,包括:获取由一个或多个测试模板构成的测试用例,其中,所述测试模板为预先编辑的,所述测试模板中包括一个或多个测试步骤,所述测试步骤为对待测试对象所进行的操作,所述一个或多个测试步骤中的部分或者全部是用自然语言描述的;通过自然语言与机器语言的对应关系将所述测试用例中的测试步骤翻译成机器语言,其中,所述机器语言是机器能够识别并执行的语言;使用所述机器语言对所述待测试对象执行所述测试用例;记录测试结果,其中,所述测试结果包括以下至少之一:执行所述测试用例得到的测试结果、执行所述测试模板得到的测试结果、执行所述测试步骤得到的测试结果。
进一步地,还包括:提供一个或多个自然语言描述的所述测试步骤供用户进行选择;接收用户选择的一个或多个测试步骤以及所述一个或多个测试步骤的顺序;将所述用户选择的一个或多个测试步骤按照所述顺序构成测试模板。
进一步地,还包括:接收用户设置的权限信息,其中,所述权限信息用于标识其他用户对所述测试模板的权限;接收所述其他用户对所述测试模板的请求,根据所述权限信息控制所述其他用户对测试模板的操作。
进一步地,在所述测试用例中的测试步骤需要输入参数的情况下,将所述测试用例中的测试步骤翻译成机器语言包括:获取参数,并将所述参数传递给对应的测试步骤并翻译成机器语言,其中,所述参数包括以下至少之一:测试所使用的数据、待测试的组件、控制所述待测试的组件所执行的动作。
进一步地,在所述参数包括所述待测试组件的信息的情况下,将上述参数传递给对应的测试步骤包括:根据所述待测试组件的信息查找到对应的待测试组件,并将所述待测试组件传递给对应的测试步骤。
进一步地,根据所述待测试组件的信息查找对应的待测试组件包括以下至少之一:在所述待测试组件的信息包括所述待测试组件的标识的情况下,根据所述待测试组件的标识查找对应的待测试组件;在所述待测试组件的信息包括所述待测试组件的路径的情况下,根据所述待测试组件的路径查找对应的待测试组件;在所述待测试组件的信息包括所述待测试组件的文字描述的情况下,根据所述文字描述进行检索并匹配到对应的待测试组件。
进一步地,根据所述文字描述进行检索并匹配到对应的待测试组件包括以下至少之一:在所述待测试对象中查找与所述文字描述匹配度超过阈值的字符或图片,查找距离所述字符预定范围内的组件作为所述待测试组件;在所述待测试对象中的注释信息中查找与所述文字描述匹配的字符或图片,查找到与所述文字描述匹配度超过阈值的字符或图片的注释信息,将该注释信息对应的组件作为所述待测试组件;在所述待测试对象中的组件的占位符中查找与所述文字描述匹配度超过阈值的占位符,将该占位符对应的组件作为所述待测试组件;根据所述测试对象的组件的布局关系和文字描述查找对应的组件作为所述待测试组件。
进一步地,记录所述测试结果包括:记录执行所述测试用例中每个测试步骤的过程以及执行所述每个测试步骤得到的结果。
进一步地,记录执行所述测试用例中的每个测试步骤包括:在执行每个测试步骤时,截取执行所述测试步骤的截图,并进行保存。
进一步地,所述方法还包括:将以下至少之一显示在所述截图上:将执行的所述测试步骤对应的自然语言描述、执行所述测试步骤对应的结果、执行所述测试步骤的时间。
进一步地,在记录所述测试结果之后,所述方法还包括:将所述测试结果与预先设置的预期测试结果进行比对,根据比对结果确定测试是否通过。
进一步地,在所述比对结果为测试不通过的情况下,所述方法还包括:将所述测试结果、所述测试步骤以及测试过程中产生的中间文件进行记录。
进一步地,所述待测试对象包括以下之一:用户界面、客户端软件、服务端软件、硬件驱动程序、操作***上的应用程序、操作***。
根据本申请实施例的另一个方面,还提供了一种测试装置,包括:获取模块,用于获取由一个或多个测试模板构成的测试用例,其中,所述测试模板为预先编辑的,所述测试模板中包括一个或多个测试步骤,所述测试步骤为对待测试对象所进行的操作,所述一个或多个测试步骤中的部分或者全部是用自然语言描述的;翻译模块,用于通过自然语言与机器语言的对应关系将所述测试用例中的测试步骤翻译成机器语言,其中,所述机器语言是机器能够识别并执行的语言;执行模块,用于使用所述机器语言对所述待测试对象执行所述测试用例;记录模块,用于记录测试结果,其中,所述测试结果包括以下至少之一:执行所述测试用例得到的测试结果、执行所述测试模板得到的测试结果、执行所述测试步骤得到的测试结果。
通过本申请实施例,采用了获取由一个或多个测试模板构成的测试用例,其中,测试模板中包括一个或多个测试步骤,测试步骤为对待测试对象所进行的操作,一个或多个测试步骤中的部分或者全部是用自然语言描述的;通过自然语言与机器语言的对应关系将测试用例中的测试步骤翻译成机器语言,其中,机器语言是机器能够识别并执行的语言;使用机器语言对待测试对象执行测试用例;记录测试结果。通过本申请可以使用自然语言来编写测试用例,还可以通过预先编辑的模板来创建测试用例,由于用例本身是可以直接执行的,从而省去了自动化测试过程中脚本开发的步骤。通过本申请解决现有技术中使用编制脚本进行自动化测试需要测试人员具有编程能力而导致的问题。
说明书附图
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本申请实施例的测试方法的流程图;
图2是根据本申请实施例的测试装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本实施例中,提供了一种测试方法,图1是根据本申请实施例的测试方法的结构框图,如图1所示,该流程包括如下步骤:
步骤S102,获取由一个或多个测试模板构成的测试用例,其中,该测试模板为预先编辑的,该测试模板中包括一个或多个测试步骤,该测试步骤为对待测试对象所进行的操作,该一个或多个测试步骤中的部分或者全部是用自然语言描述的;
步骤S104,通过自然语言与机器语言的对应关系将该测试用例中的测试步骤翻译成机器语言,其中,该机器语言是机器能够识别并执行的语言;使用该机器语言对该待测试对象执行该测试用例;
步骤S106,记录测试结果,其中,该测试结果包括以下至少之一:执行该测试用例得到的测试结果、执行该测试模板得到的测试结果、执行该测试步骤得到的测试结果。
通过上述步骤,可以让测试人员使用自然语言来进行编辑测试步骤,该测试步骤由于可以使用自然语言来进行编辑,使测试用例的编辑更加简便。这些自然语言与机器语言的对应可以预先存储,然后将自然语言提供给测试人员,测试人员使用提供的自然语言来进行编辑。编辑完测试用例之后,提交编辑好的测试用例。在执行测试用例的时候,根据预先存储的自然语言与机器语言的对应关系,将自然语言翻译成机器语言。机器语言是可以直接执行的,从而在编辑完测试用例之后,该测试用例也可以执行。由于用例的本身是可以执行的,因此,通过上述步骤可以不需要懂编程语言的人就可以进行自动化测试,从而解决了现有技术中使用编制脚本进行自动化测试需要测试人员具有编程能力而导致的问题,推广了自动化侧。
在上述步骤,测试人员在使用自然语言编辑了测试步骤之后,由于该测试步骤可能被其他的测试人员使用,从而可以保存该测试步骤。多个测试步骤可以完成一个功能的测试,如果该功能可能被重复使用,或者该功能是另一个功能的基础,另一个功能的测试需要首先完成对第一个功能的测试,此时可以将这些测试步骤存成一个测试模板。该测试模板可以被调用。例如,可以将登录功能中的多个测试步骤写成一个测试模板,称为是“登录”。当需要测试修改用户资料的功能时,需要首先进行登录,此时,可以首先调用“登录”的模板,然后再使用自然语言编辑“修改用户资料”的测试步骤,同时也可以将“修改用户资料”的测试步骤保存为另一个测试模板。通过这样的一个配置,可以做到测试模板的重复利用。
在上述步骤中,还有一个比较好的效果,由于区分了测试步骤、测试模板以及测试用例,在记录测试结果的时候,可以选择不同的维度来记录测试结果。可以记录每一个测试步骤的测试结果,也可以记录一个测试模板的测试结果,同时还可以记录整个测试用例的测试结果。
测试用例的构成可以包括一个或多个测试模板,也可以包括测试模板和测试步骤;或者,测试用例也可以进行保存,以供下次测试的时候使用。
上述的步骤可以由单个的计算机执行,可以将上述的测试方法做成一个软件,该软件可以为单机版,在测试的时候,可以在计算机上运行该软件,然后提示用户其支持的自然语言,并且,给出该自然语言的使用提示,在用户编辑完测试用例之后,可以在该计算机上执行。或者也可以将该测试用例导出到其他安装在该软件的计算机,从而可以执行。
在一个比较优的实施例中,可以BS架构来实现上述步骤,用户可以通过浏览器网页,然后,用户可以在网页上编辑测试步骤、编辑测试模板、编辑测试用例、选择测试步骤、选择测试模板、选择测试用例。在完成测试用例的编辑或者选择之后,提交到后台的服务器,然后服务器可以实现从自然语言到机器语言的转变的。得到机器语言之后,服务器可以执行该机器语言。通过BS架构来实现的是比较有优势的,不同的用户均不用在自己的计算机上安装任何的应用程序,只要通过浏览器就可以访问来进行测试。并且,所有用户的测试步骤、测试模板和测试用例均可以保存在服务器上,这样就不需要导出测试用例,直接进行测试就可以了。
在BS架构中,可以将服务器设置公司的内部,供公司内部人员的测试使用。或者也可以将服务器设置在公网服务器上,不同公司可以拥有自己独立的账号,并且,给自己的测试人员来分配账号。
上述步骤的测试方法是比较容易测试网站和网页的,假定需要测试www.testtesttesttest.com这个网站,只要编辑完用例,服务器就可以在该网站上进行测试,测试完毕之后保留测试结果就可以。
当然,上述步骤的测试方法也可以用来测试服务端的软件,此时服务端的软件可以安装在某一台测试计算机上,然后将测试计算机上的服务端用来提供的网络地址通过网页进行设置,然后在通过该网络地址在该计算机上的服务端执行测试用例。
在另外一个实施例中,也可以使用这种BS架构的测试工具来进行测试用例的编辑和管理。作为一个比较好的实施方式,用户也可以自己编辑自然语言与机器语言的对应关系,这样可以将机器语言使用较容易的自然语言进行表达。这样,用户可以根据自己的需要来设置机器语言和自然语言的对应关系。
在编辑测试用例的时候,还可以提供测试步骤执行的逻辑关系,如果测试用例中有多个测试步骤的时候,可以将这些测试步骤设置为并行运行;或者这些测试步骤也可以按照一定的顺序进行运行。并行运行也可以理解为一种顺序。需要说明的是,机器语言可以是一种脚本语言,脚本语言本身是按照顺序来执行的。机器语言还可以是包括逻辑关系的语言,这种逻辑关系也可以体现在用户对测试步骤的编辑上,例如,将这种逻辑关系用一种比较形象的关系表现出来供用户进行选择,一方面,用户可以选择需要执行的测试步骤,另一方面,用户还可以选择执行该测试步骤的逻辑关系。当然,这种逻辑关系的体现,也可以体现在测试模板上,或者是测试用例上。
例如,可以提供一个或多个自然语言描述的测试步骤供用户进行选择;接收用户选择的一个或多个测试步骤以及该一个或多个测试步骤的顺序;将该用户选择的一个或多个测试步骤按照该顺序构成测试模板。举一个形象的例子,在测试的是,需要测试同时登录5个用户,可以并行调用五次登录的测试模板,这样就完成了并行的测试,如果需要的话可以将此存储为测试用例,可以命名为“并行登录”。如果需要测试同时登录5个用户,然后再测试依次退出,可以首先调用“并行登录”测试用例,然后串行调用退出的测试模板。退出的测试模板可以包括多个测试步骤。
当有很多用户使用的该工具进行测试的时候,由于某些用户可能希望自己编辑的测试模板不能被其他的用户使用,此时,可以让用户设置权限信息。该权限信息用于标识其他用户对该测试模板的权限。如果设置了权限信息,在接收其他用户对该测试模板的请求的时候,可以根据该权限信息控制其他用户对测试模板的操作。测试模板可以设置不同的权限,作为一个可选的实施例,还可以为测试用例来设置不同的权限。作为另一个可选的实施例,如果用户可以自己编辑自然语言和机器语言的对应关系,此时用户自己编辑的测试用例也可以设置不同的权限。
在测试的时候,有时是需要在测试步骤中输入参数,或者也需要找到待测试组件,或者还可以输入待测试组件所执行的动作。在本实施例中,作为可选的实施例,可以实现输入参数、测试组件以及测试组件所执行的动作的分离,可以分别设置参数、组件、和组件执行的动作,从而实现了参数、组件、动作的分离。例如,测试用例中的测试步骤需要输入参数的情况下,将该测试用例中的测试步骤翻译成机器语言包括:获取参数,并将该参数传递给对应的测试步骤并翻译成机器语言,其中,该参数包括以下至少之一:测试所使用的数据、待测试的组件、控制该待测试的组件所执行的动作。
组件是可以直接指定的,但是在某种情况下,是无法寻找到组件的,此时可以提供一些组件的信息,由服务器提供查找组件的服务,根据组件的信息来自动查找到需要进行测试的组件。即在该参数包括该待测试组件的信息的情况下,将上述参数传递给对应的测试步骤包括:根据该待测试组件的信息查找到对应的待测试组件,并将该待测试组件传递给对应的测试步骤。
下面举例说明如何根据这些参数查找到测试组件的。这些例子是可以结合使用的,也可以单独使用。
例1
在该待测试组件的信息包括该待测试组件的标识的情况下,这种情况是比较直接的,只要根据该待测试组件的标识查找对应的待测试组件即可。例如,需要寻找一个ID为3的组件,那么直接在被测试对象中查找该ID即可。
例2
不仅仅是测试组件的标识是一种比较直接的指示信息,在某种情况下,也可以直接给出该组件的路径,在该待测试组件的信息包括该待测试组件的路径的情况下,根据该待测试组件的路径查找对应的待测试组件。
例3
还有另外一种情况,可能无法知道具体的组件的标识,也不知道组件的路径。但是,测试人员可以大致知道该测试组件的文字描述,在该待测试组件的信息包括该待测试组件的文字描述的情况下,根据该文字描述进行检索并匹配到对应的待测试组件。
由于文字描述对于设备而言是一种不是那么严谨的描述方式,可以考虑采用如下至少之一的查找方式。在以下的查找方式中,模拟了人类的思维。
在该待测试对象中查找与该文字描述匹配度超过阈值的字符或图片,查找距离该字符预定范围内的组件作为该待测试组件;例如,需要寻找用户名的输入框,此时,可以首先寻找“用户”或者“用户名”的文字描述,那么按照正常的思路,在这些文字后面不远的地方就应当是用户名的输入框。
在该待测试对象中的注释信息中查找与该文字描述匹配的字符或图片,查找到与该文字描述匹配度超过阈值的字符或图片的注释信息,将该注释信息对应的组件作为该待测试组件;例如,有些组件是具有Tips的,虽然这些Tips中的内容并不直接显示在用户界面上,但是,当鼠标滑过这些组件的时候,Tips中的内容是会被显示的。此时,可以在Tips中查找相关文字描述,如果找到,那么该Tips对应的组件就是希望找到的组件了。
在该待测试对象中的组件的占位符中查找与该文字描述匹配度超过阈值的占位符,将该占位符对应的组件作为该待测试组件;例如,占位符可以是默认显示在一个文本框或者输入框中的文字,例如,在某个输入框中希望用户输入一些地方的名字,那么占位符的内容可以是“北京”等地区的名字。当用户输入自己希望的地名时,北京这两个字就被取代了。这些占位符的内容也可以作为被检索的内容,当在占位符中搜索到希望的文字时,可以确定该占位符所对应的组件就是希望进行测试的组件。
根据该测试对象的组件的布局关系和文字描述查找对应的组件作为该待测试组件。例如,希望在测试的时候,从测试对象的UI中删除一个用户A,此时需要点击删除按钮。但是在UI中存在多个用户:用户A、用户B、用户C等等,每一个用户后面均跟随着一个删除按钮。此时,可以寻找用户A,按照布局关系,跟用户A有一定布局关系删除按钮就是用来删除用户A的。
对于测试结果的记录,可以仅仅简单记录最终的测试结果。作为一个可选的方式,也可以记录执行该测试用例中每个测试步骤的过程以及执行该每个测试步骤得到的结果。
在记录的时候,可以采用截图的方式,即在执行每个测试步骤时,截取执行该测试步骤的截图,并进行保存。
更优地,将以下至少之一显示在该截图上:将执行的该测试步骤对应的自然语言描述、执行该测试步骤对应的结果、执行该测试步骤的时间。
当然,测试结果的比对也可以使用机器来自动执行,在记录该测试结果之后,该方法还包括:将该测试结果与预先设置的预期测试结果进行比对,根据比对结果确定测试是否通过。作为一个比较优的实施方式,在该比对结果为测试不通过的情况下,该方法还可以将该测试结果、该测试步骤以及测试过程中产生的中间文件进行记录。
本实施例可以而已软件进行测试,也可以对硬件进行测试,例如,待测试对象包括以下之一:用户界面UI(例如,网页)、客户端软件、服务端软件、硬件驱动程序、操作***上的应用程序、操作***。本实施例比较优的是对BS架构的网站的测试。用户界面还可以包括各种智能设备的各种界面,例如,手机当中所适用的UI,或者手机当中各种APP所适用的UI。智能设备并不局限于手机,各种智能设备的UI都可以适用本实施例中的测试方法或者下文中的测试装置来进行测试。
在本实施例中还提供了一种测试装置,图2是根据本发明实施例的测试装置的结构框图,如图2所示,该测试装置包括:
获取模块22,用于获取由一个或多个测试模板构成的测试用例,其中,该测试模板为预先编辑的,该测试模板中包括一个或多个测试步骤,该测试步骤为对待测试对象所进行的操作,该一个或多个测试步骤中的部分或者全部是用自然语言描述的;
翻译模块24,用于通过自然语言与机器语言的对应关系将该测试用例中的测试步骤翻译成机器语言,其中,该机器语言是机器能够识别并执行的语言;
执行模块26,用于使用该机器语言对该待测试对象执行该测试用例;
记录模块28,用于记录测试结果,其中,该测试结果包括以下至少之一:执行该测试用例得到的测试结果、执行该测试模板得到的测试结果、执行该测试步骤得到的测试结果。
上述方法实施例以及实施方式中对应的内容,在装置实施例中同样适用。这样装置实施例中的模块或者单元可以认为是一种软件,该软件可以存储在存储装置中,也可以在CPU中来执行。
下面结合一个可选的实施例进行说明。本实施例中的自动化测试***可以实现如下功能:
用自然语言来写测试用例;
提前把抽象化/数字化测试用例的模板做好,后台完成对自然语言的解析;
后台自动生成一整套代码运行测试流程;
使用户对组件对象的搜索不用输入太多的参数和关键字即可完成解析;
集成测试环境后台化,用户不用自己动手搭建自动化环境,节省大量时间;
自动生成详细的步骤报告和截图;
生成的截图上精确的标记缺陷,可以直观的还原真实的场景重现;
支持动态数据,测试用例可复用,其他自动化工具录制的脚本做不到。
在本实施例中,通过测试用例模板以及测试数据模块来设计测试场景,并且,灵活的测试用例重用机制,规避以往录制脚本不可重用的弊端,测试用例一旦创建即可自动运行,运行过程可视化,自动捕捉缺陷并且自动生成缺陷报告,还可自动进行缺陷验证。支持网站和手机应用(iOS,android),实现产品平台全面覆盖,集成的测试环境覆盖不同浏览器厂商和版本,以及iOS和android各个主流***版本。
通过本实施例,因为每个测试对象的功能、测试需求的范围有所不同,包括每个产品周期的长短也不同,所以可以根据产品具体情况的需要来选择在自动化测试***中覆盖的范围和频率。也可以根据不同平台的产品需求,同时运行不同平台的测试用例。自动化测试***适用于功能模块不同大小以及产品周期不同长短的各种产品,是最经济实用且高效的一种自动化测试解决方案。自动化测试***的工具有很多种,在不单一依赖一种工具的情况下,可在各产品已有的实体自动化框架内进行自动化测试。。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种测试方法,其特征在于,包括:
获取由一个或多个测试模板构成的测试用例,其中,所述测试模板为预先编辑的,所述测试模板中包括一个或多个测试步骤,所述测试步骤为对待测试对象所进行的操作,所述一个或多个测试步骤中的部分或者全部是用自然语言描述的;
通过自然语言与机器语言的对应关系将所述测试用例中的测试步骤翻译成机器语言,其中,所述机器语言是机器能够识别并执行的语言;
使用所述机器语言对所述待测试对象执行所述测试用例;
记录测试结果,其中,所述测试结果包括以下至少之一:执行所述测试用例得到的测试结果、执行所述测试模板得到的测试结果、执行所述测试步骤得到的测试结果。
2.根据权利要求1所述的方法,其特征在于,还包括:
提供一个或多个自然语言描述的所述测试步骤供用户进行选择;
接收用户选择的一个或多个测试步骤以及所述一个或多个测试步骤的顺序;
将所述用户选择的一个或多个测试步骤按照所述顺序构成测试模板。
3.根据权利要求2所述的方法,其特征在于,还包括:
接收用户设置的权限信息,其中,所述权限信息用于标识其他用户对所述测试模板的权限;
接收所述其他用户对所述测试模板的请求,根据所述权限信息控制所述其他用户对测试模板的操作。
4.根据权利要求1所述的方法,其特征在于,在所述测试用例中的测试步骤需要输入参数的情况下,将所述测试用例中的测试步骤翻译成机器语言包括:
获取参数,并将所述参数传递给对应的测试步骤并翻译成机器语言,其中,
所述参数包括以下至少之一:测试所使用的数据、待测试的组件、控制所述待测试的组件所执行的动作。
5.根据权利要求4所述的方法,其特征在于,在所述参数包括所述待测试组件的信息的情况下,将上述参数传递给对应的测试步骤包括:
根据所述待测试组件的信息查找到对应的待测试组件,并将所述待测试组件传递给对应的测试步骤。
6.根据权利要求5所述的方法,其特征在于,根据所述待测试组件的信息查找对应的待测试组件包括以下至少之一:
在所述待测试组件的信息包括所述待测试组件的标识的情况下,根据所述待测试组件的标识查找对应的待测试组件;
在所述待测试组件的信息包括所述待测试组件的路径的情况下,根据所述待测试组件的路径查找对应的待测试组件;
在所述待测试组件的信息包括所述待测试组件的文字描述的情况下,根据所述文字描述进行检索并匹配到对应的待测试组件。
7.根据权利要求6所述的方法,其特征在于,根据所述文字描述进行检索并匹配到对应的待测试组件包括以下至少之一:
在所述待测试对象中查找与所述文字描述匹配度超过阈值的字符或图片,查找距离所述字符预定范围内的组件作为所述待测试组件;
在所述待测试对象中的注释信息中查找与所述文字描述匹配的字符或图片,
查找到与所述文字描述匹配度超过阈值的字符或图片的注释信息,将该注释信息对应的组件作为所述待测试组件;
在所述待测试对象中的组件的占位符中查找与所述文字描述匹配度超过阈值的占位符,将该占位符对应的组件作为所述待测试组件;
根据所述测试对象的组件的布局关系和文字描述查找对应的组件作为所述待测试组件。
8.根据权利要求1所述的方法,其特征在于,记录所述测试结果包括:
记录执行所述测试用例中每个测试步骤的过程以及执行所述每个测试步骤得到的结果。
9.根据权利要求7所述的方法,其特征在于,记录执行所述测试用例中的每个测试步骤包括:
在执行每个测试步骤时,截取执行所述测试步骤的截图,并进行保存。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
将以下至少之一显示在所述截图上:将执行的所述测试步骤对应的自然语言描述、执行所述测试步骤对应的结果、执行所述测试步骤的时间。
11.根据权利要求1至10中任一项所述的方法,其特征在于,在记录所述测试结果之后,所述方法还包括:
将所述测试结果与预先设置的预期测试结果进行比对,根据比对结果确定测试是否通过。
12.根据权利要求11所述的方法,其特征在于,在所述比对结果为测试不通过的情况下,所述方法还包括:
将所述测试结果、所述测试步骤以及测试过程中产生的中间文件进行记录。
13.根据权利要求1至10中任一项所述的方法,其特征在于,所述待测试对象包括以下之一:用户界面、客户端软件、服务端软件、硬件驱动程序、操作***上的应用程序、操作***。
14.一种测试装置,其特征在于,包括:
获取模块,用于获取由一个或多个测试模板构成的测试用例,其中,所述测试模板为预先编辑的,所述测试模板中包括一个或多个测试步骤,所述测试步骤为对待测试对象所进行的操作,所述一个或多个测试步骤中的部分或者全部是用自然语言描述的;
翻译模块,用于通过自然语言与机器语言的对应关系将所述测试用例中的测试步骤翻译成机器语言,其中,所述机器语言是机器能够识别并执行的语言;
执行模块,用于使用所述机器语言对所述待测试对象执行所述测试用例;
记录模块,用于记录测试结果,其中,所述测试结果包括以下至少之一:执行所述测试用例得到的测试结果、执行所述测试模板得到的测试结果、执行所述测试步骤得到的测试结果。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610547984.4A CN107608874A (zh) | 2016-07-12 | 2016-07-12 | 测试方法和装置 |
PCT/CN2017/090999 WO2018010552A1 (zh) | 2016-07-12 | 2017-06-30 | 测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610547984.4A CN107608874A (zh) | 2016-07-12 | 2016-07-12 | 测试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107608874A true CN107608874A (zh) | 2018-01-19 |
Family
ID=60951954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610547984.4A Pending CN107608874A (zh) | 2016-07-12 | 2016-07-12 | 测试方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107608874A (zh) |
WO (1) | WO2018010552A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108717392A (zh) * | 2018-04-11 | 2018-10-30 | 南京思博特智能科技有限公司 | 一种智能软件自动化测试方法 |
CN108763066A (zh) * | 2018-05-15 | 2018-11-06 | 南京璇玑信息技术有限公司 | 一种词槽设计的自然语言测试脚本编辑方法及测试机器人 |
CN109189690A (zh) * | 2018-09-17 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种阶段测试方法及装置 |
CN109818833A (zh) * | 2019-03-14 | 2019-05-28 | 北京信而泰科技股份有限公司 | 一种以太网测试***和以太网测试方法 |
CN109815127A (zh) * | 2018-12-21 | 2019-05-28 | 浙江数链科技有限公司 | 自动化脚本转换方法、装置、计算机设备和存储介质 |
CN110377516A (zh) * | 2019-07-17 | 2019-10-25 | 拉扎斯网络科技(上海)有限公司 | 测试方法、装置、电子设备及计算机可读存储介质 |
CN111124938A (zh) * | 2020-03-31 | 2020-05-08 | 四川新网银行股份有限公司 | 组件化的测试用例的生成方法 |
CN111382055A (zh) * | 2018-12-29 | 2020-07-07 | 贝壳技术有限公司 | 一种基于统一描述语言的自动化单元测试方法及装置 |
CN111475410A (zh) * | 2020-03-31 | 2020-07-31 | 北京经纬恒润科技有限公司 | 一种测试用例生成方法及装置 |
CN111488275A (zh) * | 2020-04-03 | 2020-08-04 | 携程旅游网络技术(上海)有限公司 | Ui自动化测试方法、装置、存储介质及电子设备 |
CN112148616A (zh) * | 2020-09-30 | 2020-12-29 | 中国民航信息网络股份有限公司 | 一种性能测试管理平台 |
CN115629295A (zh) * | 2022-11-30 | 2023-01-20 | 苏州萨沙迈半导体有限公司 | 芯片自动化测试***、方法及存储介质 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108959067B (zh) * | 2018-05-31 | 2023-04-07 | 康键信息技术(深圳)有限公司 | 搜索引擎的测试方法、装置及计算机可读存储介质 |
CN109815145B (zh) * | 2019-01-18 | 2023-03-21 | 中国农业银行股份有限公司 | 一种批量程序测试方法及装置 |
CN109800395A (zh) * | 2019-01-25 | 2019-05-24 | 广东电网有限责任公司 | 一种变电站自动化设备测试方法 |
CN110096259A (zh) * | 2019-03-15 | 2019-08-06 | 佛山青藤信息科技有限公司 | 一种Web页面元素定位方法及*** |
CN110287095A (zh) * | 2019-05-20 | 2019-09-27 | 深圳壹账通智能科技有限公司 | 一种自动化测试方法、装置及存储介质 |
CN112214390B (zh) * | 2019-07-09 | 2024-01-30 | 腾讯科技(深圳)有限公司 | 一种测试用例生成方法、装置、***、设备及介质 |
CN112905441A (zh) * | 2019-12-04 | 2021-06-04 | 阿里巴巴集团控股有限公司 | 测试用例生成方法、测试方法、装置及设备 |
CN111459796B (zh) * | 2020-02-27 | 2024-03-15 | 西安广和通无线软件有限公司 | 自动化测试方法、装置、计算机设备和存储介质 |
CN111459818B (zh) * | 2020-03-31 | 2023-11-21 | 中国银行股份有限公司 | 可视化测试方法及装置 |
CN113704079B (zh) * | 2020-05-22 | 2024-06-18 | 北京沃东天骏信息技术有限公司 | 基于Protobuf的接口测试方法和装置 |
CN111813687A (zh) * | 2020-07-20 | 2020-10-23 | 网易(杭州)网络有限公司 | 测试方法、装置、控制终端、测试设备及存储介质 |
CN112162916B (zh) * | 2020-08-31 | 2024-04-19 | 北京交大思诺科技股份有限公司 | 可自动生成测试脚本的lkj测试*** |
CN112115058B (zh) * | 2020-09-25 | 2024-03-29 | 建信金融科技有限责任公司 | 测试方法及装置、测试用例生成方法及装置、测试*** |
CN112527630B (zh) * | 2020-11-18 | 2023-07-07 | 平安消费金融有限公司 | 测试用例生成方法、装置、计算机设备和存储介质 |
CN112685322B (zh) * | 2021-01-12 | 2022-10-04 | 武汉思普崚技术有限公司 | 一种客制化测试方法、装置及*** |
CN113505065A (zh) * | 2021-07-09 | 2021-10-15 | 深圳市泛海检测认证有限公司 | 一种基于Android平台自动化测试的实现方法 |
CN113742244A (zh) * | 2021-09-17 | 2021-12-03 | 中国银行股份有限公司 | 一种大数据测试平台及数据处理方法 |
CN114253867B (zh) * | 2022-03-02 | 2022-06-14 | 北京仁科互动网络技术有限公司 | 基于神经网络模型的自动化测试方法、装置及*** |
CN115174383B (zh) * | 2022-05-30 | 2024-03-22 | 青岛海尔科技有限公司 | 设备更新方法、存储介质及电子装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391794A (zh) * | 2014-12-03 | 2015-03-04 | 浪潮集团有限公司 | 一种多种脚本自动测试方法 |
US9021440B1 (en) * | 2014-08-11 | 2015-04-28 | Pmc-Sierra Us, Inc. | System and method for automated test script generation |
CN104932980A (zh) * | 2015-06-30 | 2015-09-23 | 北京奇虎科技有限公司 | 软件自动测试方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7844861B2 (en) * | 2006-11-27 | 2010-11-30 | Red Hat, Inc. | Automatic generation of test cases from error data |
US8887135B2 (en) * | 2012-03-30 | 2014-11-11 | NIIT Technologies Ltd | Generating test cases for functional testing of a software application |
CN102779091B (zh) * | 2012-06-18 | 2016-01-20 | 中兴通讯股份有限公司 | 测试转化方法及装置 |
CN103218292B (zh) * | 2013-03-29 | 2015-09-23 | 北京控制工程研究所 | 一种航天星载软件自动测试*** |
-
2016
- 2016-07-12 CN CN201610547984.4A patent/CN107608874A/zh active Pending
-
2017
- 2017-06-30 WO PCT/CN2017/090999 patent/WO2018010552A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9021440B1 (en) * | 2014-08-11 | 2015-04-28 | Pmc-Sierra Us, Inc. | System and method for automated test script generation |
CN104391794A (zh) * | 2014-12-03 | 2015-03-04 | 浪潮集团有限公司 | 一种多种脚本自动测试方法 |
CN104932980A (zh) * | 2015-06-30 | 2015-09-23 | 北京奇虎科技有限公司 | 软件自动测试方法及装置 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108717392A (zh) * | 2018-04-11 | 2018-10-30 | 南京思博特智能科技有限公司 | 一种智能软件自动化测试方法 |
CN108763066A (zh) * | 2018-05-15 | 2018-11-06 | 南京璇玑信息技术有限公司 | 一种词槽设计的自然语言测试脚本编辑方法及测试机器人 |
CN109189690A (zh) * | 2018-09-17 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种阶段测试方法及装置 |
CN109815127A (zh) * | 2018-12-21 | 2019-05-28 | 浙江数链科技有限公司 | 自动化脚本转换方法、装置、计算机设备和存储介质 |
CN111382055B (zh) * | 2018-12-29 | 2023-09-15 | 贝壳技术有限公司 | 一种基于统一描述语言的自动化单元测试方法及装置 |
CN111382055A (zh) * | 2018-12-29 | 2020-07-07 | 贝壳技术有限公司 | 一种基于统一描述语言的自动化单元测试方法及装置 |
CN109818833B (zh) * | 2019-03-14 | 2021-08-17 | 北京信而泰科技股份有限公司 | 一种以太网测试***和以太网测试方法 |
CN109818833A (zh) * | 2019-03-14 | 2019-05-28 | 北京信而泰科技股份有限公司 | 一种以太网测试***和以太网测试方法 |
CN110377516A (zh) * | 2019-07-17 | 2019-10-25 | 拉扎斯网络科技(上海)有限公司 | 测试方法、装置、电子设备及计算机可读存储介质 |
CN111475410A (zh) * | 2020-03-31 | 2020-07-31 | 北京经纬恒润科技有限公司 | 一种测试用例生成方法及装置 |
CN111124938A (zh) * | 2020-03-31 | 2020-05-08 | 四川新网银行股份有限公司 | 组件化的测试用例的生成方法 |
CN111488275A (zh) * | 2020-04-03 | 2020-08-04 | 携程旅游网络技术(上海)有限公司 | Ui自动化测试方法、装置、存储介质及电子设备 |
CN111488275B (zh) * | 2020-04-03 | 2023-08-25 | 携程旅游网络技术(上海)有限公司 | Ui自动化测试方法、装置、存储介质及电子设备 |
CN112148616A (zh) * | 2020-09-30 | 2020-12-29 | 中国民航信息网络股份有限公司 | 一种性能测试管理平台 |
CN112148616B (zh) * | 2020-09-30 | 2024-04-26 | 中国民航信息网络股份有限公司 | 一种性能测试管理平台 |
CN115629295A (zh) * | 2022-11-30 | 2023-01-20 | 苏州萨沙迈半导体有限公司 | 芯片自动化测试***、方法及存储介质 |
CN115629295B (zh) * | 2022-11-30 | 2023-04-14 | 苏州萨沙迈半导体有限公司 | 芯片自动化测试***、方法及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2018010552A1 (zh) | 2018-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107608874A (zh) | 测试方法和装置 | |
CN107908541B (zh) | 接口测试方法、装置、计算机设备及存储介质 | |
CN106528395B (zh) | 测试用例的生成方法及装置 | |
US8819642B2 (en) | Method and system for generating and processing black box test cases | |
CN105095059B (zh) | 一种自动化测试的方法和装置 | |
CN105373478B (zh) | 自动化测试方法和*** | |
CN109582563B (zh) | 测试案例的测试方法、装置、计算机设备及存储介质 | |
CN105095207B (zh) | 检索、获取应用软件内容的方法和装置 | |
CN108763091A (zh) | 用于回归测试的方法、装置及*** | |
CN112363953B (zh) | 基于爬虫技术和规则引擎的接口测试用例生成方法及*** | |
CN110795085A (zh) | 移动应用可视化编辑方法及工具 | |
CN112380255A (zh) | 一种业务处理方法、装置、设备和存储介质 | |
CN107305527A (zh) | 代码文件的处理方法和装置 | |
CN107340954A (zh) | 一种信息提取方法和装置 | |
CN106598991A (zh) | 一种使用会话方式实现与网站交互表单自动提取的网络爬虫*** | |
CN109344053A (zh) | 接口覆盖测试方法、***、计算机设备和存储介质 | |
CN109657125A (zh) | 基于网络爬虫的数据处理方法、装置、设备及存储介质 | |
CN107506294A (zh) | 可视化自动化测试方法、装置、存储介质和计算机设备 | |
CN109582560A (zh) | 测试文件编辑方法、装置、设备及计算机可读存储介质 | |
CN111258881A (zh) | 一种用于工作流程测试的智能测试*** | |
CN105117340B (zh) | 用于iOS浏览器应用质量评估的URL检测方法和装置 | |
CN113392303A (zh) | 后台***方法、装置、设备和计算机可读存储介质 | |
CN114003451B (zh) | 一种接口测试方法、装置、***及介质 | |
CN109359053A (zh) | 测试报告的生成方法和相关装置、测试***及存储介质 | |
CN108021503A (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: 20180119 |
|
RJ01 | Rejection of invention patent application after publication |