KR20180120966A - Method and device for defect tracking - Google Patents
Method and device for defect tracking Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software 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
Description
본 명세서에서 개시되는 실시예들은 결함 추적 방법 및 결함 추적 장치에 관한 것으로서, 보다 상세하게는 소스코드에서 탐지된 결함의 카테고리에 따라 결함의 발생 과정을 시각화하여 결함의 수정을 용이하게 하는 결함 추적 방법 및 결함 추적 장치에 관한 것이다.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
여기서 결함 추적 장치(100)는 프로그램 분석의 대상이 되는 프로그램의 소스코드를 저장하고, 프로그램 분석을 위한 애플리케이션을 수행할 수 있는 컴퓨팅 장치로 구현될 수 있다. Here, the
예를 들어 결함 추적 장치(100)는 애플리케이션이 설치된 전자단말기로 구현될 수 있거나 또는 서버-클라이언트 시스템으로 구현될 수 있으며, 상기 시스템은 사용자와의 인터랙션을 위한 클라이언트가 설치된 전자단말기를 포함할 수 있다. For example, the
이때 전자단말기는, 사용자와의 인터랙션이 가능한 인터페이스를 포함할 수 있는 컴퓨터나 휴대용 단말기, 텔레비전, 웨어러블 디바이스(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
이하에서는 일 실시예에 따라 결함 추적 장치(100)가 결함 추적 방법을 수행하는 과정을 자세히 설명한다.Hereinafter, a process of performing the defect tracking method by the
도 1을 참조하면, 일 실시예에 따른 결함 추적 장치(100)는 입출력부(110), 저장부(120) 및 제어부(130)를 포함할 수 있다. Referring to FIG. 1, a
입출력부(110)는 프로그램 분석에 있어서의 사용자 설정 등의 입력을 수신하기 위한 입력부와, 작업의 수행 결과 또는 결함 추적 장치(100)의 상태 등의 정보를 표시하기 위한 출력부를 포함할 수 있다. 예를 들어, 입출력부(110)는 사용자 입력을 수신하는 조작 패널(operation panel) 및 화면을 표시하는 디스플레이 패널(display panel) 등을 포함할 수 있다.The input /
구체적으로, 입력부는 키보드, 물리 버튼, 터치 스크린, 카메라 또는 마이크 등과 같이 다양한 형태의 사용자 입력을 수신할 수 있는 장치들을 포함할 수 있다. 또한, 출력부는 디스플레이 패널, 스피커 또는 헤드셋 등을 포함할 수 있다. 다만, 이에 한정되지 않고 입출력부(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 /
한편, 저장부(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
한편, 제어부(130)는 결함 추적 장치(100)가 수행하는 결함 추적 방법의 전체적인 동작을 제어하며, CPU 등과 같은 프로세서를 포함할 수 있다.Meanwhile, the
실시예에 따르면 제어부(130)는 저장부(120)에 저장된 소스코드를 분석할 수 있다. 이때 제어부(130)는 입력부를 통해 수신한 사용자 설정에 기초하여 소스코드를 분석하고, 소스코드의 분석 결과를 출력부가 출력하도록 제어할 수 있다. The
예를 들면, 제어부(130)는 소스코드의 구문구조(syntax), 흐름구조(data flow, control flow, information flow), 의미구조(semantics)를 분석하여 실행오류와 보안취약점 같은 결함을 미리 검출할 수 있다. For example, the
구체적인 실시예에 따르면 제어부(130)는 분석 대상이 되는 소스코드에 기초하여 제어 흐름도를 생성할 수 있다. 이때 제어 흐름도는 후술할 결함 추적 그래프를 생성하는 데에 기초가 될 수 있다. According to a specific embodiment, the
한편, 제어부(130)는 소스코드를 분석하는 과정에서 검출된 결함의 카테고리를 판단할 수 있다. 이때 제어부(130)는 결함의 카테고리 및 제어 흐름도에 기초하여 결함의 발생 과정을 시각화할 수 있다. 예를 들어 제어부(130)는 제어 흐름도에 기초하되, 결함의 카테고리에 따라 결함의 발생 과정을 추적하는 연결선의 추가, 노드 등에 대한 강조 색상 부여 및 결함을 설명하는 텍스트를 포함하는 결함 보고 추가 중 적어도 하나를 수행하여 결함에 대한 추적 그래프를 생성할 수 있다. Meanwhile, the
관련하여 제어부(130)는 결함의 카테고리를 판단함에 있어서, 결함의 원인 지점 및 발생 지점을 탐색하고, 원인 지점 및 발생 지점이 존재하는지 여부 및 원인 지점 및 발생 지점이 동일한지 여부에 기초하여 카테고리를 판단할 수 있다. 이때 카테고리를 판단함으로써 결함의 원인을 예측하고 보다 빠르게 결함 추적 및 그래프 생성을 수행할 수 있다. In relation to the determination of the category of the defect, the
예를 들어, 제어부(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
이 경우 제어부(130)는 제어 흐름도의 결함 발생 지점에 결함을 설명하는 결함 보고를 추가할 수 있다. 또한 결함 발생 지점에 강조 색상을 부여함으로써 결함을 시각화할 수 있다.In this case, the
또한 제어부(130)는 결함의 원인 지점은 존재하나, 결함의 발생 지점은 존재하지 않으면, 이때의 결함을 제2카테고리로 분류할 수 있다. 이와 같은 결함은 부적절한 자원 해제 결함을 포함할 수 있다. ‘부적절한 자원 해제 결함'의 경우는 자원을 할당하였으나 해당 자원의 해제를 누락하는 형태의 코드이다. 이 경우 결함의 원인 지점으로 보고되는 것은 '자원을 할당하는 위치'이지만, 해당 자원 할당이 왜 결함이 되는지를 알려주기 위해서는 자원의 해제가 누락되었음을 표시할 필요가 있다. Also, the
따라서 제어부(130)는 결함의 원인 자원에 대한 할당 지점 및 원인 자원에 대한 접근 불가 지점을 탐색하고, 할당 지점 및 접근 불가 지점에 대한 연결선 및 결함 보고를 추가할 수 있다. 이때 '접근 불가 지점'은 해당 함수의 끝 지점을 포함할 수 있다. Accordingly, the
예를 들어, 제어부(130)는 할당 지점에 자원이 할당되었다는 설명을 추가하고, 강조 색상을 부여할 수 있다. 또한, 제어부(130)는 할당 지점부터 접근 불가 지점까지의 제어 흐름을 연결하는 연결선을 추가할 수 있고, 연결선에 대하여 자원 해제가 누락되었다는 결함 보고를 추가할 수 있다. 또한, 제어부(130)는 제어 흐름의 중간 노드들에 강조 색상을 부여할 수 있다. For example, the
한편, 제어부(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
이때 제어부(130)는 원인 지점 및 발생 지점에 대한 연결선을 추가할 수 있다. 관련하여 원인 지점 및 발생 지점에 대한 연결선은 데이터 흐름 및 제어 흐름 중 적어도 하나를 표시하는 연결선을 포함할 수 있다. At this time, the
또한, 제어부(130)는 결함의 원인인 외부 입력에 대한 결함 보고 및 외부 입력의 조작 처리에 대한 보고를 추가할 수 있다. 예를 들어 제어부(130)는 원인 지점에 대하여, 결함이 외부 입력으로 인한 것임을 설명하는 결함 보고를 추가할 수 있다. 또한, 제어부(130)는 연결선에 대하여, 외부 입력의 SQL 조작에 대한 처리가 없음을 설명하는 결함 보고를 추가할 수 있다. 이때 SQL 조작에 대한 처리란, SQL 명령을 함수에 적용하기 전에 수행되어야 할 검사 등을 포함할 수 있다. 그리고 제어부(130)는 발생 지점에 대하여, SQL 조작을 포함할 수 있는 외부 입력이 전달되었음을 설명하는 결함 보고를 추가하고, 발생 지점에 강조 색상을 부여할 수 있다. In addition, the
한편, 제어부(130)는 결함의 원인 지점은 존재하지 않고, 결함의 발생 지점만이 존재하는 것으로 판단되면, 이때의 결함을 제4카테고리로 분류할 수 있다. 실시예에 따르면 제4카테고리의 결함의 경우 정수형 오버플로우 결함을 포함할 수 있다. 정수형 오버플로우 결함은, 정수형 데이터의 연산 과정에서 정수 데이터 타입의 범위를 벗어나면서 발생하는 결함이다. 이 경우 값의 변화 자체가 결함의 원인이 되므로, 결함이 발생하는 지점은 해당 연산의 결과가 발생하는 지점으로 명확하지만, 원인이 되는 지점은 명확하게 판단되지 않을 수 있다.On the other hand, if it is determined that there is no defective point and the defective point only exists, the
이때 제어부(130)는 정수형 오버플로우의 발생을 탐지하고, 정수형 오버플로우를 발생시키는 연산 결함에 대한 결함 보고를 추가할 수 있다. 예를 들어 제어부(130)는 발생 지점에 대하여, 연산의 결과로 정수형 오버플로우가 발생하였음을 설명하는 결함 보고를 추가하고, 강조 색상을 부여할 수 있다. At this time, the
또한, 제어부(130)는 발생 지점으로부터 데이터의 흐름 및 제어 흐름에 대한 연결선을 추가할 수 있다. 즉, 발생 지점으로부터 데이터의 흐름 및 제어 흐름을 역순으로 따라가는 연결선을 추가함으로써 결함의 발생 과정을 시각화할 수 있다. 이때 제어부(130)는, 상기 정수형 오버플로우를 발생시키는 데이터의 생성점 및 파라미터 중 적어도 하나까지 연결되는 연결선을 추가할 수 있다. 가령 제어부(130)는 결함의 원인이 되는 데이터의 생성점이 함수 내에 있는 경우 데이터의 생성점까지 연결하는 연결선을 추가할 수 있으며, 결함의 원인이 되는 데이터의 생성점이 함수 외에 있고, 파라미터를 통해 전달되는 경우 파라미터까지 연결하는 연결선을 추가할 수 있다. Further, the
또한 제어부(130)는 데이터의 흐름 및 제어 흐름의 중간 노드들 중 연산에 관여하는 노드, 즉 값의 변화에 관여하는 노드에 대해서, 해당 노드의 연산이 수행되기 전후의 예상값을 보고하는 결함 보고를 추가할 수 있다. 이때 값의 변화가 발생하는 부분의 노드 및 연결선에 대하여 강조 색상 등의 강조 효과를 부여할 수 있다. In addition, the
이와 관련하여 제어부(130)는 보다 효과적인 결함 추적을 제공하기 위하여 추적 연장을 제공할 수 있다. 실시예에 따르면, 제어부(130)는 추적 연장 버튼을 사용자에게 제공하고, 추적 연장 버튼에 대한 입력을 수신함으로써 추적 연장을 제공할 수 있다. 가령, 제어부(130)는 결함의 발생에 관여하는 파라미터의 인근에 추적 연장 버튼을 표시하고, 추적 연장 버튼에 대한 입력을 수신하면, 파라미터와 연결된 함수를 호출하는 지점을 제공하여 사용자로 하여금 선택할 수 있도록 하고, 사용자로부터 선택 받은 호출 지점에서 다시 상술한 제4카테고리 결함에 대한 결함 추적 그래프를 생성하여 제공할 수 있다. In this regard, the
상술한 바와 같이 결함 추적 장치(100)는 제어 흐름도에 기초하여 결함 추적 그래프를 생성함에 있어서, 데이터 흐름, 제어 흐름 및 함수 호출 중 적어도 하나를 표시할 수 있으며, 이때 연결함 추적 그래프에 포함되는 연결선은 데이터 흐름, 제어 흐름 및 함수 호출을 필요에 따라 혼합 및 중복(polymorphic)하여 표시할 수 있다. 이에 따라 사용자는 결함의 발생 원인 및 발생 과정을 직관적으로 판단할 수 있게 되므로 소스코드 수정에 있어서 시간을 단축하고 노력을 아낄 수 있다. As described above, the
도 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
도 2를 참조하면, 결함 추적 장치(100)는 분석의 대상인 소스코드에 기초하여 제어 흐름도를 생성할 수 있다(S21). 또한 결함 추적 장치(100)는 소스코드를 분석하여 결함을 검출하고(S22), 결함을 분석하여 결함의 카테고리를 판단할 수 있다(S23). 그리고 결함 추적 장치(100)는 카테고리 및 제어흐름도에 기초하여 결함에 대한 추적 그래프를 생성할 수 있다(S24). Referring to FIG. 2, the
실시예에 따르면 결함 추적 장치(100)는 결함을 분석하여 결함의 카테고리를 판단함에 있어서(S23), 결함의 원인 지점 및 발생 지점을 탐색하고, 원인 지점 및 발생 지점의 존부 및 동일 여부에 기초하여 카테고리를 판단할 수 있다. According to the embodiment, the
관련한 실시예에 따르면 결함 추적 장치(100)는 결함의 원인 지점 및 발생 지점의 존부 및 동일 여부에 기초하여 카테고리를 판단하되, 결함의 원인 지점 및 발생 지점이 존재하고, 원인 지점 및 발생 지점이 동일하면, 결함을 제1카테고리로 분류할 수 있다. 이 경우 결함 추적 장치(100)는, 결함의 추적 그래프를 생성함에 있어서(S24), 발생 지점에 결함 보고를 추가할 수 있다. According to the related embodiment, the
또한 결함 추적 장치(100)는 결함의 원인 지점 및 발생 지점의 존부 및 동일 여부에 기초하여 상기 카테고리를 판단하되, 결함의 원인 지점이 존재하고, 결함의 발생 지점이 존재하지 않으면, 결함을 제2카테고리로 분류할 수 있다. 이 경우 결함 추적 장치(100)는, 결함의 추적 그래프를 생성함에 있어서(S24), 결함의 원인 자원에 대한 할당 지점 및 원인 자원에 대한 접근 불가 지점을 탐색하고, 할당 지점 및 접근 불가 지점에 대한 연결선 및 결함 보고를 추가할 수 있다. In addition, the
한편, 결함 추적 장치(100)는 결함의 원인 지점 및 발생 지점의 존부 및 동일 여부에 기초하여 카테고리를 판단하되, 결함의 원인 지점 및 발생 지점이 존재하고, 원인 지점 및 발생 지점이 동일하지 않으면, 결함을 제3카테고리로 분류할 수 있다. 이 경우 결함 추적 장치(100)는, 결함의 추적 그래프를 생성함에 있어서(S24), 원인 지점 및 발생 지점에 대한 연결선을 추가하고, 결함의 원인인 외부 입력에 대한 결함 보고 및 외부 입력의 조작 처리에 대한 결함 보고를 추가할 수 있다. On the other hand, the
그리고 결함 추적 장치(100)는 결함의 원인 지점 및 발생 지점의 존부 및 동일 여부에 기초하여 카테고리를 판단하되, 결함의 원인 지점이 존재하지 않고, 결함의 발생 지점이 존재하면, 결함을 제4카테고리로 분류할 수 있다. 이 경우 결함 추적 장치(100)는, 결함의 추적 그래프를 생성함에 있어서(S24), 정수형 오버플로우의 발생을 탐지하고, 정수형 오버플로우를 발생시키는 연산 결과에 대한 결함 보고를 추가하고, 발생 지점으로부터 데이터의 흐름 및 제어 흐름을 표시하는 연결선을 추가할 수 있다. Then, the
이때 결함 추적 장치(100)는 결함 보고를 추가하되, 데이터의 흐름 및 제어 흐름에 포함된 노드 중 정수형 오버플로우에 의한 결함의 원인이 되는 연산을 수행하는 노드에 대해서, 연산이 수행되기 전후의 예상값을 보고하는 결함 보고를 추가할 수 있다. At this time, the
그리고 결함 추적 장치(100)는 연결선을 추가하되, 발생 지점으로부터 정수형 오버플로우를 발생시키는 데이터의 생성점 및 파라미터 중 적어도 하나까지 연결되는 연결선을 추가할 수 있다. The
또한 결함 추적 장치(100)는 파라미터에 대한 추적 연장을 사용자로부터 수신하면, 사용자에 대하여 파라미터와 연결된 하나 이상의 함수 호출 지점을 제공하고, 사용자로부터 선택 받은 함수 호출 지점에 대한 결함의 추적 그래프를 생성할 수 있다. When the
이상의 실시예들에서 사용되는 '~부'라는 용어는 소프트웨어 또는 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.
상기 결함을 분석하여 상기 결함의 카테고리를 판단하는 단계는,
상기 결함의 원인 지점 및 발생 지점을 탐색하고, 상기 원인 지점 및 상기 발생 지점의 존부 및 동일 여부에 기초하여 상기 카테고리를 판단하는 것을 특징으로 하는, 결함 추적 방법. 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.
상기 결함을 분석하여 상기 결함의 카테고리를 판단하는 단계는,
상기 존부 및 상기 동일 여부에 기초하여 상기 카테고리를 판단하되, 상기 결함의 원인 지점 및 발생 지점이 존재하고, 상기 원인 지점 및 상기 발생 지점이 동일하면, 상기 결함을 제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카테고리로 분류하는 것을 특징으로 하고,
상기 카테고리에 기초하여 상기 결함의 추적 그래프를 생성하는 단계는,
상기 결함의 원인 자원에 대한 할당 지점 및 상기 원인 자원에 대한 접근 불가 지점을 탐색하고, 상기 할당 지점 및 상기 접근 불가 지점에 대한 연결선 및 결함 보고를 추가하는 것을 특징으로 하는, 결함 추적 방법.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.
상기 결함을 분석하여 상기 결함의 카테고리를 판단하는 단계는,
상기 존부 및 상기 동일 여부에 기초하여 상기 카테고리를 판단하되, 상기 결함의 원인 지점 및 발생 지점이 존재하고, 상기 원인 지점 및 상기 발생 지점이 동일하지 않으면, 상기 결함을 제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.
상기 결함을 분석하여 상기 결함의 카테고리를 판단하는 단계는,
상기 존부 및 상기 동일 여부에 기초하여 상기 카테고리를 판단하되, 상기 결함의 원인 지점이 존재하지 않고, 상기 결함의 발생 지점이 존재하면, 상기 결함을 제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.
상기 카테고리에 기초하여 상기 결함의 추적 그래프를 생성하는 단계는,
결함 보고를 추가하되, 상기 데이터의 흐름 및 상기 제어 흐름에 포함된 노드 중 상기 결함의 원인이 되는 연산을 수행하는 노드에 대해서, 연산이 수행되기 전후의 예상값을 보고하는 결함 보고를 추가하는 것을 특징으로 하는, 결함 추적 방법. 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.
상기 카테고리에 기초하여 상기 결함의 추적 그래프를 생성하는 단계는,
연결선을 추가하되, 상기 발생 지점으로부터 상기 정수형 오버플로우를 발생시키는 데이터의 생성점 및 파라미터 중 적어도 하나까지 연결되는 연결선을 추가하는 것을 특징으로 하는, 결함 추적 방법. 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.
상기 카테고리에 기초하여 상기 결함의 추적 그래프를 생성하는 단계는,
상기 정수형 오버플로우를 발생시키는 파라미터에 대한 추적 연장을 사용자로부터 수신하면, 상기 사용자에 대하여 상기 파라미터와 연결된 하나 이상의 함수 호출 지점을 제공하고, 상기 사용자로부터 선택 받은 함수 호출 지점에 대한 결함의 추적 그래프를 생성하는 것을 특징으로 하는, 결함 추적 방법. 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:
상기 소스코드에 기초하여 제어 흐름도를 생성하고, 상기 소스코드를 분석하여 검출된 상기 소스코드의 결함의 카테고리를 판단하되, 상기 카테고리에 기초하여 상기 결함에 대한 추적 그래프를 생성하는 제어부를 포함하는, 결함 추적 장치.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.
상기 제어부는,
상기 결함의 카테고리를 판단하되, 상기 결함의 원인 지점 및 발생 지점을 탐색하고, 상기 원인 지점 및 상기 발생 지점의 존부 및 동일 여부에 기초하여 상기 카테고리를 판단하는 것을 특징으로 하는, 결함 추적 장치.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.
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)
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 |
-
2017
- 2017-04-28 KR KR1020170054998A patent/KR20180120966A/en unknown
Cited By (2)
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 |