利用变换器使测试驱动的开发自动化的制作方法

专利检索2025-11-04  6



背景技术:

1、测试驱动的开发是这样的软件开发过程,其中首先定义针对程序的行为和功能的需求,并且在开发对应的源代码之前在测试用例中实现这些需求。测试用例指定并且验证程序的行为和功能。随着源代码的开发,将对照测试用例反复地进行测试,以确保所开发的源代码满足需求。

2、测试驱动的开发过程产生了更好的程序设计和源代码质量。软件设计变得模块化,因为开发者一次聚焦于单个功能,并且直到该功能通过所有测试才移动到下一个功能。这导致代码的模块化更好管理且易于扩展。此外,测试驱动的开发过程减少了花费在调试和维护上的时间。

3、尽管测试驱动的开发具有若干好处,但是该过程会消耗大量的时间。在一些情形中,测试驱动的开发会减慢开发的速度,因为直到测试用例被开发并且源代码通过所有预定义的测试用例,所实现的源代码才可能轻易可用。在这些情形中,在开发者直接实现源代码而没有测试用例的情况下,舍弃了测试驱动的开发。


技术实现思路

1、提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一系列概念。本概述不意图认定所要求保护的主题的关键特征或必要特征,也不意图用于限制所要求保护的主题的范围。

2、在给定方法体的测试用例以及可选的焦点方法的方法签名和文档串的情况下,带注意力的神经变换器模型执行对方法体生成的自动化。测试用例指定程序的行为和功能。验证所生成的方法体的句法正确性,使用给定的测试用例测试所生成的方法体,并且在目标系统中利用施主类测试所生成的方法体。然后,基于编程语言理解指标(programminglanguage understanding metric,plum)得分对那些通过验证和测试的候选方法体进行排序,plum得分对照各种质量指标和性能指标来评判自动生成的方法。

3、通过阅读以下详细描述和查看关联附图,这些和其他特征和优点将会显而易见。应当理解,前面的总体描述和下面的详细描述都只是说明性的,而不是对所要求保护的方面的限制。



技术特征:

1.一种系统,包括:

2.根据权利要求1所述的系统,其中所述一个或多个程序包括用以执行以下动作的另外的指令:

3.根据权利要求1所述的系统,其中所述一个或多个程序包括用以执行以下动作的另外的指令:

4.根据权利要求1所述的系统,其中所述一个或多个程序包括用以执行以下动作的另外的指令:

5.根据权利要求1所述的系统,其中所述一个或多个程序包括用以执行以下动作的另外的指令:

6.根据权利要求1所述的系统,其中所述一个或多个程序包括用以执行以下动作的指令:

7.根据权利要求6所述的系统,其中所述一个或多个程序包括用以执行以下动作的另外的指令:

8.根据权利要求1所述的系统,其中所述深度学习模型是具有被耦合到至少一个解码器块的至少一个编码器块的带注意力的神经变换器模型。

9.根据权利要求7所述的系统,其中所述带注意力的神经变换器模型在自然语言文本和源代码上被预训练,并且在针对多个目标方法的多个测试用例上被微调。

10.一种计算机实现的方法,包括:

11.根据权利要求10所述的计算机实现的方法,其中验证所述至少一个候选方法体还包括:

12.根据权利要求10所述的计算机实现的方法,还包括:

13.根据权利要求12所述的计算机实现的方法,其中所述一个或多个质量指标包括循环复杂度指标、代码大小指标、可维护性指数指标和/或代码耦合性和内聚性指标。

14.根据权利要求10所述的计算机实现的方法,其中所述深度学习模型被给定与所述方法相关联的方法签名和/或与所述方法相关联的文档串。

15.根据权利要求10所述的计算机实现的方法,其中所述深度学习模型是带注意力的神经变换器模型。


技术总结
一种测试驱动的开发系统利用一种带注意力的神经变换器模型,用以在给定焦点方法的关联测试用例以及可选的焦点方法的方法签名和文档串的情况下生成焦点方法的方法体。验证候选方法体的句法正确性,使用给定的测试用例测试候选方法体,并且利用目标系统中的施主类测试候选方法体。然后,基于PLUM得分对那些通过验证和测试的候选方法体进行排序,PLUM得分对照各种质量指标和性能指标来分析候选方法体。

技术研发人员:C·B·克莱门特,S·K·邓,N·森达雷桑,A·斯维亚特科夫斯基,M·图法诺
受保护的技术使用者:微软技术许可有限责任公司
技术研发日:
技术公布日:2024/5/29
转载请注明原文地址:https://win.8miu.com/read-1158330.html

最新回复(0)