CN114218061A - 一种测试记录自动登记方法 - Google Patents
一种测试记录自动登记方法 Download PDFInfo
- Publication number
- CN114218061A CN114218061A CN202110330612.7A CN202110330612A CN114218061A CN 114218061 A CN114218061 A CN 114218061A CN 202110330612 A CN202110330612 A CN 202110330612A CN 114218061 A CN114218061 A CN 114218061A
- Authority
- CN
- China
- Prior art keywords
- error
- test
- information
- module
- compiling
- 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
Images
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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
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
本发明公开一种测试记录自动登记方法,S1、测试结果确认模块通过查询测试课题目录下是否存在标志性的正确结束文件,确认测试结果是否正确;S2、错误阶段识别模块通过查询目录结构下每一个测试课题目录中的编译输出日志文件和运行输出日志文件,确定错误发生的阶段,是编译错、链接错还是运行错;S3、错误类型确定模块通过识别报错信息中的关键字信息确认具体错误类型;S4、信息筛选登记模块将具体的错误信息筛选出来并自动登记入库;S5、记录增补登记模块将无法自动写入的错误原因手工增补登记,使用提交入库命令即可将信息入库。本发明可有效解决测试记录手工整理带来的效率低下问题。
Description
技术领域
本发明涉及一种测试记录自动登记方法,属于编译器测试技术领域。
背景技术
并行编译器的正确性和强壮性与并行编译器测试的粒度和规模是息息相关的,并行编译器测试通常包括语法扩展测试、编译优化测试和运行时库功能测试。语法扩展测试需要针对每一个语法功能点进行功能覆盖性测试,包括扩展类型的声明和使用、编译指示的识别和处理、关键字的解析和变换等;编译优化测试需要对每一种编译优化技术进行正确性测试和优化效果测试;运行时库功能测试需要对每一个运行时API函数进行参数组合测试,尽量将多个参数的多种可能取值组合都测试到,争取做到函数路径全覆盖测试,因为运行时库的设计是和系统并行规模相关的,所以需要在不同的并行规模下进行多次测试,例如CPU规模、节点规模、机仓规模、四分之一系统规模、二分之一系统规模、整系统规模等。
并行编译器的测试和调试调优是相辅相成的,测试发现了问题,提交并行编译器的调试调优解决,问题解决后,再提交测试进行确认,所以测试是反复进行的,为了及时发现问题、缩短系统调试周期,必须提升测试效率。
自动测试是提升测试效率的有效方法,并行编译器的自动测试包括课题编译、运行两个过程。为了方便自动控制,并行编译器自动测试系统是基于目录结构设计的,一个目录下只生成一个测试目标码,测试结果也是按照目录结构分别排放,这种架构设计方法结构简单、条理清晰。自动测试系统设定了测试课题的编写规范,要求测试课题正确结束时生成标志性的正确结束文件,这就是课题测试正确的标识。如果课题测试过程中出现了异常,自动测试系统会将输出信息定向到编译输出日志和运行输出日志。
并行编译器自动测试结束后,需要进行测试结果的整理和登记。对于运行正确、正常结束的测试课题,测试结果的自动登记是比较容易的,只需要查看是否存在正确结束文件;对于编译、运行过程中出现异常的课题,测试结果的登记比较复杂。
编译过程中出现的异常包括两类,一类是编译生成.o文件时出现编译错,一类是链接生成目标码时出现链接错。编译错的报错信息包含语法的不支持、语法错、编译器处理时的错误、编译器内部错等,有时候一个错误会报出很多类似信息,尤其是编译器内部错,会将整个调用栈都列出来,错误现场的确定十分困难。链接错的报错信息包括找不到定义的全局变量和函数等,如果同一个函数在多个地方被调用,会报错多次,错误信息冗余量大。
运行过程中出现的异常状况比较多,包含浮点异常、段违例、溢出、非对界访问、作业提交异常、超时未结束、无结果输出、超时无屏幕输出、结果错等,错误信息有操作系统报出的、运行时库报出的、测试课题报出的,种类繁杂,格式不统一,信息冗余度大。
自动测试的特点是在设定时间启动测试,理想状况下,测试启动之后,测试课题的编译、运行、结果登记是一个全自动的过程。但是现实情况下,测试过程中会出现各种异常,运行输出信息错综复杂,测试结果的自动登记和错误的自动识别归类难度很大,针对错误信息繁杂多样、冗余量大的状况,以前测试结果都是由测试员手工整理登记的,需要在每一个目录下统计正确及错误信息,过程繁琐、工作量大、效率低下。
发明内容
本发明的目的是提供一种测试记录自动登记方法,以解决手工整理登记效率低下的问题。
为达到上述目的,本发明采用的技术方案是:提供一种测试记录自动登记方法,设定测试课题的编写规范,要求测试课题正确结束时生成标志性的正确结束文件,并以统一的方式设定正确结束文件;在每一个测试课题目录中设置编译输出日志文件和运行输出日志文件;
基于以下功能模块:
测试结果确认模块,用于确认测试环境及测试结果是否正确,其中,测试环境包括可以通过测试日志获得的CPU信息、作业资源信息;
错误阶段识别模块,用于通过查询目录结构下每一个测试课题目录中的编译输出日志文件和运行输出日志文件,确定错误发生的阶段,是编译过程出现的错误还是运行过程出现了异常;
错误类型确定模块,用于确定错误的具体类型;对于编译错,错误类型包括语法不支持、语法错、编译器处理时的错误以及编译器内部错;对于链接错,错误类型包括全局变量相关错和函数相关错;对于链接错,错误类型包括浮点异常、段违例、溢出、非对界访问、作业提交异常、超时无屏幕输出、超时未结束、无结果输出、结果错;不同的错误类型,报错信息中存在不同的关键字;
信息筛选登记模块,用于将具体的错误信息筛选出来并自动登记入库;
记录增补登记模块,用于通过手工参与和自动登记相结合,将无法自动写入的错误原因手工增补登记;
包括以下步骤:
S1、测试结果确认模块通过查询测试课题目录下是否存在标志性的正确结束文件,确认测试结果是否正确,如果测试结果正确,直接将测试环境信息和测试结果录入测试记录库,如果测试结果不正确,进入错误阶段识别模块;
S2、错误阶段识别模块通过查询目录结构下每一个测试课题目录中的编译输出日志文件和运行输出日志文件,确定错误发生的阶段,是编译错、链接错还是运行错;
S3、错误类型确定模块通过识别报错信息中的关键字信息确认具体错误类型;
S4、信息筛选登记模块将具体的错误信息筛选出来并自动登记入库;
S5、记录增补登记模块将无法自动写入的错误原因手工增补登记,使用提交入库命令即可将信息入库。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明提出了一种测试记录自动登记方法,采用全自动方式对测试结果进行有效管理,查找目录结构中测试课题的测试输出,集自动登记测试结果、自动识别错误状态、自动确定错误类型、自动筛选错误信息登记入库、自动分析基本错误原因等功能为一体,并提供记半自动的记录增量补充登记功能,可有效解决测试记录手工整理带来的效率低下问题。
附图说明
附图1为本发明模块结构图。
具体实施方式
实施例:本发明提供一种测试记录自动登记方法,设定测试课题的编写规范,要求测试课题正确结束时生成标志性的正确结束文件,并以统一的方式设定正确结束文件;在每一个测试课题目录中设置编译输出日志文件和运行输出日志文件;
基于以下功能模块:
测试结果确认模块,用于确认测试环境及测试结果是否正确,其中,测试环境包括可以通过测试日志获得的CPU信息、作业资源信息;
错误阶段识别模块,用于通过查询目录结构下每一个测试课题目录中的编译输出日志文件和运行输出日志文件,确定错误发生的阶段,是编译过程出现的错误还是运行过程出现了异常;
错误类型确定模块,用于确定错误的具体类型;对于编译错,错误类型包括语法不支持、语法错、编译器处理时的错误以及编译器内部错;对于链接错,错误类型包括全局变量相关错和函数相关错;对于链接错,错误类型包括浮点异常、段违例、溢出、非对界访问、作业提交异常、超时无屏幕输出、超时未结束、无结果输出、结果错;不同的错误类型,报错信息中存在不同的关键字;
信息筛选登记模块,用于将具体的错误信息筛选出来并自动登记入库;
记录增补登记模块,用于通过手工参与和自动登记相结合,将无法自动写入的错误原因手工增补登记;
包括以下步骤:
S1、测试结果确认模块通过查询测试课题目录下是否存在标志性的正确结束文件,确认测试结果是否正确,如果测试结果正确,直接将测试环境信息和测试结果录入测试记录库,如果测试结果不正确,进入错误阶段识别模块;
S2、错误阶段识别模块通过查询目录结构下每一个测试课题目录中的编译输出日志文件和运行输出日志文件,确定错误发生的阶段,是编译错、链接错还是运行错;
S3、错误类型确定模块通过识别报错信息中的关键字信息确认具体错误类型;
S4、信息筛选登记模块将具体的错误信息筛选出来并自动登记入库;
S5、记录增补登记模块将无法自动写入的错误原因手工增补登记,使用提交入库命令即可将信息入库。
对上述实施例的进一步解释如下:
本发明提出了一种测试记录自动登记方法,包括测试结果确认、错误阶段识别、错误类型确定、信息筛选登记等自动模块和需要手工辅助的记录增补登记模块,结构如图1所示。
自动测试记录登记基于的目录结构,目录架构的“一目标码一目录”的特点有利于测试用例的正确、错误判定及错误信息的查询筛选;
查找目录结构中测试课题的测试输出,集自动登记测试结果、自动识别错误状态、自动确定错误类型、自动筛选错误信息登记入库、自动分析基本错误原因等功能为一体,可对测试结果进行有效管理;
记录增补登记采用模板化结构,需要的增补登记头部信息和收尾信息在测试过程中已经自动生成,手工进行的记录增补只需要在模板中按照规定登记关键项就可以了。
为了有效记录测试情况,测试记录项如下设定:
Name:测试课题名,一个目录就是一个测试课题,所以测试课题名就用的是目录名;
Run:运行情况,取值包括no、right、error:’ no’说明本次测试没有运行该课题;’right’说明测试正确;’ error’说明测试不正确;
err_phase:错误阶段,说明是编译错、链接错或是运行错;
err_type:错误类型;
info:错误信息;
reason:错误原因,这一项可能需要手工填写;
cversion:编译器版本。
machine:测试平台;
cpu:测试所用的CPU数;
cores:每一个CPU包含的计算核数目;
date:测试日期,8位数字,按照年月日排列;
checker:测试者或查错者;
solve:错误解决方法。
下面详细介绍各模块功能:
1)测试结果确认
测试结果确认模块的功能是确认测试环境及测试课题结果是否正确,测试环境包括CPU信息、作业资源信息等,可以通过测试日志获得。
自动测试系统设定了测试课题的编写规范,要求测试课题正确结束时生成标志性的正确结束文件,目录架构的“一目标码一目录”的特点使得正确结束文件可以用一种统一的方式设定,所以,通过查询测试课题目录下是否存在该标志性文件就可以确认测试结果是否正确;如果测试结果正确,直接将测试环境信息和测试结果录入测试记录库,如果测试结果不正确,进入错误阶段识别模块。
2)错误阶段识别
错误阶段识别模块的功能是确定错误发生的阶段,是编译过程出现的错误还是运行过程出现了异常。目录结构下在每一个测试课题目录中都有编译输出日志文件和运行输出日志文件,查询日志文件就可以识别是编译错、链接错还是运行错。
3)错误类型确定
错误类型确定模块的功能是确定错误的具体类型。
对于编译错,存在语法不支持、语法错、编译器处理时的错误以及编译器内部错等。不同的编译错,报错信息中存在不同的关键字,可以通过识别关键字信息确认具体错误类型;
对于链接错,错误类型包括全局变量相关错和函数相关错误;
运行错的错误类型比较多,包括浮点异常、段违例、溢出、非对界访问、作业提交异常、超时无屏幕输出、超时未结束、无结果输出、结果错等,不同的错误类型可以通过查找不同的关键字进行识别确认。
4)信息筛选登记
信息筛选登记模块是将具体的错误信息筛选出来并自动登记入库。
对于编译错的错误信息,比较复杂的筛选是编译器内部错时的信息筛选,因为编译器内部错时会列出调用函数栈,编译器查错时这个信息是比较有用的,所以会将整个调用函数栈都筛选入库。
链接错的信息筛选采用的主要方法是去除重复技术,因为链接过程错误信息有很大的冗余量。例如同一个变量被使用多次的情况下,如果该变量未定义,会报多条类似错误信息,而在信息登记入库时,一个未定义变量只需要一条错误信息就够了,未定义函数也是类似的情况。
信息筛选登记模块工作量最大的就是运行错的信息筛选。运行错误信息来源众多,有操作系统报出的、互联网络软件报出的、运行时库报出的、测试课题报出的,种类繁杂,格式不统一,信息冗余度大。信息的筛选采用字段截选策略,根据不同的错误类型,使用awk、sed、cut等工具将有用信息从字段中截取出来,去除冗余信息及不易识别字符。
5)记录增补登记
记录增补登记模块需要手工参与。测试记录项中对测试课题的错误原因进行了登记,有的错误原因是可以根据运行时错误日志自动写入的,例如作业环境不符合课题运行条件,需要偶数个计算核的课题分配了奇数个计算核;有的错误原因必须等设计人员查错后才能录入,这就需要进行记录的增补登记。测试记录中“错误解决方法”项也只能通过增补登记录入,因为这个信息需要查错、改错之后才能填写。
记录增补登记是手工参与和自动登记相结合的。在测试结果自动登记的时候已经将记录增补登记头部信息文件和记录增补登记收尾信息文件自动生成完毕,只要在增补登记模板中按照以下格式手工登记就可以了:db['课题名']['reason']="错误原因 "。手工登记后,使用提交入库命令即可将信息入库。
采用上述一种测试记录自动登记方法时,其采用全自动方式对测试结果进行有效管理,查找目录结构中测试课题的测试输出,集自动登记测试结果、自动识别错误状态、自动确定错误类型、自动筛选错误信息登记入库、自动分析基本错误原因等功能为一体,并提供记半自动的记录增量补充登记功能,可有效解决测试记录手工整理带来的效率低下问题。
为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:
目录结构:为每一个测试目标码对应的课题单独设置一个目录的文件管理架构。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种测试记录自动登记方法,其特征在于:设定测试课题的编写规范,要求测试课题正确结束时生成标志性的正确结束文件,并以统一的方式设定正确结束文件;在每一个测试课题目录中设置编译输出日志文件和运行输出日志文件;
基于以下功能模块:
测试结果确认模块,用于确认测试环境及测试结果是否正确,其中,测试环境包括可以通过测试日志获得的CPU信息、作业资源信息;
错误阶段识别模块,用于通过查询目录结构下每一个测试课题目录中的编译输出日志文件和运行输出日志文件,确定错误发生的阶段,是编译过程出现的错误还是运行过程出现了异常;
错误类型确定模块,用于确定错误的具体类型;对于编译错,错误类型包括语法不支持、语法错、编译器处理时的错误以及编译器内部错;对于链接错,错误类型包括全局变量相关错和函数相关错;对于链接错,错误类型包括浮点异常、段违例、溢出、非对界访问、作业提交异常、超时无屏幕输出、超时未结束、无结果输出、结果错;不同的错误类型,报错信息中存在不同的关键字;
信息筛选登记模块,用于将具体的错误信息筛选出来并自动登记入库;
记录增补登记模块,用于通过手工参与和自动登记相结合,将无法自动写入的错误原因手工增补登记;
包括以下步骤:
S1、测试结果确认模块通过查询测试课题目录下是否存在标志性的正确结束文件,确认测试结果是否正确,如果测试结果正确,直接将测试环境信息和测试结果录入测试记录库,如果测试结果不正确,进入错误阶段识别模块;
S2、错误阶段识别模块通过查询目录结构下每一个测试课题目录中的编译输出日志文件和运行输出日志文件,确定错误发生的阶段,是编译错、链接错还是运行错;
S3、错误类型确定模块通过识别报错信息中的关键字信息确认具体错误类型;
S4、信息筛选登记模块将具体的错误信息筛选出来并自动登记入库;
S5、记录增补登记模块将无法自动写入的错误原因手工增补登记,使用提交入库命令即可将信息入库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110330612.7A CN114218061A (zh) | 2021-03-26 | 2021-03-26 | 一种测试记录自动登记方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110330612.7A CN114218061A (zh) | 2021-03-26 | 2021-03-26 | 一种测试记录自动登记方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114218061A true CN114218061A (zh) | 2022-03-22 |
Family
ID=80695881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110330612.7A Pending CN114218061A (zh) | 2021-03-26 | 2021-03-26 | 一种测试记录自动登记方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114218061A (zh) |
-
2021
- 2021-03-26 CN CN202110330612.7A patent/CN114218061A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110287052B (zh) | 一种异常任务的根因任务确定方法及装置 | |
Beyer | Advances in automatic software verification: SV-COMP 2020 | |
US8140565B2 (en) | Autonomic information management system (IMS) mainframe database pointer error diagnostic data extraction | |
Jin et al. | Automated behavioral regression testing | |
US7475387B2 (en) | Problem determination using system run-time behavior analysis | |
US4864569A (en) | Software verification and validation configuration management system | |
US20070006037A1 (en) | Automated test case result analyzer | |
Soremekun et al. | Locating faults with program slicing: an empirical analysis | |
Zhang et al. | Diagnosing type errors with class | |
CN109669866B (zh) | 一种软件运行时故障传播路径的获取方法 | |
CN101739339A (zh) | 一种基于程序动态依赖关系的软件故障定位方法 | |
Guo et al. | Accurately choosing execution runs for software fault localization | |
CN1976320B (zh) | 数据访问控制方法及系统 | |
US10853051B2 (en) | Automated candidate repair patch generation | |
CN116431476A (zh) | 一种基于代码上下文变异的jvm模糊测试方法 | |
US5754861A (en) | Dynamic program input/output determination | |
Kabadi et al. | The Future Can’t Help Fix The Past: Assessing Program Repair In The Wild | |
CN114218061A (zh) | 一种测试记录自动登记方法 | |
CN114661503B (zh) | 基于程序切片的软件关联配置错误诊断方法及装置 | |
Cao et al. | The improved dynamic slicing for spectrum-based fault localization | |
Emer et al. | Testing Relational Database Schemas with Alternative Instance Analysis. | |
Xu et al. | Fault Injection based Failure Analysis of CentOS, Anolis OS and OpenEuler | |
Nakamura et al. | Provenance-based Workflow Diagnostics Using Program Specification | |
van Deursen et al. | An empirical study into cobol type inferencing | |
WO2020194000A1 (en) | Method of detecting and removing defects |
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 |