KR20200112477A - Source code inspection system and method - Google Patents

Source code inspection system and method Download PDF

Info

Publication number
KR20200112477A
KR20200112477A KR1020190033022A KR20190033022A KR20200112477A KR 20200112477 A KR20200112477 A KR 20200112477A KR 1020190033022 A KR1020190033022 A KR 1020190033022A KR 20190033022 A KR20190033022 A KR 20190033022A KR 20200112477 A KR20200112477 A KR 20200112477A
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
KR102639211B1 (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

Images

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

Landscapes

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

Abstract

The present invention relates to a source code inspection system in which test tools are processed in parallel to perform static inspection of source codes, and a result of inspecting the source codes is output to be monitored, and to a method thereof. According to an embodiment of the present invention, the source code inspection system comprises: a message reception unit which receives a message from the outside using an HTTP protocol; a target source reception unit which receives a target source compressed in the ZIP based on contents of the message received by the message reception unit; a target source copy unit which decompresses the target source compressed in the ZIP and copies the original source; and an inspection unit which performs the inspection of the source code by loading a CLI command of each of the tools for inspecting the source code, wherein the tools perform the inspection at the same time.

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, and in more detail, a source code inspection system capable of performing static inspection of source codes by processing test tools in parallel, and outputting and monitoring the source codes inspection results And a method.

소프트웨어의 개발 시 구현 할 비즈니스 외에도 보안-시큐어코딩, 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. In order 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, test tools for inspecting each element in order to secure the quality of software must be performed individually and sequentially, and thus, there is a problem that a lot of inspection time is required.

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

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

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

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

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

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

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

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

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

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

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

이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art may easily implement the present invention. However, the present invention may be implemented in various 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 FIG. 1, a 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 may be included.

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

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

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

여기서, 메시지 수신부(110)가 수신한 메시지는 검사를 하려는 소스코드일 수 있고, 소스코드에 포함된 정보들은 소스코드의 시험을 위한 도구들을 실행하기 위한 CLI 정보의 추출을 위해 필요한 정보들일 수 있다. 여기서, CLI 정보는 데이터베이스(150)에 저장되어 있을 수 있다.Here, the message received by the message receiving unit 110 may be a 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, the CLI information may be stored in the database 150.

대상소스 수신부(120)는 수신된 메시지의 내용을 기초로 시험을 수행할 대상소스가 저장되어 있는 데이터베이스(150)에 STFP 프로토콜로 접속하여 ZIP로 압축된 대상소스를 수신할 수 있다. 여기서, 상기 CLI 정보가 저장된 데이터베이스 및 대상소스가 저장되어 있는 데이터베이스를 동일한 것으로 기재하였으나, CLI 정보가 저장된 데이터베이스 및 대상소스가 저장되어 있는 데이터베이스는 상이한 구성일 수 있다.The target source receiving unit 120 may access the database 150 in which the target source to be tested is stored based on the content of the received message through the STFP protocol to receive the target source compressed in ZIP. Here, the database in which the CLI information is stored and the database in which the target source is stored are described as the same, but 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 may receive a file (compressed target source) by accessing the SFTP protocol, thereby receiving the file with more enhanced security than FTP. At this time, 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 may decompress the target source compressed with ZIP received by the target source receiving unit 120 and copy the original source. Among the tools for testing the source code, there may be tools that lock the target source file and prohibit the file from being occupied by other processes. The target source copy unit 130 may create a copy of the original source so that the test can be performed even on these tools. That is, the target source copy unit 130 copies the target source, stores the source source in each tool-specific workspace, and performs inspection on the copied copy of the target source, so that the target source file is locked to the tools. It can also be made available to perform tests.

검사부(140)는 메시지 수신부(110)에서 수신한 메시지 내에 포함된 정보를 이용하여 소스코드의 검사를 위한 각 도구들 각각의 CLI 명령어를 로드할 수 있다. 여기서, 각 도구들의 CLI 명령어는 검사 이전에 미리 분석하여 데이터베이스(150)에 저장되어 있을 수 있다.The inspection unit 140 may load CLI commands of each of the tools for inspection of the source code by using information included in the message received by the message receiving unit 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 for checking the source code, there are tools that immediately check the source code, but there may be tools that require you to execute a CLI command before checking the source code. For example, in the case of the third tool, to perform the inspection on the source code written in Java, it goes through the steps of [Project creation -> User assignment to project -> Perform inspection], and then the source code written in C or C++ is checked. To do so, you can go through the steps of [Project creation -> User assignment to project -> Build -> Inspection]. Here, the inspection unit 140 may sequentially execute the CLI for each step. In addition, in the case of the second tool, it may be the step of [test execution], and the inspection unit 150 may execute the CLI for the step of performing the test.

즉, 각 도구마다 실행해야하는 CLI의 종류와 개수가 상이할 수 있고, 검사부(150)는 각 도구별 CLI를 순차적으로 실행함으로써, 검사를 수행할 수 있다.That is, the types 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 CLIs for each tool.

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

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

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

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

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

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

도 2는 본 발명의 실시 예에 따른 병렬처리된 시험 도구를 나타내는 도면이다.2 is a diagram illustrating a parallel-processed 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)이 검사를 수행하는데 소요되는 시간은 각각 상이할 수 있고, 가장 오랜 시간이 소요되는 도구가 종료되는 시점이 최종 검사 종료 시점일 수 있다.2, the inspection unit 140 may process a plurality of tools (1, 2, 3, 4. 5, 6, 7, 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 the inspection at the same time. Here, the time required for each tool (1, 2, 3, 4. 5, 6, 7, 8) to perform the inspection may be different, and the time when the tool that takes the longest time is terminated is the final It may be the end of the test.

일 예로, 제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 inspection, the second tool (2) may take 20 minutes to perform the inspection, and the third tool (3) may take 60 minutes to perform the inspection. It may take. In addition, the fourth tool 4 may take 30 minutes to perform the inspection, the fifth tool 5 may take 2 minutes to perform the inspection, and the sixth tool 6 may take 30 minutes to perform the inspection. 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 when all of the inspections performed by the third tool 3 are finished, the entire inspection may be terminated. That is, when the inspection of the third tool 3 is finished, the inspection of all other tools 1, 2, 4, 5, 6, 7, 8 except for the third tool 3 may be terminated. .

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

도 3은 복수의 도구들 중 다른 도구와 동시 진행할 수 없는 도구의 검사를 나타내는 도면이다.3 is a diagram illustrating an inspection of a tool that cannot be simultaneously performed with another tool 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, 8 may not be able to use several tools at the same time due to a problem of sharing a workspace. The inspection unit 140 may allow these tools to be separately sequentially processed.

일 예로, 제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 so that two or more tools cannot be executed at the same time. In this case, the inspection unit 140 may separate and sequentially process the second tool 2. That is, the first tool (1), the third tool (3), the fourth tool (4), ..., the eighth tool (8) can be processed in parallel so that the test can be conducted simultaneously. On the other hand, the second tool 2 may be processed separately and sequentially. Here, when viewed as a single test, the second tool 2 may also appear to be processed in parallel, but assuming a plurality of tests, the second tools 2 for each test may be sequentially processed.

즉, 제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), the third tool (3), the fourth tool (4), ... of the second test (20), the eighth tool (8) can be processed in parallel, the second test The second tool 2 of (20) can start the test after the test of the second tool 20 of the first test 10 is finished. Furthermore, if more tests are performed at the same time, after the inspection of the second tool (2) of the second test (20) is finished, the second tool (2) of the third test and the second test of the fourth test are sequentially performed. The tool (2), ..., the second tool (2) of the nth test can start the inspection.

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

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

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

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

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

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

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

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

도 5를 참조하면, 소스코드 검사를 위한 도구별로 검사를 완료하기까지 필요한 CLI 명령어는 상이할 수 있다. 즉, 하나의 CLI로 구성된 도구도 있고 몇 단계의 CLI를 수행하여 검사가 수행되는 도구들이 있을 수 있다. 일 예로, 제1도구(1)의 경우 검사실행 CLI만으로 구성되어 바로 검사를 수행할 수 있는 반면, 제3도구(3)의 경우 프로젝트 생성, 사용자 할당, 빌드 및 검사실행의 CLI를 순차적으로 실행하여 검사를 완료할 수 있다. Referring to FIG. 5, CLI commands required to complete the inspection may be different for each tool for source code inspection. That is, 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 is composed of only the inspection execution CLI so that inspection can be performed immediately, whereas in the case of the third tool (3), the CLI of project creation, user assignment, build and inspection execution is sequentially executed. To complete the inspection.

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

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

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

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

또한, 검사 수행 중 오류가 발생한 경우 오류에 대한 원인을 표기해주어 상세내역을 직관적으로 파악할 수 있도록 할 수 있고, 이에 따라 해당 시험에 대한 오류상황 대처가 용이하도록 할 수 있다.In addition, when an error occurs while performing the test, the cause of the error can be marked so that detailed details can be intuitively identified, and accordingly, it is possible to easily cope with the error situation for the corresponding test.

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

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

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

대상소스 복사부(130)는 대상소스 수신부(120)에서 수신한 ZIP로 압축된 대상소스의 압축을 해제하고, 원본소스를 복사할 수 있다(S300). 대상소스 복사부(130)는 대상소스를 복사하여 원본소스를 각 도구별 워크스페이스에 저장하고, 대상소스를 복사한 복사본에 대해 검사를 수행하도록 할 수 있다.The target source copy unit 130 may decompress the target source compressed with ZIP received by the target source receiving unit 120 and copy the original source (S300). The target source copy unit 130 may copy the target source, store the source 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 of the tools for inspection of the source code by using information included in the message received by the message receiving unit 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 CLIs for each tool.

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

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

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

본 발명이 속하는 기술 분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those skilled in the art to which the present invention pertains, since the present invention may be implemented in other specific forms without changing the technical spirit or essential features thereof, the embodiments described above are illustrative in all respects and should be understood as non-limiting. Only. The scope of the present invention is indicated by the claims to be 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 interpreted 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 unit
150: database
160: display

Claims (16)

HTTP 프로토콜을 이용하여 외부로부터 메시지를 수신하는 메시지 수신부;
상기 메시지 수신부에서 수신한 메시지의 내용을 기초로 ZIP로 압축된 대상소스를 수신하는 대상소스 수신부;
상기 ZIP로 압축된 대상소스의 압축을 해제하고, 원본 소스를 복사하는 대상소스 복사부; 및
소스코드의 검사를 위한 각 도구들의 CLI 명령어를 로드하여 상기 소스코드의 검사를 수행하되, 상기 각 도구들이 동시에 검사를 수행하도록 하는 검사부;를 포함하는 소스코드 검사 시스템.
A message receiving unit for receiving a message from the outside using the HTTP protocol;
A target source receiver configured to receive a target source compressed in ZIP based on the content of the message received by the message receiver;
A target source copy unit for decompressing the target source compressed with the ZIP and copying the original source; And
A source code inspection system comprising: an inspection unit for performing inspection of the source code by loading CLI commands of each tool for inspection of the source code, and allowing the tools to perform inspection at the same time.
제1항에 있어서,
상기 메시지 수신부는 하나의 시험에 대한 정보를 JSON(JavaScript Object Notion)으로 정형화한 데이터를 수신받아 처리하는 소스코드 검사 시스템.
The method of claim 1,
The message receiver is a source code inspection system that receives and processes data that is standardized in JSON (JavaScript Object Notion) for one test information.
제1항에 있어서,
상기 메시지 수신부가 수신한 메시지는 시험번호, 차수, 시험도구코드를 포함하는 소스코드 검사 시스템.
The method of claim 1,
The message received by the message receiving unit includes a test number, order, and test tool code.
제1항에 있어서,
상기 각 도구들의 CLI 명령어의 종류 및 개수를 미리 저장하고 있는 데이터베이스를 더 포함하는 소스코드 검사 시스템.
The method of claim 1,
A source code inspection system further comprising a database storing the types and numbers of CLI commands of the respective tools in advance.
제1항에 있어서,
상기 소스코드를 검사하기 위한 하나의 시험에는 복수의 도구들이 포함되고,
상기 복수의 도구들이 포함되는 시험은 복수개인 소스코드 검사 시스템.
The method of claim 1,
One test for checking the source code includes a plurality of tools,
The test including the plurality of tools is a plurality of source code inspection system.
제5항에 있어서,
상기 검사부는 상기 복수의 도구들 중 다른 도구와 동시 진행할 수 없는 도구의 경우 상기 복수의 시험에서의 해당도구들만 순차적으로 검사를 수행하도록 하는 소스코드 검사 시스템.
The method of claim 5,
In the case of a tool that cannot be simultaneously performed with another tool among the plurality of tools, the inspection unit checks only the corresponding tools in the plurality of tests in sequence.
제5항에 있어서,
상기 검사부는 상기 복수의 도구들 중 라이선스 제한이 있는 도구의 경우 상기 라이선스의 개수만큼의 도구들이 검사를 수행하도록 하는 소스코드 검사 시스템.
The method of claim 5,
In the case of a tool having a license limit among the plurality of tools, the inspection unit checks the source code of the tools as many as the number of licenses.
제1항에 있어서,
상기 검사결과를 표시하는 표시부를 더 포함하고,
상기 표시부는 소스코드 검사의 진행상태, 진행율, 상세로그를 표시하는 소스코드 검사 시스템.
The method of claim 1,
Further comprising a display for displaying the test result,
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 the outside using an HTTP protocol;
Receiving a target source compressed in ZIP based on the content of the received message;
Decompressing the target source compressed with the ZIP and copying the original source; And
The source code inspection method comprising; loading CLI commands of each tool for inspection of the source code to perform inspection of the source code, and allowing the tools to simultaneously perform inspection.
제9항에 있어서, 상기 메시지를 수신하는 단계에 있어서,
하나의 시험에 대한 정보를 JSON(JavaScript Object Notion)으로 정형화한 데이터를 수신받아 처리하는 소스코드 검사 방법.
The method of claim 9, wherein in receiving the message,
A source code inspection method that receives and processes data formatted as JSON (JavaScript Object Notion) for one test information.
제9항에 있어서,
상기 수신한 메시지는 시험번호, 차수, 시험도구코드를 포함하는 소스코드 검사 방법.
The method of claim 9,
The received message is a source code inspection method including a test number, order, and test tool code.
제9항에 있어서,
상기 각 도구들의 CLI 명령어의 종류 및 개수를 미리 저장하는 단계를 더 포함하는 소스코드 검사 방법.
The method of claim 9,
Source code inspection method further comprising the step of pre-storing the type and number of CLI commands of each of the tools.
제9항에 있어서,
상기 소스코드를 검사하기 위한 하나의 시험에는 복수의 도구들이 포함되고,
상기 복수의 도구들이 포함되는 시험은 복수개인 소스코드 검사 방법.
The method of claim 9,
One test for checking the source code includes a plurality of tools,
The test including the plurality of tools is a source code inspection method of a plurality.
제13항에 있어서, 상기 각 도구들이 동시에 검사를 수행하도록 하는 단계에 있어서,
상기 복수의 도구들 중 다른 도구와 동시 진행할 수 없는 도구의 경우 상기 복수의 시험에서의 해당도구들만 순차적으로 검사를 수행하도록 하는 소스코드 검사 방법.
The method of claim 13, wherein in the step of allowing each of the tools to perform inspection at the same time,
In the case of a tool that cannot proceed simultaneously with another tool among the plurality of tools, only the corresponding tools in the plurality of tests are inspected sequentially.
제13항에 있어서, 상기 각 도구들이 동시에 검사를 수행하도록 하는 단계에 있어서,
상기 복수의 도구들 중 라이선스 제한이 있는 도구의 경우 상기 라이선스의 개수만큼의 도구들이 검사를 수행하도록 하는 소스코드 검사 방법.
The method of claim 13, wherein in the step of allowing each of the tools to perform inspection at the same time,
In the case of a tool having a license restriction among the plurality of tools, a source code inspection method in which tools as many as the number of the licenses perform inspection.
제9항에 있어서,
상기 검사결과를 표시하는 단계를 더 포함하고,
상기 검사결과는 소스코드 검사의 진행상태, 진행율, 상세로그를 포함하는 소스코드 검사 방법.

The method of claim 9,
Further comprising the step of displaying the test result,
The inspection result is a source code inspection method including a progress status, a progress rate, and a 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 true KR20200112477A (en) 2020-10-05
KR102639211B1 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)

Cited By (1)

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

Citations (5)

* 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
KR20180099241A (en) * 2017-02-28 2018-09-05 주식회사 스패로우 Method for performing test using test case and apparatus for the same

Patent Citations (5)

* 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
KR20180099241A (en) * 2017-02-28 2018-09-05 주식회사 스패로우 Method for performing test using test case and apparatus for the same

Cited By (2)

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

Also Published As

Publication number Publication date
KR102639211B1 (en) 2024-02-22

Similar Documents

Publication Publication Date Title
US10127141B2 (en) Electronic technology resource evaluation system
Panichella et al. Would static analysis tools help developers with code reviews?
US9588871B1 (en) Method and system for dynamic business rule extraction
Singh et al. Software testing
US8966449B2 (en) Test case pattern matching
US7917895B2 (en) Automated software testing and validation system
US20160275292A1 (en) System and method for implementing application policies among development environments
US9342439B2 (en) Command coverage analyzer
CA2868430A1 (en) Data selection and identification
CN111897727A (en) Software testing method and device, computer equipment and storage medium
JP5684878B2 (en) Systems and methods for providing compliance inspection and detailed analysis of software applications
EP3070613B1 (en) Computer system testing
KR20200112477A (en) Source code inspection system and method
KR102693721B1 (en) Method for providing code inspection interface, and apparatus implementing the same method
KR102024275B1 (en) Test program development system and its method using script
CN111258562A (en) Java code quality inspection method, device, equipment and storage medium
Flemström et al. Exploring test overlap in system integration: An industrial case study
Braunisch et al. Maturity Evaluation of SDKs for I4. 0 Digital Twins
CN111679983B (en) JAVA interface static test method and device
Cruz et al. Snapshot testing in practice: Benefits and drawbacks
Gautam Comparison of Java Programming Testing Tools
US11847393B2 (en) Computing device and method for developing a system model utilizing a simulation assessment module
JP7557431B2 (en) Apparatus and method for supporting source code modification
Heck A Software product certification model for dependable systems
Cruz et al. The Journal of Systems & Software

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