KR102639211B1 - Source code inspection system and method - Google Patents

Source code inspection system and method Download PDF

Info

Publication number
KR102639211B1
KR102639211B1 KR1020190033022A KR20190033022A KR102639211B1 KR 102639211 B1 KR102639211 B1 KR 102639211B1 KR 1020190033022 A KR1020190033022 A KR 1020190033022A KR 20190033022 A KR20190033022 A KR 20190033022A KR 102639211 B1 KR102639211 B1 KR 102639211B1
Authority
KR
South Korea
Prior art keywords
inspection
tools
source code
tool
source
Prior art date
Application number
KR1020190033022A
Other languages
Korean (ko)
Other versions
KR20200112477A (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 KR1020190033022A priority Critical patent/KR102639211B1/en
Publication of KR20200112477A publication Critical patent/KR20200112477A/en
Application granted granted Critical
Publication of KR102639211B1 publication Critical patent/KR102639211B1/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/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • 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

Abstract

본 발명은 시험도구들을 병렬로 처리하여 소스코드들의 정적검사를 수행하고, 소스코드들을 검사한 결과를 출력하여 모니터링할 수 있도록 한 소스코드 검사 시스템 및 방법에 관한 것이다.
본 발명의 실시 예에 따른 소스코드 검사 시스템은 HTTP 프로토콜을 이용하여 외부로부터 메시지를 수신하는 메시지 수신부와, 상기 메시지 수신부에서 수신한 메시지의 내용을 기초로 ZIP로 압축된 대상소스를 수신하는 대상소스 수신부와, 상기 ZIP로 압축된 대상소스의 압축을 해제하고, 원본 소스를 복사하는 대상소스 복사부와, 소스코드의 검사를 위한 각 도구들의 CLI 명령어를 로드하여 상기 소스코드의 검사를 수행하되, 상기 각 도구들이 동시에 검사를 수행하도록 하는 검사부를 포함한다.
The present invention relates to a source code inspection system and method that performs static inspection of source codes by processing test tools in parallel, and outputs and monitors the inspection results of the source codes.
The source code inspection system according to an embodiment of the present invention includes a message receiver that receives a message from the outside using the HTTP protocol, and a target source that receives a target source compressed in ZIP based on the contents of the message received by the message receiver. A receiving unit, a target source copy unit that decompresses the target source compressed in the ZIP and copies the original source, and loads CLI commands of each tool for inspecting the source code to perform an inspection of the source code, It includes an inspection unit that allows each of the tools to perform inspection simultaneously.

Description

소스코드 검사 시스템 및 방법{Source code inspection system and method}Source code inspection system and method}

본 발명은 소스코드 검사 시스템 및 방법에 관한 것으로, 보다 자세하게는 시험도구들을 병렬로 처리하여 소스코드들의 정적검사를 수행하고, 소스코드들을 검사한 결과를 출력하여 모니터링할 수 있도록 한 소스코드 검사 시스템 및 방법에 관한 것이다.The present invention relates to a source code inspection system and method. More specifically, a source code inspection system that processes test tools in parallel to perform static inspection of source codes and outputs and monitors the inspection results of the source codes. and methods.

소프트웨어의 개발 시 구현 할 비즈니스 외에도 보안-시큐어코딩, SQL 정합성 검증, 메모리 규칙 검증 등의 품질을 확보하기 위한 활동은 중요하다. 이러한 소프트웨어의 품질 확보를 위해 각 요소들의 소스코드를 검사하는 것이 중요하며, 소스코드의 검사는 주로 시험도구별로 각 전문업체 또는 전문가에게 의존하여 왔다. 또한, 소프트웨어의 품질 확보를 위해 각 요소들을 검사하기 위한 시험도구들은 개별적 및 순차적으로 수행되어야 하고, 이로 인해 많은 검사 시간이 소요되는 문제가 있다.In addition to the business to be implemented when developing software, activities to ensure quality such as security-secure coding, SQL consistency verification, and memory rule verification are important. To ensure the quality of such software, it is important to inspect the source code of each element, and inspection of the source code has mainly depended on each specialized company or expert for each test tool. In addition, in order to ensure the quality of software, test tools to inspect each element must be performed individually and sequentially, which causes the problem of taking a lot of inspection time.

또한, 시험도구별로 기동을 시키고 시험도구별 메뉴에 따라 소스코드를 시험하여야 하는데, 시험도구별로 사용법이 달라 사용법을 익히기 어려운 문제가 있다.In addition, each test tool must be started and the source code tested according to the menu for each test tool, but the method of use for each test tool is different, making it difficult to learn how to use it.

본 발명은 앞에서 설명한 문제점을 해결하기 위한 것으로, 시험도구들을 병렬로 처리하여 소스코드들의 정적검사를 수행하고, 소스코드들을 검사한 결과를 출력하여 모니터링할 수 있도록 한 소스코드 검사 시스템 및 방법을 제공하는 것을 목적으로 한다.The present invention is intended to solve the problems described above, and provides a source code inspection system and method that processes test tools in parallel to perform static inspection of source codes, and outputs and monitors the inspection results of the source codes. The purpose is to

위에서 언급된 본 발명의 기술적 과제 외에도, 본 발명의 다른 특징 및 이점들이 이하에서 기술되거나, 그러한 기술 및 설명으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.In addition to the technical problems of the present invention mentioned above, other features and advantages of the present invention are described below, or can be clearly understood by those skilled in the art from such description and description.

앞에서 설명한 목적을 달성하기 위한 본 발명의 실시 예에 따른 소스코드 검사 시스템은 HTTP 프로토콜을 이용하여 외부로부터 메시지를 수신하는 메시지 수신부와, 메시지 수신부에서 수신한 메시지의 내용을 기초로 ZIP로 압축된 대상소스를 수신하는 대상소스 수신부와, ZIP로 압축된 대상소스의 압축을 해제하고, 원본 소스를 복사하는 대상소스 복사부와, 소스코드의 검사를 위한 각 도구들의 CLI 명령어를 로드하여 소스코드의 검사를 수행하되, 각 도구들이 동시에 검사를 수행하도록 하는 검사부를 포함할 수 있다.The source code inspection system according to an embodiment of the present invention to achieve the purpose described above includes a message receiver that receives a message from the outside using the HTTP protocol, and an object compressed into ZIP based on the contents of the message received from the message receiver. Inspection of the source code by loading the target source receiving unit that receives the source, the target source copy unit that uncompresses the target source compressed in ZIP and copies the original source, and the CLI commands of each tool for inspecting the source code. , but may include an inspection unit that allows each tool to perform inspection simultaneously.

반면, 앞에서 설명한 목적을 달성하기 위한 본 발명의 실시 예에 따른 소스코드 검사 방법은 HTTP 프로토콜을 이용하여 외부로부터 메시지를 수신하는 단계와, 수신한 메시지의 내용을 기초로 ZIP로 압축된 대상소스를 수신하는 단계와, ZIP로 압축된 대상소스의 압축을 해제하고, 원본 소스를 복사하는 단계와, 소스코드의 검사를 위한 각 도구들의 CLI 명령어를 로드하여 소스코드의 검사를 수행하되, 각 도구들이 동시에 검사를 수행하도록 하는 단계를 포함할 수 있다.On the other hand, the source code inspection method according to an embodiment of the present invention to achieve the purpose described above includes the steps of receiving a message from the outside using the HTTP protocol, and selecting the target source compressed as a ZIP based on the contents of the received message. Receiving steps, decompressing the target source compressed in ZIP, copying the original source, and loading the CLI commands of each tool for inspecting the source code to inspect the source code. Each tool It may include a step of performing tests at the same time.

본 발명의 실시 예에 따른 소스코드 검사 시스템 및 방법은 시험도구들을 병렬로 처리하여 소스코드들의 정적검사를 수행함으로써, 검사 소요시간을 단축시킬 수 있다.The source code inspection system and method according to an embodiment of the present invention can shorten the inspection time by processing test tools in parallel and performing static inspection of source codes.

또한, 소스코드들을 검사한 결과를 출력하여 모니터링할 수 있도록 하여 사용자가 검사 진행 상황을 확인할 수 있도록 할 수 있다. In addition, the results of inspecting the source codes can be output and monitored so that the user can check the inspection progress.

이 밖에도, 본 발명의 실시 예들을 통해 본 발명의 또 다른 특징 및 이점들이 새롭게 파악될 수도 있을 것이다.In addition, other features and advantages of the present invention may be newly understood through embodiments of the present invention.

도 1은 본 발명의 실시 예에 따른 소스코드 검사 시스템의 구성을 나타내는 도면이다.
도 2는 본 발명의 실시 예에 따른 병렬처리된 시험 도구를 나타내는 도면이다.
도 3은 복수의 도구들 중 다른 도구와 동시 진행할 수 없는 도구의 검사를 나타내는 도면이다.
도 4는 복수의 도구들 중 라이선스 제한이 있는 도구의 검사를 나타내는 도면이다.
도 5는 본 발명의 실시 예에 따른 CLI 명령어에 따른 검사를 나타내는 도면이다.
도 6은 본 발명의 실시 예에 따른 표시부에 표시되는 검사 상황 예시도이다.
도 7은 본 발명의 실시 예에 따른 소스코드 검사 방법을 나타내는 도면이다.
Figure 1 is a diagram showing the configuration of a source code inspection system according to an embodiment of the present invention.
Figure 2 is a diagram showing a parallel processing test tool according to an embodiment of the present invention.
Figure 3 is a diagram showing the inspection of a tool that cannot be performed simultaneously with other tools among a plurality of tools.
Figure 4 is a diagram showing inspection of a tool with license restrictions among a plurality of tools.
Figure 5 is a diagram showing inspection according to CLI commands according to an embodiment of the present invention.
Figure 6 is an exemplary diagram of an inspection situation displayed on a display unit according to an embodiment of the present invention.
Figure 7 is a diagram showing a source code inspection method according to an embodiment of the present invention.

본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다.In order to clearly explain the present invention, parts that are not relevant to the description are omitted, and identical or similar components are assigned the same reference numerals throughout the specification.

다르게 정의하지는 않았지만, 여기에 사용되는 기술용어 및 과학용어를 포함하는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 일반적으로 이해하는 의미와 동일한 의미를 가진다. 보통 사용되는 사전에 정의된 용어들은 관련 기술문헌과 현재 개시된 내용에 부합하는 의미를 가지는 것으로 추가 해석되고, 정의되지 않는 한 이상적이거나 매우 공식적인 의미로 해석되지 않는다.Although not defined differently, all terms including technical and scientific terms used herein have the same meaning as those generally understood by those skilled in the art in the technical field to which the present invention pertains. Terms defined in commonly used dictionaries are further interpreted as having meanings consistent with related technical literature and currently disclosed content, and are not interpreted in ideal or very formal meanings unless defined.

이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.Hereinafter, with reference to the attached drawings, embodiments of the present invention will be described in detail so that those skilled in the art can easily implement the present invention. However, the present invention may be implemented in many different forms and is not limited to the embodiments described herein.

도 1은 본 발명의 실시 예에 따른 소스코드 검사 시스템의 구성을 나타내는 도면이다.1 is a diagram showing the configuration of a source code inspection system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시 예에 따른 소스코드 검사 시스템(100)은 메시지 수신부(110), 대상소스 수신부(120), 대상소스 복사부(130), 검사부(140), 데이터베이스(150) 및 표시부(160)를 포함할 수 있다.Referring to Figure 1, the source code inspection system 100 according to an embodiment of the present invention includes a message receiving unit 110, a target source receiving unit 120, a target source copying unit 130, an inspection unit 140, and a database 150. ) and a display unit 160.

본 발명의 실시 예에 따른 소스코드 검사 시스템(100)은 프로세스 및 메모리를 포함하는 컴퓨터일 수 있다.The source code inspection system 100 according to an embodiment of the present invention may be a computer including a process and memory.

메시지 수신부(110)는 HTTP 프로토콜을 이용하여 외부로부터 메시지를 수신할 수 있다. 본 발명에 따르면 외부입력으로의 프로토콜은 HTTP일 수 있고, 메시지 수신부(110)는 하나의 시험에 대한 정보를 JSON(JavaScript Object Notion)으로 정형화한 데이터를 수신받아 처리할 수 있다.The message receiver 110 can receive a message from the outside using the HTTP protocol. According to the present invention, the external input protocol may be HTTP, and the message receiver 110 may receive and process information about one test formatted as JSON (JavaScript Object Notion).

여기서, 메시지 수신부(110)가 수신한 메시지는 시험번호, 차수, 시험도구 코드를 포함할 수 있다. 본 발명에 따르면, 소스코드를 검사하기 위한 복수의 시험을 동시에 진행할 수 있고, 이에 따라 메시지에 포함된 시험번호를 통해 메시지가 어느 시험에서 검사되고 있는지를 확인할 수 있다. 또한, 소스코드에 대해 재차 시험을 수행할 수 있고, 이에 따라 메시지에 포함된 차수를 통해 메시지의 시험 차수를 확인 할 수 있다. 또한, 하나의 시험에는 복수의 도구들로 구성될 수 있고, 이에 따라 메시지에 포함된 시험도구 코드를 통해 메시지가 어느 도구에서 시험되는지 확인할 수 있다.Here, the message received by the message receiver 110 may include a test number, order, and test tool code. According to the present invention, a plurality of tests to check the source code can be performed simultaneously, and thus it is possible to check which test the message is being tested for through the test number included in the message. In addition, the source code can be tested again, and the test order of the message can be confirmed through the order included in the message. Additionally, one test may consist of multiple tools, and accordingly, it is possible to check which tool the message is being tested on through the test tool code included in the message.

여기서, 메시지 수신부(110)가 수신한 메시지는 검사를 하려는 소스코드일 수 있고, 소스코드에 포함된 정보들은 소스코드의 시험을 위한 도구들을 실행하기 위한 CLI 정보의 추출을 위해 필요한 정보들일 수 있다. 여기서, CLI 정보는 데이터베이스(150)에 저장되어 있을 수 있다.Here, the message received by the message receiver 110 may be the source code to be inspected, and the information included in the source code may be information necessary for extracting CLI information for executing tools for testing the source code. . Here, CLI information may be stored in the database 150.

대상소스 수신부(120)는 수신된 메시지의 내용을 기초로 시험을 수행할 대상소스가 저장되어 있는 데이터베이스(150)에 STFP 프로토콜로 접속하여 ZIP로 압축된 대상소스를 수신할 수 있다. 여기서, 상기 CLI 정보가 저장된 데이터베이스 및 대상소스가 저장되어 있는 데이터베이스를 동일한 것으로 기재하였으나, CLI 정보가 저장된 데이터베이스 및 대상소스가 저장되어 있는 데이터베이스는 상이한 구성일 수 있다.The target source receiver 120 can connect to the database 150, where the target source to be tested is stored, based on the contents of the received message, using the STFP protocol and receive the target source compressed in ZIP. Here, although the database in which the CLI information is stored and the database in which the target source is stored are described as the same, the database in which the CLI information is stored and the database in which the target source is stored may have different configurations.

대상소스 수신부(120)는 SFTP 프로토콜로 접속하여 파일(압축된 대상소스)을 전송받음으로써 FTP보다 더 강화된 보안으로 파일을 전송받을 수 있다. 이때 필요한 SFTP 접속 정보는 별도의 프로퍼티파일에 저장되어 있을 수 있다.The target source receiving unit 120 can receive files (compressed target source) by connecting to the SFTP protocol and receiving files with more enhanced security than FTP. At this time, the necessary SFTP connection information may be stored in a separate property file.

대상소스 복사부(130)는 대상소스 수신부(120)에서 수신한 ZIP로 압축된 대상소스의 압축을 해제하고, 원본소스를 복사할 수 있다. 소스코드의 시험을 위한 도구 중에는 대상소스 파일에 lock을 걸어 타 프로세스로부터 파일 점유를 금지시키는 도구들이 존재할 수 있다. 대상소스 복사부(130)는 이런 도구들에 대해서도 시험을 진행할 수 있도록 원본소스에 대한 복사본을 생성할 수 있다. 즉, 대상소스 복사부(130)는 대상소스를 복사하여 원본소스를 각 도구별 워크스페이스에 저장하고, 대상소스를 복사한 복사본에 대해 검사를 수행하도록 하여 대상소스 파일에 lock이 걸린 도구들에 대해서도 시험을 수행할 수 있도록 할 수 있다. The target source copy unit 130 can decompress the target source compressed into a ZIP received from the target source receiver 120 and copy the original source. Among the tools for testing source code, there may be tools that lock the target source file and prevent other processes from occupying the file. The target source copy unit 130 can create a copy of the original source so that tests can be performed on these tools. In other words, the target source copy unit 130 copies the target source, stores the original source in the workspace for each tool, and performs a check on the copied copy of the target source, so that the target source file is locked in the tools. Tests can also be performed.

검사부(140)는 메시지 수신부(110)에서 수신한 메시지 내에 포함된 정보를 이용하여 소스코드의 검사를 위한 각 도구들 각각의 CLI 명령어를 로드할 수 있다. 여기서, 각 도구들의 CLI 명령어는 검사 이전에 미리 분석하여 데이터베이스(150)에 저장되어 있을 수 있다.The inspection unit 140 may load the CLI command of each tool for inspecting source code using information included in the message received from the message receiver 110. Here, the CLI commands of each tool may be analyzed in advance before inspection and stored in the database 150.

소스코드를 검사하기 위한 도구들에 따라 바로 소스코드를 검사하는 도구도 있으나, 소스코드를 검사하기 전에 먼저 CLI 명령어를 실행해야하는 도구들도 존재할 수 있다. 일 예로, 제3도구의 경우 Java로 작성된 소스코드에 대한 검사를 수행하기 위해 [프로젝트 생성-> 프로젝트에 사용자할당-> 검사수행]의 단계를 거치고, C나 C++로 작성된 소스코드에 대한 검사를 수행하기 위해 [프로젝트 생성-> 프로젝트에 사용자할당-> 빌드-> 검사수행]의 단계를 거칠 수 있다. 여기서, 검사부(140)는 각 단계에 대한 CLI를 순차적으로 실행할 수 있다. 또한, 제2도구의 경우 바로 [검사수행]의 단계일 수 있고, 검사부(150)는 검사수행의 단계에 대한 CLI를 실행할 수 있다.Depending on the tools used to inspect the source code, some tools may inspect the source code directly, but there may also be tools that require executing a CLI command first before inspecting the source code. For example, in the case of a third tool, in order to inspect source code written in Java, the steps are [Create project -> Assign user to project -> Perform inspection], and then inspect source code written in C or C++. To perform this, you can go through the following steps: [Create project -> Assign user to project -> Build -> Perform inspection]. Here, the inspection unit 140 can sequentially execute the CLI for each step. Additionally, in the case of the second tool, it may be the [inspection performance] step, and the inspection unit 150 may execute the CLI for the inspection performance step.

즉, 각 도구마다 실행해야하는 CLI의 종류와 개수가 상이할 수 있고, 검사부(150)는 각 도구별 CLI를 순차적으로 실행함으로써, 검사를 수행할 수 있다.That is, the type and number of CLIs to be executed for each tool may be different, and the inspection unit 150 may perform the inspection by sequentially executing the CLI for each tool.

이때, 각 도구마다 실행해야하는 CLI의 종류와 개수는 도구 도입 시 1회에 한하여 데이터베이스(150)에 저장해놓을 수 있고, 이후부터는 데이터베이스(150)에 저장된 정보를 통해 도구를 통한 검사를 수행할 수 있다. 이에 따라, 사용자는 저장되어 있는 CLI를 이용하여 검사를 수행하므로, 일일이 복잡한 CLI를 실행시켜야하는 번거로움을 극복할 수 있다.At this time, the type and number of CLIs to be executed for each tool can be stored in the database 150 only once when the tool is introduced, and from then on, inspection through the tool can be performed through the information stored in the database 150. . Accordingly, the user can perform the inspection using the stored CLI, thereby overcoming the inconvenience of having to execute complex CLI one by one.

여기서, 소스코드의 검사를 위한 도구들은 병렬적으로 실행될 수 있다. 즉, 각 도구들은 동시에 소스코드의 검사를 진행할 수 있다. 이로 인해, 소스코드의 검사에 소요되는 총 소요시간이 감소될 수 있다.Here, tools for inspecting source code can be executed in parallel. In other words, each tool can inspect the source code at the same time. Because of this, the total time required to inspect source code can be reduced.

또한, 각 도구에 대한 예로서, 제1도구는 코드복잡도를 측정할 수 있고, 제2도구는 C/C++ 코딩 규칙을 검증할 수 있다. 또한, 제3도구는 Java/C/C++/Javascript 시큐어 코딩 및 메모리 규칙을 검증할 수 있고, 제4도구는 C/C++ 메모리규칙을 검증할 수 있고, 제5도구는 코드중복도를 측정하고, 제6도구는 c#코딩규칙을 검증할 수 있다. 또한, 제7도구는 SQR정합성을 검증하고, 제8도구는 산출물을 검증하고, 제9도구는 오픈소스인용을 검증할 수 있다.Additionally, as an example for each tool, the first tool can measure code complexity, and the second tool can verify C/C++ coding rules. In addition, the third tool can verify Java/C/C++/Javascript secure coding and memory rules, the fourth tool can verify C/C++ memory rules, and the fifth tool measures code redundancy. The sixth tool can verify C# coding rules. In addition, the 7th tool verifies SQR consistency, the 8th tool verifies the output, and the 9th tool verifies open source citations.

코드검사를 지원하는 프로그램 언어는 C, C++, Java, Javascript일 수 있다. 여기서, 추후 도구가 추가되는 경우, 추가되는 도구에 대한 스펙분석 후 커스터마이징을 거쳐 적용이 가능할 수 있다.Program languages that support code inspection may be C, C++, Java, or Javascript. Here, if a tool is added in the future, it may be possible to apply it through customization after analyzing the specifications of the added tool.

기존에는 각 도구에 대해 개별적으로 검사를 수행하게 되며, 그 과정에서 각 도구를 수행하기 위한 입력값들을 매번 핸들링하게 되므로 많은 번거로움이 발생하였다. 그러나, 본 발명의 실시 예에 따르면 한번의 입력값으로 모든 도구를 동시 수행할 수 있어 편리하고, 이로 인해 소스코드의 검사를 수행함에 있어 부담이 줄어들 수 있다. 또한, 기존의 검사 사이클보다 더 잦은 사이클로 소스코드에 대한 검사를 수행할 수 있기 때문에 소스코드에 대한 안정성을 확보할 수 있다.Previously, tests were performed individually for each tool, and in the process, input values for performing each tool had to be handled each time, causing a lot of inconvenience. However, according to an embodiment of the present invention, it is convenient because all tools can be performed simultaneously with a single input value, and this can reduce the burden of performing source code inspection. In addition, since the source code can be inspected with more frequent inspection cycles than the existing inspection cycle, the stability of the source code can be secured.

표시부(160)는 검사 결과를 표시할 수 있다. 소스코드를 검사하는데 있어서 소요되는 시간은 길게는 수십시간까지 소요될 수 있으므로, 표시부(160)는 소스코드의 검사가 진행되는 과정 및 상황에 대한 정보를 표시할 수 있다. 표시부(160)는 검사의 진행상태, 진행율, 상세로그 등을 표시할 수 있고, 사용자는 표시부(160)에 표시되는 정보를 통해 검사 현황을 파악할 수 있다.The display unit 160 can display test results. Since the time required to inspect the source code can take up to tens of hours, the display unit 160 can display information about the process and status of the source code inspection. The display unit 160 can display the inspection progress status, progress rate, detailed log, etc., and the user can check the inspection status through the information displayed on the display unit 160.

도 2는 본 발명의 실시 예에 따른 병렬처리된 시험 도구를 나타내는 도면이다.Figure 2 is a diagram showing a parallel processing test tool according to an embodiment of the present invention.

도 2를 참조하면, 검사부(140)는 하나의 시험(10, 20)에 포함되는 복수개의 도구들(1, 2, 3, 4. 5, 6, 7, 8)을 병렬로 처리할 수 있다. 즉, 복수개의 도구들(1, 2, 3, 4. 5, 6, 7, 8)은 동시에 검사를 수행할 수 있다. 여기서, 각 도구들(1, 2, 3, 4. 5, 6, 7, 8)이 검사를 수행하는데 소요되는 시간은 각각 상이할 수 있고, 가장 오랜 시간이 소요되는 도구가 종료되는 시점이 최종 검사 종료 시점일 수 있다.Referring to FIG. 2, the inspection unit 140 can process a plurality of tools (1, 2, 3, 4, 5, 6, 7, and 8) included in one test (10, 20) in parallel. . That is, a plurality of tools (1, 2, 3, 4, 5, 6, 7, 8) can perform inspection simultaneously. Here, the time it takes for each tool (1, 2, 3, 4. 5, 6, 7, and 8) to perform the test may be different, and the final time is when the tool that takes the longest time is finished. It may be the end of the inspection.

일 예로, 제1도구(1)는 검사를 수행하는데 2분이 소요될 수 있고, 제2도구(2)는 검사를 수행하는데 20분이 소요될 수 있고, 제3도구(3)는 검사를 수행하는데 60분이 소요될 수 있다. 또한, 제4도구(4)는 검사를 수행하는데 30분이 소요될 수 있고, 제5도구(5)는 검사를 수행하는데 2분이 소요될 수 있고, 제6도구(6)는 검사를 수행하는데 30분이 소요될 수 있고, 즉, 제7도구(7)는 검사를 수행하는데 30분이 소요될 수 있고, 제8도구(8)는 검사를 수행하는데 3분이 소요될 수 있다.For example, the first tool (1) may take 2 minutes to perform the test, the second tool (2) may take 20 minutes to perform the test, and the third tool (3) may take 60 minutes to perform the test. It may take some time. Additionally, the fourth tool 4 may take 30 minutes to perform the test, the fifth tool 5 may take 2 minutes to perform the test, and the sixth tool 6 may take 30 minutes to perform the test. That is, the seventh tool 7 may take 30 minutes to perform the inspection, and the eighth tool 8 may take 3 minutes to perform the inspection.

여기서, 검사를 수행하는데 가장 오랜 시간이 소요되는 도구는 제3도구(3)일 수 있고, 제3도구(3)의 검사 수행이 모두 종료되면 전체 검사가 종료될 수 있다. 즉, 제3도구(3)의 검사가 종료될 시점에는 제3도구(3)를 제외한 다른 도구들(1, 2, 4, 5, 6, 7, 8)의 검사는 모두 종료되어 있을 수 있다.Here, the tool that takes the longest time to perform the inspection may be the third tool 3, and the entire inspection may be completed when all inspections of the third tool 3 are completed. In other words, when the inspection of the third tool (3) is completed, the inspection of all other tools (1, 2, 4, 5, 6, 7, and 8) except the third tool (3) may have been completed. .

또한, 복수개의 시험(10, 20)에 대해서, 각 시험에 포함된 도구들은 모두 병렬처리될 수 있다. 즉, 제1시험(10)에 있어서, 제1시험(10)에 포함된 복수의 도구들은 동시에 검사를 수행할 수 있고, 제2시험(20)에 있어서, 제2시험(20)에 포함된 복수의 도구들은 동시에 검사를 수행할 수 있다. 여기서, 제1시험(10)에 포함된 도구 및 제2시험(20)에 포함된 도구도 병렬 처리되어 동시에 검사를 수행할 수 있다.Additionally, for a plurality of tests (10, 20), all tools included in each test can be processed in parallel. That is, in the first test (10), a plurality of tools included in the first test (10) can perform inspection simultaneously, and in the second test (20), the tools included in the second test (20) can be inspected simultaneously. Multiple tools can perform inspections simultaneously. Here, the tools included in the first test 10 and the tools included in the second test 20 are also processed in parallel so that inspection can be performed simultaneously.

도 3은 복수의 도구들 중 다른 도구와 동시 진행할 수 없는 도구의 검사를 나타내는 도면이다.Figure 3 is a diagram showing the inspection of a tool that cannot be performed simultaneously with other tools among a plurality of tools.

도 3을 참조하면, 복수의 도구들(1, 2, 3, 4, 5, 6, 7, 8) 중 일부 도구들은 워크스페이스 공유 문제 등으로 인해 동시에 여러 도구들을 이용할 수 없을 수 있다. 검사부(140)는 이러한 도구들은 별도로 순차처리될 수 있도록 할 수 있다.Referring to FIG. 3, some of the plurality of tools (1, 2, 3, 4, 5, 6, 7, and 8) may not be available at the same time due to workspace sharing issues. The inspection unit 140 may allow these tools to be sequentially processed separately.

일 예로, 제2도구(2)의 경우 동시에 2개 이상의 도구가 실행되지 못하도록 설정되어 있을 수 있다. 이런 경우, 검사부(140)는 제2도구(2)를 별도로 순차처리되도록 할 수 있다. 즉, 제1도구(1), 제3도구(3), 제4도구(4), ... ,제8도구(8)는 병렬처리되어 동시에 시험이 진행될 수 있다. 반면, 제2도구(2)는 별도로 순차처리될 수 있다. 여기서, 하나의 시험으로 보았을 때, 제2도구(2)도 병렬처리되는 것처럼 보일 수 있으나, 복수의 시험으로 가정하였을 때, 각 시험에 대한 제2도구들(2)은 순차처리될 수 있다.For example, in the case of the second tool 2, it may be set to prevent two or more tools from being executed at the same time. In this case, the inspection unit 140 may sequentially process the second tool 2 separately. That is, the first tool (1), the third tool (3), the fourth tool (4), ..., the eighth tool (8) can be processed in parallel and tested simultaneously. On the other hand, the second tool 2 can be sequentially processed separately. Here, when viewed as one test, the second tools 2 may also appear to be processed in parallel, but when assumed to be multiple tests, the second tools 2 for each test may be processed sequentially.

즉, 제2시험(20)의 제1도구(1), 제3도구(3), 제4도구(4), ... , 제8도구(8)는 병렬처리될 수 있고, 제2시험(20)의 제2도구(2)는 제1시험(10)의 제2도구(20)의 검사가 끝이 난 후, 검사를 시작할 수 있다. 더 나아가 더 많은 시험을 동시에 수행하는 경우 제2시험(20)의 제2도구(2)의 검사가 끝이 난 후, 순차적으로 제3시험의 제2도구(2), 제4시험의 제2도구(2), ... ,제n시험의 제2도구(2)가 검사를 시작할 수 있다.That is, the first tool (1), third tool (3), fourth tool (4), ..., eighth tool (8) of the second test (20) can be processed in parallel, and the second test (20) can be processed in parallel. The second tool (2) in (20) can start testing after the inspection of the second tool (20) in the first test (10) is completed. Furthermore, if more tests are performed simultaneously, after the inspection of the second tool (2) of the second test (20) is completed, the second tool (2) of the third test and the second tool (2) of the fourth test are sequentially performed. Tool (2), ... ,The second tool (2) of the nth test can start the test.

여기서, 다른 도구와 동시에 진행되지 못하도록 설정된 도구의 검사 시간이 다른 도구의 검사 시간들보다 긴 경우 다른 도구와 동시에 진행되지 못하도록 설정된 도구의 검사 종료에 따라 전체 검사가 종료될 수 있다.Here, if the test time of the tool that is set to not proceed simultaneously with other tools is longer than the test times of other tools, the entire test may be terminated upon completion of the test of the tool that is set to not proceed simultaneously with the other tools.

반면, 다른 도구와 동시에 진행되지 못하도록 설정된 도구의 검사 시간이 다른 도구의 검사 시간보다 짧은 경우 상기 도구의 검사 종료 전에 다른 도구와 동시에 진행되지 못하도록 설정된 도구의 검사는 종료될 수 있다.On the other hand, if the inspection time of a tool that is set to not proceed simultaneously with other tools is shorter than the inspection time of another tool, the inspection of the tool that is set to not proceed simultaneously with other tools may be terminated before the inspection of the tool is completed.

또한, 동시에 2개 이상의 도구가 실행되지 못하도록 설정되어 있는 도구가 여러 개인 경우, 도구들은 각각 별도로 순차처리될 수 있다. 일 예로, 제2도구(2) 및 제4도구(4)의 경우 동시에 2개 이상의 도구가 실행되지 못하도록 설정되어 있는 경우 검사부(140)는 복수의 시험에 포함되어 있는 제2도구들(2)을 이용하여 순차적으로 검사를 수행할 수 있다. 또한, 검사부(140)는 복수의 시험에 포함되어 있는 제4도구들(4)을 이용하여 순차적으로 검사를 수행할 수 있다. 여기서, 제2도구(2) 및 제4도구(4)를 제외한 다른 도구들은 동시에 검사를 수행할 수 있다.Additionally, if there are multiple tools that are set to prevent two or more tools from being executed at the same time, the tools may be sequentially processed separately. For example, in the case of the second tool (2) and the fourth tool (4), if two or more tools are set to not be executed at the same time, the inspection unit 140 checks the second tools (2) included in the plurality of tests. You can perform tests sequentially using . Additionally, the inspection unit 140 may sequentially perform inspection using the fourth tools 4 included in the plurality of tests. Here, tools other than the second tool 2 and the fourth tool 4 can perform inspection simultaneously.

도 4는 복수의 도구들 중 라이선스 제한이 있는 도구의 검사를 나타내는 도면이다.Figure 4 is a diagram showing inspection of a tool with license restrictions among a plurality of tools.

도 4를 참조하면, 소스코드를 검사하기 위한 도구들 중 라이선스 정책에 따라 라이선스제한이 걸리는 도구들이 있을 수 있다. 이러한 도구들의 경우 라이선스 개수만큼만 동시에 검사를 수행할 수 있다. 즉, 복수개의 시험에 포함되어 있는 도구의 개수가 라이선스의 개수보다 많은 경우, 라이선스의 개수만큼만 동시에 검사를 수행할 수 있다.Referring to FIG. 4, among tools for inspecting source code, there may be tools that have license restrictions depending on the license policy. For these tools, only as many tests as the number of licenses can be performed simultaneously. In other words, if the number of tools included in a plurality of tests is greater than the number of licenses, tests can be performed simultaneously only for the number of licenses.

일 예로, 제3도구(3)의 경우 라이선스가 3개로 정해져있을 수 있다. 이때, 시험의 개수가 5개인 경우, 제3도구(3)는 각 시험에 하나씩 포함되어 총 5개일 수 있다. 이때, 제3도구의 라이선스가 3개이므로, 3개의 제3도구(3)에서만 검사를 수행할 수 있다.For example, in the case of a third tool (3), the number of licenses may be limited to three. At this time, if the number of tests is 5, the third tool 3 may be included one in each test, for a total of 5. At this time, since there are three third-party licenses, the inspection can only be performed with three third-party tools (3).

이후, 남은 2개의 제3도구(3)는 검사를 수행하는 제3도구(3)들의 시험이 모두 종료되면 새롭게 라이선스가 할당되어 동시에 검사를 수행할 수 있다.Afterwards, when the tests of the remaining two third tools 3 that perform the inspection are all completed, new licenses are assigned and the remaining two third tools 3 can perform inspection simultaneously.

도 5는 본 발명의 실시 예에 따른 CLI 명령어에 따른 검사를 나타내는 도면이다.Figure 5 is a diagram showing inspection according to CLI commands according to an embodiment of the present invention.

도 5를 참조하면, 소스코드 검사를 위한 도구별로 검사를 완료하기까지 필요한 CLI 명령어는 상이할 수 있다. 즉, 하나의 CLI로 구성된 도구도 있고 몇 단계의 CLI를 수행하여 검사가 수행되는 도구들이 있을 수 있다. 일 예로, 제1도구(1)의 경우 검사실행 CLI만으로 구성되어 바로 검사를 수행할 수 있는 반면, 제3도구(3)의 경우 프로젝트 생성, 사용자 할당, 빌드 및 검사실행의 CLI를 순차적으로 실행하여 검사를 완료할 수 있다. Referring to FIG. 5, the CLI commands required to complete the inspection may be different for each tool for inspecting source code. In other words, there may be tools that consist of a single CLI, and there may be tools that perform inspection by performing several steps of CLI. For example, in the case of the first tool (1), it consists of only the inspection execution CLI and can immediately perform the inspection, while in the case of the third tool (3), the CLI for project creation, user assignment, build, and inspection execution is sequentially executed. You can complete the inspection.

여기서, 검사부(140)는 복수개의 도구들 각각에 해당하는 CLI를 실행할 수 있다. 이때, 각 도구들의 라이선스에 따라 라이선스에 할당된 도구들은 각각 CLI를 실행할 수 있다.Here, the inspection unit 140 may execute the CLI corresponding to each of the plurality of tools. At this time, depending on the license of each tool, each tool assigned to the license can run CLI.

도 6은 본 발명의 실시 예에 따른 표시부에 표시되는 검사 상황 예시도이다.Figure 6 is an exemplary diagram of an inspection situation displayed on a display unit according to an embodiment of the present invention.

도 6을 참조하면, 표시부(160)는 시험도구, 발생일시, 번호, 평가모델 및 진행상황 등을 표시할 수 있다. 여기서, 번호는 검사가 진행되는 과정을 나타내는 것으로, '1'은 도구 시작을 나타내고, '2'는 도구 종료[성공]을 나타내고, '3'은 도구로부터 생성된 결과파일을 파싱하여 임시테이블에 저장작업 시작을 나타낼 수 있다. 또한, '4'는 도구로부터 생성된 결과파일을 파싱하여 임시테이블에 저장작업 종료[성공]을 나타내고, '5'는 결과점수 처리 시작을 나타내고, '6'은 결과점수 처리 종료[성공]를 나타낼 수 있다.Referring to FIG. 6, the display unit 160 can display the test tool, date and time of occurrence, number, evaluation model, and progress status. Here, the number indicates the process of the test, where '1' indicates tool start, '2' indicates tool termination [success], and '3' indicates the result file generated from the tool is parsed and stored in a temporary table. It can indicate the start of a save operation. In addition, '4' indicates the end of parsing the result file generated by the tool and saving it to a temporary table [success], '5' indicates the start of result score processing, and '6' indicates the end of result score processing [success]. It can be expressed.

또한, 도구 자체적으로 발생시키는 로그들은 본 시험을 가동시킨 사용자 클라이언트(브라우저)로 로그내용이 전달되어 상세 정황을 사용자가 확인할 수 있도록 할 수 있다. 이때, 도구 자체적으로 발생된 로그들은 실시간으로 사용자 클라이언트에 전송될 수 있다.In addition, the logs generated by the tool itself can be delivered to the user client (browser) that ran this test, allowing the user to check detailed information. At this time, logs generated by the tool itself can be transmitted to the user client in real time.

또한, 검사 수행 중 오류가 발생한 경우 오류에 대한 원인을 표기해주어 상세내역을 직관적으로 파악할 수 있도록 할 수 있고, 이에 따라 해당 시험에 대한 오류상황 대처가 용이하도록 할 수 있다.In addition, if an error occurs during test performance, the cause of the error can be indicated so that the details can be intuitively understood, thereby making it easier to deal with the error situation for the test.

도 7은 본 발명의 실시 예에 따른 소스코드 검사 방법을 나타내는 도면이다.Figure 7 is a diagram showing a source code inspection method according to an embodiment of the present invention.

도 7을 참조하면, 메시지 수신부(110)는 HTTP 프로토콜을 이용하여 외부로부터 메시지를 수신할 수 있다(S100). 여기서, 메시지 수신부(110)가 수신한 메시지는 시험번호, 차수, 시험도구 코드를 포함할 수 있다.Referring to FIG. 7, the message receiver 110 can receive a message from the outside using the HTTP protocol (S100). Here, the message received by the message receiver 110 may include a test number, order, and test tool code.

대상소스 수신부(120)는 ZIP로 압축된 대상소스를 수신할 수 있다(S200). 대상소스 수신부(120)는 수신된 메시지의 내용을 기초로 시험을 수행할 대상소스가 저장되어 있는 데이터베이스(150)에 STFP 프로토콜로 접속하여 ZIP로 압축된 대상소스를 수신할 수 있다.The target source receiving unit 120 can receive the target source compressed as ZIP (S200). The target source receiver 120 can connect to the database 150, where the target source to be tested is stored, based on the contents of the received message, using the STFP protocol and receive the target source compressed in ZIP.

대상소스 복사부(130)는 대상소스 수신부(120)에서 수신한 ZIP로 압축된 대상소스의 압축을 해제하고, 원본소스를 복사할 수 있다(S300). 대상소스 복사부(130)는 대상소스를 복사하여 원본소스를 각 도구별 워크스페이스에 저장하고, 대상소스를 복사한 복사본에 대해 검사를 수행하도록 할 수 있다.The target source copy unit 130 can decompress the target source compressed into a ZIP received from the target source receiver 120 and copy the original source (S300). The target source copy unit 130 can copy the target source, store the original source in a workspace for each tool, and perform an inspection on the copied copy of the target source.

검사부(140)는 메시지 수신부(110)에서 수신한 메시지 내에 포함된 정보를 이용하여 소스코드의 검사를 위한 각 도구들 각각의 CLI 명령어를 로드할 수 있다(S400). 여기서, 각 도구들의 CLI 명령어는 검사 이전에 미리 분석하여 데이터베이스(150)에 저장되어 있을 수 있다. 각 도구마다 실행해야하는 CLI의 종류와 개수가 상이할 수 있고, 검사부(150)는 각 도구별 CLI를 순차적으로 실행함으로써, 검사를 수행할 수 있다.The inspection unit 140 may load the CLI command of each tool for inspecting the source code using the information included in the message received from the message receiver 110 (S400). Here, the CLI commands of each tool may be analyzed in advance before inspection and stored in the database 150. The type and number of CLIs to be executed for each tool may be different, and the inspection unit 150 may perform the inspection by sequentially executing the CLI for each tool.

여기서, 소스코드의 검사를 위한 도구들은 병렬적으로 실행될 수 있다. 즉, 각 도구들은 동시에 소스코드의 검사를 진행할 수 있다. 이로 인해, 소스코드의 검사에 소요되는 총 소요시간이 감소될 수 있다.Here, tools for inspecting source code can be executed in parallel. In other words, each tool can inspect the source code at the same time. Because of this, the total time required to inspect source code can be reduced.

표시부(160)는 검사 결과를 표시할 수 있다(S500). 소스코드를 검사하는데 있어서 소요되는 시간은 길게는 수십시간까지 소요될 수 있으므로, 표시부(160)는 소스코드의 검사가 진행되는 과정 및 상황에 대한 정보를 표시할 수 있다. 표시부(160)는 검사의 진행상태, 진행율, 상세로그 등을 표시할 수 있고, 사용자는 표시부(160)에 표시되는 정보를 통해 검사 현황을 파악할 수 있다.The display unit 160 can display the test results (S500). Since the time required to inspect the source code can take up to tens of hours, the display unit 160 can display information about the process and status of the source code inspection. The display unit 160 can display the inspection progress status, progress rate, detailed log, etc., and the user can check the inspection status through the information displayed on the display unit 160.

전술한 바와 같이 본 발명에 따르면, 시험도구들을 병렬로 처리하여 소스코드들의 정적검사를 수행하고, 소스코드들을 검사한 결과를 출력하여 모니터링할 수 있도록 한 소스코드 검사 시스템 및 방법을 실현할 수 있다.As described above, according to the present invention, it is possible to implement a source code inspection system and method that processes test tools in parallel to perform static inspection of source codes, and outputs and monitors the inspection results of the source codes.

본 발명이 속하는 기술 분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those skilled in the art to which the present invention pertains should understand that the present invention can be implemented in other specific forms without changing its technical idea or essential features, and that the embodiments described above are illustrative in all respects and not restrictive. Just do it. The scope of the present invention is indicated by the claims described later rather than the detailed description, and all changes or modified forms derived from the meaning and scope of the claims and their equivalent concepts should be construed as being included in the scope of the present invention. .

110: 메시지 수신부
120: 대상소스 수신부
130: 대상소스 복사부
140: 검사부
150: 데이터베이스
160: 표시부
110: Message receiver
120: Target source receiver
130: Target source copy unit
140: Inspection department
150: database
160: display unit

Claims (16)

HTTP 프로토콜을 이용하여 외부로부터 메시지를 수신하는 메시지 수신부;
상기 메시지 수신부에서 수신한 메시지의 내용을 기초로 ZIP로 압축된 대상소스를 수신하는 대상소스 수신부;
상기 ZIP로 압축된 대상소스의 압축을 해제하고, 원본 소스를 복사하는 대상소스 복사부; 및
소스코드의 검사를 위한 각 도구들의 CLI 명령어를 로드하여 상기 소스코드의 검사를 수행하되, 상기 각 도구들이 동시에 검사를 수행하도록 하는 검사부;를 포함하되,
상기 메시지 수신부가 수신한 메시지는 시험번호, 차수, 시험도구코드를 포함하는 소스코드 검사 시스템.
A message receiving unit that receives a message from the outside using the HTTP protocol;
a target source receiving unit that receives the target source compressed into ZIP based on the contents of the message received by the message receiving unit;
a target source copy unit that decompresses the target source compressed with the ZIP and copies the original source; and
Includes an inspection unit that loads the CLI command of each tool for inspecting the source code and performs the inspection of the source code, and allows each of the tools to perform the inspection simultaneously,
The message received by the message receiver is a source code inspection system that includes a test number, order, and test tool code.
제1항에 있어서,
상기 메시지 수신부는 하나의 시험에 대한 정보를 JSON(JavaScript Object Notion)으로 정형화한 데이터를 수신받아 처리하는 소스코드 검사 시스템.
According to paragraph 1,
The message receiver is a source code inspection system that receives and processes information about one test formatted into JSON (JavaScript Object Notion).
삭제delete 제1항에 있어서,
상기 각 도구들의 CLI 명령어의 종류 및 개수를 미리 저장하고 있는 데이터베이스를 더 포함하는 소스코드 검사 시스템.
According to paragraph 1,
A source code inspection system further comprising a database that stores in advance the type and number of CLI commands for each of the above tools.
제1항에 있어서,
상기 소스코드를 검사하기 위한 하나의 시험에는 복수의 도구들이 포함되고,
상기 복수의 도구들이 포함되는 시험은 복수개인 소스코드 검사 시스템.
According to paragraph 1,
One test for examining the source code includes multiple tools,
A test that includes the plurality of tools is a multiple source code inspection system.
제5항에 있어서,
상기 검사부는 상기 복수의 도구들 중 다른 도구와 동시 진행할 수 없는 도구의 경우 상기 복수의 시험에서의 해당도구들만 순차적으로 검사를 수행하도록 하는 소스코드 검사 시스템.
According to clause 5,
A source code inspection system in which the inspection unit sequentially performs inspection of only the corresponding tools in the plurality of tests in the case of a tool that cannot be performed simultaneously with other tools among the plurality of tools.
제5항에 있어서,
상기 검사부는 상기 복수의 도구들 중 라이선스 제한이 있는 도구의 경우 상기 라이선스의 개수만큼의 도구들이 검사를 수행하도록 하는 소스코드 검사 시스템.
According to clause 5,
The inspection unit is a source code inspection system in which, in the case of a tool with a license restriction among the plurality of tools, the inspection is performed by as many tools as the number of licenses.
제1항에 있어서,
상기 검사부의 검사결과를 표시하는 표시부를 더 포함하고,
상기 표시부는 소스코드 검사의 진행상태, 진행율, 상세로그를 표시하는 소스코드 검사 시스템.
According to paragraph 1,
It further includes a display unit that displays the inspection results of the inspection unit,
The display unit is a source code inspection system that displays the progress status, progress rate, and detailed log of the source code inspection.
HTTP 프로토콜을 이용하여 외부로부터 메시지를 수신하는 단계;
상기 수신한 메시지의 내용을 기초로 ZIP로 압축된 대상소스를 수신하는 단계;
상기 ZIP로 압축된 대상소스의 압축을 해제하고, 원본 소스를 복사하는 단계; 및
소스코드의 검사를 위한 각 도구들의 CLI 명령어를 로드하여 상기 소스코드의 검사를 수행하되, 상기 각 도구들이 동시에 검사를 수행하도록 하는 단계;를 포함하되
상기 수신한 메시지는 시험번호, 차수, 시험도구코드를 포함하는 소스코드 검사 방법.
Receiving a message from outside using the HTTP protocol;
Receiving a target source compressed into ZIP based on the content of the received message;
Decompressing the target source compressed with the ZIP and copying the original source; and
Loading the CLI command of each tool for inspecting the source code to inspect the source code, and allowing each of the tools to perform the inspection simultaneously;
The received message is a source code inspection method including a test number, order, and test tool code.
제9항에 있어서, 상기 메시지를 수신하는 단계에 있어서,
하나의 시험에 대한 정보를 JSON(JavaScript Object Notion)으로 정형화한 데이터를 수신받아 처리하는 소스코드 검사 방법.
The method of claim 9, wherein in receiving the message,
A source code inspection method that receives and processes information about a single test formatted as JSON (JavaScript Object Notion).
삭제delete 제9항에 있어서,
상기 각 도구들의 CLI 명령어의 종류 및 개수를 미리 저장하는 단계를 더 포함하는 소스코드 검사 방법.
According to clause 9,
A source code inspection method further comprising the step of pre-storing the type and number of CLI commands for each of the tools.
제9항에 있어서,
상기 소스코드를 검사하기 위한 하나의 시험에는 복수의 도구들이 포함되고,
상기 복수의 도구들이 포함되는 시험은 복수개인 소스코드 검사 방법.
According to clause 9,
One test for examining the source code includes multiple tools,
A test that includes the plurality of tools is a method of inspecting multiple individual source codes.
제13항에 있어서, 상기 각 도구들이 동시에 검사를 수행하도록 하는 단계에 있어서,
상기 복수의 도구들 중 다른 도구와 동시 진행할 수 없는 도구의 경우 상기 복수의 시험에서의 해당도구들만 순차적으로 검사를 수행하도록 하는 소스코드 검사 방법.
The method of claim 13, wherein in the step of allowing each of the tools to perform inspection simultaneously,
A source code inspection method that sequentially performs inspection of only the corresponding tools in the plurality of tests in the case of a tool that cannot be performed simultaneously with other tools among the plurality of tools.
제13항에 있어서, 상기 각 도구들이 동시에 검사를 수행하도록 하는 단계에 있어서,
상기 복수의 도구들 중 라이선스 제한이 있는 도구의 경우 상기 라이선스의 개수만큼의 도구들이 검사를 수행하도록 하는 소스코드 검사 방법.
The method of claim 13, wherein in the step of allowing each of the tools to perform inspection simultaneously,
A source code inspection method in which, in the case of a tool with license restrictions among the plurality of tools, inspection is performed by as many tools as the number of licenses.
제9항에 있어서,
상기 소스코드의 검사를 수행한 검사결과를 표시하는 단계를 더 포함하고,
상기 검사결과는 소스코드 검사의 진행상태, 진행율, 상세로그를 포함하는 소스코드 검사 방법.

According to clause 9,
It further includes the step of displaying a test result of performing a test of the source code,
The inspection result is a source code inspection method including the progress status, progress rate, and detailed log of the source code inspection.

KR1020190033022A 2019-03-22 2019-03-22 Source code inspection system and method KR102639211B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190033022A KR102639211B1 (en) 2019-03-22 2019-03-22 Source code inspection system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190033022A KR102639211B1 (en) 2019-03-22 2019-03-22 Source code inspection system and method

Publications (2)

Publication Number Publication Date
KR20200112477A KR20200112477A (en) 2020-10-05
KR102639211B1 true KR102639211B1 (en) 2024-02-22

Family

ID=72809450

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190033022A KR102639211B1 (en) 2019-03-22 2019-03-22 Source code inspection system and method

Country Status (1)

Country Link
KR (1) KR102639211B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113609004B (en) * 2021-07-17 2023-11-03 深圳开源互联网安全技术有限公司 Static code detection method and system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008071110A (en) * 2006-09-14 2008-03-27 Xanavi Informatics Corp Source record review supporting device
JP2016134021A (en) * 2015-01-20 2016-07-25 株式会社日立製作所 Source management system
US20160314543A1 (en) * 2011-06-14 2016-10-27 Jpmorgan Chase Bank, N.A. System and method for improved inspection techniques
KR101824699B1 (en) * 2016-02-29 2018-02-02 충남대학교산학협력단 Apparatus and method for analyzing android application, and computer-readable medium storing program for method thereof

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101989802B1 (en) * 2017-02-28 2019-06-18 주식회사 스패로우 Method for performing test using test case and apparatus for the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008071110A (en) * 2006-09-14 2008-03-27 Xanavi Informatics Corp Source record review supporting device
US20160314543A1 (en) * 2011-06-14 2016-10-27 Jpmorgan Chase Bank, N.A. System and method for improved inspection techniques
JP2016134021A (en) * 2015-01-20 2016-07-25 株式会社日立製作所 Source management system
KR101824699B1 (en) * 2016-02-29 2018-02-02 충남대학교산학협력단 Apparatus and method for analyzing android application, and computer-readable medium storing program for method thereof

Also Published As

Publication number Publication date
KR20200112477A (en) 2020-10-05

Similar Documents

Publication Publication Date Title
US9934385B2 (en) System and method for implementing application policies among development environments
US8966449B2 (en) Test case pattern matching
US8015239B2 (en) Method and system to reduce false positives within an automated software-testing environment
US10127141B2 (en) Electronic technology resource evaluation system
US10445225B2 (en) Command coverage analyzer
US9471453B2 (en) Management of test artifacts using cascading snapshot mechanism
US20170262358A1 (en) Determining test case efficiency
CN106502898A (en) Method of testing and test driver and test platform
JP5684878B2 (en) Systems and methods for providing compliance inspection and detailed analysis of software applications
CN111897727A (en) Software testing method and device, computer equipment and storage medium
KR102639211B1 (en) Source code inspection system and method
JP5294675B2 (en) Software migration system and method
KR102024275B1 (en) Test program development system and its method using script
US8473943B2 (en) Using ecoprint for cloning of applications
CN111679983B (en) JAVA interface static test method and device
CN115657981A (en) Method for setting print level of print information in authentication environment and authentication method
CN115599683A (en) Automatic testing method, device, equipment and storage medium
US20080195906A1 (en) Test pattern generation apparatus and test pattern generation method
CN114968817A (en) Method, device, equipment and storage medium for evaluating code change influence range
Cruz et al. Snapshot testing in practice: Benefits and drawbacks
CN111124915A (en) Coverage rate detection method, coverage rate detection device, and storage medium
Baumgartner et al. Large Experiment and Evaluation Tool for WEKA Classifiers.
WO2020214343A1 (en) Automatic repetition of context-specific code edits
WO2019142266A1 (en) Test case generation device, test case generation method, and test case generation program
CN115543227B (en) Cross-system data migration method, system, electronic device and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right