KR20040096238A - 소스 코드상에서 api의 예외처리를 검사하는 방법 및시스템 - Google Patents

소스 코드상에서 api의 예외처리를 검사하는 방법 및시스템 Download PDF

Info

Publication number
KR20040096238A
KR20040096238A KR1020030029116A KR20030029116A KR20040096238A KR 20040096238 A KR20040096238 A KR 20040096238A KR 1020030029116 A KR1020030029116 A KR 1020030029116A KR 20030029116 A KR20030029116 A KR 20030029116A KR 20040096238 A KR20040096238 A KR 20040096238A
Authority
KR
South Korea
Prior art keywords
api
exception
source code
exception handling
file
Prior art date
Application number
KR1020030029116A
Other languages
English (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 KR1020030029116A priority Critical patent/KR20040096238A/ko
Publication of KR20040096238A publication Critical patent/KR20040096238A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface

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)
  • Devices For Executing Special Programs (AREA)

Abstract

본 발명은 API의 예외처리를 검사하는 방법 및 시스템에 관한 것으로서, 상세하게는 런타임 테스트 환경이 아닌 소스 코드상에서 API의 예외처리를 검사하는 방법 및 시스템에 관한 것이다.
본 발명의 소스 코드상에서 API의 예외처리를 검사하는 시스템은 로드한 소스파일의 LOC를 측정하고 각 파일에 대해 인덱스를 설정하는 파일 매니저 부, 예외처리 하고자 하는 API를 등록하고, 예외처리 종류, 예외처리 우선순위를 입력하는 룰 매니저 부, 상기 입력된 값을 기준으로 소스 코드를 해석하는 파서 부, 파서 부가 처리한 내용에 대해 해당 API의 예외처리가 이루어져야 하는 범위와 범위 내의 다른 예외처리가 필요한 다른 API를 파악하는 스코프 추적 부, 및 상기 룰 매니저 부의 데이터와 상기 파싱된 데이터를 비교하는 예외 체크 부를 포함하는 것을 특징으로 한다.
또한, 본 발명의 소스 코드상에서 API의 예외처리를 검사하는 방법은 로드한 파일의 LOC를 측정하고 각 파일에 대해 인덱스를 설정하는 단계, 소스 파일 중에 사용된 API를 등록하고 예외처리 종류, 예외처리 우선순위를 입력하는 단계, 입력된 값을 기준으로 소스 코드를 해석하는 단계, 해석한 내용에 대해 해당 API의 예외처리가 이루어져야 하는 범위와 범위 내의 다른 예외처리가 필요한 다른 API를 파악하는 단계, 및 룰 매니저 부에서의 데이터와 파싱된 데이터를 비교하는 단계를 포함하는 것을 특징으로 한다.

Description

소스 코드상에서 API의 예외처리를 검사하는 방법 및 시스템{Method And System for Checking Exception of API on Source Code Level}
본 발명은 API(Application Programming Interface)의 예외처리를 검사하는 방법 및 시스템방법에 관한 것이다. 상세하게는 종래 기술과 같이 런타임(run-time) 환경에서 API의 예외처리를 검사하는 방식이 아니라 소스 코드상에서 API의예외처리를 검사한다는 점에 그 특징이 있다.
MP3나 핸드셋(handset), 전자레인지 등과 같은 엠베디드 시스템(embedded system)은 상대적으로 적은 메모리(memory)와 제한된 자원(resource)으로 대부분 개발된다. 따라서, 소프트웨어 개발에 있어서 메모리나 이벤트(event), 오브젝트(object) 등을 다루는 API에 대한 예외처리 작성이 필수적이다.
종래에 예외처리를 도와주는 예외처리 보고 툴로는 Purify나 Bounce Checker를 예로 들 수 있는데, 모두 런타임 환경에서 예외처리 여부를 검사하는 툴이다. 런타임은 그 특징상 소스 코드상(source code)에서 모든 예외처리 사항이 고려되었는지를 검증하기 힘들뿐 아니라, 여러 가지 외부 조건에 따라서, 테스트가 제대로 수행이 될 수도 있고, 그렇지 않을 수 있는 가능성이 존재하는 등의 문제가 있었다.
상기의 문제점을 해결하기 위하여 본 발명에서는 그에 대한 대안으로서 소스 코드에서 중요도가 높다고 판단한 API에 대해 예외처리가 적절한 범위 내에서 작성되었는지를 검증하는 시스템을 제안하게 되었다.
본 발명의 목적은 소프트웨어 개발이 완료되어 제품 출시를 앞두고 있을 때, 최종적으로 API가 제대로 예외처리가 이루어졌는지를 검증을 통해 제품 출하 후 발생할 수 있는 예외적인 오류에 대한 위험을 관리하는 기능을 제공하는 데 있다.
본 발명의 다른 목적은 소프트웨어개발 과정에 있어서 소스 코드상에서 중요한 API에 대한 예외처리의 유무를 관리하는 기능을 제공하는 데 있다.
도 1a는 본 발명의 예외처리를 검사하는 시스템 및 방법에 관하여 개략적으로 나타낸 블록도이다.
도 1b는 본 발명의 예외처리를 검사하는 시스템의 세부 구성요소를 나타낸 블록도이다.
도 2는 본 발명의 예외처리를 검사하는 방법에 관하여 개략적으로 나타낸 흐름도이다.
도 3은 본 발명에 따른 예외처리를 검사하는 시스템을 어플리케이션으로 구현한 레이아웃이다.
도 4는 본 발명의 실시예에 따라 소스 코드를 표현한 것이다.
이하, 도면에 따라 본 발명의 일 실시예를 설명한다.
도 1은 본 발명의 예외처리를 검사하는 시스템에 관한 블록도이다. API 예외 검사기는 크게, 로드한 파일의 LOC를 측정하고 각 파일에 대해 인덱스를 설정하는 파일 매니저 부(110), API 등록, 예외처리 종류, 예외처리 우선순위를 입력하는 룰 매니저 부(120), 상기 입력된 값을 기준으로 소스 코드를 해석하는 파서 부(130), Parser가 처리한 내용에 대해 해당 API의 예외처리가 이루어져야 하는 범위와 범위 내의 다른 예외처리가 필요한 다른 API를 파악하는 스코프 추적 부(Scope Tracer)(140), 룰 매니저 부(120)의 값과 파싱된 데이터를 비교한 결과와 예외처리 항목을 의사 코드 생성 부(160)에 전달하는 예외 체크 부(150), 등록된 중요 API의 예외처리가 이루어지지 않았을 경우 의사 코드(Pseudo Code)를 생성해서 예외처리를 작성할 위치에 수정해서 기입의사 코드 생성 부(160)로 구성될 수 있다.
도1b를 참조하여 시스템의 세부 구성요소를 살펴 보면, 상기 파일 매니저 부(File Manager)(110)는 예외처리를 검증할 소스 코드를 읽어 들이는 소스 로드 모듈(111), 로드한 파일에 대한 인덱스(index)와 경로(path) 및 파일에 대한 우선 순위(priority)를 관리하는 파일 관리 모듈(112), 로드한 파일의 총 LOC(Line of Code)와 각 파일 단위의 LOC를 측정하는 LOC 측정 모듈(113), 로드한 파일에 대해 예외 체크 대상에 포함시킬지 여부를 관리하는 소스코드 체크 관리 모듈(114), 로드한 파일을 저장하거나, 새로 고침을 하는 소스코드 관리 저장 모듈(115)로 구성될 수 있다.
상기 룰 매니저 부(Rule Manager)(120)는 예외처리 대상이 되는 API 이름(보통 함수명), 예외처리 type, API 우선순위를 관리하는 API 정보 관리 모듈(121), 등록된 API에 대해 예외 체크 수행시 포함 여부를 관리하는 API 체크 관리 모듈(122), 파서 부(130)에게 등록된 API에 대한 정보를 제공하는 API 정보 제공 모듈(123)로 구성될 수 있다.
파서 부(Parser)(130)는 로드한 소스 코드의 인덱스 별로 파싱(parsing)을 하는 소스코드 파싱 모듈(131), 상기 파싱(parsing)한 정보에서 룰 매니저 모듈에 등록한 API 내용과 관련 있는 부분의 라인(line)과 라인의 위치 정보를 가르키는 토큰({, }와 같은 정보)을 저장하는 라인 저장 모듈(132), 파싱(Parsing)한 정보를 저장하는 파싱 정보 저장 모듈(133)로 구성될 수 있다.
예외 체크 부(Exception Checker)(150)는 룰 매니저 부(120)에 등록된 API의 정보와 파서 부(Parser)(130)가 저장한 라인의 내용을 비교하는 라인 비교 모듈(151), 라인의 내용 검증 후, 스코프 추적 부(Scope Tracer)(140)가 저장한 예외처리의 범위와 비교하는 예외처리 범위 비교 모듈(152), API가 할당된 변수를 파악하고, 예외처리 유무를 파악한 정보를 의사 코드 생성 부(Pseudo Code Generator)(160)에 전달하는 예외처리 파악 모듈(153)로 구성될 수 있다.
의사 코드 생성 부(Pseudo Code Generator)(160)는 예외처리 유무에 대한 로그를 작성해 보고하는 로그 작성 모듈(161), 예외 체크 부(150)(Exception Checker)가 처리한 정보를 가져와서, 예외처리에 대한 의사 코드(Pseudo Code)를 생성하는 의사코드 생성 모듈(162), API가 변수에 할당된 경우, 예외처리 code를생성해서 보고하는 예외처리 코드 생성 모듈(163)로 구성될 수 있다.
도2는 본 발명에 따른 예외처리를 검사하는 방법에 관하여 개략적으로 나타낸 흐름도이다. 상기 도 1 및 도 1b의 구성요소들로부터 API 예외 검사기(API Excepton Checker)(100)는 여러 개발자가 작성한 소스 중에 개발 팀에서 중요하다고 판단한 API에 대한 예외처리 유무를 검증하는 것으로서 이에 대한 기본적인 데이터 흐름을 살펴보면 다음과 같다.
API 예외 검사기(API exception checker)(100)가 소스 코드를 읽어 들이면, 파일 매니저 부(File Manager)(110)는 load한 파일의 LOC를 측정하고 각 file에 대해 index를 설정한다(S210). 룰 매니저 부(120)은 API 등록, 예외처리 type, 예외처리 우선순위를 입력하게 된다(S220). 이 입력한 값을 기준으로 파서 부(130)는 소스 코드를 해석한다(S230). 상기 파서 부(130)가 처리한 내용에 대해 스코프 추적 부(140)는 해당 API의 예외처리가 이루어져야 하는 범위와 범위 내의 다른 예외처리가 필요한 다른 API를 파악한다(S240). 예외 체크 부(150)에서는 상기 룰 매니저 부(120)의 데이터 값과 파싱된 데이터 값을 비교하고 그 결과와 예외처리 항목을 의사 코드 생성 부(160)에게 전달한다(S250). 등록된 중요 API의 예외처리가 이루어졌는가를 판단하여(S260) 예외처리가 이루어지지 않았을 경우, 의사 코드를 생성해서 예외처리를 작성할 위치에 수정해서 기입하고(S270), 예외처리 유무에 대한 로그파일을 작성하여 보고한다(S280).
이외의 세부적인 단계들은 상기 도 1b에서 구성요소를 설명함과 아울러 함께 설명되었으므로 생략하기로 한다.
도 3은 본 발명에 따른 예외처리를 검사하는 시스템을 어플리케이션으로 구현한 레이아웃이다. 아래는 기본적인 포맷(format)과 내용을 어플리케이션 단위로 레이아웃을 잡은 것이다. 이러한 어플리케이션은 예외 체크 모듈 실행 및 로드(Load)한 파일의 갱신 및 저장 처리하는 부분(310), 소스 코드 보기 윈도우(320), 예외 체크 모듈 실행 결과 보기 윈도우(330), 로드한 파일의 라인 수, 현재 파일의 라인 수, 예외 체크 모듈에서 룰에 위반된 라인 수를 확인할 수 있는 윈도우(340), API 이름, API 종류, API 우선순위를 등록하는 룰 세트(Rule Set) 파일 관리 메뉴(350), 룰 세트 등록 현황 보기 윈도우(360), 및 check와 uncheck가 가능한 로드한 파일의 리스트 보기 부분(370)으로 구성될 수 있다.
도 4는 이상과 같은 본 발명의 실시예에 따라 소스 코드를 표현한 것이다.
이러한 소스 코드를 예로 들어 본 발명의 작동 예를 설명하면, 도 4와 같은 예제 소스 코드가 있다고 했을 때, API 예외 검사기(100)의 동작을 설명한다. 원시 소스 코드(Original source code)가 아래와 같이 주어졌을 때, API 예외 검사기(100)에서의 모듈별 동작을 보면 다음과 같다.
먼저, 파일 매니저 부(110)에서는 로드된 파일의 인덱스(Index), 경로(Path), 우선순위(Priority)를 관리하고, 로드한 파일의 총 LOC와 파일별 LOC를 측정하며, 로드한 파일에 대해 프로젝트 파일(Project file)로 관리한다.
다음으로 룰 매니저 부(120)에서는 예외처리 대상이 되는 API 이름, 예외처리 종류, API 우선순위를 관리하고, 파서 모듈에게 등록된 API에 대한 관련 정보를 제공한다. 상기 API에 대한 관련 정보는 다음과 같은 형태로 주어질 수 있다.
Input에서의 API Name은 Function Name으로 할 수 있고, 예외처리 Type에는 Memory, Event, Boolean, Switch 등에서, 예외처리 Method에는 Variable-Assingned, Boolean, Object 등에서, API Priority에는 Very High, High, Noraml, Low, Very Low 등에서 하나가 등록될 수 있다. 도 2의 오리지날 소스 코드를 대상으로 룰 매니저 부(210)에 등록될 수 있는 내용을 살펴보면, API Name에는 'memAlloc'이 등록되고, 예외처리 Type으로는 'Memory'가 등록된다. 그리고 예외처리 Method에는 'Variable-Assingned'가 등록되고, API Priority에는 'Very High'가 등록된다.
파서 부(130)에서는 로드한 소스 코드의 인덱스별로 파싱(Parsing)하게 되는데,이러한 파서 부(130)는 언어(language) 별로 관리할 수 있음에 주목하여야 한다. 또한 파싱한 정보에서 룰 매니저 모듈에 등록된 정보에 해당되는 부분의 라인을 저장하고 파싱된 정보를 저장한다.
스코프 추적 부(140)에서는 파서 부(130)에 저장된 API가 있는 scope (local, global, block (int n;))을 추적한다.
예외 체크 부(150)에서는 룰 매니저 부(120)에 등록된 API 정보와 파서 부(130)가 저장한 내용을 비교하고, 파서 부(130)가 저장한 내용을 읽어 와서, 스코프 추적부(140)가 저장한 예외처리 범위를 비교하고, API가 구현된 예외처리 종류(Type)와 메쏘드(Method)를 분석하고, 내용을 저장하며, 의사 코드 생성 모듈에게 예외처리 검증된 내용을 전달한다.
의사 코드 생성 부(160)는 예외처리 결과에 대한 로그파일을를 저장하고, 예외 체크 모듈이 처리한 정보로 예외처리가 필요한 API에 대해 의사 코드를 생성하며, 예외처리 종류가 'Varialble-Assigned'인 경우 실제 예외처리 코드 생성한다.
본 발명은 제품 출시 이전에 제품의 소스 코드상에서 예외처리가 제대로 이루어지고 있는지를 검증하며, 동시에 예외처리를 하지 않은 중요한 API에 대해 문맥에 적절한 예외처리 코드를 생성함으로써, 본 발명은 제품 출하 단계에서 제품의 성능에 직접적인 영향을 미칠 수 있는 API나 제품이 예외적인 상황에서 오류를 방지할 수 있을 뿐 아니라, 개발 진행중의 소스 코드, 소프트웨어 품질 평가 단계에서의 소스 코드, 제품 출하 전 엠베디드 시스템(embedded system)이 구현된 소스 코드, 및 제품화를 위한 모든 종류의 소스 코드에 적용할 수 있다.
이러한 점과 관련하여 본 발명의 효과를 구체적으로 살펴 보면,
본 발명은 첫째, 소프트웨어 개발 과정에 있어서 소스 코드 상에서 중요한 API에 대한 예외처리의 유무를 관리할 수 있는 효과를 제공한다. 둘째, 소프트웨어 개발이 완료되어 제품 출시를 앞두고 있을 때, 최종적으로 API가 제대로 예외처리가 이루어졌는지를 검증을 통해 제품 출하 후 발생할 수 있는 예외적인 오류에 대한 위험 관리 기능을 제공한다. 셋째, 소프트웨어 개발에 있어서, 런타임(run-time) 환경에서 검사할 수 없는 잠재적인 오류 발생을 소스 코드(source code)상의 처리 여부를 판별해 검증하는 기능을 제공한다. 넷째, API의 우선 순위와 예외처리 종류에 따른 검증과 관리가 가능하다.

Claims (15)

  1. 로드한 소스파일의 LOC를 측정하고 각 파일에 대해 인덱스를 설정하는 파일 매니저 부 ;
    상기 소스파일에 사용된 API를 등록하고, 예외처리 종류, 예외처리 우선순위를 입력하는 룰 매니저 부 ;
    상기 입력된 값을 기준으로 소스 코드를 해석하는 파서 부 ;
    상기 파서 부가 처리한 내용에 대해 해당 API의 예외처리가 이루어져야 하는 범위와 범위 내의 다른 예외처리가 필요한 다른 API를 파악하는 스코프 추적 부 ; 및
    상기 룰 매니저 부의 데이터와 상기 파싱된 데이터를 비교하는 예외 체크 부를 포함하는 것을 특징으로 하는 소스 코드상에서 API의 예외처리를 검사하는 시스템
  2. 제1항에 있어서,
    등록된 중요 API의 예외처리가 이루어지지 않았을 경우 의사 코드를 생성해서 예외처리를 작성할 위치에 수정해서 기입의사 코드 생성 부를 더 포함하는 것을 특징으로 하는 소스 코드상에서 API의 예외처리를 검사하는 시스템
  3. 제1항 또는 제2항에 있어서, 상기 파일 매니저 부는
    예외처리를 검증할 소스 코드를 로드하는 소스 로드 모듈 ;
    상기 로드한 파일에 대한 인덱스와 경로 및 파일에 대한 우선 순위를 관리하는 파일 관리 모듈 ;
    상기 로드한 파일의 총 LOC와 각 파일 단위의 LOC를 측정하는 LOC 측정 모듈 ;
    상기 로드한 파일에 대해 예외 체크 대상에 포함시킬지 여부를 관리하는 소스코드 체크 관리 모듈 ; 및
    상기 로드한 파일을 저장하거나, 새로 고침을 하는 소스코드 관리 저장 모듈을 포함하는 것을 특징으로 하는 소스 코드상에서 API의 예외처리를 검사하는 시스템
  4. 제1항 또는 제2항에 있어서, 상기 룰 매니저 부는
    예외처리 대상이 되는 API 이름, 예외처리 종류, API 우선순위를 관리하는 API 정보 관리 모듈 ;
    등록된 API에 대해 예외 체크 수행시 포함 여부를 관리하는 API 체크 관리 모듈 ; 및
    파서 부에 등록된 API에 대한 정보를 제공하는 API 정보 제공 모듈을 포함하는 것을 특징으로 하는 소스 코드상에서 API의 예외처리를 검사하는 시스템
  5. 제1항 또는 제2항에 있어서, 상기 파서 부는
    로드한 소스 코드의 인덱스 별로 파싱(parsing)을 하는 소스코드 파싱 모듈 ;
    상기 파싱한 정보에서 룰 매니저 모듈에 등록한 API 내용과 관련 있는 부분의 라인을 저장하는 라인 저장 모듈 ; 및
    상기 파싱(Parsing)한 정보를 저장하는 파싱 정보 저장 모듈을 포함하는 것을 특징으로 하는 소스 코드상에서 API의 예외처리를 검사하는 시스템
  6. 제1항 또는 제2항에 있어서, 상기 예외 체크 부는
    상기 룰 매니저 부에 등록된 API의 정보와 상기 파서 부가 저장한 라인의 내용을 비교하는 라인 비교 모듈 ;
    라인의 내용 검증 후, 상기 스코프 추적 부가 저장한 예외처리의 범위와 비교하는 예외처리 범위 비교 모듈 ; 및
    API가 할당된 변수를 파악하고, 상기 예외처리 유무를 파악한 정보를 의사 코드 생성 부에 전달하는 예외처리 파악 모듈을 포함하는 것을 특징으로 하는 소스 코드상에서 API의 예외처리를 검사하는 시스템
  7. 제2항에 있어서, 상기 의사 코드 생성 부는
    예외처리 유무에 대한 로그를 작성해 보고하는 로그 작성 모듈 ;
    상기 예외 체크 부가 처리한 정보를 가져와서, 예외처리에 대한 의사 코드를 생성하는 의사코드 생성 모듈 ; 및
    API가 변수에 할당된 경우, 예외처리 code를 생성해서 보고하는 예외처리 코드 생성 모듈을 포함하는 것을 특징으로 하는 소스 코드상에서 API의 예외처리를 검사하는 시스템
  8. 로드한 파일의 LOC를 측정하고 각 파일에 대해 인덱스를 설정하는 단계 ;
    상기 소스 파일 중에 사용된 API를 등록하고 예외처리 종류, 예외처리 우선순위를 입력하는 단계 ;
    상기 입력된 값을 기준으로 소스 코드를 해석하는 단계 ;
    상기 해석한 내용에 대해 해당 API의 예외처리가 이루어져야 하는 범위와 범위 내의 다른 예외처리가 필요한 다른 API를 파악하는 단계 ; 및
    룰 매니저 부에서의 데이터와 파싱된 데이터를 비교하는 단계를 포함하는 것을 특징으로 하는 소스 코드상에서 API의 예외처리를 검사하는 방법
  9. 제8항에 있어서,
    등록된 중요 API의 예외처리가 이루어지지 않았을 경우 의사 코드를 생성해서 예외처리를 작성할 위치에 수정해서 기입하는 단계를 더 포함하는 것을 특징으로 하는 소스 코드상에서 API의 예외처리를 검사하는 방법
  10. 제8항 또는 제9항에 있어서, 상기 인덱스를 설정하는 단계는
    예외처리를 검증할 소스 코드를 로드하는 단계 ;
    상기 로드한 파일에 대한 인덱스와 경로 및 파일에 대한 우선 순위를 결정하는 단계 ;
    상기 로드한 파일의 총 LOC와 각 파일 단위의 LOC를 측정하는 단계 ;
    상기 로드한 파일에 대해 예외 체크 대상에 포함시킬지 여부를 결정하는 단계 ; 및
    상기 로드한 파일을 저장하거나, 새로 고침을 하는 단계를 포함하는 것을 특징으로 하는 소스 코드상에서 API의 예외처리를 검사하는 방법
  11. 제8항 또는 제9항에 있어서, 상기 예외처리 우선순위를 입력하는 단계는
    예외처리 대상이 되는 API 이름, 예외처리 종류, API 우선순위를 등록하는 단계 ;
    상기 등록된 API에 대해 예외 체크 수행시 포함 여부를 관리하는 단계 ; 및
    상기 등록된 API에 대한 정보를 파서 부에 제공하는 단계를 포함하는 것을 특징으로 하는 소스 코드상에서 API의 예외처리를 검사하는 방법
  12. 제8항 또는 제9항에 있어서, 상기 소스 코드를 해석하는 단계는
    로드한 소스 코드의 인덱스 별로 파싱을 하는 단계 ;
    상기 파싱한 정보에서 룰 매니저 모듈에 등록한 API 내용과 관련 있는 부분의 라인을 저장하는 단계 ; 및
    상기 파싱한 정보를 저장하는 단계를 포함하는 것을 특징으로 하는 소스 코드상에서 API의 예외처리를 검사하는 방법
  13. 제8항 또는 제9항에 있어서, 다른 예외처리가 필요한 다른 API를 파악하는 단계는
    룰 매니저 부에 등록된 API의 정보와 파서 부가 저장한 라인의 내용을 비교하는 단계 ;
    라인의 내용 검증 후, 상기 스코프 추적 부가 저장한 예외처리의 범위와 비교하는 단계 ; 및
    API가 할당된 변수를 파악하고, 상기 예외처리 유무를 파악한 정보를 의사 코드 생성 부에 전달하는 예외처리 파악 모듈을 포함하는 것을 특징으로 하는 소스 코드상에서 API의 예외처리를 검사하는 방법
  14. 제8항 또는 제9항에 있어서, 상기 데이터를 비교하는 단계는
    예외처리 유무에 대한 로그를 작성해 보고하는 단계 ;
    예외처리에 대한 의사 코드를 생성하는 단계 ; 및
    API가 변수에 할당된 경우, 예외처리 코드를 생성해서 보고하는 단계를 포함하는 것을 특징으로 하는 소스 코드상에서 API의 예외처리를 검사하는 방법
  15. 제8항 또는 제9항에 있어서, 상기 소스 코드상에서 API의 예외처리를 검사하는 방법의 단계들을 실행하기 위한 컴퓨터 프로그램을 컴퓨터로 판독 가능한 포맷으로 기록한 기록매체
KR1020030029116A 2003-05-07 2003-05-07 소스 코드상에서 api의 예외처리를 검사하는 방법 및시스템 KR20040096238A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030029116A KR20040096238A (ko) 2003-05-07 2003-05-07 소스 코드상에서 api의 예외처리를 검사하는 방법 및시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030029116A KR20040096238A (ko) 2003-05-07 2003-05-07 소스 코드상에서 api의 예외처리를 검사하는 방법 및시스템

Publications (1)

Publication Number Publication Date
KR20040096238A true KR20040096238A (ko) 2004-11-16

Family

ID=37374991

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030029116A KR20040096238A (ko) 2003-05-07 2003-05-07 소스 코드상에서 api의 예외처리를 검사하는 방법 및시스템

Country Status (1)

Country Link
KR (1) KR20040096238A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100868762B1 (ko) * 2006-12-01 2008-11-17 삼성전자주식회사 임베디드용 소프트웨어의 오류 검출 방법
KR101479516B1 (ko) * 2014-03-05 2015-01-07 소프트포럼 주식회사 소스코드 보안 약점 탐지 장치 및 방법
WO2021085983A1 (ko) * 2019-10-28 2021-05-06 삼성전자 주식회사 소스 코드에서 취약성을 탐지하기 위한 방법, 디바이스, 및 컴퓨터 판독가능 매체

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100868762B1 (ko) * 2006-12-01 2008-11-17 삼성전자주식회사 임베디드용 소프트웨어의 오류 검출 방법
US8589889B2 (en) 2006-12-01 2013-11-19 Samsung Electronics Co., Ltd. Apparatus and method of detecting errors in embedded software
KR101479516B1 (ko) * 2014-03-05 2015-01-07 소프트포럼 주식회사 소스코드 보안 약점 탐지 장치 및 방법
WO2021085983A1 (ko) * 2019-10-28 2021-05-06 삼성전자 주식회사 소스 코드에서 취약성을 탐지하기 위한 방법, 디바이스, 및 컴퓨터 판독가능 매체

Similar Documents

Publication Publication Date Title
US10423518B2 (en) Systems and methods for analyzing violations of coding rules
US9208057B2 (en) Efficient model checking technique for finding software defects
Ayewah et al. Evaluating static analysis defect warnings on production software
US8832125B2 (en) Extensible event-driven log analysis framework
US7146605B2 (en) Automatic abstraction of software source
JP2009525522A (ja) コンテクストベースのコード分析
KR20060045072A (ko) 애트리뷰트를 통하여 제어되는 테스트 케이스 계승
CN112286828B (zh) 一种区块链智能合约的测试方法和系统
Delgado‐Pérez et al. Performance mutation testing
US9779014B2 (en) Resilient mock object creation for unit testing
Podelski et al. Classifying bugs with interpolants
CN103186468A (zh) 一种验证软件升级准确性的方法和装置
US10839124B1 (en) Interactive compilation of software to a hardware language to satisfy formal verification constraints
Payne et al. Design-for-testability for object-oriented software
CN109284222B (zh) 软件单元、数据处理系统中的项目测试方法、装置及设备
KR20040096238A (ko) 소스 코드상에서 api의 예외처리를 검사하는 방법 및시스템
US7505952B1 (en) Statistical inference of static analysis rules
Paradkar SALT-an integrated environment to automate generation of function tests for APIs
CN117234466B (zh) 企业管理软件开发方法、系统、设备及存储介质
JP2004086545A (ja) データ項目の状態を管理することでプログラムを自動生成するプログラム開発支援システム
Anandapadmanabhan Improved Run Time Error Analysis Using Formal Methods for Automotive Software-Improvement of Quality, Cost Effectiveness and Efforts to Proactive Defects Check
Nielsen Static Analysis for Node. js
US20220207438A1 (en) Automatic creation and execution of a test harness for workflows
CN117492819A (zh) 应用服务封装方法及装置
JP6888336B2 (ja) スタブ生成装置、方法、及びプログラム

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination