CN116955129A - 代码功能和测试用例映射的自动生成 - Google Patents
代码功能和测试用例映射的自动生成 Download PDFInfo
- Publication number
- CN116955129A CN116955129A CN202210401144.2A CN202210401144A CN116955129A CN 116955129 A CN116955129 A CN 116955129A CN 202210401144 A CN202210401144 A CN 202210401144A CN 116955129 A CN116955129 A CN 116955129A
- Authority
- CN
- China
- Prior art keywords
- test case
- code
- test
- functions
- information handling
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 214
- 238000013507 mapping Methods 0.000 title claims description 50
- 230000006870 function Effects 0.000 claims abstract description 93
- 238000000034 method Methods 0.000 claims description 33
- 230000015654 memory Effects 0.000 claims description 18
- 230000002776 aggregation Effects 0.000 claims description 3
- 238000004220 aggregation Methods 0.000 claims description 3
- 238000007726 management method Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000003860 storage Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000013100 final test Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- 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/3696—Methods or tools to render software testable
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
技术领域
本公开总体上涉及信息处置系统,并且更具体地涉及自动生成代码功能和测试用例映射。
背景技术
随着信息的价值和使用不断增加,个人和企业寻求另外的方式来处理和存储信息。一个选项是信息处置系统。信息处置系统通常处理、编译、存储或传达用于商业、个人或其他目的的信息或数据。技术和信息处置需求和要求可在不同的应用之间有所不同。因此,信息处置系统也可关于以下方面有所不同:处置什么信息,如何处置信息,处理、存储或传达多少信息,以及可多快速且多高效地处理、存储或传达信息。信息处置系统的变化允许信息处置系统是通用的或者针对特定用户或特定用途(诸如财务交易处理、航班预定、企业数据存储或全球通信)进行配置。另外,信息处置系统可包括可被配置来处理、存储和传达信息的多种硬件和软件资源,并且可包括一个或多个计算机系统、图形接口系统、数据存储系统、联网系统和移动通信系统。信息处置系统还可实施各种可视化架构。信息处置系统之间的数据和语音通信可通过有线、无线或某种组合的网络进行。
发明内容
一种信息处置系统针对包括一组功能的代码执行测试用例,其中所述执行使用不同的跟踪开关值执行至少两次。所述系统还标识与每个测试用例相关联的跟踪日志,并且基于所述跟踪日志与每个测试用例的关联将每个测试用例映射到一个或多个功能。
附图说明
应了解,为了简单且清楚地进行说明,附图中示出的元件未必按比例绘制。例如,一些元件的尺寸可相对于其他元件放大。相对于本文的图式示出和描述结合本公开的教导的实施方案,在附图中:
图1是示出根据本公开的一个实施方案的信息处置系统的框图;
图2是示出根据本公开的一个实施方案的用于自动生成代码功能和测试用例映射的系统的示例的框图;
图3是示出根据本公开的一个实施方案的用于自动生成代码功能和测试用例映射的序列的示例的图;并且
图4是示出根据本公开的一个实施方案的用于自动生成代码功能和测试用例映射的方法的示例的流程图。
在不同图式中相同附图标记的使用指示类似或相同的项目。
具体实施方式
提供以下结合附图的描述以帮助理解本文所公开的教导。所述描述集中于教导的具体实施方式和实施方案,并且被提供来帮助描述本教导。这种集中不应被解释为限制教导的范围或适用性。
图1示出信息处置系统100的实施方案,所述信息处置系统包括处理器102和104、芯片组110、存储器120、与视频显示器134连接的图形适配器130、包括基本输入和输出系统/可扩展固件接口(BIOS/EFI)模块142的非易失性RAM(NV-RAM)140、磁盘控制器150、硬盘驱动器(HDD)154、光盘驱动器156、与固态驱动器(SSD)164连接的磁盘仿真器160、与扩展资源174和可信平台模块(TPM)176连接的输入/输出(I/O)接口170、网络接口180以及基板管理控制器(BMC)190。处理器102通过处理器接口106连接到芯片组110,并且处理器104通过处理器接口108连接到芯片组。在特定实施方案中,处理器102和104通过诸如HyperTransport链路、QuickPath互连等的高容量相干结构连接在一起。芯片组110表示集成电路或一组集成电路,所述集成电路管理处理器102和104与信息处置系统100的其他元件之间的数据流。在特定实施方案中,芯片组110表示一对集成电路,诸如北桥部件和南桥部件。在另一个实施方案中,芯片组110的一些或全部功能和特征与处理器102和104中的一个或多个处理器集成。
存储器120通过存储器接口122连接到芯片组110。存储器接口122的示例包括双倍数据速率(DDR)存储器信道,并且存储器120表示一个或多个DDR双列直插式存储器模块(DIMM)。在特定实施方案中,存储器接口122表示两个或更多个DDR信道。在另一个实施方案中,处理器102和104中的一个或多个处理器包括为处理器提供专用存储器的存储器接口。DDR信道和所连接的DDR DIMM可符合特定DDR标准,诸如DDR3标准、DDR4标准、DDR5标准等。
存储器120可进一步表示存储器类型的各种组合,诸如动态随机存取存储器(DRAM)DIMM、静态随机存取存储器(SRAM)DIMM、非易失性DIMM(NV-DIMM)、存储类存储器装置、只读存储器(ROM)装置等。图形适配器130通过图形接口132连接到芯片组110,并且向视频显示器134提供视频显示器输出136。图形接口132的示例包括高速外围部件互连(PCIe)接口,并且根据需要或期望,图形适配器130可包括四通道(x4)PCIe适配器、八通道(x8)PCIe适配器、16通道(x16)PCIe适配器或另一种配置。在特定实施方案中,图形适配器130向下设置在系统印刷电路板(PCB)上。视频显示器输出136可包括数字视频接口(DVI)、高清多媒体接口(HDMI)、DisplayPort接口等,并且视频显示器134可包括监视器、智能电视、诸如膝上型计算机显示器的嵌入式显示器等。
NV-RAM 140、磁盘控制器150和I/O接口170通过I/O信道112连接到芯片组110。I/O信道112的示例包括芯片组110与NV-RAM 140、磁盘控制器150和I/O接口170中的每一者之间的一个或多个点对点PCIe链路。芯片组110还可包括一个或多个其他I/O接口,包括PCIe接口、工业标准架构(ISA)接口、小型计算机串行接口(SCSI)接口、集成电路间(I2C)接口、系统分组接口(SPI)、通用串行总线(USB)、另一种接口或它们的组合。NV-RAM 140包括BIOS/EFI模块142,所述BIOS/EFI模块存储机器可执行代码(BIOS/EFI代码),所述机器可执行代码操作以检测信息处置系统100的资源,提供用于资源的驱动器、将资源初始化并提供用于资源的常见访问机制。将在下面进一步描述BIOS/EFI模块142的功能和特征。
磁盘控制器150包括磁盘接口152,所述磁盘接口将磁盘控制器连接到硬盘驱动器(HDD)154、光盘驱动器(ODD)156和磁盘仿真器160。磁盘接口152的示例包括集成驱动电子器件(IDE)接口、诸如并行ATA(PATA)接口或串行ATA(SATA)接口的高级技术附件(ATA)、SCSI接口、USB接口、专有接口或它们的组合。磁盘仿真器160允许SSD 164通过外部接口162连接到信息处置系统100。外部接口162的示例包括USB接口、电气与电子工程师协会(IEEE)1394(火线)接口、专有接口或它们的组合。替代地,SSD 164可设置在信息处置系统100内。
I/O接口170包括外围接口172,所述外围接口将I/O接口连接到扩展资源174、TPM176和网络接口180。外围接口172可以是与I/O信道112相同类型的接口,或者可以是不同类型的接口。因而,当外围接口172和I/O信道112为相同类型时,I/O接口170扩展I/O信道的能力,而当它们为不同类型时,I/O接口将信息从适合于I/O信道的格式转化为适合于外围接口172的格式。扩展资源174可包括数据存储系统、附加图形接口、网络接口卡(NIC)、声音/视频处理卡、另一种扩展资源或它们的组合。扩展资源174可位于主电路板上、位于设置在信息处置系统100内的单独电路板或扩展卡上、位于信息处置系统外部的装置上或它们的组合。
网络接口180表示网络通信装置,所述网络通信装置设置在信息处置系统100内、位于信息处置系统的主电路板上、集成到诸如芯片组110的另一个部件上、位于另一个合适的位置中或它们的组合。网络接口180包括网络信道182,所述网络信道为信息处置系统100外部的装置提供接口。在特定实施方案中,网络信道182与外围接口172为不同的类型,并且网络接口180将信息从适合于外围信道的格式转化为适合于外部装置的格式。
在特定实施方案中,网络接口180包括NIC或主机总线适配器(HBA),并且网络信道182的示例包括InfiniBand通道、光纤信道、千兆位以太网信道、专有信道架构或它们的组合。在另一个实施方案中,网络接口180包括无线通信接口,并且网络信道182包括Wi-Fi信道、近场通信(NFC)信道、或蓝牙低功耗(BLE)信道、诸如全球移动系统(GSM)接口的基于蜂窝的接口、码分多址(CDMA)接口、通用移动电信系统(UMTS)接口、长期演进(LTE)接口或另一种基于蜂窝的接口或它们的组合。网络信道182可连接到外部网络资源(未示出)。所述网络资源可包括另一种信息处置系统、数据存储系统、另一种网络、网格管理系统、另一种合适的资源或它们的组合。
BMC 190通过一个或多个管理接口192连接到信息处置系统100的多个元件,以提供对信息处置系统的元件的带外监视、维护和控制。因而,BMC 190表示与处理器102和处理器104不同的处理装置,所述处理装置为信息处置系统100提供各种管理功能。例如,BMC190可负责电源管理、冷却管理等。术语BMC通常在服务器系统的上下文中使用,而在消费级装置中,BMC可被称为嵌入式控制器(EC)。数据存储系统处所包括的BMC可被称为存储箱体处理器。刀片式服务器的机箱处所包括的BMC可被称为机箱管理控制器,而刀片式服务器的刀片处所包括的嵌入式控制器可被称为刀片管理控制器。由BMC 190提供的能力和功能可基于信息处置系统的类型而大有不同。BMC 190可根据智能平台管理接口(IPMI)进行操作。BMC 190的示例包括集成式远程访问控制器(iDRAC)。
管理接口192表示BMC 190与信息处置系统100的元件之间的一个或多个带外通信接口,并且可包括集成电路间(I2C)总线、系统管理总线(SMBUS)、电源管理总线(PMBUS)、低引脚数(LPC)接口、诸如通用串行总线(USB)或串行外围接口(SPI)的串行总线、诸如以太网接口的网络接口、诸如PCIe接口的高速串行数据链路、网络控制器边带接口(NC-SI)等。如本文所使用的,带外访问是指与BIOS/操作系统执行环境分开地在信息处置系统100上执行的操作(即,与处理器102和104对代码的执行以及响应于所执行的代码而在信息处置系统上实施的程序分开地)。
根据需要或期望,BMC 190操作以监视和维护系统固件,诸如存储在BIOS/EFI模块142中的代码、用于图形适配器130的选项ROM、磁盘控制器150、扩展资源174、网络接口180或信息处置系统100的其他元件。特别地,BMC 190包括网络接口194,所述网络接口可根据需要或期望连接到远程管理系统以接收固件更新。在此,BMC 190接收固件更新,将更新存储到与BMC相关联的数据存储装置,将固件更新传输到作为固件更新对象的装置或系统的NV-RAM,由此更换与所述装置或系统相关联的当前操作的固件,并重新启动信息处置系统,随后所述装置或系统利用更新后的固件图像。
BMC 190利用各种协议和应用程序编程接口(API)来指导和控制用于监视和维护系统固件的过程。根据需要或期望,用于监视和维护系统固件的协议或API的示例包括与BMC 190相关联的图形用户接口(GUI)、由分布式管理任务组(DMTF)定义的接口(诸如Web服务管理(WSMan)接口、管理部件传输协议(MCTP),或接口)、各种供应商定义的接口(诸如Dell EMC远程访问控制器管理器(RACADM)实用程序、Dell EMC OpenManage企业、Dell EMC OpenManage服务器管理器(OMSS)实用程序、Dell EMC OpenManage存储服务(OMSS)实用程序或Dell EMC OpenManage部署工具包(DTK)套件)、诸如由“F2”启动选项调用的BIOS设置实用程序或另一种协议或API。
在特定实施方案中,根据需要或期望,BMC 190包括在信息处置系统100的主电路板(诸如基板、母板或它们的任何组合)上,或者集成到信息处置系统的另一个元件(诸如芯片组110)或另一个合适的元件上。因而,BMC 190可以是信息处置系统100内的集成电路或芯片组的一部分。BMC 190的示例包括iDRAC等。BMC 190可在与信息处置系统100中的其他资源分开的电源层上操作。因此,在信息处置系统100的资源断电时,BMC 190可通过网络接口194与管理系统通信。在此,信息可从管理系统发送到BMC 190,并且所述信息可存储在与BMC相关联的RAM或NV-RAM中。在BMC 190的电源层掉电之后存储在RAM中的信息可能会丢失,而存储在NV-RAM中的信息可通过BMC的电源层的掉电/上电循环来保存。
信息处置系统100可包括另外的部件和另外的总线(为清楚起见未示出)。例如,信息处置系统100可包括多个处理器核、音频装置等。尽管出于示例的目的示出总线技术和互连的特定布置,但本领域技术人员将理解本文所公开的技术适用于其他系统架构。信息处置系统100可包括多个中央处理单元(CPU)和冗余总线控制器。一个或多个部件可集成在一起。信息处置系统100可包括另外的总线和总线协议,例如I2C等。信息处置系统100的另外的部件可包括可存储机器可执行代码的一个或多个存储装置、用于与外部装置通信的一个或多个通信端口,以及各种输入和输出(I/O)装置,诸如键盘、鼠标和视频显示器。
出于本公开的目的,信息处置系统100可包括可操作以计算、分类、处理、发射、接收、检索、产生、切换、存储、显示、表明、检测、记录、再现、处置或利用用于商业、科学、控制、娱乐或其他目的的任何形式的信息、情报或数据的任何工具或工具的聚集。例如,信息处置系统100可以是个人计算机、膝上型计算机、智能电话、平板装置或其他消费者电子装置、网络服务器、网络存储装置、交换机、路由器或另一种网络通信装置,或任何其他合适的装置,并且可在大小、形状、性能、功能性和价格方面有所不同。此外,信息处置系统100可包括用于执行机器可执行代码的处理资源,诸如处理器102、可编程逻辑阵列(PLA)、诸如片上系统(SoC)的嵌入式装置或其他控制逻辑硬件。信息处置系统100还可包括用于存储诸如软件或数据的机器可执行代码的一种或多种计算机可读介质。
回归测试对于确定代码改变是否对现有功能或特征产生不利影响非常重要。通常,每次发生代码改变时都会运行回归测试用例,其中测试用例从测试用例池运行并且包括大部分(即便不是全部)功能测试用例。然而,因为回归测试用例包括许多测试用例,所以运行回归测试需要很长时间才能完成。大多数(即便不是全部)测试用例的运行是典型的,因为测试用例与代码功能之间的映射(如果所述映射存在)是模糊的。因此,为了提高回归测试的效率,需要能够选择性地运行与对特定代码功能的改变相关和/或受其影响的测试。
另外,对于嵌入式系统,由于当前的限制,通常需要外部调试装备来确定功能是否由测试用例覆盖。因而,确定与嵌入式系统相关联的固件代码的代码覆盖率即便不是技术上的挑战,至少也很麻烦。同样,用于确定代码覆盖率的典型工具提供测试人员/开发人员必须管理的不必要数据。因此,还期望有代码覆盖率信息而不需要外部调试装备并且仅包括相关信息。
因此,期望解决上述问题。本公开提供了一种用于自动生成代码和测试用例映射的系统和方法。所述映射可通过对跟踪日志重复随机采样来生成。这通过提高测试固件和/或软件代码的效率来改进软件测试的技术领域。本公开的另一个技术优点是在测试嵌入式系统的代码时消除了对外部调试装备的依赖。另外,本公开提供了对测试结果的利用的改进,其中测试日志用于生成测试用例到代码功能的映射来代替或补充测试日志的典型使用,这是为了确定测试用例失败的原因。
图2示出具有用于自动生成代码功能和测试用例映射的固件/软件代码测试系统205的信息处置系统200。在一个实施方案中,固件/软件代码测试系统205(也称为代码测试系统205)可由与图1的信息处置系统100类似的信息处置系统200提供。代码测试系统205可包括测试引擎220、测试用例映射模块230、报告模块240和数据库250。信息处置系统200可包括信息处置系统100的部件中的一些或全部部件。尽管代码测试系统205的部件由一个信息处置系统提供,但是在另一个实施方案中,代码测试系统205的部件可由多于一个信息处置系统提供,所述多于一个信息处置系统可在本地系统或网络连接环境中实施。可以硬件、软件、固件或它们的任何组合来实施代码测试系统205的部件。同样,所示出的部件未按比例绘制,并且代码测试系统205可包括更多或更少的部件。另外,为了描述清楚,可省略部件之间的连接。
测试引擎220(也称为测试执行引擎)可被配置来执行固件/软件代码210(也称为代码210)的代码结构分析。在一个示例中,代码210可以是与信息处置系统100的嵌入式系统相关联的固件代码。在另一个示例中,代码210可以是软件代码,诸如在信息处置系统100上运行的应用程序。代码结构分析可确定与代码210相关联的功能。例如,代码结构分析可输出表明功能之间的关系的图表。另外,代码结构分析还可标识与功能相关联的每个跟踪日志并且生成与图3的代码功能映射310类似的代码功能映射。
在代码结构分析之后,测试引擎220可执行测试用例训练,其中测试引擎220可通过运行测试用例至少两次来执行测试用例的采样。例如,测试引擎220可运行测试用例池215中针对代码210的测试用例。每个测试用例可测试或实行代码210中的一个或多个功能。例如,测试用例可通过使用测试名称引用测试用例来执行。在一个示例中,测试用例池215和代码210两者可存储在数据库250或类似物中。数据库250可被配置在诸如图1的HDD 154和SSD 164的存储装置中。测试用例中的每个测试用例都可使用不同的跟踪开关值来执行。跟踪开关允许测试人员基于跟踪级别启用、禁用和过滤跟踪输出。每个功能可与不同于另一个功能的跟踪开关或跟踪级别相关联。在另一个实施方案中,一组测试用例可使用同一跟踪开关值运行一次并且第二次使用不同的跟踪开关值运行。跟踪开关值可基于日志消息的期望粒度级别增大或减小。
测试用例映射模块230可被配置来基于每次测试执行的结果生成测试用例映射260。测试用例映射260是测试用例到代码210的一个或多个功能的映射。代码210可以是嵌入式系统的固件或信息处置系统200的硬件装置。代码210也可以是软件代码,诸如应用程序。测试用例映射260可被传输到报告模块240以用于进一步处理和/或在用户接口处显示。报告模块240可被配置来生成测试报告,所述测试报告指示测试用例池215中的一个或多个测试用例的一次或多次执行的结果。例如,测试报告可包括如图3的测试用例映射330n所指示的测试用例和代码功能映射,其中测试用例映射330也可被称为最终测试用例映射。测试报告可在用户接口处显示,以用于实时监视和分析测试用例执行的结果以及测试用例到代码功能映射。
在另一个示例中,报告模块240可被配置来生成标识代码210的功能的覆盖率的代码覆盖率报告。例如,代码覆盖率报告可提供由测试用例覆盖的功能的列表。代码覆盖率还可提供未由测试用例覆盖的代码功能的另一个列表。基于上述内容,可确定由测试用例覆盖的代码功能的百分比。然而,本领域的技术人员可理解,测试用例映射和代码覆盖率可以将落入具体公开内容的多种方式报告。
本领域普通技术人员将理解,图2所描绘的信息处置系统200的配置、硬件和/或软件部件可能会有所不同。例如,信息处置系统200内的说明性部件并非旨在是详尽的,而是表示以突出显示可用于实施本公开的各方面的部件。例如,可使用其他装置和/或部件作为所描绘的装置/部件的补充或替代。关于当前描述的实施方案和/或总体公开,所描绘的示例不传达或暗示任何架构或其他限制。在对附图的讨论中,为了描述的连续性,也可参考在其他附图中示出的部件。
图3示出用于构建代码功能和测试用例映射数据集的映射序列300的示意图。映射序列300包括使用测试用例池215、代码210和代码功能映射310的测试执行流程305。在此示例中,测试用例池215中的一个或多个测试用例针对代码210重复执行n次,以用于跟踪日志的随机采样。每次测试运行可与不同的跟踪开关值或日志级别相关联,诸如在导致测试用例结果320a-320n的测试运行315a、315b-315n中所示。在测试运行315a中,跟踪开关被设定为小于或等于一以及小于或等于三。在测试运行315b中,跟踪开关被设定为小于或等于二以及小于五。在测试运行315n中,跟踪开关被设定为小于或等于三以及小于五。在另一个示例中,与日志级别相关联的跟踪开关可被设定为特定值或设置,使得跟踪开关的值可被设定为“1”或“调试”。一般来说,日志级别控制日志消息中所包括的信息的详细内容的类别和粒度。另外,日志消息的数量可因每个日志级别而有所不同。例如,当运行测试运行315a时,测试用例一生成日志一和日志三,如测试结果320a所示。当利用跟踪开关的不同值运行测试运行315b时,测试用例一生成日志一、日志三和日志四,如测试用例结果320b所示。因此,测试运行315b根据测试运行315a生成另外的日志四。
测试用例映射模块可被配置来基于测试用例结果和代码功能映射310确定测试用例到代码功能的映射,所述代码功能映射包括代码功能到一个或多个日志的映射,诸如测试用例映射330a-330n。图2的测试用例映射模块230可解析测试用例结果320a和代码功能映射310以生成数据集,所述数据集表明到代码功能的测试用例映射,诸如测试用例映射330a。例如,因为日志一与功能一相关联,并且日志三与功能三相关联,所以测试用例映射模块可将测试用例一映射到功能一和功能三。测试用例映射模块可针对其他功能利用其他测试运行执行类似的映射。另外,测试用例映射模块可将测试用例映射的结果聚集到所述一组测试运行的最终测试用例映射。例如,作为基于测试用例结果320b的当前映射的测试用例映射330b表明,与测试用例映射330a相比,测试用例一被映射到功能一、功能三和功能四,所述测试用例映射330a是基于表明测试用例一被映射到功能一和功能三的测试用例结果320a的先前映射。在此情形下,测试用例一被映射到不同于先前映射的功能。因此,作为所述一组测试运行的最终测试用例映射的测试用例映射330n是测试用例映射330a和测试用例映射330b的聚集,其中测试用例一被映射到功能一、功能三和功能四。
数据集可用于生成包括测试池中测试用例的子集的测试套件,其中所述测试套件可使用最少数量的测试用例提供期望级别的代码覆盖率,从而提供更有效且更少时间消耗的回归测试用例的执行。例如,如果功能一发生变化,则用于测试所述变化的回归测试可包括测试用例1而不是测试用例一和测试用例三或所有测试用例。因此,回归测试更有效。数据集还可用于动态地重建适应代码改变的另一个数据集。例如,当对代码210进行代码改变以使得添加新功能时,可利用不同跟踪开关执行另一组测试执行。在另一个示例中,可确定并执行仅与新功能相关联的测试用例。
图4示出用于自动生成代码功能和测试用例映射的方法400。方法400可由图2的代码测试系统205的一个或多个部件执行,所述一个或多个部件诸如测试引擎220、测试用例映射模块230和报告模块240。然而,虽然本公开的实施方案是根据图2的代码测试系统205来描述的,但是应当认识到可利用其他系统来执行所描述的方法。本领域技术人员将理解,所述流程图解释了典型示例,在实践中可将其扩展到高级应用程序或服务。
方法400通常开始于框410处,在所述框中,标识固件或软件代码。另外,所述方法还可标识固件或软件代码中的一组功能,包括功能中的每个功能到跟踪日志的映射,诸如图3的代码功能映射310。在框420处,所述方法从测试用例池检索一个或多个测试用例。例如,多个测试用例可供用于测试固件/软件代码的多个功能。特别地,每个测试用例可用于测试一个或多个功能。
在框430处,所述方法或测试引擎特别地可针对固件/软件代码执行一个或多个测试用例。可重复执行测试用例以对跟踪日志随机采样。特别地,测试用例可被执行至少两次,每次执行都利用不同的跟踪开关。例如,跟踪开关的值可随着每次执行而增大,从而导致日志中有更详细的消息。这将生成一个或多个测试用例结果,使得每个测试用例结果包括多个日志。每个测试用例可基于被测试或实行的功能生成一个或多个日志。可基于测试结果确定测试用例到测试日志的映射。可基于在日志中标识的功能名称选择到一个或多个日志的测试用例映射。
在框440处,所述方法或测试用例映射模块特别地可生成包括每个测试用例到至少一个功能代码的映射的数据集。可根据测试用例结果中的每个测试用例结果生成数据集。数据集可以是每个测试用例到一个或多个功能的当前和先前映射的聚集。可以说映射到特定功能的测试用例执行所述功能的代码覆盖。因而,测试用例可为一个或多个功能提供代码覆盖。因此,一个或多个测试用例可为相同的一个或多个功能提供代码覆盖。数据集可用于生成包括测试用例的子集的测试套件,所述测试用例提供固件/软件代码中功能的期望软件代码覆盖率级别和生产代码稳健性。例如,所述方法可使用最少数量的测试用例生成覆盖最大数量功能的测试套件。这意味着测试人员不需要运行测试用例池中的所有测试用例即可针对固件/软件代码运行回归测试,从而导致更有效的回归测试。
另外,所述方法可确定是否存在测试套件未覆盖的功能。例如,所述方法可确定一个或多个跟踪日志在测试用例结果中缺失,并且生成标识与丢失日志相关联的功能的数据集和/或报告。基于此数据集和/或报告,可编写另外的测试用例以增大代码覆盖率。在另一个示例中,可基于与失败的测试用例相关联的功能的名称动态地创建测试套件。因而,在已经修复代码之后,可针对那些失败的测试用例运行测试套件,而不是运行整个测试套件。
在又一个实施方案中,代码功能和测试用例映射数据集可在测试环境和生产环境中生成。所述方法可比较数据集以确定两个数据集之间是否存在增量。如果存在增量,则所述方法可提供关于哪个功能在一个数据集中但不在另一个数据集中的信息。因此,可决定如何解决增量,诸如是否重构功能。
虽然图4示出在一些实施方式中的方法400的示例性框,但是方法400相比于图4所描绘的那些框可包括另外的框,更少的框、不同框或不同布置的框。本领域技术人员将理解,本文所提出的原理可在任何适当布置的处理系统中实施。另外或替代地,可并行执行方法400的框中的两个或更多个框。例如,可并行执行框410和框420。
根据本公开的各种实施方案,本文所描述的方法可由计算机系统可执行的软件程序来实施。此外,在示例性非限制性实施方案中,实施方式可包括分布式处理、部件/对象分布式处理以及并行处理。替代地,虚拟计算机系统处理可被构造为实施如本文所描述的方法或功能性中的一者或多者。
当被称为“装置”、“模块”、“单元”、“控制器”等时,本文所描述的实施方案可被配置为硬件。例如,信息处置系统装置的一部分可以是硬件,例如像集成电路(诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、结构化ASIC或嵌入在较大芯片上的装置)、卡(诸如外围部件接口(PCI)卡、高速PCI卡、个人计算机存储卡国际协会(PCMCIA)卡或其他此类扩展卡)或系统(诸如母板、片上系统(SoC)或独立装置)。
本公开设想了计算机可读介质,其包括指令或者响应于传播信号而接收并执行指令;使得连接到网络的装置可通过网络传达语音、视频或数据。此外,可通过网络接口装置通过网络发射或接收指令。
虽然计算机可读介质被示为单个介质,但是术语“计算机可读介质”包括单个介质或多个介质,诸如集中式或分布式数据库、和/或存储一组或多组指令的相关联的高速缓存和服务器。术语“计算机可读介质”还应包括能够存储、编码或携带一组指令以供处理器执行或使计算机系统执行本文所公开的方法或操作中的任何一者或多者的任何介质。
在特定非限制性示例性实施方案中,计算机可读介质可包括诸如存储卡的固态存储器,或容纳一个或多个非易失性只读存储器的其他封装。此外,计算机可读介质可以是随机存取存储器或其他易失性可重写存储器。另外,计算机可读介质可包括磁光或光学介质(诸如磁盘或磁带)或另一种存储装置,以存储通过载波信号(诸如通过传输介质传达的信号)接收的信息。电子邮件或其他自包含信息档案或档案集的数字文件附件可被视为等同于有形存储介质的分发介质。因此,本公开被视为包括其中可存储数据或指令的计算机可读介质或分发介质以及其他等效物和后继介质中的任何一种或多种。
尽管上文仅详细描述了几个示例性实施方案,但是本领域技术人员将易于理解,在不实质上脱离本公开的实施方案的新颖教导和优点的情况下,可对示例性实施方案进行许多修改。因此,所有此类修改旨在包括在如以下权利要求中定义的本公开的实施方案的范围内。在权利要求书中,装置加功能条款旨在涵盖在本文中被描述为执行所叙述功能的结构,而不仅涵盖结构上的等效形式,而且还涵盖等效结构。
Claims (20)
1.一种方法,其包括:
由处理器针对包括多个功能的代码执行多个测试用例,其中针对所述代码执行所述测试用例使用不同的跟踪开关值执行至少两次;
标识与每个测试用例相关联的跟踪日志;以及
基于所述跟踪日志与每个测试用例的关联生成每个测试用例到所述功能中的至少一个功能的映射。
2.如权利要求1所述的方法,其还包括:标识与所述代码相关联的所述功能。
3.如权利要求1所述的方法,其中所述代码是与嵌入式系统相关联的固件。
4.如权利要求1所述的方法,其中所述代码是软件代码。
5.如权利要求1所述的方法,其中所述功能中的每个功能与跟踪日志相关联。
6.如权利要求1所述的方法,其还包括:生成每个测试用例到一个或多个跟踪日志的另一个映射。
7.如权利要求1所述的方法,其还包括:将每个测试用例到所述至少一个功能的所述映射与每个测试用例到至少另一个功能的先前映射聚集。
8.一种信息处置系统,其包括:
存储器;以及
处理器,所述处理器与所述存储器相关联并且被配置来:
针对包括一组功能的代码执行多个测试用例,其中所述执行使用不同的跟踪开关值执行至少两次;
标识与每个测试用例相关联的跟踪日志;并且
基于所述跟踪日志与每个测试用例的关联生成所述每个测试用例到一个或多个功能的映射。
9.如权利要求8所述的信息处置系统,所述处理器进一步被配置来标识所述一组功能。
10.如权利要求8所述的信息处置系统,其中所述代码是与嵌入式系统相关联的固件。
11.如权利要求8所述的信息处置系统,其中所述代码是软件代码。
12.如权利要求8所述的信息处置系统,其中所述功能中的每个功能与跟踪日志相关联。
13.如权利要求8所述的信息处置系统,所述处理器进一步被配置来生成所述每个测试用例到一个或多个跟踪日志的另一个映射。
14.如权利要求8所述的信息处置系统,其中所述每个测试用例到所述一个或多个功能的当前映射包括:在所述测试用例的先前执行中生成的所述每个测试用例到所述一个或多个功能的先前映射的聚集。
15.一种用于存储指令的非暂时性计算机可读介质,所述指令能够执行以执行操作,所述操作包括:
针对包括多个功能的代码执行多个测试用例,其中针对所述代码执行所述测试用例是针对所述执行中的每次执行使用不同的跟踪开关值执行至少两次;
标识与每个测试用例相关联的跟踪日志;以及
基于所述跟踪日志与每个测试用例的关联将每个测试用例映射到一个或多个功能。
16.如权利要求15所述的非暂时性计算机可读介质,其中所述操作还包括:标识与所述代码相关联的所述功能中的每个功能。
17.如权利要求15所述的非暂时性计算机可读介质,其中所述代码是与嵌入式系统相关联的固件。
18.如权利要求15所述的非暂时性计算机可读介质,其中所述代码是软件代码。
19.如权利要求15所述的非暂时性计算机可读介质,其中所述功能中的每个功能与跟踪日志相关联。
20.如权利要求15所述的非暂时性计算机可读介质,其中所述操作还包括:将每个测试用例到所述至少一个功能的所述映射与每个测试用例到至少一个不同功能的先前映射聚集。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210401144.2A CN116955129A (zh) | 2022-04-15 | 2022-04-15 | 代码功能和测试用例映射的自动生成 |
US17/740,756 US20230333969A1 (en) | 2022-04-15 | 2022-05-10 | Automatic generation of code function and test case mapping |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210401144.2A CN116955129A (zh) | 2022-04-15 | 2022-04-15 | 代码功能和测试用例映射的自动生成 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116955129A true CN116955129A (zh) | 2023-10-27 |
Family
ID=88307906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210401144.2A Pending CN116955129A (zh) | 2022-04-15 | 2022-04-15 | 代码功能和测试用例映射的自动生成 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230333969A1 (zh) |
CN (1) | CN116955129A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240020219A1 (en) * | 2022-07-14 | 2024-01-18 | Oracle International Corporation | Determining test cases to be run upon changes in software application code |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5737609A (en) * | 1994-10-18 | 1998-04-07 | Marcam Corporation | Method and apparatus for testing object-oriented programming constructs |
US6536036B1 (en) * | 1998-08-20 | 2003-03-18 | International Business Machines Corporation | Method and apparatus for managing code test coverage data |
US7127649B2 (en) * | 2003-06-09 | 2006-10-24 | Stmicroelectronics, Inc. | Smartcard test system and related methods |
FI20070344A0 (fi) * | 2007-05-02 | 2007-05-02 | Codenomicon Oy | Testitapausten suorittamisen optimointimenetelmä ja -järjestelmä |
US7836346B1 (en) * | 2007-06-11 | 2010-11-16 | Oracle America, Inc. | Method and system for analyzing software test results |
US10089217B2 (en) * | 2014-09-23 | 2018-10-02 | Red Hat, Inc. | Identification of software test cases |
-
2022
- 2022-04-15 CN CN202210401144.2A patent/CN116955129A/zh active Pending
- 2022-05-10 US US17/740,756 patent/US20230333969A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230333969A1 (en) | 2023-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10146651B2 (en) | Member replacement in an array of information storage devices | |
US11526411B2 (en) | System and method for improving detection and capture of a host system catastrophic failure | |
US10916326B1 (en) | System and method for determining DIMM failures using on-DIMM voltage regulators | |
US11093321B1 (en) | System and method for automatically updating an information handling system upon system crash | |
US10579572B2 (en) | Apparatus and method to provide a multi-segment I2C bus exerciser/analyzer/fault injector and debug port system | |
US20190065300A1 (en) | Method of retrieving debugging data in uefi and computer system thereof | |
US20200252302A1 (en) | System and Method for Remote Hardware Support Using Augmented Reality and Available Sensor Data | |
US20210081234A1 (en) | System and Method for Handling High Priority Management Interrupts | |
US11416353B2 (en) | DIMM voltage regulator soft start-up for power fault detection | |
US11921604B2 (en) | Evaluating system recovery using emulated production systems | |
US20230333969A1 (en) | Automatic generation of code function and test case mapping | |
US11914725B2 (en) | Operating system agnostic and secure bi-directional data handling | |
US8819484B2 (en) | Dynamically reconfiguring a primary processor identity within a multi-processor socket server | |
US10990496B2 (en) | System and method to derive health information for a general purpose processing unit through aggregation of board parameters | |
US11994937B2 (en) | Automated recovery mechanism from a system crash | |
US9471433B2 (en) | Optimizing computer hardware usage in a computing system that includes a plurality of populated central processing unit (‘CPU’) sockets | |
US20220374726A1 (en) | Proactive alert aggregation and correlation management with automated summarization | |
US20230334020A1 (en) | Software-based log management | |
US12001373B2 (en) | Dynamic allocation of peripheral component interconnect express bus numbers | |
US11237608B2 (en) | System and method for enabling a peripheral device expansion card without sideband cable connection | |
US11989086B2 (en) | Optimizing runtime system operation via pre-boot system analysis | |
US11726880B1 (en) | Fault tolerance and debug analysis during a boot process | |
US11663021B2 (en) | System and method for providing granular processor performance control | |
US20240020032A1 (en) | Option read-only memory firmware-based remediation | |
US11341014B2 (en) | System and method for generating a hotkey in a pre-boot environment |
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 |