KR20190020363A - Method and apparatus for analyzing program by associating dynamic analysis with static analysis - Google Patents

Method and apparatus for analyzing program by associating dynamic analysis with static analysis Download PDF

Info

Publication number
KR20190020363A
KR20190020363A KR1020170105209A KR20170105209A KR20190020363A KR 20190020363 A KR20190020363 A KR 20190020363A KR 1020170105209 A KR1020170105209 A KR 1020170105209A KR 20170105209 A KR20170105209 A KR 20170105209A KR 20190020363 A KR20190020363 A KR 20190020363A
Authority
KR
South Korea
Prior art keywords
url
url address
issue
static
dynamic
Prior art date
Application number
KR1020170105209A
Other languages
Korean (ko)
Other versions
KR102021383B1 (en
Inventor
진민식
조만기
Original Assignee
주식회사 스패로우
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 스패로우 filed Critical 주식회사 스패로우
Priority to KR1020170105209A priority Critical patent/KR102021383B1/en
Publication of KR20190020363A publication Critical patent/KR20190020363A/en
Application granted granted Critical
Publication of KR102021383B1 publication Critical patent/KR102021383B1/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/3668Software testing
    • G06F11/3672Test management

Abstract

Discloses is a method for analyzing program by associating dynamic analysis with static analysis. The method for analyzing program by associating dynamic analysis with static analysis includes: obtaining a static issue including the location of the defective source code, as a result of performing a static analysis on the source code of the web application; analyzing the source code according to the location of the source code to obtain at least one first Uniform Resource Locator (URL) address mapped with the static issue; obtaining a dynamic issue that includes at least one second URL address as a result of performing a dynamic analysis on the web application; and determining an association issue between the dynamic issue and the static issue by matching the at least one first URL address and the at least one second URL address to each other. Therefore, software errors can be corrected more accurately and quickly by correlating the defects due to dynamic analysis and static analysis.

Description

동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치{METHOD AND APPARATUS FOR ANALYZING PROGRAM BY ASSOCIATING DYNAMIC ANALYSIS WITH STATIC ANALYSIS}[0001] METHOD AND APPARATUS FOR ANALYZING PROGRAM BY ASSOCIATING DYNAMIC ANALYSIS WITH STATIC ANALYSIS [0002]

본 발명은 동적 분석과 정적 분석을 연계한 프로그램 분석 방법 및 장치에 관한 것으로, 더욱 상세하게는 정적 분석에서 URL을 추가로 파악하고, 파악된 URL을 기초로 동적 분석과 연계시킴으로써, 프로그램을 효율적으로 분석하고 오류를 검출하기 위한 방법 및 장치에 관한 것이다.The present invention relates to a program analysis method and apparatus that link dynamic analysis and static analysis, and more particularly, to a method and apparatus for analyzing a program efficiently by analyzing a URL in a static analysis and linking it with dynamic analysis based on the identified URL And to a method and apparatus for detecting an error.

소프트웨어의 결함(또는 오류)를 검출하는 테스트 방법에는 정적 분석과 동적 분석이 있다.Test methods to detect defects (or errors) in software include static analysis and dynamic analysis.

여기서, 정적 분석은 소프트웨어를 실행시키지 않고 결함을 검출하는 테스트 방법으로서, 소프트웨어 오류에 대한 기준을 정하고 검사 결과와 기준을 비교해 오류를 검출하는 방식이다. 예를 들어, 정적 분석은 소스 코드를 대상으로 잠재적인 구문 결함, 의미 결함 등을 검출할 수 있다.Here, static analysis is a test method for detecting defects without executing software, and is a method for determining a standard for a software error and comparing the test result with a reference to detect an error. For example, static analysis can detect potential syntactic defects, semantic defects, etc., in the source code.

이때, 정적 분석은 그 분석 결과로서 소스 코드에서 결함이 있는 위치를 파악할 수 있으나, 결함을 유발하는 테스트 케이스를 파악하기 어려운 문제가 있다.At this time, the static analysis can identify the defective position in the source code as the analysis result, but there is a problem that it is difficult to grasp the test case that causes the defect.

한편, 동적 분석은 소프트웨어를 직접 실행하여 실행 과정에 존재하는 결함을 검출해내는 테스트 방법으로, 특정 데이터를 소프트웨어에 입력한 후 실제 결과값과 기대했던 결과값이 일치하는지 여부를 판단하는 방식이다.On the other hand, dynamic analysis is a test method to detect defects existing in the execution process by directly executing the software. It is a method to determine whether the actual result value matches the expected result value after inputting the specific data into the software.

이때, 동적 분석은 그 분석 결과로서 소프트웨어의 결함을 유발할 수 있는 테스트 케이스를 생성하는데, 소프트웨어의 결함이 발생한 소스 코드 위치를 파악하기 어려워 결함을 신속하게 수정하기 어렵다.At this time, dynamic analysis generates a test case that can cause software defects as a result of analysis, and it is difficult to quickly identify defects due to difficulty in locating the source code where a software defect occurs.

따라서, 동적 분석과 정적 분석을 연계하여 소프트웨어의 결함을 더 용이하게 파악하고 수정할 수 있는 방안이 필요한 실정이다.Therefore, there is a need for a way to more easily grasp and fix software defects by linking dynamic analysis with static analysis.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법을 제공하는 데 있다.In order to solve the above problems, an object of the present invention is to provide a program analyzing method that combines static analysis and dynamic analysis.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치를 제공하는 데 있다.Another object of the present invention is to provide a program analyzing apparatus that combines static analysis and dynamic analysis.

상기 목적을 달성하기 위한 본 발명의 일 측면은, 프로그램 분석 장치에 의해 수행되는 정적 분석과 동적 분석을 연계한 프로그램 분석 방법을 제공한다.According to an aspect of the present invention, there is provided a program analyzing method that correlates static analysis and dynamic analysis performed by a program analyzing apparatus.

여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계, 상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계, 상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계 및 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계를 포함할 수 있다.Here, the program analyzing method that combines the static analysis and the dynamic analysis includes a step of obtaining a static issue including the location of the defective source code as a result of performing a static analysis on the source code of the web application, Analyzing the source code according to the at least one second URL to obtain at least one first Uniform Resource Locator (URL) address mapped with the static issue; Obtaining a dynamic issue including an address and matching the at least one first URL address with the at least one second URL address to determine an association issue between the dynamic issue and the static issue can do.

여기서, 상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계는, 상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 적어도 하나로 분류하는 단계, 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계 및 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.The obtaining of the at least one first uniform resource locator (URL) address may include classifying the source code according to the location of the source code into at least one of a controller code and a view code , Obtaining a basic URL address using the classified code, and processing the basic URL address to obtain the first URL address.

여기서, 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계는, 상기 웹 애플리케이션의 설정 파일을 분석하여 상기 기본 URL 주소와 관계된 프리픽스 URL(prefix URL)과 서픽스 URL(suffix URL)을 확인하는 단계 및 상기 기본 URL에서 상기 프리픽스 URL을 제거하고, 상기 서픽스 URL을 부가하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.Herein, the step of processing the basic URL address to obtain the first URL address may include analyzing a configuration file of the web application to extract a prefix URL (prefix URL) and a suffix URL (suffix URL) related to the basic URL address And removing the prefix URL from the base URL and adding the suffix URL to obtain the first URL address.

여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계 및 상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.The step of acquiring a basic URL address using the classified code may further include acquiring first additional information included in the controller code by analyzing the controller code or acquiring second additional information included in the controller code, Obtaining the additional information, and obtaining the basic URL address from the first additional information or the second additional information.

여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 뷰 코드에 대한 파일 경로를 획득하는 단계 및 상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.The step of obtaining the basic URL address using the classified code may include obtaining a file path for the view code and processing the file path to obtain the basic URL address.

여기서, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계는, 상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계 및 생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함할 수 있다.The step of determining an association issue between the dynamic issue and the static issue includes the steps of generating a first candidate group by selecting at least one of the dynamic issues and the static issue, And matching the at least one first URL address with the at least one second URL address to determine the associated issue.

여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 포함할 수 있다.Here, the program analyzing method that combines the static analysis and the dynamic analysis may further include a step of analyzing a source code position of a static issue corresponding to the dynamic issue, based on a matching relationship between the at least one first URL address and the at least one second URL address May be further derived.

여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 포함할 수 있다.Here, the program analyzing method in conjunction with the static analysis and the dynamic analysis may include deriving a dynamic issue corresponding to the static issue based on a matching relationship between the at least one first URL address and the at least one second URL address As shown in FIG.

상기 목적을 달성하기 위한 본 발명의 다른 측면은, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치를 제공한다.According to another aspect of the present invention, there is provided a program analyzing apparatus that combines static analysis and dynamic analysis.

여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치는, 적어도 하나의 프로세서(processor) 및 상기 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory)를 포함할 수 있다.Here, the program analyzing apparatus in conjunction with the static analysis and the dynamic analysis includes a memory for storing instructions for instructing at least one processor and at least one processor to perform at least one step .

여기서, 상기 적어도 하나의 단계는, 웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계, 상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계, 상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계 및 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계를 포함할 수 있다.The at least one step may include obtaining a static issue including a location of a defective source code as a result of performing a static analysis on the source code of the web application, Analyzing the web application to obtain at least one first Uniform Resource Locator (URL) address mapped to the static issue; and performing a dynamic analysis on the web application to obtain at least one dynamic URL including at least one second URL address And determining an association issue between the dynamic issue and the static issue by matching the at least one first URL address and the at least one second URL address with each other.

여기서, 상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계는, 상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 하나로 분류하는 단계, 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계 및 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.The obtaining of the at least one first URL (Uniform Resource Locator) address may include: classifying the source code according to the location of the source code into one of a controller code and a view code; Obtaining a base URL address using the classified code, and processing the base URL address to obtain the first URL address.

여기서, 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계는, 상기 웹 애플리케이션의 설정 파일을 분석하여 상기 기본 URL 주소와 관계된 프리픽스 URL(prefix URL)과 서픽스 URL(suffix URL)을 확인하는 단계 및 상기 기본 URL에서 상기 프리픽스 URL을 제거하고, 상기 서픽스 URL을 부가하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.Herein, the step of processing the basic URL address to obtain the first URL address may include analyzing a configuration file of the web application to extract a prefix URL (prefix URL) and a suffix URL (suffix URL) related to the basic URL address And removing the prefix URL from the base URL and adding the suffix URL to obtain the first URL address.

여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계 및 상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.The step of acquiring a basic URL address using the classified code may further include acquiring first additional information included in the controller code by analyzing the controller code or acquiring second additional information included in the controller code, Obtaining the additional information, and obtaining the basic URL address from the first additional information or the second additional information.

여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 뷰 코드에 대한 파일 경로를 획득하는 단계 및 상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.The step of obtaining the basic URL address using the classified code may include obtaining a file path for the view code and processing the file path to obtain the basic URL address.

여기서, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계는, 상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계 및 생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함할 수 있다.The step of determining an association issue between the dynamic issue and the static issue includes the steps of generating a first candidate group by selecting at least one of the dynamic issues and the static issue, And matching the at least one first URL address with the at least one second URL address to determine the associated issue.

여기서, 상기 명령어들은 상기 적어도 하나의 프로세서가, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 수행하도록 지시할 수 있다.Wherein the instructions cause the at least one processor to derive a source code location of a static issue corresponding to the dynamic issue based on a matching relationship between the at least one first URL address and the at least one second URL address To perform further steps.

여기서, 상기 명령어들은 상기 적어도 하나의 프로세서가, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 수행하도록 지시할 수 있다.Wherein the instructions further comprise the step of the at least one processor deriving a dynamic issue corresponding to the static issue based on a matching relationship between the at least one first URL address and the at least one second URL address Can be instructed to perform.

상기와 같은 본 발명에 따른 동적 분석과 정적 분석을 연관시켜 프로그램을 분석하기 위한 방법 및 장치를 이용할 경우에는 동적 이슈(결함)과 정적 이슈(결함) 사이에 연관성이 있는 연관 이슈를 파악할 수 있다.When a method and an apparatus for analyzing a program in association with the dynamic analysis and the static analysis according to the present invention as described above are used, it is possible to grasp the related issues that are related to dynamic issues (defects) and static issues (defects).

또한, 동적 이슈가 발생한 소스 코드의 위치를 쉽게 파악할 수 있어, 동적 이슈에 따른 보수가 용이한 장점이 있다.In addition, since the location of the source code in which the dynamic issue occurs can be easily grasped, there is an advantage that it is easy to repair according to the dynamic issue.

또한, 정적 이슈에 따른 테스트 케이스를 쉽게 파악할 수 있으므로, 정적 이슈의 보수와 테스트를 편리하게 수행할 수 있다.In addition, test cases according to static issues can be easily identified, so that maintenance and testing of static issues can be performed conveniently.

도 1은 본 발명의 일 실시예에 따른 동적 분석과 정적 분석을 연관시켜 프로그램을 분석하기 위한 방법이 수행되는 전체 시스템 구성의 예시도이다.
도 2는 본 발명의 일 실시예에 따른 정적 분석과 동적 분석을 연계한 프로그램 분석 방법에 대한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 웹 애플리케이션의 소스 코드에서 URL 주소를 획득하는 과정을 구체화한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 정적 이슈와 동적 이슈 사이의 연관 이슈를 판단하는 예시도이다.
도 5는 본 발명의 일 실시예에 따른 정적 분석과 동적 분석을 연계한 프로그램 분석 장치에 대한 구성도이다.
FIG. 1 is a diagram illustrating an overall system configuration in which a method for analyzing a program is performed in association with a dynamic analysis and a static analysis according to an embodiment of the present invention.
FIG. 2 is a flowchart illustrating a program analyzing method in which static analysis and dynamic analysis are combined according to an embodiment of the present invention.
3 is a flowchart illustrating a process of obtaining a URL address in a source code of a web application according to an exemplary embodiment of the present invention.
FIG. 4 is an exemplary diagram for determining an association issue between a static issue and a dynamic issue according to an exemplary embodiment of the present invention. Referring to FIG.
FIG. 5 is a block diagram of a program analyzing apparatus that combines static analysis and dynamic analysis according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 동적 분석과 정적 분석을 연관시켜 프로그램을 분석하기 위한 방법이 수행되는 전체 시스템 구성의 예시도이다.FIG. 1 is a diagram illustrating an overall system configuration in which a method for analyzing a program is performed in association with a dynamic analysis and a static analysis according to an embodiment of the present invention.

도 1을 참조하면, 전체 시스템은 웹 애플리케이션(10) 및 웹 애플리케이션(10)의 소스 코드(11)를 대상으로 하여, 정적 분석 모듈(20), 동적 분석 모듈(30) 및 분석 장치(40) 중 적어도 하나를 포함할 수 있다.1, the entire system includes a static analysis module 20, a dynamic analysis module 30, and an analysis device 40, which target the source code 11 of the web application 10 and the web application 10, Or the like.

본 발명의 일 실시예에 따른 프로그램 분석 방법은 개발 중이거나 완성되어 구동되는 웹 애플리케이션(10) 및 그 소스 코드(11)를 대상으로 수행될 수 있다.The program analysis method according to an embodiment of the present invention may be performed on a web application 10 and its source code 11 that are being developed or completed and are running.

여기서, 정적 분석 모듈(20)은 자동으로 소스 코드를 분석하여 소스 코드 상의 결함을 검색하는 소프트웨어 모듈이거나, 소프트웨어 모듈이 구동되는 장치일 수 있다.Here, the static analysis module 20 may be a software module that automatically analyzes the source code and searches for defects on the source code, or may be a device on which the software module is run.

구체적으로 정적 분석 모듈(20)은, Null 포인터에 대해 어떤 값을 대입하거나 참조하는 결함, 함수 또는 메소드에서 생성된 데이터리소스가 반환되지 않고 종료되는 결함, 메소드에서 생성된 스트림이 닫히지 않고 종료되는 결함, 예외 처리와 관련된 결함 또는 연산자나 함수의 잘못된 사용에 따른 결함과 같이 소스 코드상에 존재하는 각종 결함이나 오류를 발견 및 분석할 수 있다. 이때, 발견되는 각종 결함이나 오류를 정적 이슈로 지칭하거나, 각종 결함이나 오류가 발생한 소스 코드의 위치 또는 소스 코드 내용을 정적 이슈로 지칭할 수도 있다. Specifically, the static analysis module 20 may be configured to detect a defect in which a value is substituted or referred to a null pointer, a defect in which a data resource generated in a function or a method is terminated without being returned, a defect in which a stream generated in the method is terminated , And can detect and analyze various defects or errors in the source code, such as defects related to exception handling or defects due to incorrect use of an operator or a function. At this time, various defects or errors found may be referred to as static issues, or the contents of the source code or the source code where various defects or errors occur may be referred to as static issues.

여기서, 동적 분석 모듈(30)은 웹 애플리케이션에 대하여 미리 설정된 각종 문자열을 URL 파라미터로 하여, 웹 애플리케이션에 웹상으로 접근하여 웹 애플리케이션을 구동시키는 소프트웨어 모듈 또는 소프트웨어 모듈이 구동되는 장치일 수 있다.Here, the dynamic analysis module 30 may be a device in which a software module or a software module that runs a web application by accessing a web application on the web using various strings set in advance for the web application as URL parameters.

구체적으로, 동적 분석 모듈(30)은 웹 애플리케이션을 동작시킴으로써 웹 애플리케이션이 오작동하거나 보안에 취약한 반응을 보이는 경우, 그러한 오작동이나 반응을 보이는 입력값 또는 테스트케이스를 생성할 수 있다. 이때, 테스트 케이스는 웹 애플리케이션에 접근하는 특정 URL 주소 및 URL 파라미터로 구성될 수 있다. 또한, 테스트 케이스는 이하에서 동적 이슈로 지칭될 수 있다.Specifically, the dynamic analysis module 30 can generate an input value or a test case showing such a malfunction or reaction when a web application malfunctions or is vulnerable to security by operating a web application. At this time, the test case may be composed of a specific URL address and a URL parameter for accessing the web application. In addition, the test case can be referred to as dynamic issue below.

여기서, 분석 장치(40)는 정적 분석 모듈(20)과 동적 분석 모듈(30) 사이를 상호 중개하여 정적 이슈와 동적 이슈를 저장할 수 있다. 또한, 분석 장치(40)는 정적 이슈와 동적 이슈 상호간을 매칭함으로써, 매칭 관계에 있는 연관 이슈를 파악할 수 있다. Here, the analysis apparatus 40 can store static issues and dynamic issues between the static analysis module 20 and the dynamic analysis module 30. In addition, the analysis apparatus 40 can identify the related issues in the matching relationship by matching the static issues with the dynamic issues.

여기서, 정적 분석 모듈(20), 동적 분석 모듈(30) 및 분석 장치(40)는 하나의 통합 분석 장치(50)로 구현될 수도 있다.Here, the static analysis module 20, the dynamic analysis module 30, and the analysis device 40 may be implemented by one integrated analysis device 50.

여기서, 분석 장치(40) 또는 통합 분석 장치(50)는, 이하에서 정적 분석과 동적 분석을 연계한 프로그램 분석 장치로 지칭될 수도 있다.Here, the analysis apparatus 40 or the integrated analysis apparatus 50 may be referred to as a program analysis apparatus in which static analysis and dynamic analysis are combined in the following.

도 2는 본 발명의 일 실시예에 따른 정적 분석과 동적 분석을 연계한 프로그램 분석 방법에 대한 흐름도이다. 도 3은 본 발명의 일 실시예에 따른 웹 애플리케이션의 소스 코드에서 URL 주소를 획득하는 과정을 구체화한 흐름도이다.FIG. 2 is a flowchart illustrating a program analyzing method in which static analysis and dynamic analysis are combined according to an embodiment of the present invention. 3 is a flowchart illustrating a process of obtaining a URL address in a source code of a web application according to an exemplary embodiment of the present invention.

도 2를 참조하면, 프로그램 분석 장치에 의해 수행되는 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계(S100), 상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계(S200), 상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계(S300) 및 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계(S400)를 포함할 수 있다.Referring to FIG. 2, a program analyzing method that links static analysis and dynamic analysis performed by the program analyzing apparatus is a static analysis of a source code of a web application. As a result of performing a static analysis on the source code of the web application, (S200) of analyzing the source code according to the location of the source code and obtaining at least one first URL (Uniform Resource Locator) address mapped with the static issue, (S300) of obtaining a dynamic issue including at least one second URL address as a result of performing a dynamic analysis on an application, and acquiring the at least one first URL address and the at least one second URL address (S400) matching the dynamic issue with the static issue.

여기서, 정적 분석이나 동적 분석은 상기 단계들에서 직접 수행될 수도 있으나, 외부의 다른 장치에서 수행될 수도 있다. 외부의 다른 장치에서 수행되는 경우에는 외부의 다른 장치로부터 정적 이슈와 동적 이슈를 수신받아 획득할 수도 있다.Here, the static analysis or the dynamic analysis may be directly performed in the above steps, but may be performed in another external device. If it is performed by another external device, it may receive and receive static issues and dynamic issues from other external devices.

여기서 도 3을 참조하면, 상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계(S200)를 좀 더 상세히 설명할 수 있다.Referring now to FIG. 3, step S200 of obtaining the at least one first URL (Uniform Resource Locator) address can be described in more detail.

구체적으로 도 3을 참조하였을 때, 상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계(S100)는, 상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 하나로 분류하는 단계(S110), 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계(S120) 및 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계(S130)를 포함할 수 있다.More specifically, referring to FIG. 3, the step (S100) of obtaining the at least one first URL (Uniform Resource Locator) address includes a step of generating a controller code and a view code (S120) of obtaining a basic URL address using the classified code (S120), and obtaining the first URL address by processing the basic URL address (S130) .

여기서, 소스 코드의 위치에 따른 소스 코드는 정적 분석 결과 결함이 있는 소스 코드의 위치상에 있는 소스 코드를 지시할 수 있다. 이때, 위치상에 있는 소스 코드는 해당 위치를 포함하는 메소드, 함수 또는 경우에 따라서는 클래스 전체를 지시할 수도 있다.Here, the source code according to the location of the source code can indicate the source code that is located at the position of the source code having a defect in the static analysis result. At this time, the source code on the location may indicate the method, function, or even the entire class, including the location.

여기서, 컨트롤러 코드는 웹 애플리케이션의 구동 및 동작을 제어하는 소스 코드 부분이고, 뷰 코드는 웹 애플리케이션에서 화면에 표시되는 웹 페이지를 구성하는 소스 코드가 될 수 있다.Here, the controller code is a part of the source code for controlling the operation and operation of the web application, and the view code can be the source code constituting the web page displayed on the screen in the web application.

여기서, 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계(S130)는, 상기 웹 애플리케이션의 설정 파일을 분석하여 상기 기본 URL 주소와 관계된 프리픽스 URL(prefix URL)과 서픽스 URL(suffix URL)을 확인하는 단계 및 상기 기본 URL에서 상기 프리픽스 URL을 제거하고, 상기 서픽스 URL을 부가하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다. 여기서, 서픽스 URL은 포스트픽스 URL(postfix URL)로 지칭될 수도 있다.Herein, the step of obtaining the first URL address by processing the basic URL address may include analyzing a configuration file of the web application to extract a prefix URL (prefix URL) related to the basic URL address and a suffix URL), removing the prefix URL from the base URL, and adding the suffix URL to obtain the first URL address. Here, the suffix URL may be referred to as a postfix URL (postfix URL).

여기서, 웹 애플리케이션은 프리픽스 URL이 아니라 서픽스 URL 에 따라 세부 동작이 결정될 수 있고, 동적 분석에 따른 테스트케이스 또한 이러한 URL을 포함하여 도출되므로, 매칭의 용이함을 위하여 프리픽스 URL을 제거할 수 있다.Here, since the Web application can determine the detailed operation according to the suffix URL instead of the prefix URL, and the test case according to the dynamic analysis is also derived including the URL, the prefix URL can be removed for the sake of matching.

여기서 도 2와 도3을 참조하면, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계(S120)는, 상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계(S122) 및 상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계(S124)를 포함할 수 있다.2 and 3, the step of acquiring a basic URL address using the classified code (S120) may include analyzing the controller code to obtain the first additional information included in the controller code, (S122) acquiring second additional information related to the controller code in a configuration file, and acquiring the basic URL address (S124) from the first additional information or the second additional information.

여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계(S120)는, 상기 뷰 코드에 대한 파일 경로를 획득하는 단계(S126) 및 상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계(S128)를 포함할 수 있다.Here, the step of acquiring a basic URL address using the classified code (S120) may include acquiring a file path for the view code (S126) and obtaining the basic URL address by processing the file path (S128).

여기서, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계(S400)는, 상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계 및 생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함할 수 있다.The step S400 of determining an association issue between the dynamic issue and the static issue includes generating a first candidate group by selecting at least one of the dynamic issues and the static issue, And determining the associated issue by matching the at least one first URL address and the at least one second URL address with each other in the candidate group.

여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 포함할 수 있다.Here, the program analyzing method that combines the static analysis and the dynamic analysis may further include a step of analyzing a source code position of a static issue corresponding to the dynamic issue, based on a matching relationship between the at least one first URL address and the at least one second URL address May be further derived.

이처럼 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출함으로써, 동적 이슈와 상응하는 소스 코드 위치를 신속히 파악하여 보수할 수 있다.By deriving the source code position of the static issue corresponding to the dynamic issue, the source code position corresponding to the dynamic issue can be quickly identified and repaired.

여기서, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법은, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 포함할 수 있다.Here, the program analyzing method in conjunction with the static analysis and the dynamic analysis may include deriving a dynamic issue corresponding to the static issue based on a matching relationship between the at least one first URL address and the at least one second URL address As shown in FIG.

즉, 정적 이슈와 대응되는 동적 이슈를 도출할 수 있기 때문에, 정적 이슈의 문제점을 해결할 때 동적 이슈에 따른 테스트케이스를 시험하여 정확히 보수되었는지 판단할 수 있다.That is, it is possible to derive a dynamic issue corresponding to a static issue, so that when a problem of a static issue is solved, a test case according to a dynamic issue can be tested to determine whether it has been correctly repaired.

도 4는 본 발명의 일 실시예에 따른 정적 이슈와 동적 이슈 사이의 연관 이슈를 판단하는 예시도이다.FIG. 4 is an exemplary diagram for determining an association issue between a static issue and a dynamic issue according to an exemplary embodiment of the present invention. Referring to FIG.

도 4를 참조하면, 정적 이슈(22)와 동적 이슈(32) 사이의 연관성이 있는 연관 이슈(42)를 파악하고, 후보군(44) 선정에 대한 것을 설명할 수 있다.Referring to FIG. 4, it is possible to grasp the association issue 42 having a relation between the static issue 22 and the dynamic issue 32, and to describe the candidate group 44 selection.

구체적으로, 정적 분석의 결과로서, 하나 이상의 정적 이슈(22)가 도출될 수 있는데, 정적 이슈(22)에는 오류나 결함이 발견된 소스 코드의 위치 정보가 각각 존재(예를 들면 org.path1.path3, org.path2.path2 등)할 수 있고, 하나의 정적 이슈에 대하여 복수의 소스 코드 위치 정보가 발견될 수 있다.More specifically, as a result of the static analysis, one or more static issues 22 can be derived, where the location information of the source code in which an error or defect is found is present in the static issue 22 (for example, org.path1.path3 , org.path2.path2, etc.), and a plurality of source code position information can be found for one static issue.

다음으로, 소스 코드의 위치 정보를 기초로 소스 코드의 위치상에 있는 소스 코드를 직접 분석함으로써, 해당 소스 코드와 관련된 URL 주소를 획득할 수 있다.Next, based on the location information of the source code, the URL address associated with the source code can be acquired by analyzing the source code directly on the location of the source code.

또한, 동적 분석의 결과로서, 하나 이상의 URL 주소들(예를 들면 url/url2 등) 이 하나 이상의 동적 이슈(32)로서 도출될 수 있다. Also, as a result of the dynamic analysis, one or more URL addresses (e.g., url / url2, etc.) may be derived as one or more dynamic issues 32. [

다음으로, URL 주소가 일치 또는 프리픽스 URL(예를 들면, http와 같은 프로토콜, www.***.com 과 같은 서버나 컴퓨터의 인터넷상 도메인 이름 등)을 제외한 부분 상호간의 일치 여부를 기초로, 일치하는 정적 이슈와 동적 이슈를 매칭시킴으로써, 매칭되는 이슈들을 연관 이슈로 지칭할 수 있다.Next, based on whether the URL addresses are matched or matched except for a prefix URL (for example, a protocol such as http, a domain name on the Internet of a server or a computer such as www. ***. Com) By matching matching static and dynamic issues, matching issues can be referred to as related issues.

한편, 연관 이슈를 파악하기 위하여 동적 이슈와 정적 이슈를 매칭시키려면 수많은 이슈들 상호간을 서로 비교해야 하기 때문에 매우 큰 연산 과정에 따른 성능 저하가 발생할 수 있다.On the other hand, matching dynamic and static issues to identify related issues can result in performance degradation due to a very large number of operations because many issues need to be compared with each other.

특히, 일반적으로 동적 이슈나 정적 이슈는 수백만개씩 발생할 수 있고, 여러 동적 이슈나 정적 이슈를 한번에 조회하는 경우가 빈번하기 때문에 더더욱 성능 저하 우려가 있다.In particular, there are concerns that performance issues may arise because dynamic and static issues can occur in millions of times, and many dynamic and static issues are often retrieved at once.

따라서, 모든 동적 이슈와 정적 이슈를 조회하는 것이 아니라, 정적 이슈와 동적 이슈 일부를 서로 묶어 하나의 후보군으로 만들고, 하나의 후보군마다 개별적으로 동적 이슈와 정적 이슈를 매칭함으로써 성능 저하를 줄일 수 있다.Therefore, instead of querying all dynamic issues and static issues, some of the static issues and dynamic issues can be grouped together into one candidate group, and performance degradation can be reduced by matching dynamic issues and static issues individually for each candidate group.

구체적으로 도 4를 참조하면, 하나의 후보군(44)으로서, 이슈 번호 1, 2인 정적 이슈와 이슈 번호 1인 동적 이슈를 포함할 수 있다. Specifically, referring to FIG. 4, one candidate group 44 may include static issues with issue numbers 1 and 2 and dynamic issues with issue number 1.

그 후, 연관 이슈를 조회시 하나의 후보군별로 매칭을 수행하여 한번에 모든 매칭이 이루어짐에 따라 발생하는 성능 저하를 방지할 수 있다.Thereafter, matching is performed for one candidate group when the related issue is inquired, thereby preventing performance degradation caused by all the matching at a time.

구체적으로 후보군이 있는 경우 조회(또는 분석) 비용은 후보군 수와 후보군 하나에 대한 조회 비용이 될 수 있다. 반면, 후보군을 구성하지 않는 경우의 조회 비용은, 다음의 수학식 1과 같을 수 있다.Specifically, if there is a candidate group, the cost of inquiry (or analysis) can be the number of candidate group and the cost of inquiry for one candidate group. On the other hand, the look-up cost when the candidate group is not constituted can be expressed by the following equation (1).

Figure pat00001
Figure pat00001

여기서, 소스코드 URL 정보는 정적 이슈에 따른 소스 코드 위치로부터 도출되는 URL 주소를 포함하는 정보일 수 있다.Here, the source code URL information may be information including a URL address derived from a source code position according to a static issue.

도 5는 본 발명의 일 실시예에 따른 정적 분석과 동적 분석을 연계한 프로그램 분석 장치에 대한 구성도이다.FIG. 5 is a block diagram of a program analyzing apparatus that combines static analysis and dynamic analysis according to an embodiment of the present invention.

도 5를 참조하면, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치(100)는, 적어도 하나의 프로세서(processor, 110) 및 상기 적어도 하나의 프로세서(110)가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory, 120)를 포함할 수 있다.Referring to FIG. 5, a program analyzing apparatus 100, which is a combination of static analysis and dynamic analysis, includes at least one processor 110, and instructions for instructing the at least one processor 110 to perform at least one step And a memory 120 for storing instructions.

여기서, 상기 적어도 하나의 단계는, 웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계, 상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계, 상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계 및 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계를 포함할 수 있다.The at least one step may include obtaining a static issue including a location of a defective source code as a result of performing a static analysis on the source code of the web application, Analyzing the web application to obtain at least one first Uniform Resource Locator (URL) address mapped to the static issue; and performing a dynamic analysis on the web application to obtain at least one dynamic URL including at least one second URL address And determining an association issue between the dynamic issue and the static issue by matching the at least one first URL address and the at least one second URL address with each other.

여기서, 상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계는, 상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 하나로 분류하는 단계, 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계 및 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.The obtaining of the at least one first URL (Uniform Resource Locator) address may include: classifying the source code according to the location of the source code into one of a controller code and a view code; Obtaining a base URL address using the classified code, and processing the base URL address to obtain the first URL address.

여기서, 상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계는, 상기 웹 애플리케이션의 설정 파일을 분석하여 상기 기본 URL 주소와 관계된 프리픽스 URL(prefix URL)과 서픽스 URL(suffix URL)을 확인하는 단계 및 상기 기본 URL에서 상기 프리픽스 URL을 제거하고, 상기 서픽스 URL을 부가하여 상기 제1 URL 주소를 획득하는 단계를 포함할 수 있다.Herein, the step of processing the basic URL address to obtain the first URL address may include analyzing a configuration file of the web application to extract a prefix URL (prefix URL) and a suffix URL (suffix URL) related to the basic URL address And removing the prefix URL from the base URL and adding the suffix URL to obtain the first URL address.

여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계 및 상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.The step of acquiring a basic URL address using the classified code may further include acquiring first additional information included in the controller code by analyzing the controller code or acquiring second additional information included in the controller code, Obtaining the additional information, and obtaining the basic URL address from the first additional information or the second additional information.

여기서, 상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는, 상기 뷰 코드에 대한 파일 경로를 획득하는 단계 및 상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계를 포함할 수 있다.The step of obtaining the basic URL address using the classified code may include obtaining a file path for the view code and processing the file path to obtain the basic URL address.

여기서, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계는, 상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계 및 생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함할 수 있다.The step of determining an association issue between the dynamic issue and the static issue includes the steps of generating a first candidate group by selecting at least one of the dynamic issues and the static issue, And matching the at least one first URL address with the at least one second URL address to determine the associated issue.

여기서, 상기 명령어들은 상기 적어도 하나의 프로세서(110)가, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 수행하도록 지시할 수 있다.Wherein the instructions cause the at least one processor (110) to generate a source code of a static artifact corresponding to the dynamic artifact based on a matching relationship between the at least one first URL address and the at least one second URL address It may be instructed to further perform the step of deriving the position.

여기서, 상기 명령어들은 상기 적어도 하나의 프로세서(110)가, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 수행하도록 지시할 수 있다.Wherein the instructions cause the at least one processor (110) to derive a dynamic issue corresponding to the static issue based on a matching relationship between the at least one first URL address and the at least one second URL address The user may be instructed to perform further steps.

여기서 정적 분석과 동적 분석을 연계한 프로그램 분석 장치(100)는 외부의 정적 분석 장치 또는 동적 분석 장치로부터 정적 분석이나 동적 분석이 수행된 결과물인 정적 이슈 또는 동적 이슈를 수신받는 통신 모듈(130)을 더 포함할 수 있다.Here, the program analyzing apparatus 100, which is a combination of the static analysis and the dynamic analysis, further includes a communication module 130 that receives a static or dynamic issue, which is the result of performing a static analysis or a dynamic analysis from an external static analysis apparatus or a dynamic analysis apparatus. .

여기서 정적 분석과 동적 분석을 연계한 프로그램 분석 장치(100)는 동적 이슈와 정적 이슈를 저장하고, 동적 이슈와 정적 이슈를 매칭한 연관 이슈를 저장하는 저장소(storage, 140)를 더 포함할 수 있다.The program analyzing apparatus 100 may include a storage 140 for storing dynamic issues and static issues and storing related issues that match the dynamic issues and the static issues.

여기서 정적 분석과 동적 분석을 연계한 프로그램 분석 장치(100)의 예를 들면, 통신 가능한 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 노트북(notebook), 스마트폰(smart phone), 태블릿 PC(tablet PC), 모바일폰(mobile phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), PDA(Personal Digital Assistant) 등일 수 있다.Examples of the program analyzing apparatus 100 in which the static analysis and the dynamic analysis are combined are a desktop computer, a laptop computer, a notebook, a smart phone, a tablet PC tablet PCs, mobile phones, smart watches, smart glasses, e-book readers, portable multimedia players (PMPs), portable gaming devices, navigation devices, digital cameras a digital audio player, a digital video recorder, a digital video player, a personal digital assistant (PDA), a personal digital assistant (PDA) Digital Assistant).

여기서 정적 분석과 동적 분석을 연계한 프로그램 분석 장치(100)는 도 2 및 3에 따른 프로그램 분석 방법 또는 그와 상응하는 방법을 수행할 수 있으며, 중복 서술은 생략하였다.Here, the program analyzing apparatus 100 that combines the static analysis and the dynamic analysis can perform the program analyzing method according to FIGS. 2 and 3 or the corresponding method, and the redundant description is omitted.

본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.The methods according to the present invention can be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the computer readable medium may be those specially designed and constructed for the present invention or may be available to those skilled in the computer software.

컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of computer-readable media include hardware devices that are specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions may include machine language code such as those produced by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate with at least one software module to perform the operations of the present invention, and vice versa.

또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있Furthermore, the above-described method or apparatus may be implemented by combining all or a part of its configuration or function, or may be implemented separately

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that

Claims (16)

프로그램 분석 장치에 의해 수행되는 정적 분석과 동적 분석을 연계한 프로그램 분석 방법에서,
웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계;
상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계;
상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계; 및
상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
In a program analysis method that links static analysis and dynamic analysis performed by a program analyzing apparatus,
Obtaining a static issue including a location of the defective source code as a result of performing a static analysis on the source code of the web application;
Analyzing the source code according to the location of the source code to obtain at least one first Uniform Resource Locator (URL) address mapped with the static issue;
Obtaining a dynamic issue that includes at least one second URL address as a result of performing a dynamic analysis on the web application; And
Determining a link issue between the dynamic issue and the static issue by matching the at least one first URL address and the at least one second URL address to each other; Way.
청구항 1에서,
상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계는,
상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 하나로 분류하는 단계;
분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계; 및
상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
In claim 1,
Wherein obtaining the at least one first Uniform Resource Locator (URL)
Classifying the source code according to the position of the source code into one of a controller code and a view code;
Obtaining a basic URL address using the classified code; And
And processing the basic URL address to obtain the first URL address.
청구항 2에서,
상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계는,
상기 웹 애플리케이션의 설정 파일을 분석하여 상기 기본 URL 주소와 관계된 프리픽스 URL(prefix URL)과 서픽스 URL(suffix URL)을 확인하는 단계; 및
상기 기본 URL에서 상기 프리픽스 URL을 제거하고, 상기 서픽스 URL을 부가하여 상기 제1 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
In claim 2,
Wherein the step of processing the base URL address to obtain the first URL address comprises:
Analyzing a configuration file of the web application and confirming a prefix URL (prefix URL) and a suffix URL (suffix URL) related to the basic URL address; And
And removing the prefix URL from the base URL and adding the suffix URL to obtain the first URL address.
청구항 3에서,
상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는,
상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계; 및
상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
In claim 3,
Wherein the step of acquiring a basic URL address using the classified code comprises:
Analyzing the controller code to obtain first additional information included in the controller code or acquiring second additional information related to the controller code in the configuration file; And
And obtaining the basic URL address from the first additional information or the second additional information.
청구항 3에서,
상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는,
상기 뷰 코드에 대한 파일 경로를 획득하는 단계; 및
상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
In claim 3,
Wherein the step of acquiring a basic URL address using the classified code comprises:
Obtaining a file path for the view code; And
And processing the file path to obtain the basic URL address.
청구항 1에서,
상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계는,
상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계; 및
생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
In claim 1,
Wherein the step of determining an association issue between the dynamic issue and the static issue comprises:
Selecting at least one of the dynamic issues and the static issues to generate a first candidate group; And
And in the generated first candidate group, matching the at least one first URL address and the at least one second URL address to determine the associated issue, and analyzing the program in conjunction with static analysis and dynamic analysis Way.
청구항 1에서,
상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
In claim 1,
Further comprising deriving a source code location of a static issue corresponding to the dynamic issue based on a matching relationship between the at least one first URL address and the at least one second URL address, .
청구항 1에서,
상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 방법.
In claim 1,
Further comprising: deriving a dynamic issue corresponding to the static issue based on a matching relationship between the at least one first URL address and the at least one second URL address, Way.
적어도 하나의 프로세서(processor); 및
상기 적어도 하나의 프로세서가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory)를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치로서,
상기 적어도 하나의 단계는,
웹 애플리케이션의 소스 코드에 대한 정적 분석을 수행한 결과로, 결함이 있는 소스 코드의 위치를 포함한 정적 이슈를 획득하는 단계;
상기 소스 코드의 위치에 따른 소스 코드를 분석하여, 상기 정적 이슈와 매핑되는 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계;
상기 웹 애플리케이션에 대하여 동적 분석을 수행한 결과로, 적어도 하나의 제2 URL 주소를 포함하는 동적 이슈를 획득하는 단계; 및
상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
At least one processor; And
And a memory for storing instructions instructing the at least one processor to perform at least one step, the apparatus comprising:
Wherein the at least one step comprises:
Obtaining a static issue including a location of the defective source code as a result of performing a static analysis on the source code of the web application;
Analyzing the source code according to the location of the source code to obtain at least one first Uniform Resource Locator (URL) address mapped with the static issue;
Obtaining a dynamic issue that includes at least one second URL address as a result of performing a dynamic analysis on the web application; And
Determining a link issue between the dynamic issue and the static issue by matching the at least one first URL address and the at least one second URL address to each other; Device.
청구항 9에서,
상기 적어도 하나의 제1 URL(Uniform Resource Locator) 주소를 획득하는 단계는,
상기 소스 코드의 위치에 따른 소스 코드를 컨트롤러 코드(controller code)와 뷰 코드(view code) 중 하나로 분류하는 단계;
분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계; 및
상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
In claim 9,
Wherein obtaining the at least one first Uniform Resource Locator (URL)
Classifying the source code according to the position of the source code into one of a controller code and a view code;
Obtaining a basic URL address using the classified code; And
And processing the basic URL address to obtain the first URL address.
청구항 10에서,
상기 기본 URL 주소를 가공하여 상기 제1 URL 주소를 획득하는 단계는,
상기 웹 애플리케이션의 설정 파일을 분석하여 상기 기본 URL 주소와 관계된 프리픽스 URL(prefix URL)과 서픽스 URL(suffix URL)을 확인하는 단계; 및
상기 기본 URL에서 상기 프리픽스 URL을 제거하고, 상기 서픽스 URL을 부가하여 상기 제1 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
In claim 10,
Wherein the step of processing the base URL address to obtain the first URL address comprises:
Analyzing a configuration file of the web application and confirming a prefix URL (prefix URL) and a suffix URL (suffix URL) related to the basic URL address; And
And removing the prefix URL from the base URL and adding the suffix URL to obtain the first URL address.
청구항 11에서,
상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는,
상기 컨트롤러 코드를 분석하여 상기 컨트롤러 코드에 포함된 제1 부가 정보를 획득하거나, 상기 설정 파일에서 상기 컨트롤러 코드와 관련있는 제2 부가 정보를 획득하는 단계; 및
상기 제1 부가 정보 또는 상기 제2 부가 정보에서 상기 기본 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
In claim 11,
Wherein the step of acquiring a basic URL address using the classified code comprises:
Analyzing the controller code to obtain first additional information included in the controller code or acquiring second additional information related to the controller code in the configuration file; And
And acquiring the basic URL address from the first additional information or the second additional information.
청구항 11에서,
상기 분류된 코드를 이용하여 기본 URL 주소를 획득하는 단계는,
상기 뷰 코드에 대한 파일 경로를 획득하는 단계; 및
상기 파일 경로를 가공하여 상기 기본 URL 주소를 획득하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
In claim 11,
Wherein the step of acquiring a basic URL address using the classified code comprises:
Obtaining a file path for the view code; And
And processing the file path to obtain the base URL address.
청구항 9에서,
상기 동적 이슈와 상기 정적 이슈 사이의 연관 이슈를 판단하는 단계는,
상기 동적 이슈 중 적어도 하나와 상기 정적 이슈 중 적어도 하나를 선별하여 제1 후보군을 생성하는 단계; 및
생성된 제1 후보군 내에서, 상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소를 서로 매칭하여, 상기 연관 이슈를 판단하는 단계를 포함하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
In claim 9,
Wherein the step of determining an association issue between the dynamic issue and the static issue comprises:
Selecting at least one of the dynamic issues and the static issues to generate a first candidate group; And
And in the generated first candidate group, matching the at least one first URL address and the at least one second URL address to determine the associated issue, and analyzing the program in conjunction with static analysis and dynamic analysis Device.
청구항 9에서,
상기 명령어들은 상기 적어도 하나의 프로세서가,
상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 동적 이슈와 대응되는 정적 이슈의 소스 코드 위치를 도출하는 단계를 더 수행하도록 지시하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
In claim 9,
Wherein the instructions cause the at least one processor to:
Further comprising deriving a source code location of a static issue corresponding to the dynamic issue based on a matching relationship between the at least one first URL address and the at least one second URL address, A program analyzer that combines dynamic analysis.
청구항 9에서,
상기 명령어들은 상기 적어도 하나의 프로세서가,
상기 적어도 하나의 제1 URL 주소와 상기 적어도 하나의 제2 URL 주소의 매칭 관계를 기초로, 상기 정적 이슈와 대응되는 동적 이슈를 도출하는 단계를 더 수행하도록 지시하는, 정적 분석과 동적 분석을 연계한 프로그램 분석 장치.
In claim 9,
Wherein the instructions cause the at least one processor to:
Further comprising: deriving a dynamic issue corresponding to the static issue based on a matching relationship between the at least one first URL address and the at least one second URL address, Program analyzing device.
KR1020170105209A 2017-08-21 2017-08-21 Method and apparatus for analyzing program by associating dynamic analysis with static analysis KR102021383B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170105209A KR102021383B1 (en) 2017-08-21 2017-08-21 Method and apparatus for analyzing program by associating dynamic analysis with static analysis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170105209A KR102021383B1 (en) 2017-08-21 2017-08-21 Method and apparatus for analyzing program by associating dynamic analysis with static analysis

Publications (2)

Publication Number Publication Date
KR20190020363A true KR20190020363A (en) 2019-03-04
KR102021383B1 KR102021383B1 (en) 2019-09-16

Family

ID=65759999

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170105209A KR102021383B1 (en) 2017-08-21 2017-08-21 Method and apparatus for analyzing program by associating dynamic analysis with static analysis

Country Status (1)

Country Link
KR (1) KR102021383B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230028560A1 (en) * 2021-07-23 2023-01-26 Hewlett Packard Enterprise Development Lp Identification of diagnostic messages corresponding to exceptions

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102416292B1 (en) 2021-01-29 2022-07-01 숭실대학교 산학협력단 Dynamic analysis method for android applications, recording medium and device for performing the method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031584A (en) * 1996-07-16 1998-02-03 Toshiba Corp Automatic device for verification of software
JP2015503789A (en) * 2011-12-30 2015-02-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Computer-implemented methods, computer program products, and systems for targeted security testing
KR20170068814A (en) * 2015-12-10 2017-06-20 한국전자통신연구원 Apparatus and Method for Recognizing Vicious Mobile App

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031584A (en) * 1996-07-16 1998-02-03 Toshiba Corp Automatic device for verification of software
JP2015503789A (en) * 2011-12-30 2015-02-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Computer-implemented methods, computer program products, and systems for targeted security testing
KR20170068814A (en) * 2015-12-10 2017-06-20 한국전자통신연구원 Apparatus and Method for Recognizing Vicious Mobile App

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230028560A1 (en) * 2021-07-23 2023-01-26 Hewlett Packard Enterprise Development Lp Identification of diagnostic messages corresponding to exceptions
US11874688B2 (en) * 2021-07-23 2024-01-16 Hewlett Packard Enterprise Development Lp Identification of diagnostic messages corresponding to exceptions

Also Published As

Publication number Publication date
KR102021383B1 (en) 2019-09-16

Similar Documents

Publication Publication Date Title
US10552301B2 (en) Completing functional testing
WO2017036335A1 (en) Code submitting method and device
US9442821B2 (en) System and method to classify automated code inspection services defect output for defect analysis
US20170192880A1 (en) Defect prediction
US9038027B2 (en) Systems and methods for identifying software performance influencers
US8302088B2 (en) Analysis of effects of a software maintenance patch on configuration items of a CMDB
US10049031B2 (en) Correlation of violating change sets in regression testing of computer software
CN101286119A (en) Method for determining function point changing through code analysis
US20140380280A1 (en) Debugging tool with predictive fault location
US20210081310A1 (en) Methods and apparatus for self-supervised software defect detection
US10705949B2 (en) Evaluation of library test suites using mutation testing
CN111654495B (en) Method, apparatus, device and storage medium for determining traffic generation source
JP2015011372A (en) Debug support system, method, program, and recording medium
US9842044B2 (en) Commit sensitive tests
US9563541B2 (en) Software defect detection identifying location of diverging paths
US20120054724A1 (en) Incremental static analysis
CN111597069A (en) Program processing method, program processing apparatus, electronic device, and storage medium
KR20190020363A (en) Method and apparatus for analyzing program by associating dynamic analysis with static analysis
Lavoie et al. A case study of TTCN-3 test scripts clone analysis in an industrial telecommunication setting
JP2005332098A (en) Testing item extraction system, testing item extraction device, testing item extraction method used for the device, and program therefor
JP2009199172A (en) Information processing system, method for specifying similar parts inside program, and program
US20130191813A1 (en) Metamodeling Contextual Navigation of Computer Software Applications
TW201828053A (en) Code submission method and device that conducts inspection on a code to be submitted before the code in finally submitted
JPWO2018154784A1 (en) Influence extraction device, influence extraction program and influence extraction method
CN105718341A (en) Test method and management device

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant