基于BDD的自动化测试方法、装置、计算机设备及存储介质与流程

文档序号:18009519发布日期:2019-06-25 23:49阅读:284来源:国知局
基于BDD的自动化测试方法、装置、计算机设备及存储介质与流程
本申请涉及人工智能
技术领域
,具体涉及自动测试
技术领域
,尤其涉及一种基于bdd的自动化测试方法。
背景技术
:软件测试就是对一个软件系统从功能上进行确认测试和验证测试,从性能上进行压力测试和负载测试,以及对系统的配置测试和兼容性测试等,从类别上又有单元测试,集成测试,回归测试,所有的这些测试工作都有一个目的:交付一套高质量的软件系统。通过测试,尽可能早的找出软件缺陷,并确保其得以修复。行为驱动开发(behaviordrivendevelopment,简称bdd),是一种敏捷软件开发的技术,降低对软件测试人员的使用门槛,它鼓励软件项目中的开发者、qa(qualityassurance,质量保证)和非技术人员或商业参与者相互协作,以降低qa的自动化脚本编写门槛。bdd在项目之初,由客户、开发人员、测试人员一起通过充分的沟通对系统的行为进行设计,由测试人员用脚本语言编写可以描述系统行为的测试用例,然后由开发人员编写相关的实现代码,并确保该测试用例通过。循环这个过程实现整个系统的功能。业界移动端测试大多看重覆盖率,然而在基于bdd的开发过程中,开发者、qa和非技术人员或商业参与者之间的相互协作占用整个开发的大量时间,并且难以做好大而全的功能验证以及出现代码维护难或扩展不易等问题。技术实现要素:本申请实施例的目的在于提出一种基于bdd的自动化测试方法、装置、计算机设备及存储介质,以使非技术人员以及没有技术知识背景的商业参与者等可以直接参与测试用例的设计,减少在bdd的开发过程中,发者、qa和非技术人员或商业参与者之间的沟通协作时间,从而提高开发效率。为了解决上述技术问题,本申请实施例提供一种基于bdd的自动化测试方法,采用了如下所述的技术方案:一种基于bdd的自动化测试方法,包括下述步骤:根据项目需求预设项目行为,所述项目行为描述所述项目的业务场景,所述业务场景包括前提假设、实施步骤和预设结果;将所述前提假设、实施步骤中的每个步骤和所述预设结果都对应生成为一个测试步骤,翻译成通用指令,生成测试用例;对所述测试用例进行测试并生成测试报告。进一步地,所述根据项目需求预设项目行为的步骤具体包括:对所述前提假设、实施步骤和预设结果进行模块化封装;根据需求设置所述前提假设、实施步骤和预设结果的控件;在相应的控件中输入所述前提假设、实施步骤和预设结果的描述;提交所述项目行为到服务器。进一步地,在所述将所述前提假设、实施步骤中的每个步骤和所述预设结果都对应生成为一个测试步骤,翻译成通用指令,生成测试用例的步骤之前,所述方法还包括:根据所述业务场景的需求预设所述前提假设和/或所述实施步骤的参数个数及参数类型。进一步地,所述将所述前提假设、实施步骤中的所每个步骤和所述预设结果都对应生成为一个测试步骤,翻译成通用指令,生成测试用例,具体包括:获取所述业务场景的前提假设、实施步骤和预设结果;抽离所述前提假设、实施步骤和预设结果中的动作和状态,对应每一个动作或者状态生成一个测试步骤;将所述测试步骤中的状态翻译成通用命令中的对象,所述动作翻译为所述通用命令中的功能;设置所述通用指令的执行顺序,生成测试用例。进一步地,所述抽离所述前提假设、实施步骤和预设结果的动作和状态,具体包括:对于设有多种属性的测试步骤至少抽离一种状态或者动作。进一步地,所述将所述项目行为翻译成通用指令,生成测试用例,还包括:修改所述测试用例,具体包括:修改所述测试用例中的参数;和/或增加所述测试用例的测试步骤;和/或删除所述测试用例中的测试步骤;和/或修改已存在的所述测试步骤。进一步地,所述对所述测试用例进行测试并生成测试报告,具体包括:选择测试设备;搭建与所述测试用例相应的测试环境;设置所述测试用例的参数,对所述测试用例进行测试;生成测试报告。为了解决上述技术问题,本申请实施例还提供一种基于bdd的自动化测试装置,采用了如下所述的技术方案:一种基于bdd的自动化测试装置,包括:预设模块,用于根据项目需求预设项目行为,所述项目行为描述所述项目的业务场景,所述业务场景包括前提假设、实施步骤和预设结果;测试用例生成模块,用于将所述前提假设、实施步骤中的所有步骤和所述预设结果都对应生成为一个测试步骤,翻译成通用指令,生成测试用例;自动测试模块,用于对所述测试用例进行自动测试并生成测试报告。为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述所述的基于bdd的自动化测试方法的步骤。为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的基于bdd的自动化测试方法的步骤。与现有技术相比,本申请实施例主要有以下有益效果:在本申请实施例中,通过使用自然语言描述所述测试用的项目行为,描述清晰,以降低测试项目师和业务专家的协作难度和工作量,以快速将所述项目行为生成测试用例并提高测试覆盖率,以降低后期维护和扩展的难度。通过自动化对测试用例进行重复测试以及验证测试用例集对程序逻辑流程和控制流程的覆盖等,以提高测试效率。本申请实施例通过用最合理的方式轻松实现测试驱动开发,实现操作动作及验证结果的全部编写,适用性强。附图说明为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请的基于bdd的自动化测试方法的一个实施例的流程图;图2是图1中步骤s101的一种具体实施方式的流程图;图3是图1中步骤s102的一种具体实施方式的流程图;图4是图1中步骤s103的一种具体实施方式的流程图;图5是根据本申请的基于bdd的自动化测试装置的一个实施例的结构示意图;图6是图5所示预设模块一种具体实施方式的结构示意图;图7是根据本申请的计算机设备的一个实施例的结构示意图。具体实施方式除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
技术领域
的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。为了使本
技术领域
的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。请参考图1,示出了根据本申请的基于bdd的自动化测试方法的一个实施例的流程图。所述基于bdd的自动化测试方法,包括以下步骤:s101:根据项目需求预设项目行为。在本申请实施例中,所述项目行为是指用户在一个特定的条件下对系统做请求,系统在该条件下做什么样的处理。所述项目行为描述所述项目中的业务场景。具体地,所述业务场景是满足项目产品需求的一个过程或子过程,是事件的操作流程和信息传递过程。进一步地,所述业务场景包括前提假设、实施步骤和预设结果三种类型。所述前提假设为根据所述项目需求,预设一个实现的功能的环境,是用于描述测试场景的。所述实施步骤是在所述前提假设中,预设的可能进行的操作,也就是用于描述用户在此前提下操作的行为。所述预设结果是在所述前提条件下,进行所述实施步骤的操作,预设得到的结果,用于验证测试的结果。在本申请实施例中,所述项目行为至少包括3个业务场景,至少对所述前提假设、实施步骤以及所述预设结果各设置一个业务场景。具体地,所述前提假设和所述预设结果有且只能设置一个业务场景,所述实施步骤至少设置一个业务场景。进一步地,所述实施步骤可以有多个子步骤,每一个子步骤对应一个所述业务场景。这些子步骤可以为同步操作,各个子步骤之间设定次序,当用户测试时,根据所述次序实施这些子步骤。例如,预设前提为用户在登录界面,那么用户可进行“输入账号”、“输入密码”、“确认登录”等子步骤,并且“输入账号”、“输入密码”、“确认登录”是同步操作,用户必须先进行“输入账号”操作,在输入账号信息完成后才能进行“输入密码”这一步骤,账号信息和密码输入了接着才能进行“确认登录”步骤。进一步地,所述实施步骤设置的子步骤也可以是异步操作。例如,在查询界面下,输入第一查询条件、第二查询条件以及第三查询条件的输入过程是异步的,所述第一查询条件、第二查询条件以及第三查询条件的输入顺序不限,用户可以任意先输入其中一个查询条件,当所述第一查询条件、第二查询条件以及第三查询条件全部输入时,才能进行下一步骤。在本实施例中,所述子操作设有并列操作,所述并列操作的是指在同一种环境下预设的多种可操作的行为,其与其他子步骤实施后的预设结果是相同的。还是以在登录界面为前提假设,在实施输入账号和密码的子操作后,点击“登录”按钮的子操作和在键盘上点击“enter”登录就是一种并列子操作,无论以哪种方式进行,预设结果都是相同的。进一步地,所述实施步骤也设有并列实施步骤,其前提假设和预设结果相同,实施步骤不同。每一个并列的实施步骤都是独立的,可以单独实施。如,在登录界面环境下,预设有“自动登录”、“账号验证登录”、“人脸识别验证登录”等实施步骤,其包含的前提假设和预设结果相同,实施步骤中的子步骤不同。并且这些并列的实施步骤都是独立的,用户可以逐一验证。s102:将项目行为翻译成通用指令,生成测试用例。在本申请实施例中,所述项目行为设置完成后其还不能运行,需要对将所有业务场景编码翻译,将所述前提假设、实施步骤中的每个步骤和所述预设结果都翻译成通用指令并对应生成为一个测试步骤。具体地,编码翻译时使用但不限于ruby语言定义通用指令以实现所述项目行为。进一步地,每一个所述业务场景经过翻译后成为一个测试步骤,所述前提假设、实施步骤和预设结果的测试步骤形成一个测试用例。即所述前提假设、实施步骤中的所有步骤和所述预设结果都对应生成为一个测试步骤,并且第一个测试步骤都是所述预设前提对应的测试步骤,最后一个测试步骤都是所述预设结果对应的测试步骤。进一步地,在本申请实施例中,所述测试用例包括功能测试、健壮性测试、接口测试、强度测试、压力测试、性能测试、用户界面测试、可靠性测试、安装/反安装测试、文档测试等。s103:对测试用例进行测试并生成测试报告。在本申请实施例中,所述测试用例生成后其生成一个超链接,点击所述超链接,可以进入相应测试步骤的详情界面,所述详情界面包括所述测试用例的每一个测试步骤,以及测试系统提供的测试设备,包括模拟器和真实移动设备。测试时,用户需要选择其中一种设备对所述测试用例运行,执行其中的测试步骤,当测试用例运行时,所述测试步骤对应的通用指令会被执行。进一步地,所述测试报告中记载所述测试用例的场景描述、总场景(步骤)数、每个测试步骤的耗时时间以及总耗时时间、单个步骤执行情况等。具体地,所述测试报告以表格或者其他形式文档记载上述内容。如下表,记载的是一种登录模块测试用例的测试报告,并且,单个步骤执行情况结果用不同颜色显示。例如,“当输入错误的用户名”执行成功的话用绿色底纹显示该测试步骤,失败用红色。测试步骤场镜描述历时1假设在登录界面2s2当输入错误的用户名4s3当输入错误的密码4s4当点击“登录”按钮1s5当点击【enter】键1s7那么,登录会失败2ssum……14s进一步地,所述测试用例中的对应实施步骤的测试步骤可以选择性测试,如上述可只选择“当输入错误的用户名”或者“当输入错误的密码”与所述前提假设对应的测试步骤“假设在登录界面”以及所述预设结果对应的“那么,登录会失败”作为一次测试。进一步地,测试用例要执行全部通用指令,即测试所述测试用例中的全部测试步骤,每条测试步骤至少执行一遍。因为编写测试用例时,它考虑了测试覆盖率的问题,每条测试用例都对应一个功能点,如果少执行一条,就会有一个功能点没有测试到。执行测试前要认为待测试软件的每条功能点都是未实现的,每个功能点都要测试一遍,才能保证待测试软件能正确满足用户需求。进一步地,在测试时,用户可以对一个测试用例进行测试,也可以对多个测试用例同时测试。同时还可以查看每一个测试用例的测试进度,以了解测试进展。更进一步地,每一个所述测试用例的所述测试报告需要在该所述测试用例的全部测试步骤全部测试完成后才能生成。各个测试用例之间的测试报告生成互不影响,测试报告生成后,可以批量导出所述测试报告,也可以在线预览测试报告。具体地,所述测试报告包括每次测试的测试结果,便于用户从测试报告中获取和分析测试效果。在本申请实施例中,所述测试用例使用自然语言描述,描述清晰,以降低测试项目师和业务专家的协作难度和工作量,以提高测试覆盖率,同时降低后期维护和扩展的难度,用最合理的方式轻松实现测试驱动开发,实现操作动作及验证结果的全部编写,适用性强。在本实施例的一些可选的实现方式中,在步骤s102将所述项目行为翻译成通用指令,生成测试用例的步骤之前,所述方法还包括:s104:根据业务场景的需求预设前提假设和/或实施步骤的参数个数及参数类型。在本申请实施例中,参数是用于在测试时进行传值的,并且参数的类型和个数是针对设置的预想项目行为具体情况设置的,每一个测试用例的参数设置应当按照项目需求进行设置。具体地,通用指令中根据所述业务场景中的状态的需求设置参数类型和参数个数,参数的个数必须与所述通用指令中的命令文本中的占位符个数保持一致,否则所述项目行为翻译通用指令将失效。例如,在上述登录界面的项目行为中,必须对“输入用户名”以及“输入密码”各设置一个参数,以便简化用例,使测试用例逻辑清晰,数据与逻辑的关系明了,易于理解。同时有利于提高测试用例的复用性。进一步地,在修改所述测试用例时,可以对所述参数的类型和个数进行修改。请参阅图2,在本申请实施例中,s101根据项目需求预设项目行为,具体包括以下步骤:s201:对前提假设、实施步骤和预设结果进行模块化封装。在本申请实施例中,每一所述测试用例包括前提假设、实施步骤和预设结果。并根据所述前提假设、实施步骤和预设结果预设的项目行为分别各自封装为一个模块。s202:根据需求设置前提假设、实施步骤和预设结果的控件。在本申请实施例中,针对所述前提假设、实施步骤和所述预设结果预设的业务场景,用户可根据需求选择控件,如复选框、文本框、下拉框等等。例如对并列的实施步骤设置下拉框,以便用户分开对这些测试步骤进行测试,如上述的“当输入错误的用户名”和“当输入错误的密码”可以设置在一个下拉框中。s203:在相应的控件中输入项目行为相应的业务场景的描述。在本申请实施例中,完成s202后,将所述项目行为的各个业务场景的描述输入到相应的控件中。s204:提交项目行为到服务器。在本申请实施例中,将所述项目行为预设完成后,需要将其提交至服务器中,将其翻译为相应的通用指令,以生成测试用例。请参阅图3,在本申请实施例中,s102将项目行为翻译成通用指令,生成测试用例,具体包括以下步骤:s301:获取项目行为。在本申请实施例中,获取s204完成的项目行为,所述项目行为包括前提假设、实施步骤和预设结果对应的业务场景。其中,所述前提假设和所述预设结果有且仅有一个业务场景,所述实施步骤设有至少一个业务场景。s302:抽离项目行为的业务场景的动作和状态,生成测试步骤。在本申请实施例中,所述业务场景是基于实际可能的操作考虑的,其脱离系统提供的功能,站在用户角度按照用户的实际操作和业务逻辑的需求进行设计,尽可能真实全面的模拟用户的操作,设计出相应的测试点,包括有效等价类(模拟用户正确操作)和无效等价类(模拟用户错误操作)的模拟操作。进一步地,所述项目行为抽离为静态的状态和动态的动作,静态的状态是用户实际需求中可能出现的状态,是所述项目行为的一种表现形态。动态动作是基于某一所述静态状态的基础上可能进行的操作。动作是促使所述状态的变化,两者之间是紧密关联的。更进一步地,所述抽离过程为一种抽象化过程,一种将业务场景的观念抽离原本客体的思想过程,将所述业务场景的状态和动作抽取出来或孤立地进行考虑。具体地,所述项目行为设有多种属性,其中所述前提假设、实施步骤、预设结果每个至少设置一种,且每一种属性对应一种状态或者动作,也就是说,所述测试步骤至少包含一种属性。本实施例将各种属性的表现形态以及各种状态变换所实施的动作抽象并分离出来,对于设有多种属性的测试步骤至少抽离一种状态或者动作。更具体地,本实施例所述测试步骤根据一种所述属性进行孤立地考虑,忽略其他属性。所述前提假设、实施步骤、预设结果各至少抽离出一种状态或者动作。例如,在登录界面中,设置有程序状态、用户类型(账号类型)、密码、登录状态等状态属性以及登录、注销、取消等动作属性。其抽离结果如下:程序的状态应该包括:1.程序状态:运行状态和未运行状态。2.用户类型:管理员和授权用户。3.密码:正确的密码和错误的密码。4.登录状态:成功登录和登录失败。动作应该包括:1.登录:即用户在界面上输入用户名和密码。2.注销。3.取消。s303:将业测试步骤译成通用指令,生成测试用例。在本申请实施例中,步骤s302抽离的业务场景通过代码翻译为相应的通用指令,逐一编码翻译为源程序。具体地,本实施例通过将所述业务场景抽离出的状态翻译成通用指令中的对象,动作翻译成所述通用指令中的功能。然后通过设置每个测试步骤所对应的通用指令的执行顺序,生成测试用例。请继续参阅图3,在本申请一些可选的实施例中,s102将所述项目行为翻译成通用指令,生成测试用例,还包括:s304:修改测试用例。在本申请实施例中,所述测试用例中的测试步骤设有次序,其中对应所述前提假设和所述预设结果的测试步骤有且仅有一个,并且所述前提假设是测试用例中的第一个测试步骤,所述预设结果是最后一个测试步骤。而所述实施步骤对应的测试步骤个数和次序是不限制的,用户可根据需求做出相应的修改。进一步地,用户可增加、修改和删除所述测试用例的测试步骤,也可对所述测试用例的参数进行修改,或者对所述测试步骤的次序进行修改。具体地,所述测试用例生成后是一个超链接,点击该超链接,就会进入所述测试用例的详情界面,其包括所述测试用例的项目行为所对应的所有业务场景,即所有测试步骤。更具体地,所述测试用例中每一个所述测试步骤也是一个超链接,点击测试步骤的超链接,会进入测试步骤修改界面。在本申请实施例中,所述测试用例以及多个测试用例形成的测试用例集归属于一个测试工程,以便对测试用例进行管理。具体地,测试用例的管理需要有权限的用户才能管理,对所述测试用例中的测试步骤进行增、删、改等操作。或者在所述测试工程中增加或者删除测试用例,以完善工程需求。具体地,测试工程包括ios工程和android工程,其中ios工程的测试对象必须设置为待测ios工程的名称。例如,testapp.app,则测试对象就是testapp,并且用户的个人目录需要一个与所述测试对象相同名称的目录。例如testapp.app,其测试对象就是testapp,且用户的个人工作目录需有一个testapp目录与被测应用同名。而若为android工程,则测试对象必须设置为待测apk的名称。例如,testapp.apk,则测试对象就是testapp,且用户的个人工作目录需有一个testapp目录与被测应用同名。更具体地,当删除一个测试工程时,其相应的测试用例被置为失效,是无法运行的。在本申请实施例中,每个测试周期的运行都有日志记录,以便后期追踪和参考。通过修改测试用例,进一步保证测试的覆盖率以及完善测试用例集对程序逻辑流程和控制流程的缺陷。请参阅图4,本申请的一些可选的实施例中,s103对所述测试用例进行测试并生成测试报告,具体包括以下步骤:s401:选择测试设备。在本申请实施例中,所述测试设备包括多种终端设备,经由通信设施向计算机输入程序和数据或接收计算机输出处理结果的设备,其可以为但不限于手机、ipad、pc电脑平板等。另外,所述测试设备还可为模拟设备。s402:搭建与测试用例相应的测试环境。在本申请实施例中,执行测试前要按照测试用例中描述的测试环境去搭建,因为测试用例中的执行都是建立在这个测试环境之上的,如果测试环境的不一致,会影响测试用例的执行和测试目的的证明。而通过良好规划和管理的搭建测试环境,可以尽可能的减少环境的变动对测试工作的不利影响,并可以对测试工作的效率和质量的提高产生积极的作用。进一步地,测试环境分为硬件环境和软件环境,硬件环境包括测试必须的pc机,服务器,设备,网线,分配器等硬件设备;软件环境包括数据库,操作系统,被测试软件,共存软件等;特殊条件下还要考虑网络环境,比如网络带宽,ip地址设置等。s403:设置测试用例的参数,并对测试用例进行测试。在本申请实施例中,测试过程会包括单元测试、集成测试、系统测试、验收测试等阶段。通过参数化所述测试用例,以实现自动化测试。测试过程中,根据设置的参数类型和参数个数,自动从测试环境中获取相应的数据,使软件测试在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。s404:生成测试报告。在本申请实施例中,s403完成测试后需要对测试结果进行评估,并且编制生成测试报告。所述测试报告包括判断软件测试是否完成、衡量测试质量的结果。具体地,在测试过程中,通过收集缺陷,对比测试用例和缺陷数据库,测试报告中分析确证是漏测还是缺陷复现。漏测反映了测试用例的不完善,应立即补充相应测试用例,最终达到逐步完善软件质量。而已有相应测试用例,则反映实施测试或变更处理存在问题。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质,或随机存储记忆体(randomaccessmemory,ram)等。应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。进一步参考图5,作为对上述图1所示方法的实现,本申请提供了一种基于bdd的自动化测试装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。如图5所示,本实施例所述的基于bdd的自动化测试装置500包括:预设模块501、测试用例生成模块502以及自动测试模块503。其中:预设模块501,用于根据项目需求预设项目行为,所述项目行为是描述所述项目的业务场景。测试用例生成模块502,用于将所述项目行为转换成通用指令,生成测试用例。自动测试模块503,用于对所述测试用例进行自动测试并生成测试报告。在本实施例中,在本申请实施例中,所述预设模块501使用自然语言描述所述测试用的项目行为,描述清晰,以降低测试项目师和业务专家的协作难度和工作量,以使所述测试用例生成模块502快速将所述项目行为生成测试用例并提高测试覆盖率,以降低后期维护和扩展的难度。通过自动测试模块503自动化对测试用例进行重复测试以及验证测试用例集对程序逻辑流程和控制流程的覆盖等,以提高测试效率。本申请实施例通过用最合理的方式轻松实现测试驱动开发,实现操作动作及验证结果的全部编写,适用性强。在本实施例的一些可选的实现方式中,上述测试用例生成模块502进一步用于:根据项目行为预设参数个数以及参数类型。参阅图6,为预设模块501的一种具体实施方式的结构示意图,预设模块501包括封装子模块5011、样式设计子模块5012、描述子模块5013以及提交子模块5014。其中:封装子模块5011,用于对所述业务场景进行模块化封装。样式设计子模块5012,用于根据需求选择控件并设计样式。描述子模块5013,用于在相应的控件中输入所述项目行为相应的业务场景的描述;提交子模块5014,用于提交所述项目行为。在本实施例的一些可选的实现方式中,上述装置500还包括:修改模块504,用于修改测试用例。在本申请实施例中,每个测试周期的运行都有日志记录,以便后期追踪和参考。通过修改测试用例,进一步保证测试的覆盖率以及完善测试用例集对程序逻辑流程和控制流程的缺陷为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图7,图7为本实施例计算机设备基本结构框图。所述计算机设备7包括通过系统总线相互通信连接存储器71、处理器72、网络接口73。需要指出的是,图中仅示出了具有组件71-73的计算机设备7,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本
技术领域
技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。所述存储器71至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器71可以是所述计算机设备7的内部存储单元,例如该计算机设备7的硬盘或内存。在另一些实施例中,所述存储器71也可以是所述计算机设备7的外部存储设备,例如该计算机设备7上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,所述存储器71还可以既包括所述计算机设备7的内部存储单元也包括其外部存储设备。本实施例中,所述存储器71通常用于存储安装于所述计算机设备7的操作系统和各类应用软件,例如基于bdd的自动化测试方法的程序代码等。此外,所述存储器71还可以用于暂时地存储已经输出或者将要输出的各类数据。所述处理器72在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器72通常用于控制所述计算机设备7的总体操作。本实施例中,所述处理器72用于运行所述存储器71中存储的程序代码或者处理数据,例如运行所述基于bdd的自动化测试方法的程序代码。所述网络接口73可包括无线网络接口或有线网络接口,该网络接口73通常用于在所述计算机设备7与其他电子设备之间建立通信连接。本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有基于bdd的自动化测试程序,所述基于bdd的自动化测试程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于bdd的自动化测试方法的步骤。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的
技术领域
,均同理在本申请专利保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1