CN106874202A - 用于单元测试的方法、装置以及可读存储介质 - Google Patents

用于单元测试的方法、装置以及可读存储介质 Download PDF

Info

Publication number
CN106874202A
CN106874202A CN201710079309.8A CN201710079309A CN106874202A CN 106874202 A CN106874202 A CN 106874202A CN 201710079309 A CN201710079309 A CN 201710079309A CN 106874202 A CN106874202 A CN 106874202A
Authority
CN
China
Prior art keywords
unit
test
code
input
generation
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
Application number
CN201710079309.8A
Other languages
English (en)
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.)
Alibaba China Co Ltd
Original Assignee
Netease Kaola Hangzhou Technology Co Ltd
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 Netease Kaola Hangzhou Technology Co Ltd filed Critical Netease Kaola Hangzhou Technology Co Ltd
Priority to CN201710079309.8A priority Critical patent/CN106874202A/zh
Publication of CN106874202A publication Critical patent/CN106874202A/zh
Pending legal-status Critical Current

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/3676Test management for coverage 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

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

本发明的实施方式提供了一种用于单元测试(unit testing)的方法和装置。该用于单元测试的方法包括:解析被测单元的信息得到输入参数和输出参数;根据所述输入参数和所述输出参数生成输入界面;通过所述输入界面接收所述输入参数的测试值和所述输出参数的期望输出值;根据所述测试值和所述期望输出值生成单元测试用例。本发明的方法使得测试人员无需关注被测单元的代码细节,而着重关注单元测试用例的覆盖率,让单元测试代码编写要求更加简单,从而显著地降低了单元测试代码中的重复工作,并且减少了测试人员的工作量,避免人为失误,为测试人员带来了更好的体验。此外,本发明的实施方式提供了一种用于单元测试的装置。

Description

用于单元测试的方法、装置以及可读存储介质
技术领域
本发明的实施方式涉及软件测试技术领域,更具体地,本发明的实施方式涉及用于单元测试的方法、装置以及可读存储介质。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
单元测试用于对软件中的最小可测试单元进行检查和验证。总的来说,单元就是人为规定的最小的被测功能模块。例如,对于方法级别的单元测试,一个完整的单元测试包括:测试输入、测试代码、测试输出、预期输出、以及验证代码等部分。
由于软件业务变更或者编写之初考虑不全面,单元测试常常需要对应地进行调整。相关技术中,在调整单元测试时,需要修改测试输入、预期输出、测试代码、以及验证代码等。可见基本上调整前的全部内容都需要调整一遍,调整过程中重复工作过多、工作量过多,以至于测试效率不高,并且调整时容易引起人为失误。
发明内容
可见,上述现有技术中的单元测试方法,出于测试数据与代码耦合,添加或修改测试用例时,需要先修改代码,再重新编译发布,有可能会影响测试代码本身的正确性。而且,单元测试代码要求书写者了解基本的代码设计,一个以功能测试为主的团队,往往需要专门安排多人维护单元测试代码或者直接由开发者自己编写。另外,这种单元测试方法让编写者花大精力去调试单元测试代码,弱化了用例本身的覆盖率。而且,所有的单元测试有一定的共通性,每一个单元测试都在重复一个类似的过程。如果不能抽象自动化,每个人都自由发挥,不仅占用时间,而且也容易出错。
为此,非常需要一种改进的用于单元测试的方法和装置,以使测试人员能够高质量和高效地进行单元测试。
在本上下文中,本发明的实施方式期望提供一种用于单元测试的方法和装置。
在本发明实施方式的第一方面中,提供了一种用于单元测试的方法,包括:解析被测单元的信息得到输入参数和输出参数;根据所述输入参数和所述输出参数生成输入界面;通过所述输入界面接收所述输入参数的测试值和所述输出参数的期望输出值;根据所述测试值和所述期望输出值生成单元测试用例。
在一些实施例中,基于前述方案,在生成单元测试用例之后还包括:根据所述单元测试用例生成单元测试代码。
在一些实施例中,基于前述方案,根据所述测试值和所述期望输出值生成单元测试用例包括:根据所述测试值和所述期望输出值生成XML配置文件。
在一些实施例中,基于前述方案,根据所述测试值和所述期望输出值生成XML配置文件之后还包括:根据所述XML配置文件生成单元测试代码。
在一些实施例中,基于前述方案,在生成单元测试代码之后还包括:将所述单元测试代码托管到自动化平台。
在一些实施例中,基于前述方案,在解析被测单元的信息得到输入参数和输出参数之前还包括:创建用于选择所述被测单元的界面。
在一些实施例中,基于前述方案,根据所述输入参数和所述输出参数生成输入界面包括:根据所述输入参数和所述输出参数在所述输入界面分别生成输入框。
在本发明实施方式的第二方面中,提供了一种用于单元测试的装置,包括:解析单元,用于解析被测单元的信息得到输入参数和输出参数;输入界面生成单元,用于根据所述输入参数和所述输出参数生成输入界面;数据接收单元,用于通过所述输入界面接收所述输入参数的测试值和所述输出参数的期望输出值;测试用例生成单元,用于根据所述测试值和所述期望输出值生成单元测试用例。
在一些实施例中,基于前述方案,所述装置还包括测试代码生成单元,用于在生成单元测试用例之后,根据所述单元测试用例生成单元测试代码。
在一些实施例中,基于前述方案,所述测试用例生成单元用于:根据所述测试值和所述期望输出值生成XML配置文件。
在一些实施例中,基于前述方案,所述装置还包括测试代码生成单元,用于根据所述测试值和所述期望输出值生成XML配置文件之后,根据所述XML配置文件生成单元测试代码。
在一些实施例中,基于前述方案,所述装置还包括平台托管单元,用于在生成单元测试代码之后,将所述单元测试代码托管到自动化平台。
在一些实施例中,基于前述方案,所述装置还包括界面创建单元,用于在解析被测单元的信息得到输入参数和输出参数之前,创建用于选择所述被测单元的界面。
在一些实施例中,基于前述方案,所述输入界面生成单元,用于根据所述输入参数和所述输出参数在所述输入界面分别生成输入框。
在本发明实施方式的第三方面中,提供了一种可读存储介质,其上存储有程序,该程序被处理器执行时实现如第一方面中的方法。
根据本发明实施方式的用于单元测试的方法和装置,通过解析被测单元的信息得到输入参数和输出参数,从而生成输入界面接收所述输入参数的测试值和所述输出参数的期望输出值,根据所述测试值和所述期望输出值生成单元测试用例。本发明实施例的技术方案通过界面输入严格校验控制输入输出,可以避免人为失误,使测试人员无需关注被测单元的代码细节,而着重关注单元测试用例的覆盖率,让单元测试代码编写要求更加简单,从而显著地降低了单元测试代码中的重复工作,并且减少了测试人员的工作量,为测试人员带来了更好的体验。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的用于单元测试的方法的流程图;
图2示意性地示出了根据本发明另一实施方式的用于单元测试的方法的流程图;
图3示意性地示出了根据本发明一实施方式的实现逻辑示意图;
图4示意性地示出了根据本发明一实施方式生成的XML配置文件的示意图;
图5示意性地示出了根据本发明实施方式的用于单元测试的装置的框图;
图6示意性地示出了根据本发明另一实施方式的用于单元测试的装置的框图;
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种用于单元测试的方法和装置。
在本文中,需要理解的是,所涉及的术语待测试的方法表示被测单元中的一种形式。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,现有技术中的单元测试的方式,效率低下,容易引起人为失误。
为此,本发明的实施方式提供了用于单元测试的方法和装置,在进行单元测试的过程中,根据被测单元的输入输出参数生成输入界面,通过输入界面接收测试值和期望输出值生成测试用例,可以避免数据错误引起人为失误,将测试数据与测试代码进行严格分离,使测试人员不再重复地编写一样的代码,降低了对测试人员的能力要求。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
场景一、软件测试人员需要对代码中的某一被测单元进行单元测试,例如测试一个方法A,该方法A的作用是比较输入的两个参数a和b,如果a>b则返回数字1,如果a<b则返回-1,如果a=b则返回0。方法A一般由函数来实现,测试工具分析方法A对应的函数,自动解析方法A需要两个整型的输入参数,需要一个整型的预期输出参数,该测试工具自动生成包含三个输入框的界面,测试人员可以在两个整型输入框中填入a=5,b=4,在预期输出框中写入1,点击用例生成按钮,就生成了一个测试用例中的一个输入和预期输出,测试人员根据需要重复上述操作,即可以生成针对待测试方法的一组输入和预期输出,即生成针对待测试方法的测试用例。
场景二、测试人员通过一个纯界面操作的测试工具进行单元测试,该界面包括用于选择待测方法的选择列表,该选择列表中包括多个待测方法,测试人员通过该选择列表选中一个被测方法后,本测试工具自动解析方法的输入参数、输出参数,生成多个输入框。测试人员只要按照要求填写固定的输入输出,点击用例生成按钮,就可以生成一个单元测试用例。
可以理解的是,对于场景一和场景二而言,该测试工具的界面可以是包括输入框的对话框,也可以是包含输入提示的命令行界面,但本发明不限于此。对于场景二而言,相应的选择列表可以包括但不限于下拉列表、下接菜单、以及表格列表等。
示例性方法
下面结合图场景一和二来描述根据本发明示例性实施方式的用于单元测试的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
图1示意性示出根据本发明实施方式的用于单元测试的方法的流程图。该方法可应用于前面描述的应用场景并在计算机中执行,但该方法的应用场景不限于此。此处所称计算机,可以是电脑、手机、平板电脑或其他计算机装置,本发明对此没有限制。
如图1所示,在步骤S110中,解析被测单元的信息得到输入参数和输出参数。
单元测试,是指对软件中的最小可测试单元进行检查和验证。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。一般来说,所述最小可测试单元要根据实际情况去判定其具体含义,需要说明的是,本实施例所述的被测单元是指计算机程序里的方法。
例如对于上述场景一中的方法A,自动对方法A进行解析,得到A包括两个整型输入参数a和b、以及一个整型输出参数。
在步骤S120中,根据所述输入参数和所述输出参数生成输入界面。
例如根据所述输入参数和所述输出参数在所述输入界面分别生成输入框。如上述场景一中根据方法A包含两个输入参数a和b、以及一个输出参数,自动生成包含三个输入框的界面,分别用于接受用户输入的测试用例的参数a和b的赋值以及输出值的期望值。
需要说明的是,该测试工具的界面不仅限于包括输入框的对话框,还可以是包含输入提示的命令行界面等其他形式,但本发明不限于此。
在步骤S130中,通过所述输入界面接收所述输入参数的测试值和所述输出参数的期望输出值。
在步骤S140中,根据所述测试值和所述期望输出值生成单元测试用例。
例如测试人员在所述输入界面的两个整型输入中填入a=5,b=4,预期输出中填入1,通过所述输入界面接收上述数据后,即可生成一个用于对方法A进行单元测试的测试用例中的一个输入和预期输出。
测试用例包括针对被测对象的一组输入值以及预期输出值,本实施例测试用例的具体记载形式在此不作限定,例如通过XML配置文件记载。
根据一些实施例,在生成单元测试用例之后,还可根据所述单元测试用例生成单元测试代码。
图2示意性示出根据本发明实施方式的用于单元测试的方法的流程图。
如图2所示,在步骤S210中,解析被测单元的信息得到输入参数和输出参数。
在步骤S220中,根据所述输入参数和所述输出参数生成输入界面。
在步骤S230中,通过所述输入界面接收所述输入参数的测试值和所述输出参数的期望输出值。
上述步骤S210至S230与实施例中相应的步骤实质相同,本实施例对此不作限定。
在步骤S240中,根据所述测试值和所述期望输出值生成XML配置文件。
XML是一个结构化的文本,可以有多级结构,每一个层级可以有自己的自定义属性。XML配置文件,属于一个存储工具,将单元测试用例按照规范的格式存储起来,一个测试用例集合可以使用一个XML配置文件存储。通过XML的一级结构代表包含了至少一个待测试对象的的待测对象集合,可在属性中存储着这个待测对象集合的属性信息、例如这个待测对象集合中待测对象的用途等信息。将XML的二级结构分为两部分,一部分用于存储上述待测对象集合中各个待测对象所对应的目标代码信息,另一部分用于存储上述待测对象集合中各个待测对象所对应的具体的用例信息。目标代码信息用于存储需要测试的代码具体位置、输入类型、以及输出类型等信息,这些信息从用例生成工具中的待测试方法信息中获取。具体的用例信息存储在XML的三级结构中,每一个三级结构对应一组输入、输出、验证方式,即每一个二级结构所对应的多个三级结构,存储了该二级结构所对应的待测对象的测试用例。
同样取上述场景一中的比较大小的方法A为例,这个三级结构的数据输入为a=5,b=4,预期输出为1,验证方式为数值相等比较。验证方式可以预先设定几种类型,例如:数值相等、字符串相等、数值范围、字符串范围等。可以将这个用例用如图4所示的XML文档表示。
在步骤S250中,根据所述XML配置文件生成单元测试代码。
本步骤用于通过对XML配置文件进行翻译得到单元测试代码。由于XML配置文件中已经包含了一个单元测试的所有必须元素,因此根据所述XML配置文件生成单元测试代码是可行的。
传统测试直接维护的就是这个本步骤得到的单元测试代码。在本实施例中,单元测试代码是根据XML配置文件通过一定的规范自动生成,可以让测试人员花更多精力在单元测试的用例设计上,而不是去处理复杂的代码逻辑。
根据一些实施例,在生成单元测试代码之后还可将所述单元测试代码托管到自动化平台。
例如,根据所述单元测试用例生成单元测试代码之后,可将所生成的单元测试代码托管到自动化平台中,可以设置定期执行,这样就可以异步监控提交的单元测试代码是否符合要求,而避免人为主动地执行单测代码。
需要说明的是,在步骤S210之前还可创建用于选择所述被测单元的界面。例如创建包括用于选择被测单元的列表,以供测试人员通过该列表选择将要测试的被测单元。相应地,所述列表的具体形式本实施例对此不作限定,可以包括但不限于下拉列表、下接菜单、以及表格列表等。
需要说明的是,本实施例中,上述步骤可通过模块化的工具具体实施。图3示意性地示出了根据本发明一实施方式的实现逻辑示意图,如图3所示,本实施例所述的用于单元测试的方法包括通过单元测试用例生成工具生成XML配置文件、通过单元测试代码生成工具对XML配置文件进行解析,将XML配置文件翻译成单元测试代码、以及将得到的单元测试代码托管到自动化平台设置定期执行,以异步监控提交的单元测试代码是否符合要求。
其中图3所示的单元测试用例生成工具是一个纯界面操作的工具,可以利用这个界面来新建待测试方法的一组输入和预期输出。例如要新建一个测试用例,首先从列表中选择待测试的方法信息,待测试的方法信息需要提前维护。选择后,会自动解析方法的输入参数、输出参数,生成多个输入框。测试人员只要按要求填写固定的输入输出,点击生成,就可以生成一个测试用例中的一个输入和预期输出,测试人员根据需要重复上述操作,即可以生成针对待测试方法的一组输入和预期输出,即生成针对待测试方法的测试用例。
图3所示的单元测试代码生成工具是用来解析XML配置文件,根据XML配置文件生成一个单元测试代码。比如要测试一个方法A,这个方法A的作用是比较输入的两个参数a和b,如果a>b则返回数字1,如果a<b则返回-1,如果a=b则返回0。利用这个单元测试代码生成工具,测试人员首先选择方法A,工具会自动解析需要两个整型的输入,需要一个整型的预期输出。测试人员可以在两个整型输入中填入a=5,b=4,预期输出中写入1,点击生成按钮,就生成了生成针对待测试方法的一组输入和预期输出,测试人员根据需要重复上述操作,即可以生成针对待测试方法的一组输入和预期输出,即生成针对待测试方法的测试用例。
图3所示的XML配置文件属于一个存储工具,将单元用例按照规范的格式存储起来。
图3所示的单元测试代码是由XML配置文件翻译的最终代码。
图3所示的自动化平台,可用于托管生成的单元测试代码,可以设置定期执行,这样就可以异步监控提交的代码是否符合要求,而不用人为主动去执行单测代码。
本领域普通技术人员应当知晓,测试本身应该注重输入输出,功能测试的重心应该在效果,而不是实现细节。相关单元测试技术中,代码与数据耦合,不利于维护,本实施例利用标准化的XML配置文件,将测试数据分组罗列,实现测试数据与代码进行严格分离。不仅如此,本实施例将单元测试中的测试代码,验证代码等也通过标准化配置文件进行格式化配置。使得单元测试变得统一,不用再重复的书写一样的代码。在此基础上,本实施例设计了一套操作界面和枚举定义,能够方便地通过界面操作,自动生成单元测试所需要的所有数据。不仅对测试人员的编程能力要求降到了最低,而且能让测试人员把更多精力放在用例的设计上。结合自动化运行平台,能够进行实时的检验和定期的代码验证。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,参考图5-6对本发明示例性实施方式的、用于单元测试的装置进行描述。
图5示意性示出本发明实施方式的用于单元测试的装置的框图。装置500可实现前面描述的相应方法。下面描述装置500,与前述方法对应的部分不再赘述。
如图5所示,装置500包括解析单元510、输入界面生成单元520、数据接收单元530、以及测试用例生成单元540。
解析单元510可用于解析被测单元的信息得到输入参数和输出参数。
输入界面生成单元520可用于根据所述输入参数和所述输出参数生成输入界面。
数据接收单元530可用于通过所述输入界面接收所述输入参数的测试值和所述输出参数的期望输出值。
测试用例生成单元540可用于根据所述测试值和所述期望输出值生成单元测试用例。
根据一些实施例,所述装置还可包括测试代码生成单元(图5中未示出),用于在生成单元测试用例之后,根据所述单元测试用例生成单元测试代码。
根据一些实施例,所述装置还可包括界面创建单元(图5中未示出),用于在解析被测单元的信息得到输入参数和输出参数之前还,创建用于选择所述被测单元的界面。
根据一些实施例,所述输入界面生成单元520配置为,根据所述输入参数和所述输出参数在所述输入界面分别生成输入框。
图6示意性示出本发明另一实施方式的用于单元测试的装置的框图。装置600可实现前面描述的相应方法。下面描述装置600,与前述方法对应的部分不再赘述。
如图6所示,装置600包括解析单元610、输入界面生成单元620、数据接收单元630、测试用例生成单元640、测试代码生成单元650、以及平台托管单元660。
解析单元610可用于解析被测单元的信息得到输入参数和输出参数。
输入界面生成单元620可用于根据所述输入参数和所述输出参数生成输入界面。
数据接收单元630可用于通过所述输入界面接收所述输入参数的测试值和所述输出参数的期望输出值。
测试用例生成单元640可用于根据所述测试值和所述期望输出值生成XML配置文件。
测试代码生成单元650可用于根据所述XML配置文件生成单元测试代码。
平台托管单元660可用于将所述单元测试代码托管到自动化平台。
根据一些实施例,所述装置还包括界面创建单元(图6中未示出),用于在解析被测单元的信息得到输入参数和输出参数之前,创建用于选择所述被测单元的界面。
根据一些实施例,所述输入界面生成单元620可用于根据所述输入参数和所述输出参数在所述输入界面分别生成输入框。
示例性设备
在介绍了本发明示例性实施方式的方法和装置之后,接下来,介绍根据本发明的另一示例性实施方式的用于单元测试的装置。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的用于单元测试的装置可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于单元测试的方法中的步骤。例如,所述处理单元可以执行如图1中所示的步骤S110,解析被测单元的信息得到输入参数和输出参数;步骤S120,根据所述输入参数和所述输出参数生成输入界面;步骤S130,通过所述输入界面接收所述输入参数的测试值和所述输出参数的期望输出值;步骤S140,根据所述测试值和所述期望输出值生成单元测试用例。
示例性程序产品
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于单元测试的方法中的步骤,例如,所述终端设备可以执行如图1中所示的步骤S110,解析被测单元的信息得到输入参数和输出参数;步骤S120,根据所述输入参数和所述输出参数生成输入界面;步骤S130,通过所述输入界面接收所述输入参数的测试值和所述输出参数的期望输出值;步骤S140,根据所述测试值和所述期望输出值生成单元测试用例。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备。
应当注意,尽管在上文详细描述中提及了用于单元测试的装置的若干模块或单元,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或单元的特征和功能可以在一个模块或单元中具体化。反之,上文描述的一个模块或单元的特征和功能可以进一步划分为由多个模块或单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (10)

1.一种用于单元测试的方法,包括:
解析被测单元的信息得到输入参数和输出参数;
根据所述输入参数和所述输出参数生成输入界面;
通过所述输入界面接收所述输入参数的测试值和所述输出参数的期望输出值;
根据所述测试值和所述期望输出值生成单元测试用例。
2.根据权利要求1所述的方法,在生成单元测试用例之后还包括:根据所述单元测试用例生成单元测试代码。
3.根据权利要求1所述的方法,根据所述测试值和所述期望输出值生成单元测试用例包括:根据所述测试值和所述期望输出值生成XML配置文件。
4.根据权利要求3所述的方法,根据所述测试值和所述期望输出值生成XML配置文件之后还包括:根据所述XML配置文件生成单元测试代码。
5.根据权利要求2或4所述的方法,在生成单元测试代码之后还包括:将所述单元测试代码托管到自动化平台。
6.根据权利要求1所述的方法,在解析被测单元的信息得到输入参数和输出参数之前还包括:创建用于选择所述被测单元的界面。
7.根据权利要求1所述的方法,根据所述输入参数和所述输出参数生成输入界面包括:根据所述输入参数和所述输出参数在所述输入界面分别生成输入框。
8.一种用于单元测试的装置,包括:
解析单元,用于解析被测单元的信息得到输入参数和输出参数;
输入界面生成单元,用于根据所述输入参数和所述输出参数生成输入界面;
数据接收单元,用于通过所述输入界面接收所述输入参数的测试值和所述输出参数的期望输出值;
测试用例生成单元,用于根据所述测试值和所述期望输出值生成单元测试用例。
9.根据权利要求8所述的装置,所述装置还包括测试代码生成单元,用于在生成单元测试用例之后,根据所述单元测试用例生成单元测试代码。
10.一种可读存储介质,其上存储有程序,该程序被处理器执行时实现如权利要求1-7任一项所述的方法。
CN201710079309.8A 2017-02-14 2017-02-14 用于单元测试的方法、装置以及可读存储介质 Pending CN106874202A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710079309.8A CN106874202A (zh) 2017-02-14 2017-02-14 用于单元测试的方法、装置以及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710079309.8A CN106874202A (zh) 2017-02-14 2017-02-14 用于单元测试的方法、装置以及可读存储介质

Publications (1)

Publication Number Publication Date
CN106874202A true CN106874202A (zh) 2017-06-20

Family

ID=59166010

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710079309.8A Pending CN106874202A (zh) 2017-02-14 2017-02-14 用于单元测试的方法、装置以及可读存储介质

Country Status (1)

Country Link
CN (1) CN106874202A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108491329A (zh) * 2018-04-02 2018-09-04 郑州云海信息技术有限公司 一种ssr客户端的性能测试方法及测试工具
CN108984388A (zh) * 2018-06-01 2018-12-11 平安壹钱包电子商务有限公司 一种生成自动化测试用例的方法及终端设备
CN109308260A (zh) * 2018-08-30 2019-02-05 福建天泉教育科技有限公司 一种自动生成单元测试代码的方法及终端
CN110806967A (zh) * 2018-08-06 2020-02-18 北京京东尚科信息技术有限公司 一种单元测试方法和装置
CN110928760A (zh) * 2018-09-20 2020-03-27 杭州海康汽车技术有限公司 一种嵌入式系统中的单元测试方法与装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1776643A (zh) * 2004-11-15 2006-05-24 华为技术有限公司 一种软件产品健壮性的测试方法及装置
CN105528287A (zh) * 2014-10-15 2016-04-27 三星Sds株式会社 用于代码的单元测试的装置及方法
CN106294130A (zh) * 2016-07-28 2017-01-04 浪潮电子信息产业股份有限公司 一种单元测试方法及装置
CN106294138A (zh) * 2016-07-29 2017-01-04 东软集团股份有限公司 测试用例生成方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1776643A (zh) * 2004-11-15 2006-05-24 华为技术有限公司 一种软件产品健壮性的测试方法及装置
CN105528287A (zh) * 2014-10-15 2016-04-27 三星Sds株式会社 用于代码的单元测试的装置及方法
CN106294130A (zh) * 2016-07-28 2017-01-04 浪潮电子信息产业股份有限公司 一种单元测试方法及装置
CN106294138A (zh) * 2016-07-29 2017-01-04 东软集团股份有限公司 测试用例生成方法和装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108491329A (zh) * 2018-04-02 2018-09-04 郑州云海信息技术有限公司 一种ssr客户端的性能测试方法及测试工具
CN108984388A (zh) * 2018-06-01 2018-12-11 平安壹钱包电子商务有限公司 一种生成自动化测试用例的方法及终端设备
CN108984388B (zh) * 2018-06-01 2023-10-27 平安壹钱包电子商务有限公司 一种生成自动化测试用例的方法及终端设备
CN110806967A (zh) * 2018-08-06 2020-02-18 北京京东尚科信息技术有限公司 一种单元测试方法和装置
CN109308260A (zh) * 2018-08-30 2019-02-05 福建天泉教育科技有限公司 一种自动生成单元测试代码的方法及终端
CN109308260B (zh) * 2018-08-30 2021-11-05 福建天泉教育科技有限公司 一种自动生成单元测试代码的方法及终端
CN110928760A (zh) * 2018-09-20 2020-03-27 杭州海康汽车技术有限公司 一种嵌入式系统中的单元测试方法与装置
CN110928760B (zh) * 2018-09-20 2023-10-20 杭州海康汽车技术有限公司 一种嵌入式系统中的单元测试方法与装置

Similar Documents

Publication Publication Date Title
CN106874202A (zh) 用于单元测试的方法、装置以及可读存储介质
CN106940428B (zh) 芯片验证方法、装置及系统
US8640084B2 (en) Generating validation test suites
CN104035859B (zh) 一种可视化自动测试方法及其系统
CN109379251B (zh) 继电保护装置过程层goose及sv通信自动测试方法及系统
US8155959B2 (en) Dialog system for human agent to correct abnormal output
CN105786695B (zh) 数据测试方法及系统
CN104731566B (zh) 集成开发环境测试装置、方法及系统
CN107592238A (zh) 接口的自动测试方法及系统、服务终端、存储器
CN108446190A (zh) 接口测试方法及装置
CN101996131A (zh) 基于xml封装关键字的gui自动测试方法及自动测试平台
CN109408247A (zh) 交互数据处理方法及装置
CN109522228A (zh) 接口自动化测试数据构造方法、装置、平台及存储介质
CN106598834A (zh) Ui测试方法及装置
EP2511841A2 (en) System and method for generation of cim-based power system circuit models
CN115904989A (zh) 一种接口测试方法、装置、设备及可读存储介质
US20100251208A1 (en) Validating Behavioral Diagrams
CN108345453A (zh) 代码生成方法、代码生成器及可读存储介质
CN117931666A (zh) 一种软件无线电通信设备核心框架测试系统及方法
CN110502242A (zh) 代码自动生成方法、装置、计算机设备及存储介质
WO2024001594A1 (zh) 算子开发、处理方法、装置、电子设备、系统及存储介质
Amirat et al. Automatic generation of PROMELA code from sequence diagram with imbricate combined fragments
CN108958727A (zh) 一种api客户端代码的生成方法及系统
CN114995809B (zh) 一种可证明的高安全软件构造方法及系统
Calvagna et al. Combinatorial testing for feature models using citlab

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
TA01 Transfer of patent application right

Effective date of registration: 20191105

Address after: 310012 G building, 10 floor, A building, Paradise Software Park, 3 West Road, Hangzhou, Xihu District, Zhejiang

Applicant after: Alibaba (China) Co., Ltd.

Address before: Hangzhou City, Zhejiang province 310051 Binjiang District River Street No. 1786 Jianghan Road Longsheng Building Room 803

Applicant before: Netease Koala (Hangzhou) Technology Co., Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20170620

RJ01 Rejection of invention patent application after publication