KR20180120966A - Method and device for defect tracking - Google Patents

Method and device for defect tracking Download PDF

Info

Publication number
KR20180120966A
KR20180120966A KR1020170054998A KR20170054998A KR20180120966A KR 20180120966 A KR20180120966 A KR 20180120966A KR 1020170054998 A KR1020170054998 A KR 1020170054998A KR 20170054998 A KR20170054998 A KR 20170054998A KR 20180120966 A KR20180120966 A KR 20180120966A
Authority
KR
South Korea
Prior art keywords
defect
point
category
cause
generating
Prior art date
Application number
KR1020170054998A
Other languages
Korean (ko)
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 KR1020170054998A priority Critical patent/KR20180120966A/en
Publication of KR20180120966A publication Critical patent/KR20180120966A/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/3604Software analysis for verifying properties of programs
    • 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

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)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

Embodiments disclosed in the present application relate to a method and device for detecting a defect and, more specifically, to a method and device for detecting a defect facilitating correction of a defect by visualizing occurrence of a defect according to a category of a defect detected in a source code. As a technical means for achieving a technical objective, according to one embodiment of the present application, the method performed by the device comprises the steps of: generating a control flowchart based on a source code to be analyzed; analyzing the source code to detect a defect; analyzing the defect to determine a category of the defect; and generating a trace graph for the defect based on the category and the control flowchart.

Description

결함 추적 방법 및 결함 추적 장치{METHOD AND DEVICE FOR DEFECT TRACKING}[0001] METHOD AND DEVICE FOR DEFECT TRACKING [0002]

본 명세서에서 개시되는 실시예들은 결함 추적 방법 및 결함 추적 장치에 관한 것으로서, 보다 상세하게는 소스코드에서 탐지된 결함의 카테고리에 따라 결함의 발생 과정을 시각화하여 결함의 수정을 용이하게 하는 결함 추적 방법 및 결함 추적 장치에 관한 것이다.Embodiments disclosed herein relate to a defect tracking method and a defect tracking apparatus, and more particularly, to a defect tracking method and a defect tracking method for visualizing a defect occurrence process according to a category of a defect detected in a source code, And a defect tracking apparatus.

소프트웨어 개발 시 소스코드는 잠재적인 실행오류와 보안약점을 가질 수 있다, 특히, 소프트웨어의 개발 프로세스에 따라 설계하고 개발하여 테스트를 거치더라도 소스코드에 존재하는 오류 또는 약점을 검출해내기 어렵다. 따라서 소스코드에 존재하는 오류 또는 약점을 보다 쉽게 찾기 위한 기법이 제안되고 있다.In software development, source code can have potential execution errors and security weaknesses, especially when it is designed, developed and tested according to the software development process, making it difficult to detect errors or weak points in the source code. Therefore, a technique for finding errors or weak points in the source code is proposed.

예를 들어, 컴퓨터 프로그램 소스코드를 실행하지 않고 분석하여 프로그램 동작을 예측하는 기법을 적용하여 실행 오류 및 보안 취약점과 같은 결함을 검출해내는 소프트웨어의 보안성 및 품질 검사 도구가 많이 활용되고 있다.For example, software security and quality checking tools that detect errors such as execution errors and security vulnerabilities by applying a technique of analyzing computer program source code and estimating program behavior are widely utilized.

이러한 분석 도구를 활용하여 개발자는 결함을 수정할 수 있으나, 결함을 수정하는 데 있어서, 특히 전체 프로그램이 대규모 소스코드로 구성되는 경우에는 상당한 시간과 어려움이 따른다. Using these analysis tools, the developer can correct the defect, but it takes considerable time and difficulty in correcting the defect, especially when the entire program is composed of a large number of source codes.

따라서 상술된 문제점을 해결하기 위한 기술의 개발이 필요하게 되었다.Therefore, it is necessary to develop a technique for solving the above-mentioned problems.

관련하여 선행기술 문헌인 한국특허출원번호 제10-2010-0057732호에서는 다수의 프로그램 정적 분석 도구를 사용하는 환경에서 상기 다수의 정적 분석 도구들을 통합적으로 관리하는 장치 및 시스템에 관해 기재할 뿐, 상술된 문제점을 해결하고 있지 못하다. Korean Patent Application No. 10-2010-0057732, which is related to the prior art, describes an apparatus and a system for integrally managing the plurality of static analysis tools in an environment using a plurality of program static analysis tools, The problem is not solved.

한편, 전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.On the other hand, the background art described above is technical information acquired by the inventor for the derivation of the present invention or obtained in the derivation process of the present invention, and can not necessarily be a known technology disclosed to the general public before the application of the present invention .

본 명세서에서 개시되는 실시예들은, 결함 분석 방법 및 결함 분석 장치를 제시하는 데에 목적이 있다. The embodiments disclosed herein are aimed at providing a defect analysis method and a defect analysis apparatus.

또한 실시예들은, 소스코드의 결함의 발생 과정을 시각화하여 보고함으로써 개발자로 하여금 결함의 원인을 보다 직관적으로 파악하도록 하고, 결함 수정에 소요되는 시간 및 비용을 절감하는 데에 목적이 있다.In addition, the embodiments are intended to visualize and report the occurrence of defects in the source code, thereby allowing the developer to more intuitively grasp the cause of defects, and to reduce the time and cost required for defect correction.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시예에 따르면, 결함 추적 장치가 수행하는 결함 추적 방법으로서, 분석의 대상인 소스코드에 기초하여 제어 흐름도를 생성하는 단계; 상기 소스코드를 분석하여 결함을 검출하는 단계; 상기 결함을 분석하여 상기 결함의 카테고리를 판단하는 단계; 및 상기 카테고리 및 상기 제어 흐름도에 기초하여 상기 결함에 대한 추적 그래프를 생성하는 단계를 포함하는 결함 추적 방법이 개시된다. According to an embodiment of the present invention, there is provided a defect tracking method performed by a defect tracking apparatus, comprising: generating a control flowchart based on a source code to be analyzed; Analyzing the source code to detect defects; Analyzing the defect to determine a category of the defect; And generating a tracking graph for the defect based on the category and the control flow diagram.

또 다른 실시예에 따르면, 결함 추적 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체가 개시된다. 이때 결함 추적 방법은, 결함 추적 장치가 수행하는 것으로서, 분석의 대상인 소스코드에 기초하여 제어 흐름도를 생성하는 단계; 상기 소스코드를 분석하여 결함을 검출하는 단계; 상기 결함을 분석하여 상기 결함의 카테고리를 판단하는 단계; 및 상기 카테고리 및 상기 제어 흐름도에 기초하여 상기 결함에 대한 추적 그래프를 생성하는 단계를 포함할 수 있다. According to yet another embodiment, a computer-readable recording medium on which a program for performing a defect tracking method is recorded is disclosed. At this time, the defect tracking method is performed by the defect tracking device, and includes the steps of generating a control flowchart based on the source code to be analyzed; Analyzing the source code to detect defects; Analyzing the defect to determine a category of the defect; And generating a trace graph for the defect based on the category and the control flow diagram.

또 다른 실시예에 따르면, 결함 추적 장치에 의해 수행되며, 결함 추적 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램이 개시된다. 이때 결함 추적 방법은, 결함 추적 장치가 수행하는 것으로서, 분석의 대상인 소스코드에 기초하여 제어 흐름도를 생성하는 단계; 상기 소스코드를 분석하여 결함을 검출하는 단계; 상기 결함을 분석하여 상기 결함의 카테고리를 판단하는 단계; 및 상기 카테고리 및 상기 제어 흐름도에 기초하여 상기 결함에 대한 추적 그래프를 생성하는 단계를 포함할 수 있다. According to yet another embodiment, a computer program stored on a medium for performing a defect tracking method, which is performed by a defect tracking apparatus, is disclosed. At this time, the defect tracking method is performed by the defect tracking device, and includes the steps of generating a control flowchart based on the source code to be analyzed; Analyzing the source code to detect defects; Analyzing the defect to determine a category of the defect; And generating a trace graph for the defect based on the category and the control flow diagram.

또 다른 실시예에 따르면, 분석 대상이 되는 소스코드를 저장하는 저장부; 및 상기 소스코드에 기초하여 제어 흐름도를 생성하고, 상기 소스코드를 분석하여 검출된 상기 소스코드의 결함의 카테고리를 판단하고, 상기 카테고리에 기초하여 상기 결함에 대한 추적 그래프를 생성하는 제어부를 포함하는 결함 추적 장치가 개시된다.According to another embodiment, there is provided an information processing apparatus including a storage unit for storing a source code to be analyzed; And a control unit for generating a control flowchart based on the source code, analyzing the source code to determine a category of a defect of the detected source code, and generating a trace graph for the defect based on the category A defect tracking device is disclosed.

전술한 과제 해결 수단 중 어느 하나에 의하면, 본 명세서에서 개시되는 실시예들은, 결함 분석 방법 및 결함 분석 장치를 제시할 수 있다. According to any one of the above-mentioned means for solving the above-mentioned problems, the embodiments disclosed herein can suggest a defect analysis method and a defect analysis apparatus.

또한 실시예에 따르면, 소스코드의 결함의 발생 과정을 시각화하여 보고함으로써 개발자로 하여금 결함의 원인을 보다 직관적으로 파악할 수 있도록 하고 결함 수정에 소요되는 시간 및 비용을 절감할 수 있다. In addition, according to the embodiment, it is possible to visualize and report the occurrence process of a defect of the source code, thereby allowing the developer to more intuitively understand the cause of the defect, and to save time and cost for defect correction.

개시되는 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 개시되는 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtained in the disclosed embodiments are not limited to the effects mentioned above, and other effects not mentioned are obvious to those skilled in the art to which the embodiments disclosed from the following description belong It can be understood.

도 1은 일 실시예에 따른 결함 추적 장치의 구성을 도시한 블록도이다.
도 2는 일 실시예들에 따른 결함 추적 방법을 설명하기 위한 순서도이다.
1 is a block diagram showing the configuration of a defect tracking apparatus according to an embodiment.
2 is a flowchart for explaining a defect tracking method according to one embodiment.

아래에서는 첨부한 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 아래에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여, 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략하였다. 그리고, 도면에서 실시예들의 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Various embodiments are described in detail below with reference to the accompanying drawings. The embodiments described below may be modified and implemented in various different forms. In order to more clearly describe the features of the embodiments, detailed descriptions of known matters to those skilled in the art are omitted. In the drawings, parts not relating to the description of the embodiments are omitted, and like parts are denoted by similar reference numerals throughout the specification.

명세서 전체에서, 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐 아니라, '그 중간에 다른 구성을 사이에 두고 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성이 어떤 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들을 더 포함할 수도 있음을 의미한다.Throughout the specification, when a configuration is referred to as being "connected" to another configuration, it includes not only a case of being directly connected, but also a case of being connected with another configuration in between. In addition, when a configuration is referred to as " including ", it means that other configurations may be included, as well as other configurations, as long as there is no specially contradicted description.

이하 첨부된 도면을 참고하여 실시예들을 상세히 설명하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

도 1은 본 명세서의 일 실시예에 따른 결함 추적 장치(100)의 구성을 도시한 블록도이다. 1 is a block diagram showing the configuration of a defect tracking apparatus 100 according to an embodiment of the present invention.

여기서 결함 추적 장치(100)는 프로그램 분석의 대상이 되는 프로그램의 소스코드를 저장하고, 프로그램 분석을 위한 애플리케이션을 수행할 수 있는 컴퓨팅 장치로 구현될 수 있다. Here, the defect tracking apparatus 100 may be embodied as a computing device capable of storing a source code of a program to be subjected to program analysis and performing an application for analyzing the program.

예를 들어 결함 추적 장치(100)는 애플리케이션이 설치된 전자단말기로 구현될 수 있거나 또는 서버-클라이언트 시스템으로 구현될 수 있으며, 상기 시스템은 사용자와의 인터랙션을 위한 클라이언트가 설치된 전자단말기를 포함할 수 있다. For example, the defect tracking device 100 may be implemented as an electronic terminal equipped with an application, or may be implemented as a server-client system, and the system may include an electronic terminal equipped with a client for interaction with a user .

이때 전자단말기는, 사용자와의 인터랙션이 가능한 인터페이스를 포함할 수 있는 컴퓨터나 휴대용 단말기, 텔레비전, 웨어러블 디바이스(Wearable Device) 등으로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop)등을 포함하고, 휴대용 단말기는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS(Personal Communication System), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant),GSM(Global System for Mobile communications), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet), 스마트폰(Smart Phone), 모바일 WiMAX(Mobile Worldwide Interoperability for Microwave Access) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다. 또한, 텔레비전은 IPTV(Internet Protocol Television), 인터넷 TV(Internet Television), 지상파 TV, 케이블 TV 등을 포함할 수 있다. 나아가 웨어러블 디바이스는 예를 들어, 시계, 안경, 액세서리, 의복, 신발 등 인체에 직접 착용 가능한 타입의 정보처리장치로서, 직접 또는 다른 정보처리장치를 통해 네트워크를 경유하여 원격지의 서버에 접속하거나 타 단말과 연결될 수 있다. At this time, the electronic terminal may be implemented as a computer, a portable terminal, a television, a wearable device, or the like, which may include an interface capable of interacting with a user. Here, the computer includes, for example, a notebook computer, a desktop computer, a laptop computer, and the like, each of which is equipped with a web browser (WEB Browser), and the portable terminal may be a wireless communication device , Personal Communication System (PCS), Personal Digital Cellular (PDC), Personal Handyphone System (PHS), Personal Digital Assistant (PDA), Global System for Mobile communications (GSM), International Mobile Telecommunication (IMT) (W-CDMA), Wibro (Wireless Broadband Internet), Smart Phone, Mobile WiMAX (Mobile Worldwide Interoperability for Microwave Access) (Handheld) based wireless communication device. In addition, the television may include an Internet Protocol Television (IPTV), an Internet television (TV), a terrestrial TV, a cable TV, and the like. Further, the wearable device is an information processing device of a type that can be directly worn on a human body, for example, a watch, a glasses, an accessory, a garment, shoes, and the like. The wearable device can be connected to a remote server via a network, Lt; / RTI >

그리고 서버는 사용자와의 인터랙션을 위한 클라이언트가 설치된 전자단말기와 네트워크를 통해 통신이 가능한 컴퓨팅장치로 구현될 수 있으며, 데이터를 저장할 수 있는 저장장치가 포함될 수 있거나 또는 제 3 의 서버(미도시)를 통해 데이터를 저장할 수도 있다. The server may be implemented as a computing device capable of communicating with an electronic terminal equipped with a client for interacting with a user via a network, and may include a storage device capable of storing data, or a third server (not shown) Data can be stored.

또한, 결함 추적 장치(100)는 상술된 바와 같은 전자단말기 또는 서버-클라이언트 중 어느 하나의 형태로 구현될 수 있다.Further, the defect tracking apparatus 100 may be implemented in the form of an electronic terminal or a server-client as described above.

이하에서는 일 실시예에 따라 결함 추적 장치(100)가 결함 추적 방법을 수행하는 과정을 자세히 설명한다.Hereinafter, a process of performing the defect tracking method by the defect tracking apparatus 100 according to an embodiment will be described in detail.

도 1을 참조하면, 일 실시예에 따른 결함 추적 장치(100)는 입출력부(110), 저장부(120) 및 제어부(130)를 포함할 수 있다. Referring to FIG. 1, a defect tracking apparatus 100 according to an embodiment may include an input / output unit 110, a storage unit 120, and a control unit 130.

입출력부(110)는 프로그램 분석에 있어서의 사용자 설정 등의 입력을 수신하기 위한 입력부와, 작업의 수행 결과 또는 결함 추적 장치(100)의 상태 등의 정보를 표시하기 위한 출력부를 포함할 수 있다. 예를 들어, 입출력부(110)는 사용자 입력을 수신하는 조작 패널(operation panel) 및 화면을 표시하는 디스플레이 패널(display panel) 등을 포함할 수 있다.The input / output unit 110 may include an input unit for receiving inputs such as user settings in program analysis, and an output unit for displaying information such as a result of performing an operation or a status of the defect tracking apparatus 100. For example, the input / output unit 110 may include an operation panel for receiving user input and a display panel for displaying a screen.

구체적으로, 입력부는 키보드, 물리 버튼, 터치 스크린, 카메라 또는 마이크 등과 같이 다양한 형태의 사용자 입력을 수신할 수 있는 장치들을 포함할 수 있다. 또한, 출력부는 디스플레이 패널, 스피커 또는 헤드셋 등을 포함할 수 있다. 다만, 이에 한정되지 않고 입출력부(110)는 다양한 입출력을 지원하는 구성을 포함할 수 있다.In particular, the input unit may include devices capable of receiving various types of user input, such as a keyboard, a physical button, a touch screen, a camera or a microphone. Further, the output unit may include a display panel, a speaker, a headset, or the like. However, the present invention is not limited to this, and the input / output unit 110 may include various input / output support structures.

한편, 저장부(120)는 프로그램 분석의 대상이 되는 프로그램의 소스코드를 저장하거나 프로그램 분석을 위한 애플리케이션 및/또는 장치 드라이버와 같은 소프트웨어를 저장 및 구동할 수 있다. 실시예에 따라 저장부(120)는 SRAM(synchronous random access memory) 및/또는 DRAM(dynamic random access memory)를 포함할 수 있다. SSD(solid state drive), 플래시 메모리 (flash memory), MRAM(magnetic random access memory), PRAM(phase change RAM), FeRAM(ferroelectric RAM) 하드디스크, 플래시 메모리 등을 포함할 수 있다. On the other hand, the storage unit 120 may store the source code of the program to be analyzed by the program, or may store and operate software such as application and / or device driver for program analysis. According to an embodiment, the storage unit 120 may include a synchronous random access memory (SRAM) and / or a dynamic random access memory (DRAM). A solid state drive (SSD), a flash memory, a magnetic random access memory (MRAM), a phase change RAM (PRAM), a ferroelectric RAM (FeRAM) hard disk, a flash memory, and the like.

한편, 제어부(130)는 결함 추적 장치(100)가 수행하는 결함 추적 방법의 전체적인 동작을 제어하며, CPU 등과 같은 프로세서를 포함할 수 있다.Meanwhile, the controller 130 controls the overall operation of the defect tracking method performed by the defect tracking apparatus 100, and may include a processor such as a CPU.

실시예에 따르면 제어부(130)는 저장부(120)에 저장된 소스코드를 분석할 수 있다. 이때 제어부(130)는 입력부를 통해 수신한 사용자 설정에 기초하여 소스코드를 분석하고, 소스코드의 분석 결과를 출력부가 출력하도록 제어할 수 있다. The controller 130 may analyze the source code stored in the storage unit 120 according to an embodiment of the present invention. At this time, the control unit 130 analyzes the source code based on the user setting received through the input unit, and controls the output unit to output the analysis result of the source code.

예를 들면, 제어부(130)는 소스코드의 구문구조(syntax), 흐름구조(data flow, control flow, information flow), 의미구조(semantics)를 분석하여 실행오류와 보안취약점 같은 결함을 미리 검출할 수 있다. For example, the control unit 130 analyzes syntax, flow, control flow, and semantics of the source code to detect defects such as execution errors and security vulnerabilities in advance .

구체적인 실시예에 따르면 제어부(130)는 분석 대상이 되는 소스코드에 기초하여 제어 흐름도를 생성할 수 있다. 이때 제어 흐름도는 후술할 결함 추적 그래프를 생성하는 데에 기초가 될 수 있다. According to a specific embodiment, the control unit 130 can generate the control flow chart based on the source code to be analyzed. At this time, the control flow chart can be a basis for generating a defect tracking graph to be described later.

한편, 제어부(130)는 소스코드를 분석하는 과정에서 검출된 결함의 카테고리를 판단할 수 있다. 이때 제어부(130)는 결함의 카테고리 및 제어 흐름도에 기초하여 결함의 발생 과정을 시각화할 수 있다. 예를 들어 제어부(130)는 제어 흐름도에 기초하되, 결함의 카테고리에 따라 결함의 발생 과정을 추적하는 연결선의 추가, 노드 등에 대한 강조 색상 부여 및 결함을 설명하는 텍스트를 포함하는 결함 보고 추가 중 적어도 하나를 수행하여 결함에 대한 추적 그래프를 생성할 수 있다. Meanwhile, the control unit 130 may determine the category of the detected defect in the process of analyzing the source code. At this time, the controller 130 may visualize the process of generating the defect based on the category of the defect and the control flowchart. For example, the control unit 130 may be based on a control flow chart, and may include at least one of adding a connection line for tracking the occurrence of a defect according to the category of the defect, adding highlight color to the node and adding a defect report including text describing the defect You can do one to generate a trace graph for the defect.

관련하여 제어부(130)는 결함의 카테고리를 판단함에 있어서, 결함의 원인 지점 및 발생 지점을 탐색하고, 원인 지점 및 발생 지점이 존재하는지 여부 및 원인 지점 및 발생 지점이 동일한지 여부에 기초하여 카테고리를 판단할 수 있다. 이때 카테고리를 판단함으로써 결함의 원인을 예측하고 보다 빠르게 결함 추적 및 그래프 생성을 수행할 수 있다. In relation to the determination of the category of the defect, the control unit 130 searches for the cause point and the occurrence point of the defect, and determines whether the cause point and the occurrence point are present and whether the cause point and the generation point are the same. It can be judged. At this time, the cause of the defect can be predicted by judging the category, and the defect tracking and graph generation can be performed more quickly.

예를 들어, 제어부(130)는 결함의 원인 지점 및 발생 지점이 존재하고, 원인 지점 및 상기 발생 지점이 동일하면, 이때의 결함을 제1카테고리로 분류할 수 있다. For example, if there is a cause point and an occurrence point of a defect, and the cause point and the occurrence point are the same, the control unit 130 can classify the defect at this time into the first category.

이 경우 제어부(130)는 제어 흐름도의 결함 발생 지점에 결함을 설명하는 결함 보고를 추가할 수 있다. 또한 결함 발생 지점에 강조 색상을 부여함으로써 결함을 시각화할 수 있다.In this case, the control unit 130 may add a defect report describing the defect to the defect occurrence point of the control flow diagram. In addition, defects can be visualized by assigning highlight colors to defect occurrence points.

또한 제어부(130)는 결함의 원인 지점은 존재하나, 결함의 발생 지점은 존재하지 않으면, 이때의 결함을 제2카테고리로 분류할 수 있다. 이와 같은 결함은 부적절한 자원 해제 결함을 포함할 수 있다. ‘부적절한 자원 해제 결함'의 경우는 자원을 할당하였으나 해당 자원의 해제를 누락하는 형태의 코드이다. 이 경우 결함의 원인 지점으로 보고되는 것은 '자원을 할당하는 위치'이지만, 해당 자원 할당이 왜 결함이 되는지를 알려주기 위해서는 자원의 해제가 누락되었음을 표시할 필요가 있다. Also, the controller 130 may classify defects at the time of occurrence of defects, if there are no defect points, into the second category. Such defects may include inadequate resource release defects. In the case of 'Inadequate resource release defect', it is a code that allocates a resource but omits release of the resource. In this case, it is the 'location to allocate resources' that is reported as the cause of the defect, but it is necessary to indicate that the release of the resource is missing in order to show why the allocation of the resource is defective.

따라서 제어부(130)는 결함의 원인 자원에 대한 할당 지점 및 원인 자원에 대한 접근 불가 지점을 탐색하고, 할당 지점 및 접근 불가 지점에 대한 연결선 및 결함 보고를 추가할 수 있다. 이때 '접근 불가 지점'은 해당 함수의 끝 지점을 포함할 수 있다. Accordingly, the controller 130 searches for an allocation point for the cause resource of the defect and the inaccessible point for the cause resource, and adds the connection line and the defect report for the allocation point and the inaccessible point. The 'inaccessible point' may include the end point of the function.

예를 들어, 제어부(130)는 할당 지점에 자원이 할당되었다는 설명을 추가하고, 강조 색상을 부여할 수 있다. 또한, 제어부(130)는 할당 지점부터 접근 불가 지점까지의 제어 흐름을 연결하는 연결선을 추가할 수 있고, 연결선에 대하여 자원 해제가 누락되었다는 결함 보고를 추가할 수 있다. 또한, 제어부(130)는 제어 흐름의 중간 노드들에 강조 색상을 부여할 수 있다. For example, the control unit 130 may add an explanation that the resource is allocated to the allocation point, and may give a highlight color. In addition, the controller 130 may add a connection line connecting the control flow from the allocation point to the inaccessible point, and may add a defect report indicating that the resource release is missing to the connection line. In addition, the controller 130 may assign an emphasis color to intermediate nodes of the control flow.

한편, 제어부(130)는 결함의 원인 지점 및 발생 지점이 존재하나, 원인 지점 및 발생 지점이 동일하지 않으면, 이때의 결함을 제3카테고리로 분류할 수 있다. 제3카테고리의 결함은 SQL 삽입과 관련한 문제를 포함할 수 있다. 즉, 제3카테고리의 결함은 외부 입력에 대한 검사 과정 없이 SQL 명령을 함수에 직접 전달하여 의도치 않은 동작을 허용하게 되는 문제를 포함할 수 있다. 이 경우 외부 입력에 해당하는 함수 혹은 변수가 원인 지점이 되며, SQL 명령을 수행하는 함수가 발생 지점이 된다. On the other hand, if the cause point and the occurrence point of the defect exist, but the cause point and the occurrence point are not the same, the control unit 130 can classify the defect at this time into the third category. Defects in the third category may include problems with SQL injection. That is, a defect of the third category may include a problem of allowing an unintended operation by directly transmitting an SQL command to a function without an external input checking process. In this case, the function or variable corresponding to the external input becomes the cause point, and the function that executes the SQL command becomes the generation point.

이때 제어부(130)는 원인 지점 및 발생 지점에 대한 연결선을 추가할 수 있다. 관련하여 원인 지점 및 발생 지점에 대한 연결선은 데이터 흐름 및 제어 흐름 중 적어도 하나를 표시하는 연결선을 포함할 수 있다. At this time, the controller 130 may add a connection line to the cause point and the occurrence point. In connection with the cause point and the connection line to the point of occurrence, the connection line may include a connection line indicating at least one of a data flow and a control flow.

또한, 제어부(130)는 결함의 원인인 외부 입력에 대한 결함 보고 및 외부 입력의 조작 처리에 대한 보고를 추가할 수 있다. 예를 들어 제어부(130)는 원인 지점에 대하여, 결함이 외부 입력으로 인한 것임을 설명하는 결함 보고를 추가할 수 있다. 또한, 제어부(130)는 연결선에 대하여, 외부 입력의 SQL 조작에 대한 처리가 없음을 설명하는 결함 보고를 추가할 수 있다. 이때 SQL 조작에 대한 처리란, SQL 명령을 함수에 적용하기 전에 수행되어야 할 검사 등을 포함할 수 있다. 그리고 제어부(130)는 발생 지점에 대하여, SQL 조작을 포함할 수 있는 외부 입력이 전달되었음을 설명하는 결함 보고를 추가하고, 발생 지점에 강조 색상을 부여할 수 있다. In addition, the control unit 130 may add a defect report to the external input, which is the cause of the defect, and a report on the manipulation processing of the external input. For example, the control unit 130 may add, to the cause point, a defect report that explains that the defect is due to an external input. Also, the control unit 130 may add a defect report to the connection line, which explains that there is no processing for the SQL operation of the external input. At this time, the processing for the SQL operation may include a check to be performed before applying the SQL command to the function. The control unit 130 may add a defect report to the point of occurrence that explains that an external input that may include an SQL operation has been transferred, and may give an emphasis color to the point of occurrence.

한편, 제어부(130)는 결함의 원인 지점은 존재하지 않고, 결함의 발생 지점만이 존재하는 것으로 판단되면, 이때의 결함을 제4카테고리로 분류할 수 있다. 실시예에 따르면 제4카테고리의 결함의 경우 정수형 오버플로우 결함을 포함할 수 있다. 정수형 오버플로우 결함은, 정수형 데이터의 연산 과정에서 정수 데이터 타입의 범위를 벗어나면서 발생하는 결함이다. 이 경우 값의 변화 자체가 결함의 원인이 되므로, 결함이 발생하는 지점은 해당 연산의 결과가 발생하는 지점으로 명확하지만, 원인이 되는 지점은 명확하게 판단되지 않을 수 있다.On the other hand, if it is determined that there is no defective point and the defective point only exists, the controller 130 classifies the defective point into the fourth category. According to the embodiment, in the case of a defect of the fourth category, an integer overflow defect may be included. An integer overflow fault is a fault that occurs when the integer data type is out of the range of the integer data type. In this case, since the change of the value itself causes the defect, the point where the defect occurs is obvious to the point where the result of the operation is generated, but the cause point may not be clearly determined.

이때 제어부(130)는 정수형 오버플로우의 발생을 탐지하고, 정수형 오버플로우를 발생시키는 연산 결함에 대한 결함 보고를 추가할 수 있다. 예를 들어 제어부(130)는 발생 지점에 대하여, 연산의 결과로 정수형 오버플로우가 발생하였음을 설명하는 결함 보고를 추가하고, 강조 색상을 부여할 수 있다. At this time, the controller 130 detects the occurrence of the integer overflow and may add a defect report for the operation defect causing the integer overflow. For example, the control unit 130 may add a defect report to the occurrence point to explain that an integer overflow has occurred as a result of the operation, and may give a highlight color.

또한, 제어부(130)는 발생 지점으로부터 데이터의 흐름 및 제어 흐름에 대한 연결선을 추가할 수 있다. 즉, 발생 지점으로부터 데이터의 흐름 및 제어 흐름을 역순으로 따라가는 연결선을 추가함으로써 결함의 발생 과정을 시각화할 수 있다. 이때 제어부(130)는, 상기 정수형 오버플로우를 발생시키는 데이터의 생성점 및 파라미터 중 적어도 하나까지 연결되는 연결선을 추가할 수 있다. 가령 제어부(130)는 결함의 원인이 되는 데이터의 생성점이 함수 내에 있는 경우 데이터의 생성점까지 연결하는 연결선을 추가할 수 있으며, 결함의 원인이 되는 데이터의 생성점이 함수 외에 있고, 파라미터를 통해 전달되는 경우 파라미터까지 연결하는 연결선을 추가할 수 있다. Further, the control unit 130 may add a connection line for the flow of data and the control flow from the point of occurrence. That is, the generation process of the defect can be visualized by adding a connection line that follows the data flow and control flow in reverse order from the generation point. At this time, the control unit 130 may add a connection line connected to at least one of a generation point and a parameter of data for generating the integer overflow. For example, the control unit 130 may add a connection line connecting the generation point of the data to the generation point of the data when the generation point of the data causing the defect is in the function. The generation point of the data causing the defect may be outside the function, You can add a connection line that connects up to the parameter.

또한 제어부(130)는 데이터의 흐름 및 제어 흐름의 중간 노드들 중 연산에 관여하는 노드, 즉 값의 변화에 관여하는 노드에 대해서, 해당 노드의 연산이 수행되기 전후의 예상값을 보고하는 결함 보고를 추가할 수 있다. 이때 값의 변화가 발생하는 부분의 노드 및 연결선에 대하여 강조 색상 등의 강조 효과를 부여할 수 있다. In addition, the control unit 130 reports a predicted value before and after the operation of the corresponding node to a node involved in the operation, that is, a node involved in the change of the value among the intermediate nodes of the data flow and the control flow Can be added. At this time, emphasis effect such as emphasis color or the like can be given to the node and the connecting line of the portion where the value changes.

이와 관련하여 제어부(130)는 보다 효과적인 결함 추적을 제공하기 위하여 추적 연장을 제공할 수 있다. 실시예에 따르면, 제어부(130)는 추적 연장 버튼을 사용자에게 제공하고, 추적 연장 버튼에 대한 입력을 수신함으로써 추적 연장을 제공할 수 있다. 가령, 제어부(130)는 결함의 발생에 관여하는 파라미터의 인근에 추적 연장 버튼을 표시하고, 추적 연장 버튼에 대한 입력을 수신하면, 파라미터와 연결된 함수를 호출하는 지점을 제공하여 사용자로 하여금 선택할 수 있도록 하고, 사용자로부터 선택 받은 호출 지점에서 다시 상술한 제4카테고리 결함에 대한 결함 추적 그래프를 생성하여 제공할 수 있다. In this regard, the controller 130 may provide a tracking extension to provide more effective defect tracking. According to an embodiment, the control unit 130 may provide a tracking extension by providing the tracking extension button to the user, and receiving an input to the tracking extension button. For example, the control unit 130 displays a trace extension button in the vicinity of a parameter involved in the occurrence of a defect, and upon receiving an input to the trace extension button, provides a point for calling a function associated with the parameter, And a defect tracking graph for the fourth category defect described above can be generated and provided again at the call point selected by the user.

상술한 바와 같이 결함 추적 장치(100)는 제어 흐름도에 기초하여 결함 추적 그래프를 생성함에 있어서, 데이터 흐름, 제어 흐름 및 함수 호출 중 적어도 하나를 표시할 수 있으며, 이때 연결함 추적 그래프에 포함되는 연결선은 데이터 흐름, 제어 흐름 및 함수 호출을 필요에 따라 혼합 및 중복(polymorphic)하여 표시할 수 있다. 이에 따라 사용자는 결함의 발생 원인 및 발생 과정을 직관적으로 판단할 수 있게 되므로 소스코드 수정에 있어서 시간을 단축하고 노력을 아낄 수 있다. As described above, the defect tracking apparatus 100 can display at least one of a data flow, a control flow, and a function call in generating a defect tracking graph based on a control flow chart. At this time, Data flow, control flow, and function calls can be mixed and displayed as needed, polymorphically. Accordingly, the user can intuitively determine the cause and the occurrence process of the defect, thereby shortening the time for correcting the source code and saving effort.

도 2는 실시예들에 따른 결함 추적 방법을 설명하기 위한 순서도이다. 도 2에 도시된 실시예들에 따른 결함 추적 방법은 도 1에 도시된 결함 추적 장치(100)에서 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하에서 생략된 내용이라고 하더라도 도 1에 도시된 결함 추적 장치(100)에 관하여 이상에서 기술한 내용은 도 2에 도시된 실시예들에 따른 결함 추적 방법에도 적용될 수 있다.2 is a flowchart for explaining a defect tracking method according to embodiments. The defect tracking method according to the embodiments shown in FIG. 2 includes the steps of time-series processing in the defect tracking apparatus 100 shown in FIG. Therefore, even if omitted from the following description, the above description of the defect tracking apparatus 100 shown in FIG. 1 can be applied to the defect tracking method according to the embodiments shown in FIG.

도 2를 참조하면, 결함 추적 장치(100)는 분석의 대상인 소스코드에 기초하여 제어 흐름도를 생성할 수 있다(S21). 또한 결함 추적 장치(100)는 소스코드를 분석하여 결함을 검출하고(S22), 결함을 분석하여 결함의 카테고리를 판단할 수 있다(S23). 그리고 결함 추적 장치(100)는 카테고리 및 제어흐름도에 기초하여 결함에 대한 추적 그래프를 생성할 수 있다(S24). Referring to FIG. 2, the defect tracking apparatus 100 may generate a control flowchart based on a source code to be analyzed (S21). Also, the defect tracking apparatus 100 may analyze the source code to detect a defect (S22), and analyze the defect to determine the category of the defect (S23). Then, the defect tracking apparatus 100 can generate a trace graph for the defect based on the category and the control flow chart (S24).

실시예에 따르면 결함 추적 장치(100)는 결함을 분석하여 결함의 카테고리를 판단함에 있어서(S23), 결함의 원인 지점 및 발생 지점을 탐색하고, 원인 지점 및 발생 지점의 존부 및 동일 여부에 기초하여 카테고리를 판단할 수 있다. According to the embodiment, the defect tracking apparatus 100 searches the cause point and the occurrence point of the defect in determining the category of the defect by analyzing the defect (S23), and based on the presence and absence of the cause point and the occurrence point The category can be judged.

관련한 실시예에 따르면 결함 추적 장치(100)는 결함의 원인 지점 및 발생 지점의 존부 및 동일 여부에 기초하여 카테고리를 판단하되, 결함의 원인 지점 및 발생 지점이 존재하고, 원인 지점 및 발생 지점이 동일하면, 결함을 제1카테고리로 분류할 수 있다. 이 경우 결함 추적 장치(100)는, 결함의 추적 그래프를 생성함에 있어서(S24), 발생 지점에 결함 보고를 추가할 수 있다. According to the related embodiment, the defect tracking apparatus 100 judges a category based on the cause and the occurrence point of the defect and the presence or absence of the defect, and if the cause point and the occurrence point of the defect exist and the cause point and the occurrence point are the same , The defect can be classified into the first category. In this case, the defect tracking apparatus 100 may add a defect report to the generation point in generating a defect tracking graph (S24).

또한 결함 추적 장치(100)는 결함의 원인 지점 및 발생 지점의 존부 및 동일 여부에 기초하여 상기 카테고리를 판단하되, 결함의 원인 지점이 존재하고, 결함의 발생 지점이 존재하지 않으면, 결함을 제2카테고리로 분류할 수 있다. 이 경우 결함 추적 장치(100)는, 결함의 추적 그래프를 생성함에 있어서(S24), 결함의 원인 자원에 대한 할당 지점 및 원인 자원에 대한 접근 불가 지점을 탐색하고, 할당 지점 및 접근 불가 지점에 대한 연결선 및 결함 보고를 추가할 수 있다. In addition, the defect tracking apparatus 100 determines the category based on the cause and the location of the defect and whether or not there is a defect, and if there is a defect cause point and a defect occurrence point does not exist, Category. In this case, the defect tracking apparatus 100 searches the allocation point for the cause resource of the defect and the inaccessible point for the cause resource in generating the defect tracking graph (S24) You can add connectors and fault reports.

한편, 결함 추적 장치(100)는 결함의 원인 지점 및 발생 지점의 존부 및 동일 여부에 기초하여 카테고리를 판단하되, 결함의 원인 지점 및 발생 지점이 존재하고, 원인 지점 및 발생 지점이 동일하지 않으면, 결함을 제3카테고리로 분류할 수 있다. 이 경우 결함 추적 장치(100)는, 결함의 추적 그래프를 생성함에 있어서(S24), 원인 지점 및 발생 지점에 대한 연결선을 추가하고, 결함의 원인인 외부 입력에 대한 결함 보고 및 외부 입력의 조작 처리에 대한 결함 보고를 추가할 수 있다. On the other hand, the defect tracking apparatus 100 judges a category on the basis of the cause point and the occurrence point of the defect based on the presence or absence of the defect, and if the cause point and the occurrence point of the defect exist and the cause point and the occurrence point are not the same, Defects can be classified into the third category. In this case, in generating a defect tracing graph (S24), the defect tracking apparatus 100 adds a connection line to a cause point and a generation point, and performs a defect report on the external input, which is the cause of the defect, Can be added to the defect report.

그리고 결함 추적 장치(100)는 결함의 원인 지점 및 발생 지점의 존부 및 동일 여부에 기초하여 카테고리를 판단하되, 결함의 원인 지점이 존재하지 않고, 결함의 발생 지점이 존재하면, 결함을 제4카테고리로 분류할 수 있다. 이 경우 결함 추적 장치(100)는, 결함의 추적 그래프를 생성함에 있어서(S24), 정수형 오버플로우의 발생을 탐지하고, 정수형 오버플로우를 발생시키는 연산 결과에 대한 결함 보고를 추가하고, 발생 지점으로부터 데이터의 흐름 및 제어 흐름을 표시하는 연결선을 추가할 수 있다. Then, the defect tracking apparatus 100 judges the category based on the cause of the defect and the presence or absence of the defect, and if there is no cause of the defect and the defect occurs, . In this case, the defect tracking apparatus 100 detects the occurrence of an integer overflow in generating a defect tracking graph (S24), adds a defect report for an operation result that causes an integer overflow, You can add connection lines to display data flow and control flow.

이때 결함 추적 장치(100)는 결함 보고를 추가하되, 데이터의 흐름 및 제어 흐름에 포함된 노드 중 정수형 오버플로우에 의한 결함의 원인이 되는 연산을 수행하는 노드에 대해서, 연산이 수행되기 전후의 예상값을 보고하는 결함 보고를 추가할 수 있다. At this time, the defect tracking apparatus 100 adds a defect report to the node that performs the calculation that causes the defect caused by the integer overflow among the nodes included in the data flow and the control flow, You can add a defect report that reports the value.

그리고 결함 추적 장치(100)는 연결선을 추가하되, 발생 지점으로부터 정수형 오버플로우를 발생시키는 데이터의 생성점 및 파라미터 중 적어도 하나까지 연결되는 연결선을 추가할 수 있다. The defect tracking apparatus 100 may add a connection line, and may add a connection line to at least one of a data generation point and a parameter for generating an integer overflow from a generation point.

또한 결함 추적 장치(100)는 파라미터에 대한 추적 연장을 사용자로부터 수신하면, 사용자에 대하여 파라미터와 연결된 하나 이상의 함수 호출 지점을 제공하고, 사용자로부터 선택 받은 함수 호출 지점에 대한 결함의 추적 그래프를 생성할 수 있다. When the defect tracking apparatus 100 receives from the user a trace extension for the parameter, the defect tracking apparatus 100 also provides one or more function call points connected to the parameter for the user and generates a defect trace graph for the selected function call point from the user .

이상의 실시예들에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field programmable gate array) 또는 ASIC 와 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램특허 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.The term " part " used in the above embodiments means a hardware component such as a software or a field programmable gate array (FPGA) or an ASIC, and the 'part' performs certain roles. However, 'part' is not meant to be limited to software or hardware. &Quot; to " may be configured to reside on an addressable storage medium and may be configured to play one or more processors. Thus, by way of example, 'parts' may refer to components such as software components, object-oriented software components, class components and task components, and processes, functions, , Subroutines, segments of program patent code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables.

구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로부터 분리될 수 있다.The functions provided within the components and components may be combined with a smaller number of components and components or separated from additional components and components.

뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU 들을 재생시키도록 구현될 수도 있다.In addition, the components and components may be implemented to play back one or more CPUs in a device or a secure multimedia card.

도 2를 통해 설명된 실시예들에 따른 결함 추적 방법은 컴퓨터에 의해 실행 가능한 명령어 및 데이터를 저장하는, 컴퓨터로 판독 가능한 매체의 형태로도 구현될 수 있다. 이때, 명령어 및 데이터는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터 기록 매체일 수 있는데, 컴퓨터 기록 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함할 수 있다. 예를 들어, 컴퓨터 기록 매체는 HDD 및 SSD 등과 같은 마그네틱 저장 매체, CD, DVD 및 블루레이 디스크 등과 같은 광학적 기록 매체, 또는 네트워크를 통해 접근 가능한 서버에 포함되는 메모리일 수 있다.The defect tracking method according to the embodiments described with reference to FIG. 2 may also be implemented in the form of a computer-readable medium for storing instructions and data executable by a computer. At this time, the command and data may be stored in the form of program code, and when executed by the processor, a predetermined program module may be generated to perform a predetermined operation. In addition, the computer-readable medium can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. The computer-readable medium can also be a computer storage medium, which can be volatile and non-volatile, implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data, Volatile, removable and non-removable media. For example, the computer recording medium may be a magnetic storage medium such as an HDD and an SSD, an optical recording medium such as a CD, a DVD and a Blu-ray Disc, or a memory included in a server accessible via a network.

또한 도 2를 통해 설명된 실시예들에 따른 결함 추적 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다. The defect tracking method according to the embodiments described with reference to FIG. 2 may also be implemented as a computer program (or a computer program product) including instructions executable by a computer. A computer program includes programmable machine instructions that are processed by a processor and can be implemented in a high-level programming language, an object-oriented programming language, an assembly language, or a machine language . The computer program may also be recorded on a computer readable recording medium of a type (e.g., memory, hard disk, magnetic / optical medium or solid-state drive).

따라서 도 2를 통해 설명된 실시예들에 따른 결함 추적 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.Thus, the defect tracking method according to the embodiments described with reference to FIG. 2 can be implemented by a computer program as described above being executed by the computing device. The computing device may include a processor, a memory, a storage device, a high-speed interface connected to the memory and a high-speed expansion port, and a low-speed interface connected to the low-speed bus and the storage device. Each of these components is connected to each other using a variety of buses and can be mounted on a common motherboard or mounted in any other suitable manner.

여기서 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및(또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다.Where the processor may process instructions within the computing device, such as to display graphical information to provide a graphical user interface (GUI) on an external input, output device, such as a display connected to a high speed interface And commands stored in memory or storage devices. As another example, multiple processors and / or multiple busses may be used with multiple memory and memory types as appropriate. The processor may also be implemented as a chipset comprised of chips comprising multiple independent analog and / or digital processors.

또한 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다.The memory also stores information within the computing device. In one example, the memory may comprise volatile memory units or a collection thereof. In another example, the memory may be comprised of non-volatile memory units or a collection thereof. The memory may also be another type of computer readable medium such as, for example, a magnetic or optical disk.

그리고 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다.And the storage device can provide a large amount of storage space to the computing device. The storage device may be a computer readable medium or a configuration including such a medium and may include, for example, devices in a SAN (Storage Area Network) or other configurations, and may be a floppy disk device, a hard disk device, Or a tape device, flash memory, or other similar semiconductor memory device or device array.

상술된 실시예들은 예시를 위한 것이며, 상술된 실시예들이 속하는 기술분야의 통상의 지식을 가진 자는 상술된 실시예들이 갖는 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 상술된 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be apparent to those skilled in the art that the above-described embodiments are for illustrative purposes only and that those skilled in the art will readily understand that other embodiments can be readily modified without departing from the spirit or essential characteristics of the embodiments described above You will understand. It is therefore to be understood that the above-described embodiments are to be considered in all respects only as illustrative and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 명세서를 통해 보호 받고자 하는 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태를 포함하는 것으로 해석되어야 한다.It is to be understood that the scope of the present invention is defined by the appended claims rather than the foregoing description and should be construed as including all changes and modifications that come within the meaning and range of equivalency of the claims, .

100: 결함 추적 장치 110: 입출력부
120: 저장부 130: 제어부
100: defect tracking device 110: input /
120: storage unit 130:

Claims (13)

결함 추적 장치가 수행하는 결함 추적 방법에 있어서,
분석의 대상인 소스코드에 기초하여 제어 흐름도를 생성하는 단계;
상기 소스코드를 분석하여 결함을 검출하는 단계;
상기 결함을 분석하여 상기 결함의 카테고리를 판단하는 단계; 및
상기 카테고리 및 상기 제어 흐름도에 기초하여 상기 결함에 대한 추적 그래프를 생성하는 단계를 포함하는, 결함 추적 방법.
A defect tracking method performed by a defect tracking apparatus,
Generating a control flow diagram based on source code to be analyzed;
Analyzing the source code to detect defects;
Analyzing the defect to determine a category of the defect; And
And generating a tracking graph for the defect based on the category and the control flow diagram.
제1항에 있어서,
상기 결함을 분석하여 상기 결함의 카테고리를 판단하는 단계는,
상기 결함의 원인 지점 및 발생 지점을 탐색하고, 상기 원인 지점 및 상기 발생 지점의 존부 및 동일 여부에 기초하여 상기 카테고리를 판단하는 것을 특징으로 하는, 결함 추적 방법.
The method according to claim 1,
Wherein the step of analyzing the defect to determine the category of the defect comprises:
Wherein the defect location is searched for the cause point and the occurrence point of the defect, and the category is determined based on whether the cause point and the occurrence point exist or not.
제2항에 있어서,
상기 결함을 분석하여 상기 결함의 카테고리를 판단하는 단계는,
상기 존부 및 상기 동일 여부에 기초하여 상기 카테고리를 판단하되, 상기 결함의 원인 지점 및 발생 지점이 존재하고, 상기 원인 지점 및 상기 발생 지점이 동일하면, 상기 결함을 제1카테고리로 분류하는 것을 특징으로 하고,
상기 카테고리에 기초하여 상기 결함의 추적 그래프를 생성하는 단계는,
상기 발생 지점에 결함 보고를 추가하는 것을 특징으로 하는, 결함 추적 방법.
3. The method of claim 2,
Wherein the step of analyzing the defect to determine the category of the defect comprises:
And classifying the defects into the first category when the cause point and the occurrence point of the defect exist, and if the cause point and the occurrence point are the same, the defect is classified into the first category and,
Wherein generating the defect tracking graph based on the category comprises:
And adding a defect report to the occurrence point.
제2항에 있어서,
상기 결함을 분석하여 상기 결함의 카테고리를 판단하는 단계는,
상기 존부 및 상기 동일 여부에 기초하여 상기 카테고리를 판단하되, 상기 결함의 원인 지점이 존재하고, 상기 결함의 발생 지점이 존재하지 않으면, 상기 결함을 제2카테고리로 분류하는 것을 특징으로 하고,
상기 카테고리에 기초하여 상기 결함의 추적 그래프를 생성하는 단계는,
상기 결함의 원인 자원에 대한 할당 지점 및 상기 원인 자원에 대한 접근 불가 지점을 탐색하고, 상기 할당 지점 및 상기 접근 불가 지점에 대한 연결선 및 결함 보고를 추가하는 것을 특징으로 하는, 결함 추적 방법.
3. The method of claim 2,
Wherein the step of analyzing the defect to determine the category of the defect comprises:
And classifying the defect into a second category if the cause point of the defect exists and the point of occurrence of the defect does not exist,
Wherein generating the defect tracking graph based on the category comprises:
Searching for an allocation point for the cause resource of the defect and an inaccessible point for the cause resource, and adding a connection line and a defect report for the allocation point and the inaccessible point.
제2항에 있어서,
상기 결함을 분석하여 상기 결함의 카테고리를 판단하는 단계는,
상기 존부 및 상기 동일 여부에 기초하여 상기 카테고리를 판단하되, 상기 결함의 원인 지점 및 발생 지점이 존재하고, 상기 원인 지점 및 상기 발생 지점이 동일하지 않으면, 상기 결함을 제3카테고리로 분류하는 것을 특징으로 하고,
상기 카테고리에 기초하여 상기 결함의 추적 그래프를 생성하는 단계는,
상기 원인 지점 및 상기 발생 지점에 대한 연결선을 추가하고, 상기 결함의 원인인 외부 입력에 대한 결함 보고 및 상기 외부 입력의 조작 처리에 대한 결함 보고를 추가하는 것을 특징으로 하는, 결함 추적 방법.
3. The method of claim 2,
Wherein the step of analyzing the defect to determine the category of the defect comprises:
The defect category is classified into a third category when the cause point and the occurrence point of the defect exist and the cause point and the generation point are not the same, Lt; / RTI &
Wherein generating the defect tracking graph based on the category comprises:
Adding a causal point and a connection line to the occurrence point, and adding a defect report for the external input that is the cause of the defect and a defect report for the manipulation processing of the external input.
제2항에 있어서,
상기 결함을 분석하여 상기 결함의 카테고리를 판단하는 단계는,
상기 존부 및 상기 동일 여부에 기초하여 상기 카테고리를 판단하되, 상기 결함의 원인 지점이 존재하지 않고, 상기 결함의 발생 지점이 존재하면, 상기 결함을 제4카테고리로 분류하는 것을 특징으로 하고,
상기 카테고리에 기초하여 상기 결함의 추적 그래프를 생성하는 단계는,
정수형 오버플로우의 발생을 탐지하고, 상기 정수형 오버플로우를 발생시키는 연산 결함에 대한 결함 보고를 추가하고, 상기 발생 지점으로부터 데이터의 흐름 및 제어 흐름을 표시하는 연결선을 추가하는 것을 특징으로 하는, 결함 추적 방법.
3. The method of claim 2,
Wherein the step of analyzing the defect to determine the category of the defect comprises:
Wherein the category is determined based on the presence and absence of the defect, and if the cause of the defect does not exist and a defect occurrence point exists, the defect is classified into a fourth category,
Wherein generating the defect tracking graph based on the category comprises:
Characterized in that it detects the occurrence of an integer overflow, adds a defect report for the operational fault causing the integer overflow, and adds a connection line indicating the flow of data and the flow of control from the point of occurrence, Way.
제6항에 있어서,
상기 카테고리에 기초하여 상기 결함의 추적 그래프를 생성하는 단계는,
결함 보고를 추가하되, 상기 데이터의 흐름 및 상기 제어 흐름에 포함된 노드 중 상기 결함의 원인이 되는 연산을 수행하는 노드에 대해서, 연산이 수행되기 전후의 예상값을 보고하는 결함 보고를 추가하는 것을 특징으로 하는, 결함 추적 방법.
The method according to claim 6,
Wherein generating the defect tracking graph based on the category comprises:
Adding a defect report to the node performing an operation that causes the defect and the flow of the data and the node included in the control flow to report an expected value before and after the operation is performed A defect tracking method, characterized in.
제6항에 있어서,
상기 카테고리에 기초하여 상기 결함의 추적 그래프를 생성하는 단계는,
연결선을 추가하되, 상기 발생 지점으로부터 상기 정수형 오버플로우를 발생시키는 데이터의 생성점 및 파라미터 중 적어도 하나까지 연결되는 연결선을 추가하는 것을 특징으로 하는, 결함 추적 방법.
The method according to claim 6,
Wherein generating the defect tracking graph based on the category comprises:
Wherein a connection line is added to at least one of a generation point and a parameter of data generating the integer overflow from the generation point.
제6항에 있어서,
상기 카테고리에 기초하여 상기 결함의 추적 그래프를 생성하는 단계는,
상기 정수형 오버플로우를 발생시키는 파라미터에 대한 추적 연장을 사용자로부터 수신하면, 상기 사용자에 대하여 상기 파라미터와 연결된 하나 이상의 함수 호출 지점을 제공하고, 상기 사용자로부터 선택 받은 함수 호출 지점에 대한 결함의 추적 그래프를 생성하는 것을 특징으로 하는, 결함 추적 방법.
The method according to claim 6,
Wherein generating the defect tracking graph based on the category comprises:
Upon receipt from the user of a trace extension for a parameter that generates the integer overflow, providing one or more function call points associated with the parameter to the user, and providing a trace graph of the defect to the function call point selected by the user The defect tracking method comprising:
제1항에 기재된 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium on which a program for carrying out the method according to claim 1 is recorded. 결함 추적 장치에 의해 수행되며, 제1항에 기재된 결함 추적 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램.A computer program stored on a medium for performing a defect tracking method as claimed in claim 1, which is performed by a defect tracking device. 분석 대상이 되는 소스코드를 저장하는 저장부; 및
상기 소스코드에 기초하여 제어 흐름도를 생성하고, 상기 소스코드를 분석하여 검출된 상기 소스코드의 결함의 카테고리를 판단하되, 상기 카테고리에 기초하여 상기 결함에 대한 추적 그래프를 생성하는 제어부를 포함하는, 결함 추적 장치.
A storage unit for storing a source code to be analyzed; And
Generating a control flow chart based on the source code, analyzing the source code to determine a category of a defect of the detected source code, and generating a trace graph for the defect based on the category, Defect tracking device.
제12항에 있어서,
상기 제어부는,
상기 결함의 카테고리를 판단하되, 상기 결함의 원인 지점 및 발생 지점을 탐색하고, 상기 원인 지점 및 상기 발생 지점의 존부 및 동일 여부에 기초하여 상기 카테고리를 판단하는 것을 특징으로 하는, 결함 추적 장치.
13. The method of claim 12,
Wherein,
Wherein the category of the defect is determined by searching the cause point and the occurrence point of the defect and determining the category based on whether the cause point and the occurrence point exist or not.
KR1020170054998A 2017-04-28 2017-04-28 Method and device for defect tracking KR20180120966A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170054998A KR20180120966A (en) 2017-04-28 2017-04-28 Method and device for defect tracking

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170054998A KR20180120966A (en) 2017-04-28 2017-04-28 Method and device for defect tracking

Publications (1)

Publication Number Publication Date
KR20180120966A true KR20180120966A (en) 2018-11-07

Family

ID=64362941

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170054998A KR20180120966A (en) 2017-04-28 2017-04-28 Method and device for defect tracking

Country Status (1)

Country Link
KR (1) KR20180120966A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200086093A (en) * 2019-01-08 2020-07-16 국방과학연구소 Apparatus and method for analyzing source code of concurrent program and computer readible storage medium therefor
CN114995700A (en) * 2022-06-21 2022-09-02 岭澳核电有限公司 Point inspection method and device for small defects, computer equipment and storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200086093A (en) * 2019-01-08 2020-07-16 국방과학연구소 Apparatus and method for analyzing source code of concurrent program and computer readible storage medium therefor
CN114995700A (en) * 2022-06-21 2022-09-02 岭澳核电有限公司 Point inspection method and device for small defects, computer equipment and storage medium

Similar Documents

Publication Publication Date Title
US9280451B2 (en) Testing device
CN106874174B (en) Method and device for realizing interface test and function test
US10728136B2 (en) MCellblock for parallel testing of multiple devices
KR20200037602A (en) Apparatus and method for selecting artificaial neural network
CN107038194B (en) Page jump method and device
RU2649945C2 (en) Method for improving touch recognition and electronic device thereof
CN110609686A (en) Data system generation method and device, computer equipment and storage medium
WO2019001318A1 (en) Resource optimization and updating method, server, and device
KR20180120966A (en) Method and device for defect tracking
US10025697B2 (en) Generation of automated unit tests for a controller layer system and method
US11055209B2 (en) Application analysis with flexible post-processing
US10558650B2 (en) Enhanced batch updates on records and related records system and method
WO2024078348A1 (en) Method and apparatus for processing registry operation in application porting environment, and medium
KR102116395B1 (en) Apparatus and method for testing application
KR101767481B1 (en) Method and device for analyzing program
US8719704B2 (en) Seamless integration of additional functionality into enterprise software without customization or apparent alteration of same
CN106708705B (en) Terminal background process monitoring method and system
WO2015039585A1 (en) Method and device for testing software reliability
US10671504B2 (en) System performance monitoring and optimization
US10592381B1 (en) Dynamic generation of custom web analytics data
CN107621903B (en) Double-touch-screen equipment and response control method thereof
US9218165B2 (en) System and method for an object instance acquirer
WO2019153986A1 (en) Application display method, application, storage medium, and electronic device
KR101996878B1 (en) Method for evaluating tool for analyzing program and apparatus thereof
KR20180119260A (en) Method and device for analyzing program