CN113515444B - 测试用例生成方法、装置、计算机设备和存储介质 - Google Patents
测试用例生成方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113515444B CN113515444B CN202110430528.2A CN202110430528A CN113515444B CN 113515444 B CN113515444 B CN 113515444B CN 202110430528 A CN202110430528 A CN 202110430528A CN 113515444 B CN113515444 B CN 113515444B
- Authority
- CN
- China
- Prior art keywords
- translation
- data
- words
- chinese
- source code
- 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
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
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- 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
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/42—Data-driven translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Machine Translation (AREA)
Abstract
本申请涉及测试技术领域,提供一种测试用例生成方法、装置、计算机设备和存储介质,方法包括:获取第二源代码;对第二源代码进行翻译得到第二中文译文;获取对第一源代码进行翻译得到的第一中文译文;接收数据比对指令,读取并运行预比对代码,生成比对任务;基于比对任务查找第二中文译文与第一中文译文的差异数据;获取可编辑文档模板及第一源代码的测试用例并生成初始用例文档;将差异数据填充于空白文档生成数据文档;展示初始用例文档与数据文档;将获取的修改后的用例文档的用例文本数据作为第二源代码的目标测试用例。本申请能有效提高测试用例的生成效率。本申请还可以应用于区块链领域,上述目标测试用例可存储于区块链上。
Description
技术领域
本申请涉及测试技术领域,具体涉及一种测试用例生成方法、装置、计算机设备和存储介质。
背景技术
软件测试是软件开发过程中非常重要的一个环节,在软件开发过程中会出现多个软件版本的更新迭代,当对旧代码进行修改后,就需要测试人员基于新的代码重新撰写测试用例,进而基于该测试用例进测试以确认新的代码中是否存在错误。具体地,测试人员在基于新的代码重新撰写测试用例的过程中,首先通常需要花费大量的时间阅读新的代码以了解相应的代码逻辑,之后再基于代码逻辑来重新编写相应的测试用例,这样撰写测试用例的方式需要测试人员自身具备较高的专业要求,使得测试用例的生成成本较高,且测试用例的生成效率较慢。
发明内容
本申请的主要目的为提供一种测试用例生成方法、装置、计算机设备和存储介质,旨在解决现有的生成测试用例的方式存在生成成本较高,且测试用例的生成效率较慢的技术问题。
本申请提出一种测试用例生成方法,所述方法包括步骤:
当接收到用户输入的代码版本信息时,获取与所述代码版本信息对应的第二源代码;其中,所述第二源代码为开发人员对第一源代码进行功能更新后生成的,所述第一源代码为与预设代码版本信息对应的代码,所述预设代码版本信息的版本等级低于所述代码版本信息;
对所述第二源代码进行翻译处理,得到对应的第二中文译文;
获取对所述第一源代码进行翻译处理后得到的第一中文译文;
判断是否接收到用户触发的数据比对指令;
若接收到所述数据比对指令,则读取并运行预设的比对代码,生成比对所述第二中文译文以及所述第一中文译文的比对任务;
根据所述比对任务的比对逻辑,对所述第二中文译文与所述第一中文译文进行数据比较处理,查找出所述第二中文译文与所述第一中文译文之间的差异数据;
获取预设的可编辑文档模板以及与所述第一源代码对应的测试用例,并将所述测试用例复制至所述可编辑文档模板内,生成初始用例文档;
将所述差异数据填充于预设的空白文档,生成对应的数据文档;
在当前界面展示所述初始用例文档与所述数据文档,以便所述用户基于所述数据文档对所述初始用例文档进行修改处理,生成修改后的用例文档;
获取所述修改后的用例文档中的用例文本数据,并将所述用例文本数据作为与所述第二源代码对应的目标测试用例。
可选地,所述对所述第二源代码进行翻译处理,得到对应的第二中文译文的步骤,包括:
获取所述第二源代码的开发语言;
根据所述开发语言,调用与所述开发语言对应的翻译模板;
按照预设规则对所述第二源代码包含的每一行代码中的单词进行英译中处理,得到对应的多个中文词语;
参照所述翻译模板,分别对所述第二源代码包含的每一行代码对应的中文词语进行排序,得到对应的多行中文语句;
将多行所述中文语句作为所述第二中文译文。
可选地,所述按照预设规则对所述第二源代码包含的每一行代码中的单词进行英译中处理,得到对应的多个中文词语的步骤,包括:
判断预设的标准翻译词库中是否包含指定行代码中的所有单词;其中,所述指定行代码为所述第二源代码中的任意一行代码,将所述指定行代码中的所有单词记为指定单词;
若所述标准翻译词库中包含指定行代码中的所有单词,则从所述标准翻译词库中查找出与各所述指定单词分别对应的第一翻译词语;
将所有所述第一翻译词语确定为所述中文词语。
可选地,所述判断预设的标准翻译词库中是否包含指定行代码中的所有单词的步骤之后,包括:
若所述标准翻译词库中未包含指定行代码中的所有单词,筛选出所述指定行代码中存在于所述标准翻译词库中的所有第一单词;
从所述标准翻译词库中查找出与各所述第一单词分别对应的第二翻译词语;
获取所述指定行代码中不存在于所述标准翻译词库中的所有第二单词,并判断预设的转换词库中是否包含所有所述第二单词;
若所述转换词库中包含所有所述第二单词,从所述转换词库中查找出与各所述第二单词分别对应的指定中文转换词语;
将所有所述第二翻译词语与所有所述指定中文转换词语确定为所述中文词语。
可选地,所述获取所述指定行代码中不存在于所述标准翻译词库中的所有第二单词,并判断预设的转换词库中是否包含所有所述第二单词的步骤之前,包括:
接收所有开发人员分别输入的单词转换数据;其中,所述单词转换数据包括多个自定义单词,以及与各所述自定义单词分别对应的中文转换词语;
将所述单词转换数据存储于预设的原始数据库内,得到存储处理后的原始数据库;
将所述存储处理后的原始数据库作为所述转换词库。
可选地,所述根据所述比对任务的执行逻辑,对所述第二中文译文与所述第一中文译文进行数据比较处理,查找出所述第二中文译文与所述第一中文译文之间的差异数据的步骤,包括:
基于预设的并行比较指令,对所述第二中文译文中的每一行译文与所述第一中文译文中的每一行译文进行一一对应的数据比较处理,得到相应的多个数据比较信息;其中,数据比较信息包括数据比较结果与数据差异信息,所述数据比较结果包括存在差异或不存在差异;
从所有所述数据比较结果中筛选出结果内容为存在差异的指定比较结果;
从所有所述数据差异信息中获取与所述指定比较结果对应的指定数据差异信息;
将所述指定数据差异信息确定为所述差异数据。
可选地,所述获取所述修改后的用例文档中的用例文本数据,并将所述用例文本数据作为与所述第二源代码对应的目标测试用例的步骤之后,包括:
基于所述目标测试用例对所述第二源代码进行测试;
记录测试过程中的测试信息,并判断所述测试信息中是否存在测试报错信息;
若所述测试信息中不存在测试报错信息,根据所述测试信息生成对应的测试结果并输出;
若所述测试信息中存在测试报错信息,确定与所述测试报错信息对应的报错类型;
使用与所述报错类型对应的报错标识对所述测试报错信息进行标记,得到标记后的测试报错信息;
展示所述标记后的测试报错信息。
本申请还提供一种测试用例生成装置,包括:
第一获取模块,用于当接收到用户输入的代码版本信息时,获取与所述代码版本信息对应的第二源代码;其中,所述第二源代码为开发人员对第一源代码进行功能更新后生成的,所述第一源代码为与预设代码版本信息对应的代码,所述预设代码版本信息的版本等级低于所述代码版本信息;
第一处理模块,用于对所述第二源代码进行翻译处理,得到对应的第二中文译文;
第二获取模块,用于获取对所述第一源代码进行翻译处理后得到的第一中文译文;
第一判断模块,用于判断是否接收到用户触发的数据比对指令;
第一生成模块,用于若接收到所述数据比对指令,则读取并运行预设的比对代码,生成比对所述第二中文译文以及所述第一中文译文的比对任务;
第二处理模块,用于根据所述比对任务的比对逻辑,对所述第二中文译文与所述第一中文译文进行数据比较处理,查找出所述第二中文译文与所述第一中文译文之间的差异数据;
第三获取模块,用于获取预设的可编辑文档模板以及与所述第一源代码对应的测试用例,并将所述测试用例复制至所述可编辑文档模板内,生成初始用例文档;
第二生成模块,用于将所述差异数据填充于预设的空白文档,生成对应的数据文档;
第一展示模块,用于在当前界面展示所述初始用例文档与所述数据文档,以便所述用户基于所述数据文档对所述初始用例文档进行修改处理,生成修改后的用例文档;
第一确定模块,用于获取所述修改后的用例文档中的用例文本数据,并将所述用例文本数据作为与所述第二源代码对应的目标测试用例。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本申请中提供的测试用例生成方法、装置、计算机设备和存储介质,具有以下有益效果:
本申请中提供的测试用例生成方法、装置、计算机设备和存储介质,在用户具有对第一源代码进行功能更新后生成的第二源代码编写生成测试用例的需求时,会预先对第一源代码与第二源代码进行翻译处理以得到对应的第一中文译文与第二中文译文。在接收到用户触发的数据比对指令后,会智能地读取并运行预设的比对代码以生成相应的比对任务,之后基于该对比任务的比对逻辑,将上述第二中文译文与上述第一中文译文进行数据比较处理,以快速查找出上述第二中文译文与上述第一中文译文之间的差异数据。最后同时向用户展示包含该差异数据的数据文档,以及包含该第一源代码对应的可编辑的初始用例文档,以便用户基于上述数据文档对上述初始用例文档进行修改处理,进而实现与第二源代码对应的目标测试用例的快速生成。本实施例通过以用户熟悉的中文形式展示出第二源代码与第一源代码之间的差异数据,能够减少测试人员的阅读工作量,降低了测试人员的阅读困难,并便于测试人员能够清晰地知道功能更新后的第二源代码相较于第一源代码所开发增加的功能内容,以及对原有功能的影响情况,使得测试人员能够在查阅数据文档中的差异数据后,基于测试的实际需求来该初始用例文档进行适应性修改以生成所需的与上述第二源代码对应的目标测试用例,从而无需测试人员重新编写测试用例,降低了目标测试用例的生成成本,提高了目标测试用例的生成效率,提高了测试人员的工作效率,也降低了目标测试用例的生成难度。
附图说明
图1是本申请一实施例的测试用例生成方法的流程示意图;
图2是本申请一实施例的测试用例生成装置的结构示意图;
图3是本申请一实施例的计算机设备的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用于解释本申请,并不用于限定本申请。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
参照图1,本申请一实施例的测试用例生成方法,包括:
S1:当接收到用户输入的代码版本信息时,获取与所述代码版本信息对应的第二源代码;其中,所述第二源代码为开发人员对第一源代码进行功能更新后生成的,所述第一源代码为与预设代码版本信息对应的代码,所述预设代码版本信息的版本等级低于所述代码版本信息;
S2:对所述第二源代码进行翻译处理,得到对应的第二中文译文;
S3:获取对所述第一源代码进行翻译处理后得到的第一中文译文;
S4:判断是否接收到用户触发的数据比对指令;
S5:若接收到所述数据比对指令,则读取并运行预设的比对代码,生成比对所述第二中文译文以及所述第一中文译文的比对任务;
S6:根据所述比对任务的比对逻辑,对所述第二中文译文与所述第一中文译文进行数据比较处理,查找出所述第二中文译文与所述第一中文译文之间的差异数据;
S7:获取预设的可编辑文档模板以及与所述第一源代码对应的测试用例,并将所述测试用例复制至所述可编辑文档模板内,生成初始用例文档;
S8:将所述差异数据填充于预设的空白文档,生成对应的数据文档;
S9:在当前界面展示所述初始用例文档与所述数据文档,以便所述用户基于所述数据文档对所述初始用例文档进行修改处理,生成修改后的用例文档;
S10:获取所述修改后的用例文档中的用例文本数据,并将所述用例文本数据作为与所述第二源代码对应的目标测试用例。
如上述步骤S1至S10所述,本方法实施例的执行主体为一种测试用例生成装置。在实际应用中,上述测试用例生成装置可以通过虚拟装置,例如软件代码实现,也可以通过写入或集成有相关执行代码的实体装置实现,且可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。本实施例中的测试用例生成装置,无需测试人员重新编写测试用例,降低了目标测试用例的生成成本与生成难度,有效地提高了目标测试用例的生成效率,以及提高了测试人员的工作效率。具体地,当接收到用户输入的代码版本信息时,首先获取与上述代码版本信息对应的第二源代码。其中,上述第二源代码为开发人员对第一源代码进行功能更新后生成的,上述第一源代码为与预设代码版本信息对应的代码,上述预设代码版本信息的版本等级低于上述代码版本信息,例如可为初始代码版本信息,或者为代码版本信息相邻的上一个代码版本信息。另外,代码都是在git管理平台进行管理的,对于每一次版本更新的代码数据都是有记录的,根据相应的代码版本信息,例如版本号就可以把部署前后的版本代码拉取到本地。此外,上述源代码是由许多的单词形成的,上述单词可包括编程语言单词和开发人员自创的自定义单词,源代码的一般形式包括方法体本身代码、方法体内部代码以及方法体外部代码。然后对上述第二源代码进行翻译处理,得到对应的第二中文译文。其中,可先对上述第二源代码包含的每一行代码中的单词进行英译中处理,得到对应的多个中文词语,再参照预存储的与第二源代码的开发语言对应的翻译模板来对每一行代码对应的中文词语分别进行排序进而能够得到相应的第二中文译文。以及同时获取对上述第一源代码进行翻译处理后得到的第一中文译文。其中,上述第一中文译文为对上述第一源代码进行与上述第二源代码相同的翻译处理后得到的,具体可参照上述第二源代码的翻译处理流程,在此不再赘述。
之后判断是否接收到用户触发的数据比对指令。其中,对于上述数据比对指令的触发方式不作具体限定,例如可通过用户点击/按压预设的数据比对工具的功能按钮来实现,或者可通过用户输入相关的语音数据或文字数据来实现,等等。如果接收到上述数据比对指令,则读取并运行预设的比对代码,生成比对上述第二中文译文以及上述第一中文译文的比对任务。其中,可预先在装置内嵌入一个数据比对工具,当用户通过触发该数据比对工具的比对功能按钮时,则会自动地读取并运行预设的比对代码,生成比对上述第二中文译文以及上述第一中文译文的比对任务,进而后续会自动执行该比对任务中的数据比对程序,以进行述第二中文译文及上述第一中文译文之间的数据比对处理。在生成了上述比对任务后,再根据上述比对任务的比对逻辑,对上述第二中文译文与上述第一中文译文进行数据比较处理,查找出上述第二中文译文与上述第一中文译文之间的差异数据。其中,可通过将上述第二中文译文与上述第一中文译文读入内存中,以通过在内存中进行两者之间相应的数据比对处理,能够有效提升对于数据的处理速度以及差异数据的生成效率。通过使用开发的比对工具以及比对代码来自动执行译文数据之间的数据比对处理,从而不需要安装其他的软件,保证了译文数据的安全性和便携性。并且,基于比对工具来实现译文数据之间的数据比对处理的过程操作简单,对于绝大多数普通测试人员来说,运用非常便捷,不需要经过复杂的培训,只需要点击比对工具内相应的触发按钮就能完成相应的比对任务,有效地提高了用户使用体验,以及提高了译文数据比对的处理效率。
然后获取预设的可编辑文档模板以及与上述第一源代码对应的测试用例,并将上述测试用例复制至上述可编辑文档模板内,生成初始用例文档。其中,上述测试用例是预先编写好的用于对上述第一源代码进行测试的用例数据。上述可编辑文档模板为可以人工进行内容编辑的文档模板文件,例如可为word文档。在得到了上述差异数据后,将上述差异数据填充于预设的空白文档,生成对应的数据文档。其中,上述空白文档可为一个具有存储功能的文档。并且在当前界面展示上述初始用例文档与上述数据文档,以便上述用户基于上述数据文档对上述初始用例文档进行修改处理,生成修改后的用例文档。其中,对于在当前界面展示上述初始用例文档与上述数据文档的展示方式不作具体限定,例如可先获取当前界面的尺寸大小,再根据该尺寸大小分别设置初始用例文档的第一尺寸以及设置数据文档的第二尺寸,优选可将两个文档设置为相同的尺寸,两者的高相等且宽为当前界面的宽的一半,进而实现可以工整清楚地在当前界面展示出上述初始用例文档与数据文档,使得用户能够在查阅数据文档中的差异数据后,基于测试的实际需求来该初始用例文档进行适应性修改以生成所需的与上述第二源代码对应的目标测试用例,从而无需测试人员重新编写测试用例,提高了目标测试用例的生成效率。
最后获取上述修改后的用例文档中的用例文本数据,并将上述用例文本数据作为与上述第二源代码对应的目标测试用例。其中,由于差异数据是中文的数据形式,从而能够减少测试人员的阅读工作量,降低了测试人员的阅读困难,并便于测试人员能够清晰地知道功能更新后的第二源代码相较于第一源代码所开发增加的功能内容,以及对原有功能的影响情况。且测试人员也可以根据该差异数据来更好的对上述初始用例文档进行对应修改,实现快速的补充编写测试案例,提高测试人员的工作效率。在生成了目标测试用例后,后续还可将其存储至区块链网络中以保证数据安全,以及根据该目标测试用例进行相应的关联点测试。
本实施例在用户具有对第一源代码进行功能更新后生成的第二源代码编写生成测试用例的需求时,会预先对第一源代码与第二源代码进行翻译处理以得到对应的第一中文译文与第二中文译文。在接收到用户触发的数据比对指令后,会智能地读取并运行预设的比对代码以生成相应的比对任务,之后基于该对比任务的比对逻辑,将上述第二中文译文与上述第一中文译文进行数据比较处理,以快速查找出上述第二中文译文与上述第一中文译文之间的差异数据。最后同时向用户展示包含该差异数据的数据文档,以及包含该第一源代码对应的可编辑的初始用例文档,以便用户基于上述数据文档对上述初始用例文档进行修改处理,进而实现与第二源代码对应的目标测试用例的快速生成。本实施例通过以用户熟悉的中文形式展示出第二源代码与第一源代码之间的差异数据,能够减少测试人员的阅读工作量,降低了测试人员的阅读困难,并便于测试人员能够清晰地知道功能更新后的第二源代码相较于第一源代码所开发增加的功能内容,以及对原有功能的影响情况,使得测试人员能够在查阅数据文档中的差异数据后,基于测试的实际需求来该初始用例文档进行适应性修改以生成所需的与上述第二源代码对应的目标测试用例,从而无需测试人员重新编写测试用例,降低了目标测试用例的生成成本,提高了目标测试用例的生成效率,提高了测试人员的工作效率,也降低了目标测试用例的生成难度。
进一步地,本申请一实施例中,上述步骤S2,包括:
S200:获取所述第二源代码的开发语言;
S201:根据所述开发语言,调用与所述开发语言对应的翻译模板;
S202:按照预设规则对所述第二源代码包含的每一行代码中的单词进行英译中处理,得到对应的多个中文词语;
S203:参照所述翻译模板,分别对所述第二源代码包含的每一行代码对应的中文词语进行排序,得到对应的多行中文语句;
S204:将多行所述中文语句作为所述第二中文译文。
如上述步骤S200至S204所述,上述对上述第二源代码进行翻译处理,得到对应的第二中文译文的步骤,具体可包括:首先获取上述第二源代码的开发语言。其中,上述开发语言的类别可包括多种,例如可包括C语言、VB语言、Python语言,等等。然后根据上述开发语言,调用与上述开发语言对应的翻译模板。其中,预先设置有与各种开发语言分别对应的翻译模板,例如可包括C语言翻译模板、VB语言翻译模板、Python语言翻译模板,等等。举例地,如果上述开发语言为Python语言,则会对应调用Python语言翻译模板。之后按照预设规则对上述第二源代码包含的每一行代码中的单词进行英译中处理,得到对应的多个中文词语。其中,可以使用预先创建的标准翻译词库以及转换词库来对上述第二源代码包含的每一行代码中的单词进行英译中处理,即基于第二源代码包含的每一行代码中的单词对标准翻译词库以及转换词库进行查询处理,以从两个词库中查找出对应的中文词语。最后参照上述翻译模板,分别对上述第二源代码包含的每一行代码对应的中文词语进行排序,得到对应的多行中文语句,并将多行上述中文语句作为上述第二中文译文。举例地,如果上述第二源代码具体为:
for a in range(1,10)
if a%2==0:
print(a)
通过对上述第二源代码进行代码语言分析后,可获取得到第二源代码的开发语言为Python语言,且可调用内置的Python语言翻译模板:
for X in range(x,y)--对应的中文翻译是:遍历从y到z中的对象,并传递给a;
if a%b==0:--对应中文翻译是:如果a除以b的余数等于0;
print(i)--对应的中文翻译是:打印i。
通过对上述第二源代码中的每一行代码中的单词进行英译中处理,分别得到对应的多个中文词语后,此时参照上述Python语言翻译模板,便可精确的得到与第二源代码对应的第二中文译文为:遍历从1到10中的对象,并传递给a,如果a除以2的余数等于0,打印a。
本实施例通过先对上述第二源代码包含的每一行代码中的单词进行英译中处理,得到对应的多个中文词语,再参照与第二源代码的开发语言对应的翻译模板来对每一行代码对应的中文词语分别进行排序进而实现准确快速地得到相应的第二中文译文,有利于后续通过查找出上述第二中文译文与第一中文译文之间的差异数据,进而使得用户能够基于该差异数据来对与第一源代码对应的测试用例进行修改处理以快速便捷地生成与第二源代码对应的目标测试用例。
进一步地,本申请一实施例中,上述步骤S202,包括:
S2020:判断预设的标准翻译词库中是否包含指定行代码中的所有单词;其中,所述指定行代码为所述第二源代码中的任意一行代码,将所述指定行代码中的所有单词记为指定单词;
S2021:若所述标准翻译词库中包含指定行代码中的所有单词,则从所述标准翻译词库中查找出与各所述指定单词分别对应的第一翻译词语;
S2022:将所有所述第一翻译词语确定为所述中文词语。
如上述步骤S2020至S2022所述,上述按照预设规则对上述第二源代码包含的每一行代码中的单词进行英译中处理,得到对应的多个中文词语的步骤,具体可包括:首先判断预设的标准翻译词库中是否包含指定行代码中的所有单词;其中,上述指定行代码为上述第二源代码中的任意一行代码,将上述指定行代码中的所有单词记为指定单词。另外,上述标准翻译词库的生成过程可包括:预先创建出一个未存储有数据的原始词库,然后通过网络资源搜寻出在代码编程中常用的一定数量的编程语言单词,例如可通过编程语言官方网站等相关资源进行搜寻,并调用翻译软件对搜寻得到的编程语言单词进行中译英处理,得到与编程语言单词对应的翻译词语,最后将搜寻得到的编程语言单词,以及经过对编程语言单词进行中译英处理后得到的翻译词语一一对应地存储到该原始词库内,以得到最终的上述标准翻译词库。此外,对于上述标准翻译词库还设置有更新功能,可在一定的时间周期内向标准翻译词库增加新的编程语言单词以及对应的翻译词语,或者删除一些旧的编程语言单词以及对应的翻译词语,以完成对标准翻译词库的更新。如果上述标准翻译词库中包含指定行代码中的所有单词,则从上述标准翻译词库中查找出与各上述指定单词分别对应的第一翻译词语。最后在得到上述第一翻译词语时,将上述第一翻译词语确定为上述中文词语。本实施例当判定出标准翻译词库中包含有第二源代码中每一行代码中的所有单词时,则会智能地从上述标准翻译词库中查找出与各上述指定单词分别对应的第一翻译词语并将其作为上述中文词语,从而之后能够参照上述翻译模板分别对第二源代码包含的每一行代码对应的中文词语进行排序来实现准确快速地得到相应的第二中文译文,有利于后续通过查找出上述第二中文译文与第一中文译文之间的差异数据,进而使得用户能够基于该差异数据来对与第一源代码对应的测试用例进行修改处理以快速便捷地生成与第二源代码对应的目标测试用例。
进一步地,本申请一实施例中,上述步骤S2020之后,包括:
S2023:若所述标准翻译词库中未包含指定行代码中的所有单词,筛选出所述指定行代码中存在于所述标准翻译词库中的所有第一单词;
S2024:从所述标准翻译词库中查找出与各所述第一单词分别对应的第二翻译词语;
S2025:获取所述指定行代码中不存在于所述标准翻译词库中的所有第二单词,并判断预设的转换词库中是否包含所有所述第二单词;
S2026:若所述转换词库中包含所有所述第二单词,从所述转换词库中查找出与各所述第二单词分别对应的指定中文转换词语;
S2027:将所述第二翻译词语与所述指定中文转换词语确定为所述中文词语。
如上述步骤S2023至S2027所述,在进行判断预设的标准翻译词库中是否包含指定行代码中的所有单词的判断过程中,还可能出现指定行代码中包含有不存在于上述标准翻译词库中的单词的情况,例如可能为开发人员为了工作方便需求而形成的自定义单词,此时可调用预创建的转换词库对该自定义单词进行转换处理来得到相应的中文转换词语,进而完成对于第二源代码的翻译处理。具体地,如果上述标准翻译词库中未包含指定行代码中的所有单词,首先筛选出上述指定行代码中存在于上述标准翻译词库中的所有第一单词。其中,如果上述标准翻译词库中未包含指定行代码中的所有单词,表明该指定行代码中既存在标准的编程语言单词,也存在由开发人员自行创建生成的自定义单词。然后从上述标准翻译词库中查找出与各上述第一单词分别对应的第二翻译词语。之后获取上述指定行代码中不存在于上述标准翻译词库中的所有第二单词,并判断预设的转换词库中是否包含所有上述第二单词。其中,上述的转换词库是一个由所有的开发人员共享数据的转换词库,该转换词库内存储有每一个开发人员输入的单词转换数据,每一个单词转换数据内包含有每一个开发人员记录的多个自定义单词,以及与每一个自定义单词分别对应的中文转换词语。如果上述转换词库中包含所有上述第二单词,从上述转换词库中查找出与各上述第二单词分别对应的指定中文转换词语。其中,在对上述指定行代码进行翻译处理时,当出现在上述指定行代码中包含有不存在于上述标准翻译词库内的第二单词的情形时,则表明该第二单词可为开发人员创建的自定义单词,此时通过将该第二单词与该转换词库内所有的自定义单词进行匹配比对,进而可筛选出与该第二单词对应的中文转换词语,以实现将第二单词翻译成对应的指定中文转换词语。举例地,上述第二单词为开发人员编写的自定义单词ap,且上述转换词库内预存储有自定义单词ap,以及自定义单词ap的中文转换词语为约定(appointment的中文翻译),则从转换词库中查找出的上述指定中文转换词语为约定。最后将所有上述第二翻译词语与所有上述指定中文转换词语确定为上述中文词语。本实施例当判定出在标准翻译词库中包含有第二源代码中指定行代码中的第一单词,以及转换词库中包含有第二源代码中指定行代码中的第二单词时,则会智能地分别从标准翻译词库中查找出与各上述第一单词分别对应的第二翻译词语,以及从转换词库中查找出与各上述第二单词分别对应的指定中文转换词语,并将得到的所有第二翻译词语与所有指定中文转换词语作为上述中文词语,从而之后能够参照上述翻译模板分别对第二源代码包含的每一行代码对应的中文词语进行排序来实现准确快速地得到相应的第二中文译文,有利于后续通过查找出上述第二中文译文与第一中文译文之间的差异数据,进而使得用户能够基于该差异数据来对与第一源代码对应的测试用例进行修改处理以快速便捷地生成与第二源代码对应的目标测试用例。
进一步地,本申请一实施例中,上述步骤S2025之前,包括:
S20250:接收所有开发人员分别输入的单词转换数据;其中,所述单词转换数据包括多个自定义单词,以及与各所述自定义单词分别对应的中文转换词语;
S20251:将所述单词转换数据存储于预设的原始数据库内,得到存储处理后的原始数据库;
S20252:将所述存储处理后的原始数据库作为所述转换词库。
如上述步骤S20250至S20252所述,在执行获取上述指定行代码中不存在于上述标准翻译词库中的所有第二单词,并判断预设的转换词库中是否包含所有上述第二单词的步骤之前,还可包括上述转换词库的生成过程。具体地,首先接收所有开发人员分别输入的单词转换数据;其中,上述单词转换数据包括多个自定义单词,以及与各上述自定义单词分别对应的中文转换词语。然后将上述单词转换数据存储于预设的原始数据库内,得到存储处理后的原始数据库。其中,上述原始数据库可为未存储有数据的数据库。最后将上述存储处理后的原始数据库作为上述转换词库。其中,对上述转换词库还设置有更新功能,可在一定的时间周期内向转换词库增加新的单词转换数据,或者删除一些单词转换数据,或者对某一些单词转换数据进行数据修改,以完成对转换词库的更新,使得转换词库内存储的是准确性高且时效性新的单词转换数据,后续基于更新后的转换词库能够有效提高代码翻译处理的准确性。本实施例通过基于开发人员输入的单词转换数据来创建生成转换词库,有利于后续能够基于该转换词库来方便快捷地进行对上述第二源代码包含的每一行代码中的单词进行英译中处理,来得到对应的多个中文词语,使得能够参照上述翻译模板分别对第二源代码包含的每一行代码对应的中文词语进行排序来实现准确快速地得到相应的第二中文译文,保证了生成的第二中文译文的准确性与生成效率。
进一步地,本申请一实施例中,上述步骤S6,包括:
S600:基于预设的并行比较指令,对所述第二中文译文中的每一行译文与所述第一中文译文中的每一行译文进行一一对应的数据比较处理,得到相应的多个数据比较信息;其中,数据比较信息包括数据比较结果与数据差异信息,所述数据比较结果包括存在差异或不存在差异;
S601:从所有所述数据比较结果中筛选出结果内容为存在差异的指定比较结果;
S602:从所有所述数据差异信息中获取与所述指定比较结果对应的指定数据差异信息;
S603:将所述指定数据差异信息确定为所述差异数据。
如上述步骤S600至S603所述,上述根据上述比对任务的执行逻辑,对上述第二中文译文与上述第一中文译文进行数据比较处理,查找出上述第二中文译文与上述第一中文译文之间的差异数据的步骤,具体可包括:首先基于预设的并行比较指令,对上述第二中文译文中的每一行译文与上述第一中文译文中的每一行译文进行一一对应的数据比较处理,得到相应的多个数据比较信息。其中,数据比较信息包括数据比较结果与数据差异信息,上述数据比较结果包括存在差异或不存在差异。对于第二中文译文中的某一行译文与第一中文译文中对应行的译文进行数据比较处理后,如果得到了结果内容为不存在差异的数据比较结果,则第二中文译文中的某一行译文与第一中文译文中对应行所对应的数据差异信息为空,表明了两者为相同的内容,不存在数据差异;而如果得到了结果内容为存在差异的数据比较结果,则数据信息是指第二中文译文中的某一行译文与第一中文译文中对应行的译文之间存在数据差异的差异数据。另外,上述并行比较指令具体可为单指令流多数据流(single instruction multiple data,SIMD)指令。然后从所有上述数据比较结果中筛选出结果内容为存在差异的指定比较结果。之后从所有上述数据差异信息中获取与上述指定比较结果对应的指定数据差异信息。最后将上述指定数据差异信息确定为上述差异数据。本实施例通过利用并行比较指令的并行计算能力,来同时对上述第二中文译文中的每一行译文与上述第一中文译文中的每一行译文进行一一对应的数据比较处理来得到相应的多个数据比较信息,进而能够根据该数据比较信息来查找出上述第二中文译文与上述第一中文译文之间的差异数据,有效地提高了译文数据的比对处理速率,以及提高了生成差异数据的生成速率。
进一步地,本申请一实施例中,上述步骤S10之后,包括:
S11:基于所述目标测试用例对所述第二源代码进行测试;
S12:记录测试过程中的测试信息,并判断所述测试信息中是否存在测试报错信息;
S13:若所述测试信息中不存在测试报错信息,根据所述测试信息生成对应的测试结果并输出;
S14:若所述测试信息中存在测试报错信息,确定与所述测试报错信息对应的报错类型;
S15:使用与所述报错类型对应的报错标识对所述测试报错信息进行标记,得到标记后的测试报错信息;
S16:展示所述标记后的测试报错信息。
如上述步骤S11至S16所述,在执行完上述获取上述修改后的用例文档中的用例文本数据,并将上述用例文本数据作为与上述第二源代码对应的目标测试用例的步骤之后,还可进一步使用该目标测试用例对上述第二源代码进行测试处理。具体地,首先基于上述目标测试用例对上述第二源代码进行测试。然后记录测试过程中的测试信息,并判断上述测试信息中是否存在测试报错信息。如果上述测试信息中不存在测试报错信息,根据上述测试信息生成对应的测试结果并输出。其中,为了便于测试人员后续对测试过程进行复查,可预先记录测试过程中的测试信息,如果检测到测试信息中不存在测试报错信息时,则会直接根据测试信息生成并输出测试结果,通过基于目标测试用例对第二源代码进行自动化测试,能够减轻测试人员的测试工作量,提高测试效率。而如果上述测试信息中存在测试报错信息,确定与上述测试报错信息对应的报错类型。之后使用与上述报错类型对应的报错标识对上述测试报错信息进行标记,得到标记后的测试报错信息。其中,对上述报错类型的划分以及报错标识的设定不作具体的限制,报错类型可以是开发人员预先定义的软件测试错误类型。一般情况下,不同的错误类型对应的标识不相同,例如测试出错的报错标识可以设定为“error”、测试失败的报错标识可以设定为“fail”等。最后展示上述标记后的测试报错信息。其中,在对标记后的测试报错信息进行展示的同时,还可以将测试报错信息通过邮件或即时消息的方式发送至本次测试对应的测试人员的用户终端以提示测试人员查看,使得测试人员能够基于收到邮件或即时消息及时清楚了解测试过程中出现的报错信息并及时做出对应的反应,进而有效的提高测试效率。
本申请实施例中的测试用例生成方法还可以应用于区块链领域,如将上述目标测试用例等数据存储于区块链上。通过使用区块链来对上述目标测试用例进行存储和管理,能够有效地保证上述目标测试用例的安全性与不可篡改性。
上述区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
参照图2,本申请一实施例中还提供了一种测试用例生成装置,包括:
第一获取模块1,用于当接收到用户输入的代码版本信息时,获取与所述代码版本信息对应的第二源代码;其中,所述第二源代码为开发人员对第一源代码进行功能更新后生成的,所述第一源代码为与预设代码版本信息对应的代码,所述预设代码版本信息的版本等级低于所述代码版本信息;
第一处理模块2,用于对所述第二源代码进行翻译处理,得到对应的第二中文译文;
第二获取模块3,用于获取对所述第一源代码进行翻译处理后得到的第一中文译文;
第一判断模块4,用于判断是否接收到用户触发的数据比对指令;
第一生成模块5,用于若接收到所述数据比对指令,则读取并运行预设的比对代码,生成比对所述第二中文译文以及所述第一中文译文的比对任务;
第二处理模块6,用于根据所述比对任务的比对逻辑,对所述第二中文译文与所述第一中文译文进行数据比较处理,查找出所述第二中文译文与所述第一中文译文之间的差异数据;
第三获取模块7,用于获取预设的可编辑文档模板以及与所述第一源代码对应的测试用例,并将所述测试用例复制至所述可编辑文档模板内,生成初始用例文档;
第二生成模块8,用于将所述差异数据填充于预设的空白文档,生成对应的数据文档;
第一展示模块9,用于在当前界面展示所述初始用例文档与所述数据文档,以便所述用户基于所述数据文档对所述初始用例文档进行修改处理,生成修改后的用例文档;
第一确定模块10,用于获取所述修改后的用例文档中的用例文本数据,并将所述用例文本数据作为与所述第二源代码对应的目标测试用例。
本实施例中,上述测试用例生成装置中的第一获取模块1、第一处理模块2、第二获取模块3、第一判断模块4、第一生成模块5、第二处理模块6、第三获取模块7、第二生成模块8、第一展示模块9与第一确定模块10的功能和作用的实现过程具体详见上述测试用例生成方法中对应步骤S1至S10的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述第一处理模块2,包括:
第一获取单元,用于获取所述第二源代码的开发语言;
调用单元,用于根据所述开发语言,调用与所述开发语言对应的翻译模板;
处理单元,用于按照预设规则对所述第二源代码包含的每一行代码中的单词进行英译中处理,得到对应的多个中文词语;
排序单元,用于参照所述翻译模板,分别对所述第二源代码包含的每一行代码对应的中文词语进行排序,得到对应的多行中文语句;
第一确定单元,用于将多行所述中文语句作为所述第二中文译文。
本实施例中,上述测试用例生成装置中的第一获取单元、调用单元、处理单元、排序单元与第一确定单元的功能和作用的实现过程具体详见上述测试用例生成方法中对应步骤S200至S204的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述处理单元,包括:
判断子单元,用于判断预设的标准翻译词库中是否包含指定行代码中的所有单词;其中,所述指定行代码为所述第二源代码中的任意一行代码,将所述指定行代码中的所有单词记为指定单词;
第一查找子单元,用于若所述标准翻译词库中包含指定行代码中的所有单词,则从所述标准翻译词库中查找出与各所述指定单词分别对应的第一翻译词语;
第一确定子单元,用于将所有所述第一翻译词语确定为所述中文词语。
本实施例中,上述测试用例生成装置中的判断子单元、第一查找子单元与第一确定子单元的功能和作用的实现过程具体详见上述测试用例生成方法中对应步骤S2020至S2022的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述处理单元,包括:
筛选子单元,用于若所述标准翻译词库中未包含指定行代码中的所有单词,筛选出所述指定行代码中存在于所述标准翻译词库中的所有第一单词;
第二查找子单元,用于从所述标准翻译词库中查找出与各所述第一单词分别对应的第二翻译词语;
获取子单元,用于获取所述指定行代码中不存在于所述标准翻译词库中的所有第二单词,并判断预设的转换词库中是否包含所有所述第二单词;
第三查找子单元,用于若所述转换词库中包含所有所述第二单词,从所述转换词库中查找出与各所述第二单词分别对应的指定中文转换词语;
第二确定子单元,用于将所述第二翻译词语与所述指定中文转换词语确定为所述中文词语。
本实施例中,上述测试用例生成装置中的筛选子单元、第二查找子单元、获取子单元、第三查找子单元与第二确定子单元的功能和作用的实现过程具体详见上述测试用例生成方法中对应步骤S2023至S2027的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述处理单元,包括:
接收子单元,用于接收所有开发人员分别输入的单词转换数据;其中,所述单词转换数据包括多个自定义单词,以及与各所述自定义单词分别对应的中文转换词语;
存储子单元,用于将所述单词转换数据存储于预设的原始数据库内,得到存储处理后的原始数据库;
第三确定子单元,用于将所述存储处理后的原始数据库作为所述转换词库。
本实施例中,上述测试用例生成装置中的接收子单元、存储子单元与第三确定子单元的功能和作用的实现过程具体详见上述测试用例生成方法中对应步骤S20250至S20252的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述第二处理模块6,包括:
比较单元,用于基于预设的并行比较指令,对所述第二中文译文中的每一行译文与所述第一中文译文中的每一行译文进行一一对应的数据比较处理,得到相应的多个数据比较信息;其中,数据比较信息包括数据比较结果与数据差异信息,所述数据比较结果包括存在差异或不存在差异;
筛选单元,用于从所有所述数据比较结果中筛选出结果内容为存在差异的指定比较结果;
第二获取单元,用于从所有所述数据差异信息中获取与所述指定比较结果对应的指定数据差异信息;
第二确定单元,用于将所述指定数据差异信息确定为所述差异数据。
本实施例中,上述测试用例生成装置中的比较单元、筛选单元、第二获取单元与第二确定单元的功能和作用的实现过程具体详见上述测试用例生成方法中对应步骤S600至S603的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述测试用例生成装置,包括:
测试模块,用于基于所述目标测试用例对所述第二源代码进行测试;
第二判断模块,用于记录测试过程中的测试信息,并判断所述测试信息中是否存在测试报错信息;
第三生成模块,用于若所述测试信息中不存在测试报错信息,根据所述测试信息生成对应的测试结果并输出;
第二确定模块,用于若所述测试信息中存在测试报错信息,确定与所述测试报错信息对应的报错类型;
标记模块,用于使用与所述报错类型对应的报错标识对所述测试报错信息进行标记,得到标记后的测试报错信息;
第二展示模块,用于展示所述标记后的测试报错信息。
本实施例中,上述测试用例生成装置中的测试模块、第二判断模块、第三生成模块、第二确定模块、标记模块与第二展示模块的功能和作用的实现过程具体详见上述测试用例生成方法中对应步骤S11至S16的实现过程,在此不再赘述。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏、输入装置和数据库。其中,该计算机设备设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括存储介质、内存储器。该存储介质存储有操作系统、计算机程序和数据库。该内存储器为存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储代码版本信息、第二源代码、第二中文译文、第一中文译文、比对代码、差异数据、测试用例、初始用例文档、数据文档、修改后的用例文档以及用例文本数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机设备的显示屏是计算机中必不可少的一种图文输出设备,用于将数字信号转换为光信号,使文字与图形在显示屏的屏幕上显示出来。该计算机设备的输入装置是计算机与用户或其他设备之间进行信息交换的主要装置,用于把数据、指令及某些标志信息等输送到计算机中去。该计算机程序被处理器执行时以实现一种测试用例生成方法。
上述处理器执行上述测试用例生成方法的步骤:
当接收到用户输入的代码版本信息时,获取与所述代码版本信息对应的第二源代码;其中,所述第二源代码为开发人员对第一源代码进行功能更新后生成的,所述第一源代码为与预设代码版本信息对应的代码,所述预设代码版本信息的版本等级低于所述代码版本信息;
对所述第二源代码进行翻译处理,得到对应的第二中文译文;
获取对所述第一源代码进行翻译处理后得到的第一中文译文;
判断是否接收到用户触发的数据比对指令;
若接收到所述数据比对指令,则读取并运行预设的比对代码,生成比对所述第二中文译文以及所述第一中文译文的比对任务;
根据所述比对任务的比对逻辑,对所述第二中文译文与所述第一中文译文进行数据比较处理,查找出所述第二中文译文与所述第一中文译文之间的差异数据;
获取预设的可编辑文档模板以及与所述第一源代码对应的测试用例,并将所述测试用例复制至所述可编辑文档模板内,生成初始用例文档;
将所述差异数据填充于预设的空白文档,生成对应的数据文档;
在当前界面展示所述初始用例文档与所述数据文档,以便所述用户基于所述数据文档对所述初始用例文档进行修改处理,生成修改后的用例文档;
获取所述修改后的用例文档中的用例文本数据,并将所述用例文本数据作为与所述第二源代码对应的目标测试用例。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的装置、计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种测试用例生成方法,具体为:
当接收到用户输入的代码版本信息时,获取与所述代码版本信息对应的第二源代码;其中,所述第二源代码为开发人员对第一源代码进行功能更新后生成的,所述第一源代码为与预设代码版本信息对应的代码,所述预设代码版本信息的版本等级低于所述代码版本信息;
对所述第二源代码进行翻译处理,得到对应的第二中文译文;
获取对所述第一源代码进行翻译处理后得到的第一中文译文;
判断是否接收到用户触发的数据比对指令;
若接收到所述数据比对指令,则读取并运行预设的比对代码,生成比对所述第二中文译文以及所述第一中文译文的比对任务;
根据所述比对任务的比对逻辑,对所述第二中文译文与所述第一中文译文进行数据比较处理,查找出所述第二中文译文与所述第一中文译文之间的差异数据;
获取预设的可编辑文档模板以及与所述第一源代码对应的测试用例,并将所述测试用例复制至所述可编辑文档模板内,生成初始用例文档;
将所述差异数据填充于预设的空白文档,生成对应的数据文档;
在当前界面展示所述初始用例文档与所述数据文档,以便所述用户基于所述数据文档对所述初始用例文档进行修改处理,生成修改后的用例文档;
获取所述修改后的用例文档中的用例文本数据,并将所述用例文本数据作为与所述第二源代码对应的目标测试用例。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种测试用例生成方法,其特征在于,包括:
当接收到用户输入的代码版本信息时,获取与所述代码版本信息对应的第二源代码;其中,所述第二源代码为开发人员对第一源代码进行功能更新后生成的,所述第一源代码为与预设代码版本信息对应的代码,所述预设代码版本信息的版本等级低于所述代码版本信息;
对所述第二源代码进行翻译处理,得到对应的第二中文译文;
获取对所述第一源代码进行翻译处理后得到的第一中文译文;
判断是否接收到用户触发的数据比对指令;
若接收到所述数据比对指令,则读取并运行预设的比对代码,生成比对所述第二中文译文以及所述第一中文译文的比对任务;
根据所述比对任务的比对逻辑,对所述第二中文译文与所述第一中文译文进行数据比较处理,查找出所述第二中文译文与所述第一中文译文之间的差异数据;
获取预设的可编辑文档模板以及与所述第一源代码对应的测试用例,并将所述测试用例复制至所述可编辑文档模板内,生成初始用例文档;
将所述差异数据填充于预设的空白文档,生成对应的数据文档;
在当前界面展示所述初始用例文档与所述数据文档,以便所述用户基于所述数据文档对所述初始用例文档进行修改处理,生成修改后的用例文档;
获取所述修改后的用例文档中的用例文本数据,并将所述用例文本数据作为与所述第二源代码对应的目标测试用例。
2.根据权利要求1所述的测试用例生成方法,其特征在于,所述对所述第二源代码进行翻译处理,得到对应的第二中文译文的步骤,包括:
获取所述第二源代码的开发语言;
根据所述开发语言,调用与所述开发语言对应的翻译模板;
按照预设规则对所述第二源代码包含的每一行代码中的单词进行英译中处理,得到对应的多个中文词语;
参照所述翻译模板,分别对所述第二源代码包含的每一行代码对应的中文词语进行排序,得到对应的多行中文语句;
将多行所述中文语句作为所述第二中文译文。
3.根据权利要求2所述的测试用例生成方法,其特征在于,所述按照预设规则对所述第二源代码包含的每一行代码中的单词进行英译中处理,得到对应的多个中文词语的步骤,包括:
判断预设的标准翻译词库中是否包含指定行代码中的所有单词;其中,所述指定行代码为所述第二源代码中的任意一行代码,将所述指定行代码中的所有单词记为指定单词;
若所述标准翻译词库中包含指定行代码中的所有单词,则从所述标准翻译词库中查找出与各所述指定单词分别对应的第一翻译词语;
将所有所述第一翻译词语确定为所述中文词语。
4.根据权利要求3所述的测试用例生成方法,其特征在于,所述判断预设的标准翻译词库中是否包含指定行代码中的所有单词的步骤之后,包括:
若所述标准翻译词库中未包含指定行代码中的所有单词,筛选出所述指定行代码中存在于所述标准翻译词库中的所有第一单词;
从所述标准翻译词库中查找出与各所述第一单词分别对应的第二翻译词语;
获取所述指定行代码中不存在于所述标准翻译词库中的所有第二单词,并判断预设的转换词库中是否包含所有所述第二单词;
若所述转换词库中包含所有所述第二单词,从所述转换词库中查找出与各所述第二单词分别对应的指定中文转换词语;
将所有所述第二翻译词语与所有所述指定中文转换词语确定为所述中文词语。
5.根据权利要求4所述的测试用例生成方法,其特征在于,所述获取所述指定行代码中不存在于所述标准翻译词库中的所有第二单词,并判断预设的转换词库中是否包含所有所述第二单词的步骤之前,包括:
接收所有开发人员分别输入的单词转换数据;其中,所述单词转换数据包括多个自定义单词,以及与各所述自定义单词分别对应的中文转换词语;
将所述单词转换数据存储于预设的原始数据库内,得到存储处理后的原始数据库;
将所述存储处理后的原始数据库作为所述转换词库。
6.根据权利要求1所述的测试用例生成方法,其特征在于,所述根据所述比对任务的执行逻辑,对所述第二中文译文与所述第一中文译文进行数据比较处理,查找出所述第二中文译文与所述第一中文译文之间的差异数据的步骤,包括:
基于预设的并行比较指令,对所述第二中文译文中的每一行译文与所述第一中文译文中的每一行译文进行一一对应的数据比较处理,得到相应的多个数据比较信息;其中,数据比较信息包括数据比较结果与数据差异信息,所述数据比较结果包括存在差异或不存在差异;
从所有所述数据比较结果中筛选出结果内容为存在差异的指定比较结果;
从所有所述数据差异信息中获取与所述指定比较结果对应的指定数据差异信息;
将所述指定数据差异信息确定为所述差异数据。
7.根据权利要求1所述的测试用例生成方法,其特征在于,所述获取所述修改后的用例文档中的用例文本数据,并将所述用例文本数据作为与所述第二源代码对应的目标测试用例的步骤之后,包括:
基于所述目标测试用例对所述第二源代码进行测试;
记录测试过程中的测试信息,并判断所述测试信息中是否存在测试报错信息;
若所述测试信息中不存在测试报错信息,根据所述测试信息生成对应的测试结果并输出;
若所述测试信息中存在测试报错信息,确定与所述测试报错信息对应的报错类型;
使用与所述报错类型对应的报错标识对所述测试报错信息进行标记,得到标记后的测试报错信息;
展示所述标记后的测试报错信息。
8.一种测试用例生成装置,其特征在于,包括:
第一获取模块,用于当接收到用户输入的代码版本信息时,获取与所述代码版本信息对应的第二源代码;其中,所述第二源代码为开发人员对第一源代码进行功能更新后生成的,所述第一源代码为与预设代码版本信息对应的代码,所述预设代码版本信息的版本等级低于所述代码版本信息;
第一处理模块,用于对所述第二源代码进行翻译处理,得到对应的第二中文译文;
第二获取模块,用于获取对所述第一源代码进行翻译处理后得到的第一中文译文;
第一判断模块,用于判断是否接收到用户触发的数据比对指令;
第一生成模块,用于若接收到所述数据比对指令,则读取并运行预设的比对代码,生成比对所述第二中文译文以及所述第一中文译文的比对任务;
第二处理模块,用于根据所述比对任务的比对逻辑,对所述第二中文译文与所述第一中文译文进行数据比较处理,查找出所述第二中文译文与所述第一中文译文之间的差异数据;
第三获取模块,用于获取预设的可编辑文档模板以及与所述第一源代码对应的测试用例,并将所述测试用例复制至所述可编辑文档模板内,生成初始用例文档;
第二生成模块,用于将所述差异数据填充于预设的空白文档,生成对应的数据文档;
第一展示模块,用于在当前界面展示所述初始用例文档与所述数据文档,以便所述用户基于所述数据文档对所述初始用例文档进行修改处理,生成修改后的用例文档;
第一确定模块,用于获取所述修改后的用例文档中的用例文本数据,并将所述用例文本数据作为与所述第二源代码对应的目标测试用例。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110430528.2A CN113515444B (zh) | 2021-04-21 | 2021-04-21 | 测试用例生成方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110430528.2A CN113515444B (zh) | 2021-04-21 | 2021-04-21 | 测试用例生成方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113515444A CN113515444A (zh) | 2021-10-19 |
CN113515444B true CN113515444B (zh) | 2023-07-25 |
Family
ID=78061538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110430528.2A Active CN113515444B (zh) | 2021-04-21 | 2021-04-21 | 测试用例生成方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113515444B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113987016B (zh) * | 2021-10-25 | 2023-08-15 | 上海太美数字科技有限公司 | 临床递交数据对比方法、装置、计算机设备和存储介质 |
CN117951038B (zh) * | 2024-03-27 | 2024-06-25 | 浙江大学 | 基于代码大模型的Rust语言文档测试自动生成方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491331A (zh) * | 2018-04-13 | 2018-09-04 | 平安普惠企业管理有限公司 | 软件测试方法、装置、设备和计算机存储介质 |
CN108804322A (zh) * | 2018-06-05 | 2018-11-13 | 中国平安人寿保险股份有限公司 | 自动化测试方法、装置、计算机设备及存储介质 |
CN110162798A (zh) * | 2018-08-09 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 文档翻译方法、装置、计算机可读存储介质和计算机设备 |
CN111506498A (zh) * | 2020-03-16 | 2020-08-07 | 平安科技(深圳)有限公司 | 测试用例的自动生成方法、装置、计算机设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060271920A1 (en) * | 2005-05-24 | 2006-11-30 | Wael Abouelsaadat | Multilingual compiler system and method |
US10489513B2 (en) * | 2017-04-19 | 2019-11-26 | Salesforce.Com, Inc. | Web application localization |
US10698793B2 (en) * | 2018-08-23 | 2020-06-30 | International Business Machines Corporation | Function-message oriented test case generation for supporting continuous globalization verification testing |
-
2021
- 2021-04-21 CN CN202110430528.2A patent/CN113515444B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491331A (zh) * | 2018-04-13 | 2018-09-04 | 平安普惠企业管理有限公司 | 软件测试方法、装置、设备和计算机存储介质 |
CN108804322A (zh) * | 2018-06-05 | 2018-11-13 | 中国平安人寿保险股份有限公司 | 自动化测试方法、装置、计算机设备及存储介质 |
CN110162798A (zh) * | 2018-08-09 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 文档翻译方法、装置、计算机可读存储介质和计算机设备 |
CN111506498A (zh) * | 2020-03-16 | 2020-08-07 | 平安科技(深圳)有限公司 | 测试用例的自动生成方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113515444A (zh) | 2021-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112527630B (zh) | 测试用例生成方法、装置、计算机设备和存储介质 | |
US20200012629A1 (en) | System and method for generating a column-oriented data structure repository for columns of single data types | |
CN113515444B (zh) | 测试用例生成方法、装置、计算机设备和存储介质 | |
WO2021121158A1 (zh) | 公文文件处理方法、装置、计算机设备及存储介质 | |
CN112347310A (zh) | 事件处理信息的查询方法、装置、计算机设备和存储介质 | |
CN112463599B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN111737963B (zh) | 基于配置文件的表单填写方法、装置和计算机设备 | |
CN112667240A (zh) | 程序代码转换方法及相关设备 | |
CN112668041A (zh) | 单证文件的生成方法、装置、计算机设备和存储介质 | |
CN113282514B (zh) | 问题数据的处理方法、装置、计算机设备和存储介质 | |
León | Mathematica beyond mathematics: The Wolfram language in the real world | |
CN104679642A (zh) | 日志分析系统中的日志的与语言无关的处理方法和系统 | |
CN111797605A (zh) | 基于报表模板的报表生成方法、装置和计算机设备 | |
Moroz et al. | The Potential of Artificial Intelligence as a Method of Software Developer's Productivity Improvement | |
CN113656588B (zh) | 基于知识图谱的数据对码方法、装置、设备和存储介质 | |
CN117891447A (zh) | 一种企业管理软件开发方法、装置、设备及介质 | |
CN114327435A (zh) | 技术文档生成方法、装置、计算机可读存储介质 | |
JP2008250760A (ja) | 自然言語解析による要件定義支援システムシステム設計支援システム、要件定義支援装置、システム設計支援方法及びプログラム | |
Veeramani et al. | Abstract syntax tree based unified modeling language to object oriented code conversion | |
CN113849662A (zh) | 基于模型的信息生成方法、装置、计算机设备和存储介质 | |
Wille et al. | Identifying variability in object-oriented code using model-based code mining | |
CN115291887A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN112732423B (zh) | 流程迁移方法、装置、设备及介质 | |
CN114942749A (zh) | 审批系统开发方法、装置、设备及存储介质 | |
CN114780577A (zh) | Sql语句生成方法、装置、设备及存储介质 |
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 |