KR102588856B1 - Method for verifying software and apparatus therefor - Google Patents

Method for verifying software and apparatus therefor Download PDF

Info

Publication number
KR102588856B1
KR102588856B1 KR1020230013606A KR20230013606A KR102588856B1 KR 102588856 B1 KR102588856 B1 KR 102588856B1 KR 1020230013606 A KR1020230013606 A KR 1020230013606A KR 20230013606 A KR20230013606 A KR 20230013606A KR 102588856 B1 KR102588856 B1 KR 102588856B1
Authority
KR
South Korea
Prior art keywords
function
module
test case
verified
software
Prior art date
Application number
KR1020230013606A
Other languages
Korean (ko)
Other versions
KR20230019191A (en
Inventor
강현아
홍정민
지호진
Original Assignee
현대오토에버 주식회사
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 현대오토에버 주식회사 filed Critical 현대오토에버 주식회사
Priority to KR1020230013606A priority Critical patent/KR102588856B1/en
Publication of KR20230019191A publication Critical patent/KR20230019191A/en
Application granted granted Critical
Publication of KR102588856B1 publication Critical patent/KR102588856B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

소프트웨어를 검증하는 방법 및 장치가 제공된다. 본 발명의 일 실시예에 따른 소프트웨어 검증 방법은 소프트웨어 설계서에 포함된 검증 대상 모듈에 의해서 호출되는 함수에 대한 정보를 획득하는 단계; 상기 획득된 정보를 이용하여 함수들의 호출 순서를 확인하고, 상기 확인된 함수들의 호출 순서를 포함하는 기능 검증 테스트케이스를 생성하는 단계; 및 디버거(debugger)에 의해서 상기 검증 대상 모듈의 소스 코드가 실행될 때에 호출되는 함수 순서와 상기 기능 검증 테스트케이스에 포함된 함수 호출 순서를 비교하여 상기 소프트웨어 설계서에 따른 상기 검증 대상 모듈의 구현 여부를 판정하는 단계를 포함할 수 있다.A method and apparatus for verifying software are provided. A software verification method according to an embodiment of the present invention includes obtaining information about a function called by a module to be verified included in a software design document; Confirming the calling order of functions using the obtained information and generating a functional verification test case including the calling order of the confirmed functions; And comparing the order of functions called when the source code of the module to be verified is executed by a debugger and the order of function calls included in the functional verification test case to determine whether the module to be verified is implemented according to the software design document. It may include steps.

Description

소프트웨어 검증 방법 및 이를 위한 장치{METHOD FOR VERIFYING SOFTWARE AND APPARATUS THEREFOR}Software verification method and device therefor {METHOD FOR VERIFYING SOFTWARE AND APPARATUS THEREFOR}

본 발명은 소프트웨어를 검증하기 위한 방법에 관한 것이다. 보다 자세하게는, 소프트웨어의 기능을 통합하여 검증할 수 있는 기능 검증 테스트케이스를 이용하여 설계서에 따라 소프트웨어가 구현되었는지 여부를 판정하는 소프트웨어 검증 방법 및 이를 위한 장치에 관한 것이다.The present invention relates to a method for verifying software. More specifically, it relates to a software verification method and device for determining whether software has been implemented according to the design using a functional verification test case that can integrate and verify software functions.

소프트웨어를 개발하기 전에, 소프트웨어 설계서가 마련되고, 개발자는 상기 소프트웨어의 설계서에 따라 소스 코드를 작성한다. 상기 소스 코드는 프로그래밍 언어를 이용하여 작성된 것으로, C언어, 자바 스크립트, 파이썬 등과 같은 다양한 프로그래밍 언어를 이용하여 작성될 수 있다.Before developing software, a software design document is prepared, and the developer writes source code according to the software design document. The source code is written using a programming language and can be written using various programming languages such as C language, JavaScript, Python, etc.

소스 코드의 작성이 완료되면, 상기 소스 코드가 상기 소프트웨어 설계서의 규격대로 구현되었는지 여부를 검증하기 위하여 소프트웨어 검증이 진행된다. 소프트웨어 검증을 위한 다양한 툴(tool)이 개발되었는데 이 중에서 소스 커버리지를 측정하는 방법도 이용되고 있다.Once the source code is completed, software verification is performed to verify whether the source code has been implemented according to the specifications of the software design document. Various tools have been developed for software verification, and among them, a method for measuring source coverage is also used.

상기 코드 커버리지는 소프트웨어의 테스트를 수행할 때 코드가 얼마만큼 사용되고 설계서를 커버하고 있는지를 검증하기 위해서 사용되는 툴이다. 상기 코드의 구조는 구문(statement), 조건(condition), 결정(decision)으로 구분될 수 있으며, 소스 코드가 실행될 때에 해당 소스 코드가 구문 커버리지, 조건 커버리지, 결정 커버리지 중에서 하나 이상에 해당하는지를 함으로써, 소스 코드의 커버지리를 측정할 수 있다.The code coverage is a tool used to verify how much code is used and covers the design document when performing software testing. The structure of the code can be divided into statements, conditions, and decisions, and when the source code is executed, it is determined whether the source code corresponds to one or more of statement coverage, condition coverage, and decision coverage, You can measure the coverage of source code.

그런데 이러한 소프트웨어 검증 방식은, 단일 모듈에 대한 검증만을 주로 이루어지고 있다. 부연하면, 기존의 소프트웨어 검증 방식은, 하나의 모듈 내에서 함수(function)가 정상적으로 호출되어 이용되고 있는지 여부를 판정하고 있다. 즉, 기존의 소프트웨어 검증 방식은 모듈 블록 내의 소스 코드만을 대상으로 정상적인 함수 호출 실행 여부만을 검증할 뿐, 복수의 모듈들을 통합하여 검증하는 방식을 고려하고 있지 않다.However, this software verification method mainly involves verification of a single module. To elaborate, the existing software verification method determines whether a function is called and used normally within one module. In other words, the existing software verification method only verifies whether a function call is executed normally by targeting only the source code within the module block, and does not consider a method of integrating and verifying multiple modules.

이에 따라, 복수의 모듈을 통합하여, 소프트웨어를 검증하는 방식이 요구되고 있다. Accordingly, a method for verifying software by integrating a plurality of modules is required.

일본공개특허 제1993-088861호 (1993.04.09 공개)Japanese Patent Publication No. 1993-088861 (published on April 9, 1993)

본 발명이 해결하고자 하는 기술적 과제는, 복수의 모듈을 통합하여 검증을 수행할 수 있는 소프트웨어 검증 방법 및 이를 위한 장치를 제공하는데 있다.The technical problem to be solved by the present invention is to provide a software verification method and device for performing verification by integrating a plurality of modules.

본 발명이 해결하고자 하는 다른 기술적 과제는, 기능 검증 테스트케이스를 통해서 용이하게 소프트웨어를 검증하는 방법 및 이를 위한 장치를 제공하는데 있다.Another technical problem to be solved by the present invention is to provide a method and device for easily verifying software through a functional verification test case.

본 발명이 해결하고자 하는 또 다른 기술적 과제는, 각 모듈에서 함수 호출이 순서대로 진행되고 있는지 여부를 판정할 수 있는 소프트웨어 검증 방법 및 이를 위한 장치를 제공하는데 있다.Another technical problem to be solved by the present invention is to provide a software verification method and device for determining whether function calls in each module are proceeding in order.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below.

상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 소프트웨어 검증 방법은 소프트웨어 설계서에 포함된 검증 대상 모듈에 의해서 호출되는 함수에 대한 정보를 획득하는 단계; 상기 획득된 정보를 이용하여 함수들의 호출 순서를 확인하고, 상기 확인된 함수들의 호출 순서를 포함하는 기능 검증 테스트케이스를 생성하는 단계; 및 디버거(debugger)에 의해서 상기 검증 대상 모듈의 소스 코드가 실행될 때에 호출되는 함수 순서와 상기 기능 검증 테스트케이스에 포함된 함수 호출 순서를 비교하여 상기 소프트웨어 설계서에 따른 상기 검증 대상 모듈의 구현 여부를 판정하는 단계를 포함할 수 있다. In order to solve the above technical problem, a software verification method according to an embodiment of the present invention includes the steps of obtaining information about a function called by a module to be verified included in a software design document; Confirming the calling order of functions using the obtained information and generating a functional verification test case including the calling order of the confirmed functions; And comparing the order of functions called when the source code of the module to be verified is executed by a debugger and the order of function calls included in the functional verification test case to determine whether the module to be verified is implemented according to the software design document. It may include steps.

상기 소프트웨어 검증 방법은, 상기 소프트웨어 설계서에서 입력 인터페이스와 출력 인터페이스에 대한 파라미터를 확인하는 단계; 상기 소프트웨어 설계서에서 각 모듈에서 이용되는 함수 정보를 확인하는 단계; 각 모듈들 간에 인터페이스와 각 모듈의 알고리즘을 확인하는 단계; 및 모듈별 함수 정보, 상기 입력 인터페이스와 출력 인터페이스 및 상기 모듈별 간의 인터페이스에 근거하여, 함수의 호출 순서를 확인하는 단계를 더 포함할 수 있다.The software verification method includes checking parameters for an input interface and an output interface in the software design document; Checking function information used in each module in the software design document; Checking the interface between each module and the algorithm of each module; And it may further include the step of checking the function calling order based on function information for each module, the input interface and output interface, and the interface between the modules.

상기 알고리즘을 확인하는 단계는, 각 모듈의 소스 코드를 분석하여, 함수 호출 조건과 파라미터 설정값을 포함하는 상기 알고리즘을 모듈별로 확인하는 단계를 포함할 수 있다. The step of checking the algorithm may include analyzing the source code of each module and checking the algorithm, including function call conditions and parameter settings, for each module.

상기 기능 검증 테스트케이스를 생성하는 단계는, 듈별 함수 정보, 아키텍처의 입/출력 인터페이스별 파라미터 및 상기 모듈별 간의 인터페이스에 근거하여, 상기 기능 검증 테스트케이스에서의 예상 출력값을 확인하는 단계; 및 상기 예상 출력값을 포함하는 상기 기능 검증 테스트케이스를 생성하는 단계를 포함할 수 있다. The step of generating the functional verification test case includes: confirming an expected output value in the functional verification test case based on function information for each module, parameters for each input/output interface of the architecture, and interfaces between the modules; and generating the functional verification test case including the expected output value.

일 실시에에서, 상기 소프트웨어 검증 방법은, 상기 디버거에 의해서 실행된 소스 코드의 결과와 상기 테스트케이스에 포함된 상기 예상 출력값을 비교하여, 상기 소프트웨어 설계서에 따른 상기 검증 대상 모듈의 구현 여부를 판정하는 단계를 더 포함할 수 있다. In one embodiment, the software verification method compares the result of the source code executed by the debugger with the expected output value included in the test case to determine whether the module to be verified is implemented according to the software design document. Additional steps may be included.

상기 함수 정보를 확인하는 단계는, 상기 소프트웨어 설계서에 포함된 단위 설계서를 이용하여 상기 함수 정보를 확인하는 단계를 포함할 수 있다.The step of checking the function information may include checking the function information using a unit design document included in the software design document.

상기 함수 정보는, 해당 모듈에서 이용하는 호출 함수, 피호출 함수 및 각 함수의 입력 파라미터와 출력 파라미터를 포함할 수 있다.The function information may include a calling function used in the corresponding module, a called function, and input parameters and output parameters of each function.

상기 소프트웨어 검증 방법은, 상기 기능 검증 테스트케이스를 상기 소프트웨어 설계서와 매핑하여 저장하는 단계를 더 포함할 수 있다. The software verification method may further include mapping and storing the functional verification test case with the software design document.

일 실시예에서, 상기 디버거는 상기 매핑된 기능 검증 테스트케이스에 포함된 각 모듈을 기초로, 복수의 모듈의 소스 코드를 통합하여 분석할 수 있다. In one embodiment, the debugger may integrate and analyze the source code of a plurality of modules based on each module included in the mapped functional verification test case.

상기 기술적 과제를 해결하기 위한, 본 발명의 다른 실시예에 따른 소프트웨어 검증 장치는 소프트웨어 설계서에 포함된 검증 대상 모듈에 의해서 호출되는 함수에 대한 정보를 획득하는 설계서 분석 모듈; 상기 획득된 정보를 이용하여 함수들의 호출 순서를 확인하고, 상기 확인된 함수들의 호출 순서를 포함하는 기능 검증 테스트케이스를 생성하는 테스트케이스 생성 모듈; 상기 검증 대상 모듈의 소스 코드를 실행하는 디버거(debugger); 및 상기 디버거에 의해 호출되는 함수 순서와 상기 기능 검증 테스트케이스에 포함된 함수 호출 순서를 비교하여 상기 소프트웨어 설계서에 따른 상기 검증 대상 모듈의 구현 여부를 판정하는 검증 모듈을 포함할 수 있다.In order to solve the above technical problem, a software verification device according to another embodiment of the present invention includes a design analysis module that acquires information about a function called by a module to be verified included in a software design document; a test case generation module that verifies the calling order of functions using the obtained information and generates a functional verification test case including the calling order of the confirmed functions; A debugger that executes the source code of the module to be verified; and a verification module that determines whether the module to be verified is implemented according to the software design document by comparing the order of functions called by the debugger and the order of function calls included in the functional verification test case.

도 1은 본 발명의 일 실시예에 따른, 소프트웨어 검증 시스템을 나타내는 도면이다.
도 2는 도 1의 소프트웨어 검증 장치의 구성을 나타내는 도면이다.
도 3은 입/출력 인터페이스별 파라미터를 예시하는 도면이다.
도 4는 모듈의 함수 정보를 예시한 도면이다.
도 5는 코드 커버리지의 측정 결과와 함수 연결 관계를 예시하는 도면이다.
도 6은 각 모듈의 알고리즘을 예시하는 도면이다.
도 7은 모듈 간에 함수가 호출되는 순서를 예시하는 도면이다.
도 8은 함수 호출 순서와 테스트 시나리오를 예시하는 도면이다.
도 9는 본 발명의 다른 실시예에 따른 소프트웨어를 검증하는 방법을 설명하기 위한 흐름도이다.
도 10은 다양한 실시예에서 컴퓨팅 장치를 구현할 수 있는 예시적인 하드웨어 구성도이다.
1 is a diagram illustrating a software verification system according to an embodiment of the present invention.
FIG. 2 is a diagram showing the configuration of the software verification device of FIG. 1.
Figure 3 is a diagram illustrating parameters for each input/output interface.
Figure 4 is a diagram illustrating function information of a module.
Figure 5 is a diagram illustrating the code coverage measurement result and function connection relationship.
Figure 6 is a diagram illustrating the algorithm of each module.
Figure 7 is a diagram illustrating the order in which functions are called between modules.
Figure 8 is a diagram illustrating a function call sequence and test scenario.
Figure 9 is a flowchart illustrating a method for verifying software according to another embodiment of the present invention.
Figure 10 is an example hardware configuration diagram that can implement a computing device in various embodiments.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the attached drawings. The advantages and features of the present invention and methods for achieving them will become clear by referring to the embodiments described in detail below along with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and may be implemented in various different forms. The present embodiments are merely intended to ensure that the disclosure of the present invention is complete and to provide common knowledge in the technical field to which the present invention pertains. It is provided to fully inform those who have the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used with meanings that can be commonly understood by those skilled in the art to which the present invention pertains. Additionally, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless clearly specifically defined. The terminology used herein is for describing embodiments and is not intended to limit the invention. As used herein, singular forms also include plural forms, unless specifically stated otherwise in the context.

이하, 도면들을 참조하여 본 발명의 몇몇 실시예들을 설명한다.Hereinafter, several embodiments of the present invention will be described with reference to the drawings.

도 1은 본 발명의 일 실시예에 따른, 소프트웨어 검증 시스템을 나타내는 도면이다.1 is a diagram illustrating a software verification system according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 소프트웨어 검증 시스템은 클라이언트 단말(200) 및 소프트웨어 검증 장치(100)를 포함할 수 있다. 상기 클라이언트 단말(200)과 소프트웨어 검증 장치(100)는 네트워크(300)를 통해서 서로 통신할 수 있다. 상기 네트워크(300)는 이동통신망과 유선 통신망을 포함하는 것으로서, 본 발명에 있어서 주지의 관용기술에 해당하므로 자세한 설명은 생략한다.As shown in FIG. 1, the software verification system may include a client terminal 200 and a software verification device 100. The client terminal 200 and the software verification device 100 may communicate with each other through the network 300. The network 300 includes a mobile communication network and a wired communication network, and since it corresponds to a known common technology in the present invention, detailed description will be omitted.

상기 클라이언트 단말(200)은 개인용 컴퓨터, 서버, 모바일 단말 등과 같은 통신 장치로서, 소프트웨어 검증 장치(100)에 접속하여 소프트웨어 설계서와 각 모듈의 소스 코드를 소프트웨어 검증 장치(100)에 등록할 수 있다. 상기 소프트웨어 설계서는 하나 이상의 아키텍처 설계서와 하나 이상의 단위 설계서를 포함할 수 있다. 상기 아키텍처 설계서에는 입력 인터페이스와 출력 인터페이스에 대한 파라미터가 기록되고, 단위 설계서에는 각 모듈의 함수 정보가 기록될 수 있다. 상기 함수 정보는 해당 모듈에서 이용하는 호출 함수, 피호출 함수, 호출 대상 함수 및 함수별 입/출력 파라미터를 포함할 수 있다. 상기 단위 설계서에 포함된 모듈은 해당 단위 기능이 수행될 때에 이용되는 모듈일 수 있다. 또한, 호출 함수는 해당 모듈에서 이용하는 호출하는 대표 함수이고, 호출 대상 함수는 상기 호출 함수를 호출하는 함수를 나타내고, 피호출 함수는 상기 호출 함수 내에서 호출되는 함수로서, 내부 함수 또는 외부 함수일 수 있다. 상기 내부 함수는 해당 모듈에서 자체적으로 처리하여 리턴할 수 있는 함수이고, 외부 함수는 타 모듈에서 실행되어 결과값이 상기 타 모듈로부터 결과값을 리턴받는 함수일 수 있다.The client terminal 200 is a communication device such as a personal computer, server, or mobile terminal, and can connect to the software verification device 100 to register the software design document and the source code of each module to the software verification device 100. The software design document may include one or more architecture design documents and one or more unit design documents. Parameters for the input interface and output interface may be recorded in the architecture design, and function information for each module may be recorded in the unit design. The function information may include a call function used in the corresponding module, a called function, a call target function, and input/output parameters for each function. The module included in the unit design may be a module used when the corresponding unit function is performed. In addition, the calling function is a representative function to be called used in the corresponding module, the call target function represents a function that calls the calling function, and the called function is a function called within the calling function and may be an internal function or an external function. . The internal function may be a function that can be processed and returned by the corresponding module, and the external function may be a function that is executed in another module and whose result value is returned from the other module.

소프트웨어 검증 장치(100)는 상기 소프트웨어 설계서와 모듈별 소스 코드를 분석하여, 복수의 모듈을 통합하여 기능을 검증할 수 있는 하나 이상의 기능 검증 테스트케이스를 생성할 수 있다. 상기 소프트웨어 검증 장치(100)는 상기 기능 검증 테스트케이스를 이용하여, 검증 대상이 되는 하나 이상의 모듈이 상기 소프트웨어 설계서에 따라 구현되었는지 여부를 판정할 수 있다.The software verification device 100 may analyze the software design and source code for each module and generate one or more functional verification test cases that can integrate a plurality of modules and verify functionality. The software verification device 100 may use the functional verification test case to determine whether one or more modules subject to verification have been implemented according to the software design document.

도 2는 도 1의 소프트웨어 검증 장치의 구성을 나타내는 도면이다. FIG. 2 is a diagram showing the configuration of the software verification device of FIG. 1.

도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 소프트웨어 검증 장치(100)는 설계서 분석 모듈(110), 디버거(120), 테스트케이스 생성 모듈(130) 및 검증 모듈(140)을 포함할 수 있으며, 이러한 구성요소소들은 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합을 통해서 구현될 수 있다. 또한, 설계서 분석 모듈(110), 디버거(120), 테스트케이스 생성 모듈(130) 및 검증 모듈(140)은 후술하는 컴퓨팅 장치(1000)에서 실행될 수 있는 컴퓨터 프로그램(1500) 형태로 메모리(1400) 또는 스토리지(1300)에 저장될 수 있다.As shown in FIG. 2, the software verification device 100 according to an embodiment of the present invention includes a design analysis module 110, a debugger 120, a test case generation module 130, and a verification module 140. It can be done, and these components can be implemented in hardware or software, or through a combination of hardware and software. In addition, the design analysis module 110, debugger 120, test case generation module 130, and verification module 140 are memory 1400 in the form of a computer program 1500 that can be executed on the computing device 1000, which will be described later. Alternatively, it may be stored in storage 1300.

설계서 분석 모듈(110)은 클라이언트 단말(200)로부터 소프트웨어의 설계서와 각 모듈별 소스 코드를 수신하고, 상기 소프트웨어의 설계서를 분석할 수 있다. 일 실시예에서, 설계서 분석 모듈(110)은 상기 소프트웨어 설계서에 포함된 아키텍처 설계서를 분석하여, 상기 아키텍처 설계서에서 입력 인터페이스와 출력 인터페이스 각각에 대한 파라미터를 확인할 수 있다. 상기 설계서 분석 모듈(110)은 아키텍처 설계서에 기재된 텍스트를 약속된 규칙에 따라 파싱(parsing)함으로써, 입력 인터페이스와 출력 인터페이스 각각에 대한 파라미터를 확인할 수 있다.The design analysis module 110 may receive a software design and source code for each module from the client terminal 200, and analyze the software design. In one embodiment, the design document analysis module 110 may analyze the architecture design document included in the software design document and check parameters for each of the input interface and output interface in the architecture design document. The design document analysis module 110 can check parameters for each of the input interface and output interface by parsing the text written in the architecture design document according to promised rules.

도 3은 입/출력 인터페이스별 파라미터를 예시하는 도면이다.Figure 3 is a diagram illustrating parameters for each input/output interface.

도 3에 예시된 바와 같이, "DRV_Door"의 명칭을 가지는 입력 인터페이스는 파라미터 a와 관련되고, "RKE_Lock_SW"의 명칭을 가지는 입력 인터페이스는 파라미터 b와 관련되며, "DRV_Door_Lock_Rly"의 명칭을 가지는 출력 인터페이스는 파라미터 c와 관련될 수 있다. 설계서 분석 모듈(110)은 아키텍처 설계서를 분석하여 입력 인터페이스와 출력 인터페이스 각각과 관련된 파라미터를 확인할 수 있다.As illustrated in Figure 3, the input interface with the name "DRV_Door" is associated with parameter a, the input interface with the name "RKE_Lock_SW" is associated with parameter b, and the output interface with the name "DRV_Door_Lock_Rly" is associated with parameter a. It may be related to parameter c. The design analysis module 110 can analyze the architecture design and check parameters related to each of the input interface and output interface.

또한, 설계서 분석 모듈(110)은 상기 소프트웨어 설계서에 포함된 단위 설계서를 분석하여, 상기 단위 설계서에서 하나 이상의 모듈에서 이용되는 함수 정보를 획득할 수 있다, 상기 함수 정보는 하나 이상의 호출 함수, 피호출 함수 및 각 함수의 입/출력 파라미터를 포함할 수 있다. 상기 설계서 분석 모듈(110)은 단위 설계서에 기재된 텍스트를 약속된 규칙에 따라 파싱(parsing)함으로써, 모듈을 식별하고 해당 모듈에서 호출하는 하나 이상의 호출 함수, 피호출 함수 및 함수의 입/출력 파라미터를 확인할 수 있다.In addition, the design document analysis module 110 may analyze the unit design document included in the software design document to obtain function information used in one or more modules in the unit design document. The function information may include one or more call functions and called functions. It can include functions and input/output parameters of each function. The design analysis module 110 identifies a module by parsing the text written in the unit design according to promised rules, and determines one or more call functions, called functions, and input/output parameters of the function called by the module. You can check it.

도 4는 모듈의 함수 정보를 예시한 도면이다.Figure 4 is a diagram illustrating function information of a module.

도 4에 예시된 바와 같이, 특정 모듈은 복수의 함수 정보를 포함할 수 있다. 도 4의 (a)에 따르면, "functionA"라는 명칭을 가지는 함수는 출력 파라미터로서 a, b를 가지고, 피호출 함수로서 "functionB", "functionA1"와 연관되고, 호출 대상 함수로서 "Tack_A"라는 명칭을 가지는 함수와 연관될 수 있다. 도 4의 (a)에 따르면,"functionA"는 "Task_A"함수를 통해서 호출되어, 피호출 함수인 "functionB", "functionA1"중에서 하나 이상을 호출하고, 더불어 파라미터 a, 파라미터 b 중에서 하나 이상을 출력할 수 있다. As illustrated in FIG. 4, a specific module may include a plurality of function information. According to (a) of Figure 4, a function named "functionA" has a and b as output parameters, is associated with "functionB" and "functionA1" as a called function, and "Tack_A" as a called function. It can be associated with a function that has a name. According to (a) of Figure 4, "functionA" is called through the "Task_A" function, calling one or more of the called functions "functionB" and "functionA1", and also one or more of parameters a and parameter b. Can be printed.

도 4의 (b)에 따르면, "functionB"라는 명칭을 가지는 함수는 입력 파라미터 a를 가지고, 출력 파라미터 b를 가지며, 피호출 함수로서 "functionC"와 연관되고, 호출 대상 함수로서 "functionA"함수와 연관될 수 있다. 도 4의 (b)에 따르면,"functionB"는 "functionA"함수를 통해서 호출될 수 있으며, 피호출 함수인 "functionC"을 호출할 수 있고, 파라미터 b를 출력할 수 있다. 설계서 분석 모듈(110)은 단위 설계서를 이용하고 분석하여 도 4와 같은 함수 정보를 획득할 수 있다.According to (b) of Figure 4, a function named "functionB" has an input parameter a, an output parameter b, is associated with "functionC" as a called function, and has a function "functionA" as a call target function. It can be related. According to (b) of FIG. 4, “functionB” can be called through the “functionA” function, can call “functionC”, which is the called function, and can output parameter b. The design document analysis module 110 can obtain function information as shown in FIG. 4 by using and analyzing the unit design document.

다른 실시예로서, 설계서 분석 모듈(110)은 클라이언트 단말(200)로부터 입력 인터페이스와 출력 인터페이스 각각에 대한 파라미터를 입력 받을 수 있으며, 또한, 각 모듈의 함수 정보를 입력 받을 수 있다.As another embodiment, the design analysis module 110 may receive parameters for each of the input interface and output interface from the client terminal 200, and may also receive function information of each module.

디버거(debugger)(120)는 단위 설계서에 포함된 모듈의 소스 코드에 대한 커버리지를 측정을 수행하고, 상기 측정한 코드 커버리지 측정 결과에 기초하여 각 모듈들 간의 인터페이스를 확인할 수 있다. 디버거(120)는 DT10, LDRA, VectorCAST, CodeScroll Controller Tester, QualityScroll Cover 등과 같은 공지된 툴을 이용하여 상기 코드 커버리지 측정을 수행할 수 있다.The debugger 120 may measure the coverage of the source code of the module included in the unit design and check the interface between each module based on the measured code coverage measurement result. The debugger 120 may perform the code coverage measurement using known tools such as DT10, LDRA, VectorCAST, CodeScroll Controller Tester, QualityScroll Cover, etc.

도 5는 코드 커버리지의 측정 결과와 함수 연결 관계를 예시하는 도면이다. Figure 5 is a diagram illustrating the code coverage measurement result and function connection relationship.

도 5의 (a)에 예시된 바와 같이, 디버거(120)는 각 함수의 구문(statement) 커버리지와 조건(condition) 커버리지가 퍼센트(%)로 측정할 수 있다. 도 5의 (b)에 예시된 바와 같이, 디버거(120)는 코드 커버리지 측정 결과를 토대로, 각 함수의 호출 관계가 수평적 관계인지 수직적인 관계인지를 확인할 수 있다. 도 5의 (a)에 따르면, "Function A", "Function B", "Function C"각각은 수평적인 관계이고, "Function A"는 "Function A1"와 "Function A2"는 수직적인 관계일 수 있다. 수평적인 관계는 외부 함수가 이용되는 경우에 발생하고, 수직적인 관계는 내부 함수가 이용될 경우 발생할 수 있다. 상기 "Function A1"와 "Function A2"는 "Function A"에 대한 내부 함수일 수 있다.As illustrated in (a) of FIG. 5, the debugger 120 can measure the statement coverage and condition coverage of each function in percentage (%). As illustrated in (b) of FIG. 5, the debugger 120 can check whether the call relationship of each function is a horizontal relationship or a vertical relationship based on the code coverage measurement result. According to (a) of Figure 5, "Function A", "Function B", and "Function C" each have a horizontal relationship, and "Function A", "Function A1", and "Function A2" may have a vertical relationship. there is. A horizontal relationship can occur when an external function is used, and a vertical relationship can occur when an internal function is used. The “Function A1” and “Function A2” may be internal functions for “Function A”.

또한, 디버거(120)는 해당 모듈의 소스 코드를 분석하여, 함수 호출 조건과 파라미터 설정값을 포함하는 각 모듈의 알고리즘을 파악할 수 있다. Additionally, the debugger 120 can identify the algorithm of each module, including function call conditions and parameter settings, by analyzing the source code of the corresponding module.

도 6은 각 모듈의 알고리즘을 예시하는 도면이다.Figure 6 is a diagram illustrating the algorithm of each module.

도 6의 (a)는 모듈 A의 소스 코드를 통해서 파악된 알고리즘을 예시하는 것으로서, 초기에는 "functionA1"와 "functionB"가 호출되고, 파라미터 a와 b의 비교 결과에 따라 "functionA2"가 호출되거나, 파라미터 a와 b가 "0"으로 설정되는 것을 예시하고 있다. 도 6의 (b)는 모듈 B의 소스 코드를 통해서 파악된 알고리즘을 예시하는 것으로서, 파라미터 a가 1인지 여부에 따라"functionC"가 호출되거나, 파라미터 c가 "0"으로 설정되는 것을 예시하고 있다. Figure 6 (a) illustrates the algorithm identified through the source code of module A. Initially, “functionA1” and “functionB” are called, and “functionA2” is called or “functionA2” is called according to the comparison result of parameters a and b. , it illustrates that parameters a and b are set to “0”. Figure 6 (b) illustrates the algorithm identified through the source code of module B, illustrating that "functionC" is called or parameter c is set to "0" depending on whether parameter a is 1. .

디버거(120)는 단위 설계서에 포함된 모듈의 소스코드를 분석할 때, 상기 단위 설계서가 기능 검증 테스트케이스와 매핑되어 있는 경우, 상기 단위 설계서에 포함된 복수의 모듈에 확인하고, 상기 복수의 모듈을 통합하여 소스코드를 분석할 수 있다. 상기 디버거(120)는 각 모듈의 마지막 분기점에서 이용되는 함수와 상기 함수를 제공하는 모듈을 식별함으로써, 상기 복수의 모듈들에 대한 소스코드를 통합하여 분석할 수 있다. 즉, 디버거(120)는 기능 검증 테스트케이스를 활용하여, 연관성이 있는 복수의 모듈들을 통합하여 분석할 수 있다.When analyzing the source code of a module included in the unit design, the debugger 120 checks the plurality of modules included in the unit design if the unit design is mapped to a functional verification test case, and checks the plurality of modules. You can analyze the source code by integrating. The debugger 120 can integrate and analyze the source code for the plurality of modules by identifying the function used at the last branch of each module and the module that provides the function. That is, the debugger 120 can integrate and analyze a plurality of related modules using functional verification test cases.

테스트케이스 생성 모듈(130)은 상기 모듈별 함수 정보, 아키텍처의 입/출력 인터페이스별 파라미터, 상기 모듈들 간의 인터페이스, 상기 모듈별 알고리즘 중에서 하나 이상에 근거하여, 각 함수의 호출 순서를 확인하고 더불어 예상되는 출력 결과를 확인한 후, 상기 각 함수의 호출 순서와 출력 결과를 포함하는 기능 검증 테스트케이스를 생성할 수 있다. 상기 기능 검증 테스트케이스에는 상기 호출 순서에 따라 호출되는 함수와 관련되는 모듈들의 식별정보가 포함되어 있어, 디버거(120)에서 연관되는 각각의 모듈들을 식별할 수 있다. 상기 테스트케이스 생성 모듈(130)은 상기 생성한 기능 검증 테스트케이스를 해당 아키텍처 설계서와 단위 설계서와 매핑할 수 있다. 예컨대, 상기 기능 검증 테스트케이스가 모듈 A와 모듈 B와 관련되어 있는 경우, 상기 기능 검증 테스트케이스는 단위 설계서#1와 단위 설계서#2와 매핑될 수 있다. 상기 테스트케이스 생성 모듈(130)은 모듈별 함수 호출 순서에 따라 상기 기능 검증 테스트케이스와 관련된 모듈들을 식별할 수 있다. The test case generation module 130 checks the calling order of each function based on one or more of the function information for each module, parameters for each input/output interface of the architecture, interfaces between the modules, and algorithms for each module, and makes predictions. After checking the output results, a functional verification test case can be created that includes the calling order and output results of each function. The functional verification test case includes identification information of modules related to the function called according to the calling order, so that the debugger 120 can identify each related module. The test case generation module 130 may map the generated functional verification test case with the corresponding architecture design and unit design. For example, if the functional verification test case is related to module A and module B, the functional verification test case may be mapped to unit blueprint #1 and unit blueprint #2. The test case generation module 130 may identify modules related to the functional verification test case according to the function call order for each module.

도 7은 모듈 간에 함수가 호출되는 순서를 예시하는 도면이다.Figure 7 is a diagram illustrating the order in which functions are called between modules.

도 7에 예시된 바와 같이, "Task_A"가 발생하면, 모듈 A의"functionA", 모듈 B의 "functionB", 모듈 C의 "functionC"가 순차적으로 호출되는 것을 예시하고 있다. 또한, 테스트케이스 생성 모듈(130)은 도 7에 예시된 것 이외에, 상기 모듈별 함수 정보, 아키텍처의 입/출력 인터페이스별 파라미터 및 상기 모듈별 알고리즘에 근거하여, 또 다른 함수 호출 순서를 파악할 수 있다. As illustrated in FIG. 7, when “Task_A” occurs, “functionA” of module A, “functionB” of module B, and “functionC” of module C are called sequentially. In addition, the test case generation module 130 can determine another function call order based on the function information for each module, parameters for each input/output interface of the architecture, and algorithms for each module, in addition to those illustrated in FIG. 7. .

도 8은 함수 호출 순서와 테스트 시나리오를 예시하는 도면이다.Figure 8 is a diagram illustrating a function call sequence and test scenario.

도 8을 참조하면, "FunctionalTest_01"의 명칭을 가지는 기능 검증 테스트케이스는 "functionA"-> "functionA1"에 해당하는 따른 제1 함수 호출 순서, "functionA"-> "functionB"-> "functionC"에 해당하는 따른 제2 함수 호출 순서, "functionA"-> "functionA2"에 해당하는 따른 제3 함수 호출 순서를 포함할 수 있다. "FunctionalTest_01"기능 검증 테스트케이스는 테스트 시나리오로서, 입력 인터페이스 "DRV_Door"와 "RKE_Lock_SW"를 포함할 수 있으며, 또한 예상되는 출력값으로서 출력 인터페이스 "DRV_Door_Lock_Rly"가 턴온되는 것을 포함할 수 있다.Referring to FIG. 8, the function verification test case with the name "FunctionalTest_01" is the first function call sequence corresponding to "functionA" -> "functionA1", "functionA" -> "functionB" -> "functionC". It may include a corresponding second function call sequence and a third function call sequence corresponding to "functionA" -> "functionA2". The "FunctionalTest_01" functional verification test case is a test scenario and may include input interfaces "DRV_Door" and "RKE_Lock_SW", and may also include turning on the output interface "DRV_Door_Lock_Rly" as an expected output value.

도 8에서 "InterfaceTest_01"과 "InterfaceTest_01"는 종래의 검증 방법에 따라 검증된 것을 예시하는 것으로서, 내부 인터페이스(즉, 내부 함수)인 "functionA1"과 "functionA2"가 누락되어 있다. 또한, "InterfaceTest_01"과 "InterfaceTest_01"는 특정 모듈에만 적용되는 것을 한정되어 있고, 복수의 모듈의 통합하여 이용하고 있지 않을 뿐만 아니라, 최종 출력 결과물에 대해서 전혀 예상하고 있지 못하고 있다. 즉, 종래의 검증에 따른 "InterfaceTest_01"과 "InterfaceTest_01"는 복수의 모듈을 통합하여 기능적인 검증을 수행하지 못하고 있다.In FIG. 8, "InterfaceTest_01" and "InterfaceTest_01" are examples that have been verified according to a conventional verification method, and "functionA1" and "functionA2", which are internal interfaces (i.e., internal functions), are missing. In addition, "InterfaceTest_01" and "InterfaceTest_01" are limited to being applied only to specific modules, and not only are multiple modules not integrated and used, but the final output result is not expected at all. In other words, “InterfaceTest_01” and “InterfaceTest_01” according to the conventional verification cannot perform functional verification by integrating multiple modules.

반면에, 본 실시예에 따라 생성된 기능 검증 테스트케이스인 "FunctionalTest_01"은, 복수 모듈들 간에 이용되는 함수 호출 순서를 포함하고 있으며, 더불어 최종 결과값도 예상하고 있다. 이에 따라, 본 실시예에 다른 기능 검증 테스트케이스를 이용하는 경우, 복수의 모듈을 통합하여 검증할 수 있고, 더불어 최종 결과물이 정확한지 여부도 확인할 수 있다.On the other hand, "FunctionalTest_01", a functional verification test case created according to this embodiment, includes the function call sequence used between multiple modules and also predicts the final result value. Accordingly, when using a different functional verification test case in this embodiment, multiple modules can be integrated and verified, and it is also possible to check whether the final result is accurate.

검증 모듈(140)은 상기 기능 검증 테스트케이스에 관련된 복수의 모듈을 검증 대상 모듈로서 선정하고, 상기 디버거(120)를 이용하여 상기 선정된 복수의 검증 대상 모듈의 소스 코드가 분석되게 할 수 있다. 검증 모듈(140)은 디버거(120)에 의해 복수의 검증 대상 모듈에 대한 소스 코드 분석이 실행되면, 디버거에서 호출하는 함수 순서를 상기 기능 검증 테스트케이스에서 포함된 함수 호출 순서와 일치하는 여부를 확인하여, 상기 소스 코드가 상기 소프트웨어 설계서에 따라 정확하게 구현되었는지 여부를 판정할 수 있다. 상기 기능 검증 테스트케이스에 포함된 함수 호출 순서가 복수 개인 경우, 검증 모듈(140)은 디버거(120)에서 호출하는 함수 순서가 복수의 함수 호출 순서 중에서 어느 하나와 일치하는지 여부를 확인하여, 소프트웨어 구현 여부를 판정할 수 있다. 검증 모듈(140)은 디버거(120)의 함수 호출 순서가 기능 검증 테스트케이스에 포함된 호출 함수 순서와 일치하지 않으면, 소프트웨어 검증을 실패로서 판정할 수 있다. The verification module 140 may select a plurality of modules related to the functional verification test case as modules to be verified, and use the debugger 120 to analyze the source codes of the selected plurality of modules to be verified. When the source code analysis for a plurality of verification target modules is executed by the debugger 120, the verification module 140 checks whether the order of functions called by the debugger matches the order of function calls included in the functional verification test case. Thus, it can be determined whether the source code has been accurately implemented according to the software design. When there are multiple function call sequences included in the functional verification test case, the verification module 140 checks whether the function sequence called by the debugger 120 matches any one of the plurality of function call sequences to implement software. You can determine whether or not. If the function call order of the debugger 120 does not match the call function order included in the functional verification test case, the verification module 140 may determine the software verification as failed.

또한, 검증 모듈(140)은 상기 디버거(120)에 의해서 출력된 결과와 상기 기능 검증 테스트케이스에 포함된 예상 출력 결과를 비교하여, 상기 소스 코드가 상기 소프트웨어 설계서에 따라 정확하게 구현되었는지 여부를 판정할 수 있다. 검증 모듈(140)은 디버거(120)의 출력 결과와 기능 검증 테스트케이스에 포함된 예상 출력 결과 중에서 어느 하나와 일치하지 않으면, 소프트웨어 검증을 실패로서 판정할 수 있다. In addition, the verification module 140 compares the results output by the debugger 120 with the expected output results included in the functional verification test case to determine whether the source code has been accurately implemented according to the software design document. You can. If the verification module 140 does not match any one of the output results of the debugger 120 and the expected output results included in the functional verification test case, the software verification may be determined to have failed.

검증 모듈(140)은 디버거(120)의 함수 호출 순서가 기능 검증 테스트케이스에 포함된 호출 함수 순서와 일치하고, 디버거(120)에 의해서 출력된 결과와 기능 검증 테스트케이스에 포함된 예상 출력 결과가 일치하면, 소프트웨어 검증을 성공으로서 판정할 수 있다. 검증 모듈(140)은 판정된 결과를 클라이언트 단말(200)로 전송할 수 있으며, 보고서 형태로 작성하여 저장할 수도 있다. The verification module 140 ensures that the function call order of the debugger 120 matches the call function order included in the functional verification test case, and the results output by the debugger 120 and the expected output results included in the functional verification test case are consistent with the function call order of the debugger 120. If they match, the software verification can be judged as successful. The verification module 140 can transmit the determined results to the client terminal 200, and can also write and store them in the form of a report.

본 실시예에 따르면, 모듈들 간의 연관성과 함수 호출 순서를 기초로 기능 검증 테스트케이스를 생성하고, 상기 기능 검증 테스트케이스를 이용하여 모듈들을 통합하여 검증할 수 있게 함으로써, 소프트웨어의 기능 검증을 수행할 때에 편의성과 정확성을 향상시킬 수 있다. 또한, 본 실시예에 따르면, 기능 검증 테스트케이스에 포함된 데이터와 디버거(120)에 의해 수행된 테스트 결과를 비교하여, 정확하게 소프트웨어를 검증함으로써, 소프트웨어의 구현 오류를 확실하게 파악할 수 있는 효과를 발휘할 수 있다.According to this embodiment, functional verification of the software can be performed by generating a functional verification test case based on the correlation between modules and the function call order, and integrating and verifying the modules using the functional verification test case. Convenience and accuracy can be improved. In addition, according to this embodiment, by comparing the data included in the functional verification test case with the test results performed by the debugger 120 and accurately verifying the software, it is possible to clearly identify implementation errors in the software. You can.

도 9는 본 발명의 다른 실시예에 따른 소프트웨어를 검증하는 방법을 설명하기 위한 흐름도이다.Figure 9 is a flowchart illustrating a method for verifying software according to another embodiment of the present invention.

도 9를 참조하면, 설계서 분석 모듈(110)은 클라이언트 단말(200)로부터 소프트웨어의 설계서와 각 모듈별 소스 코드를 수신할 수 있다(S101).Referring to FIG. 9, the design analysis module 110 may receive a software design document and source code for each module from the client terminal 200 (S101).

이어서, 설계서 분석 모듈(110)은 상기 소프트웨어 설계서에 포함된 아키텍처 설계서를 분석하여, 상기 아키텍처 설계서에서 입력 인터페이스와 출력 인터페이스 각각에 대한 파라미터를 확인할 수 있다. 다음으로, 설계서 분석 모듈(110)은 상기 소프트웨어 설계서에 포함된 단위 설계서를 분석하여, 상기 단위 설계서에서 하나 이상의 모듈에서 이용되는 함수 정보를 확인할 수 있다(S103).Next, the design document analysis module 110 can analyze the architecture design document included in the software design document and check parameters for each of the input interface and output interface in the architecture design document. Next, the design analysis module 110 can analyze the unit design included in the software design and check function information used in one or more modules in the unit design (S103).

이어서, 디버거(120)는 단위 설계서에 포함된 소스 코드에 대한 커버리지를 측정을 수행하고, 상기 측정한 코드 커버리지 측정 결과에 기초하여 각 모듈들 간의 인터페이스를 확인할 수 있다(S105). 또한, 디버거(120)는 상기 소스 코드를 분석하여, 함수 호출 조건과 파라미터 설정값을 포함하는 각 모듈의 알고리즘을 파악할 수 있다. Next, the debugger 120 can measure the coverage of the source code included in the unit design document and check the interface between each module based on the code coverage measurement result (S105). Additionally, the debugger 120 can analyze the source code to determine the algorithm of each module, including function call conditions and parameter settings.

다음으로, 테스트케이스 생성 모듈(130)은 상기 모듈별 함수 정보, 아키텍처의 입/출력 인터페이스별 파라미터, 상기 모듈들 간의 인터페이스, 상기 모듈별 알고리즘 중에서 하나 이상에 근거하여, 각 함수의 호출 순서를 확인하고 더불어 예상되는 출력 결과를 확인한 후, 상기 각 함수의 호출 순서와 출력 결과를 포함하는 기능 검증 테스트케이스를 생성할 수 있다(S107). 상기 기능 검증 테스트케이스에는 상기 호출 순서에 따라 호출되는 함수와 관련되는 모듈들의 식별정보가 포함되어 있다. Next, the test case generation module 130 checks the calling order of each function based on one or more of the function information for each module, parameters for each input/output interface of the architecture, interfaces between the modules, and algorithms for each module. In addition, after confirming the expected output results, a functional verification test case including the calling order and output results of each function can be created (S107). The functional verification test case includes identification information of modules related to the function called according to the calling order.

이어서, 테스트케이스 생성 모듈(130)은 상기 생성한 기능 검증 테스트케이스를 해당 아키텍처 설계서와 단위 설계서와 매핑할 수 있다(S109).Subsequently, the test case generation module 130 may map the generated functional verification test case with the corresponding architecture design and unit design (S109).

검증 모듈(140)은 상기 기능 검증 테스트케이스에 관련된 하나 이상의 모듈을 검증 대상 모듈로서 선정하고, 디버거(120)를 이용하여 검증 대상 모듈에 해당하는 소스 코드가 분석되게 할 수 있다. 일 실시예에서, 디버거(120)는 상기 기능 검증 테스트케이스에 근거하여, 각 검증 대상 모듈의 마지막 분기점에서 이용되는 함수와 상기 함수를 제공하는 모듈을 식별함으로써, 상기 복수의 모듈들의 소스코드를 통합하여 분석할 수 있다. 즉, 디버거(120)는 기능 검증 테스트케이스를 활용하여, 연관성이 있는 복수의 모듈들의 소스코드를 통합하여 분석할 수 있다. 이어서, 검증 모듈(140)은 디버거(120)에 의해 검증 대상 모듈에 대한 소스 코드 분석이 실행되면, 디버거(120)에서 호출하는 함수 순서를 상기 기능 검증 테스트케이스에서 포함된 함수 호출 순서와 일치하는 여부를 확인하여, 상기 소스 코드가 상기 소프트웨어 설계서에 따라 정확하게 구현되었는지 여부를 1차로 판정할 수 있다(S111). The verification module 140 may select one or more modules related to the functional verification test case as a module to be verified, and use the debugger 120 to analyze the source code corresponding to the module to be verified. In one embodiment, the debugger 120 integrates the source code of the plurality of modules by identifying the function used at the last branch of each verification target module and the module that provides the function, based on the functional verification test case. It can be analyzed. That is, the debugger 120 can integrate and analyze the source code of a plurality of related modules using functional verification test cases. Subsequently, when the source code analysis for the module to be verified is executed by the debugger 120, the verification module 140 changes the order of functions called by the debugger 120 to match the order of function calls included in the functional verification test case. By checking whether the source code has been implemented accurately according to the software design, it can be first determined (S111).

다음으로, 검증 모듈(140)은 상기 디버거(120)에 의해서 출력된 결과와 상기 기능 검증 테스트케이스에 포함된 예상 출력 결과를 비교하여, 상기 소스 코드가 상기 소프트웨어 설계서에 따라 정확하게 구현되었는지 여부를 2차로 판정할 수 있다. 이어서, 검증 모듈(140)은 판정된 결과를 클라이언트 단말(200)로 전송할 수 있으며, 보고서 형태로 작성하여 저장할 수도 있다. Next, the verification module 140 compares the results output by the debugger 120 with the expected output results included in the functional verification test case to determine whether the source code has been accurately implemented according to the software design document. It can be judged by car. Subsequently, the verification module 140 can transmit the determined results to the client terminal 200, and can also prepare and store them in the form of a report.

본 실시예에 따르면, 기능 검증 테스트케이스를 생성하고 상기 기능 검증 테스트케이스를 이용하여 모듈들을 통합하여 검증할 수 있는 효과를 발휘할 수 있다. 또한, 본 실시예에 따르면, 기능 검증 테스트케이스를 단위 설계서와 매핑하여 저장함으로써, 추후에 디버거(120)가 상기 단위 설계서에 해당하는 모듈을 분석할 때에, 상기 모듈과 연관된 타 모듈도 통합하여 검증되게 함으로써, 검증 시간을 단축시킬 수 있는 효과를 발휘할 수 있다. According to this embodiment, it is possible to generate a functional verification test case and integrate and verify modules using the functional verification test case. In addition, according to this embodiment, by mapping and storing the functional verification test case with the unit design, when the debugger 120 analyzes the module corresponding to the unit design later, other modules associated with the module are also integrated and verified. By doing so, it can have the effect of shortening the verification time.

이하, 몇몇 실시예들에 따른 예시적인 컴퓨팅 장치의 하드웨어 구성을 도 9를 참조하여 설명하기로 한다.Hereinafter, the hardware configuration of an example computing device according to some embodiments will be described with reference to FIG. 9.

도 10은 다양한 실시예에서 컴퓨팅 장치를 구현할 수 있는 예시적인 하드웨어 구성도이다. Figure 10 is an example hardware configuration diagram that can implement a computing device in various embodiments.

본 실시예에 따른 컴퓨팅 장치(1000)는 하나 이상의 프로세서(1100), 시스템 버스(1600), 통신 인터페이스(1200), 프로세서(1100)에 의하여 수행되는 컴퓨터 프로그램(1500)을 로드(load)하는 메모리(1400)와, 컴퓨터 프로그램(1500)을 저장하는 스토리지(1300)를 포함할 수 있다. 도 10에서는 실시예와 관련 있는 구성요소들 만이 도시되어 있다. 따라서, 본 명세서의 실시예들이 속한 기술분야의 통상의 기술자라면 도 10에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.The computing device 1000 according to this embodiment includes one or more processors 1100, a system bus 1600, a communication interface 1200, and a memory that loads a computer program 1500 executed by the processor 1100. It may include (1400) and a storage (1300) for storing a computer program (1500). In Figure 10, only components related to the embodiment are shown. Accordingly, anyone skilled in the art to which the embodiments of the present specification pertain can recognize that other general-purpose components other than those shown in FIG. 10 may be further included.

프로세서(1100)는 컴퓨팅 장치(1000)의 각 구성의 전반적인 동작을 제어한다. 프로세서(1100)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 명세서의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(1100)는 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(1000)는 둘 이상의 프로세서를 구비할 수 있다.The processor 1100 controls the overall operation of each component of the computing device 1000. The processor 1100 includes at least one of a Central Processing Unit (CPU), Micro Processor Unit (MPU), Micro Controller Unit (MCU), Graphic Processing Unit (GPU), or any type of processor well known in the art of the present specification. It can be configured to include. Additionally, the processor 1100 may perform operations on at least one application or program to execute methods/operations according to various embodiments. Computing device 1000 may include two or more processors.

메모리(1400)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(1400)는 본 명세서의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(1300)로부터 하나 이상의 프로그램(1500)을 로드(load) 할 수 있다. 메모리(1400)의 예시는 RAM이 될 수 있으나, 이에 한정되는 것은 아니다. The memory 1400 stores various data, commands and/or information. The memory 1400 may load one or more programs 1500 from the storage 1300 to execute methods/operations according to various embodiments of the present specification. An example of the memory 1400 may be RAM, but is not limited thereto.

시스템 버스(1600)는 컴퓨팅 장치(1000)의 구성 요소 간 통신 기능을 제공한다. 상기 시스템 버스(1600)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다. 통신 인터페이스(1200)는 네트워크(300)와 연결할 수 있다. 스토리지(1300)는 하나 이상의 컴퓨터 프로그램(1500)을 비임시적으로 저장할 수 있다. 스토리지(1300)는 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 명세서의 실시예들이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다. The system bus 1600 provides communication functions between components of the computing device 1000. The system bus 1600 may be implemented as various types of buses, such as an address bus, a data bus, and a control bus. The communication interface 1200 can be connected to the network 300. Storage 1300 may non-temporarily store one or more computer programs 1500. The storage 1300 may be configured to include non-volatile memory such as flash memory, a hard disk, a removable disk, or any type of computer-readable recording medium well known in the technical field to which the embodiments of the present specification pertain. .

컴퓨터 프로그램(1500)은 본 명세서의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션(instruction)들을 포함할 수 있다. 컴퓨터 프로그램(1500)이 메모리(1400)에 로드 되면, 프로세서(1100)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 명세서의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다. 컴퓨터 프로그램(1500)은, 상술한 리퀘스트 핸들링 동작을 위한 인스트럭션들을 포함할 수 있다. 몇몇 실시예에서, 컴퓨터 프로그램(1500)은 도 2 내지 도 9를 참조하여 설명하는 설계서 분석 모듈(110)의 동작을 수행하기 위한 하나 이상의 인스트럭션, 디버거(120)의 동작을 수행하기 위한 하나 이상의 인스트럭션, 테스트케이스 생성 모듈(130)의 동작을 수행하기 위한 하나 이상의 인스트럭션 및 검증 모듈(140)의 동작을 수행하기 위한 하나 이상의 인스트럭션을 포함할 수 있다. The computer program 1500 may include one or more instructions implementing methods/operations according to various embodiments of the present specification. When the computer program 1500 is loaded into the memory 1400, the processor 1100 can perform methods/operations according to various embodiments of the present specification by executing the one or more instructions. The computer program 1500 may include instructions for the above-described request handling operation. In some embodiments, the computer program 1500 includes one or more instructions for performing the operation of the design analysis module 110 described with reference to FIGS. 2 to 9 and one or more instructions for performing the operation of the debugger 120. , It may include one or more instructions for performing the operation of the test case generation module 130 and one or more instructions for performing the operation of the verification module 140.

일 실시예에서, 상기 컴퓨터 프로그램(1500)은 소프트웨어 설계서에 포함된 검증 대상 모듈에 의해서 호출되는 함수에 대한 정보를 획득하는 동작; 상기 획득된 정보를 이용하여 함수들의 호출 순서를 확인하고, 상기 확인된 함수들의 호출 순서를 포함하는 기능 검증 테스트케이스를 생성하는 동작; 및 디버거(debugger)에 의해서 상기 검증 대상 모듈의 소스 코드가 실행될 때에 호출되는 함수 순서와 상기 기능 검증 테스트케이스에 포함된 함수 호출 순서를 비교하여 상기 소프트웨어 설계서에 따른 상기 검증 대상 모듈의 구현 여부를 판정하는 동작을 수행하기 위한 인스트럭션들을 포함할 수 있다.In one embodiment, the computer program 1500 includes the following operations: acquiring information about a function called by a module to be verified included in a software design document; Confirming the calling order of functions using the obtained information and generating a functional verification test case including the calling order of the confirmed functions; And comparing the order of functions called when the source code of the module to be verified is executed by a debugger and the order of function calls included in the functional verification test case to determine whether the module to be verified is implemented according to the software design document. It may include instructions for performing operations.

지금까지 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치를 모두 포함한다.The methods according to embodiments of the present invention described so far can be performed by executing a computer program implemented as computer-readable code. The computer program can be transmitted from a first computing device to a second computing device through a network such as the Internet, installed on the second computing device, and thus used on the second computing device. The first computing device and the second computing device include both a server device, a physical server belonging to a server pool for a cloud service, and a stationary computing device such as a desktop PC.

상기 컴퓨터프로그램은 DVD-ROM, 플래시 메모리 장치 등의 기록매체에 저장된 것일 수도 있다.The computer program may be stored in a recording medium such as a DVD-ROM or flash memory device.

이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.Although embodiments of the present invention have been described above with reference to the attached drawings, those skilled in the art will understand that the present invention can be implemented in other specific forms without changing its technical idea or essential features. can understand. Therefore, the embodiments described above should be understood in all respects as illustrative and not restrictive.

Claims (6)

소프트웨어 설계서에 포함된 복수의 검증 대상 모듈에 의해서 호출되는 함수에 대한 정보를 상기 소프트웨어 설계서에서 획득하는 단계;
상기 소프트웨어 설계서에서 획득된 정보를 이용하여 복수의 검증 대상 모듈 내의 소스코드를 통합한 기능 검증 테스트케이스를 생성하는 단계; 및
디버거(debugger)에 의해서 상기 검증 대상 모듈의 소스 코드가 실행될 때에 호출되는 함수에 대한 정보와 상기 기능 검증 테스트케이스에 포함된 함수에 대한 정보를 비교하여, 상기 소프트웨어 설계서에 따른 상기 검증 대상 모듈의 구현 여부를 판정하는 단계를 포함하되,
상기 함수에 대한 정보를 획득하는 단계는,
상기 디버거를 이용하여, 상기 복수의 검증 대상 모듈의 소스코드에 대한 커버리지(coverage)를 측정하는 단계; 및
상기 측정된 커버리지 결과를 이용하여, 상기 복수의 검증 대상 모듈들 간의 인터페이스를 확인하는 단계를 포함하고,
상기 기능 검증 테스트케이스를 생성하는 단계는,
상기 복수의 검증 대상 모듈들 간의 인터페이스를 이용하여, 상기 기능 검증 테스트 케이스를 생성하는 단계를 포함하는,
소프트웨어 검증 방법.
Obtaining information about functions called by a plurality of modules to be verified included in the software design document from the software design document;
Generating a functional verification test case that integrates source codes within a plurality of verification target modules using information obtained from the software design document; and
Implementation of the module to be verified according to the software design document by comparing information about the function called when the source code of the module to be verified is executed by a debugger and information about the function included in the functional verification test case. Including the step of determining whether or not
The step of obtaining information about the function is,
measuring coverage of source code of the plurality of modules to be verified using the debugger; and
Using the measured coverage results, confirming an interface between the plurality of modules to be verified,
The step of creating the functional verification test case is,
Comprising the step of generating the functional verification test case using an interface between the plurality of modules to be verified,
Software verification methods.
제1 항에 있어서,
상기 함수에 대한 정보를 획득하는 단계는,
상기 복수의 검증 대상 모듈을 각각의 함수 정보와 상기 복수의 검증 대상 모듈들 간의 인터페이스에 근거하여, 함수의 호출 순서를 확인하는 단계를 포함하되,
상기 복수의 검증 대상 모듈들 간의 인터페이스를 이용하여, 상기 기능 검증 테스트 케이스를 생성하는 단계는,
상기 함수의 호출 순서를 이용하여 상기 기능 검증 테스트케이스를 생성하는 단계를 포함하는,
소프트웨어 검증 방법.
According to claim 1,
The step of obtaining information about the function is,
Confirming the calling order of functions based on function information for each of the plurality of modules to be verified and an interface between the plurality of modules to be verified,
The step of generating the functional verification test case using an interface between the plurality of modules to be verified includes:
Including generating the functional verification test case using the calling sequence of the function,
Software verification methods.
제2 항에 있어서,
상기 함수의 호출 순서를 확인하는 단계는,
상기 측정된 커버리지 결과에 기초하여, 상기 복수의 검증 대상 모듈별 함수의 호출 관계를 수평적 관계 또는 수직적 관계 중 어느 하나로 판단하는 단계를 포함하되,
상기 수평적 관계에 있는 함수들은, 하나의 공통된 외부 함수에 의해 호출되는 함수들이고,
상기 수직적 관계에 있는 함수들은, 외부 함수와 상기 외부 함수에 의해 호출되는 내부 함수가 포함된 함수들인,
소프트웨어 검증 방법.
According to clause 2,
The step of checking the calling order of the function is,
Based on the measured coverage results, determining the call relationship of the functions for each module to be verified as either a horizontal relationship or a vertical relationship,
The functions in the horizontal relationship are functions called by a common external function,
The functions in the vertical relationship are functions that include an external function and an internal function called by the external function.
Software verification methods.
제1 항에 있어서,
상기 기능 검증 테스트케이스를 생성하는 단계는,
상기 디버거에 의해서 상기 복수의 검증 대상 모듈들 각각의 마지막 분기점에서 이용되는 함수와 상기 함수를 제공하는 모듈을 식별하는 단계; 및
상기 식별된 결과를 이용하여 연관성이 있는 복수의 모듈들을 통합하여 기능 검증 테스트케이스를 생성하는 단계를 포함하는,
소프트웨어 검증 방법.
According to claim 1,
The step of creating the functional verification test case is,
Identifying a function used at a final branch point of each of the plurality of modules to be verified and a module providing the function by the debugger; and
Comprising the step of generating a functional verification test case by integrating a plurality of related modules using the identified results,
Software verification methods.
제4 항에 있어서,
상기 기능 검증 테스트케이스를 생성하는 단계는,
상기 디버거에 의해서 상기 복수의 검증 대상 모듈들 각각의 함수 정보 및 상기 복수의 검증 대상 모듈들 간의 인터페이스에 근거한 예상 출력값을 상기 기능 검증 테스트케이스에 포함하는 단계를 포함하는,
소프트웨어 검증 방법.
According to clause 4,
The step of creating the functional verification test case is,
Comprising the step of including, by the debugger, function information for each of the plurality of modules to be verified and an expected output value based on an interface between the plurality of modules to be verified in the functional verification test case.
Software verification methods.
제1 항에 있어서,
상기 소프트웨어 설계서에 따른 상기 검증 대상 모듈의 구현 여부를 판정하는 단계는,
상기 디버거에 의해서 호출되는 함수의 호출 순서와 결과값이 상기 기능 검증 테스트케이스에 포함된 함수의 호출 순서 및 예상 출력값과 일치하는지 여부를 판정하는 단계를 포함하는,
소프트웨어 검증 방법
According to claim 1,
The step of determining whether the module to be verified is implemented according to the software design document,
Comprising the step of determining whether the calling order and result value of the function called by the debugger match the calling order and expected output value of the function included in the functional verification test case,
Software Verification Methods
KR1020230013606A 2020-12-15 2023-02-01 Method for verifying software and apparatus therefor KR102588856B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230013606A KR102588856B1 (en) 2020-12-15 2023-02-01 Method for verifying software and apparatus therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200175233A KR102496539B1 (en) 2020-12-15 2020-12-15 Method for verifying software and apparatus therefor
KR1020230013606A KR102588856B1 (en) 2020-12-15 2023-02-01 Method for verifying software and apparatus therefor

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020200175233A Division KR102496539B1 (en) 2020-12-15 2020-12-15 Method for verifying software and apparatus therefor

Publications (2)

Publication Number Publication Date
KR20230019191A KR20230019191A (en) 2023-02-07
KR102588856B1 true KR102588856B1 (en) 2023-10-12

Family

ID=82216967

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200175233A KR102496539B1 (en) 2020-12-15 2020-12-15 Method for verifying software and apparatus therefor
KR1020230013606A KR102588856B1 (en) 2020-12-15 2023-02-01 Method for verifying software and apparatus therefor

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020200175233A KR102496539B1 (en) 2020-12-15 2020-12-15 Method for verifying software and apparatus therefor

Country Status (1)

Country Link
KR (2) KR102496539B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115225483A (en) * 2022-06-29 2022-10-21 北京天融信网络安全技术有限公司 Data packet forwarding method, electronic device and storage medium
WO2024071455A1 (en) * 2022-09-26 2024-04-04 라쿠텐 심포니 코리아 주식회사 Providing task solution
KR102567130B1 (en) * 2023-02-24 2023-08-21 정현우 Fa equipment driving software management system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009244969A (en) * 2008-03-28 2009-10-22 Nippon Telegr & Teleph Corp <Ntt> Program operation comparison device, method, and program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0588861A (en) 1991-03-29 1993-04-09 Mitsubishi Heavy Ind Ltd Software development supporting device
KR20080068385A (en) * 2007-01-19 2008-07-23 슈어소프트테크주식회사 Program test system, method and computer readable medium on which program for executing the method is recorded
KR101989802B1 (en) * 2017-02-28 2019-06-18 주식회사 스패로우 Method for performing test using test case and apparatus for the same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009244969A (en) * 2008-03-28 2009-10-22 Nippon Telegr & Teleph Corp <Ntt> Program operation comparison device, method, and program

Also Published As

Publication number Publication date
KR102496539B1 (en) 2023-02-06
KR20220085290A (en) 2022-06-22
KR20230019191A (en) 2023-02-07

Similar Documents

Publication Publication Date Title
KR102588856B1 (en) Method for verifying software and apparatus therefor
Jamil et al. Software testing techniques: A literature review
US10346140B2 (en) System and method for model based technology and process for safety-critical software development
US9898387B2 (en) Development tools for logging and analyzing software bugs
US8397104B2 (en) Creation of test plans
US20100146340A1 (en) Analyzing Coverage of Code Changes
JP2010539576A (en) Method for automatic script generation for testing the validity of operational software of an airborne system and device for implementing the method
US11327874B1 (en) System, method, and computer program for orchestrating automatic software testing
US7895575B2 (en) Apparatus and method for generating test driver
US11307975B2 (en) Machine code analysis for identifying software defects
CN109473093A (en) Audio recognition method, device, computer equipment and storage medium
CN111078568A (en) Code specification method and device, computer equipment and storage medium
CN110069404B (en) Code debugging method, device, equipment and medium
Heizmann et al. Ultimate Automizer with Array Interpolation: (Competition Contribution)
CN109947651B (en) Artificial intelligence engine optimization method and device
CN112395202B (en) Interface automation test method and device, computer equipment and storage medium
CN111897727A (en) Software testing method and device, computer equipment and storage medium
CN116245074A (en) Chip verification method, device and storage medium
Ateşoğulları et al. White Box Test Tools: A Comparative View
KR20140088963A (en) System and method for testing runtime error
CN110633213B (en) Unit test method, unit test device, computer equipment and storage medium
KR102024275B1 (en) Test program development system and its method using script
CN111444093A (en) Method and device for determining quality of project development process and computer equipment
KR20120111618A (en) Apparatus and method for testing plc command
RU2675210C1 (en) System of analysis of software in the absence of potentially hazardous functional objects

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant