검색 : [ author: 홍신 ] (5)

MISRA C 코딩 가이드라인 준수를 위한 코드 변경은 어떻게 이루어지는가: 오픈소스 소프트웨어 프로젝트를 대상으로 한 실태 조사

박수현, 남재창, 홍신

http://doi.org/10.5626/JOK.2024.51.8.718

본 논문은 오픈 소스 프로젝트에서 MISRAC 코딩 가이드라인 준수를 위한 코드변경이 어떻게 이루어지고 있는 지를 이해하기 위해 GitHub를 통해 공개된 오픈소스 프로젝트 중 MISRA 코딩 가이드라인을 적용한 75개 프로젝트의 소스코드 저장소를 조사 분석한 결과를 소개한다. 분석 대상 프로젝트 의 특성을 조사한 결과, MISRA C 코딩 가이드라인이 적용된 프로젝트의 분야를 나타내는 8개의 키워드 를 파악할 수 있었으며 54.7%의 프로젝트에서 코딩 규칙 검사에 정적검사기를 활용함을 알 수 있었다. 코드 변경을 조사한 결과, 조사대상 프로젝트 중 77.3%에서 MISRA 코딩 규칙과 연관된 코드 변경 기록을 찾을 수 있으며, 이들은 총 75개의 MISRA 코딩 규칙에 관련된 것임을 확인할 수 있었다. 또한, MISRA 코딩 규칙 준수를 위한 코드 변경은 대체로 짧은 주기 내에 연속적으로 발생하며, 하나의 코드 변경에서 평균 1124개 라인을 수정하는 특징을 파악하였다.

커버리지 달성 성능 향상을 위한 반복 횟수를 제한하는 Concolic 테스팅 경로 탐색 기법

최한솔, 홍신

http://doi.org/10.5626/JOK.2021.48.2.201

본 논문은 Concolic 테스팅에서 실행 경로 내에 동일 분기문의 반복 횟수를 제한한 후 점진적으로 제한 횟수를 증가하는 새로운 탐색 전략을 제안하고, 이를 실제 테스트 생성에 적용하여 분기 커버리지 달성을 평가한 결과를 소개한다. 제안하는 탐색 전략인 반복 횟수 제한 탐색은 Concolic 탐색에 있어서 반복 횟수를 늘리는 방향으로의 실행 경로 탐색에 앞서, 반복 횟수가 제한된 상황 아래에서 이전에 탐색하지 않은 실행 경로를 먼저 탐색하게 우선 순위를 조정함으로써, 제한된 Concolic 테스팅 탐색 시간내에 다양한 실행 상황을 방문하도록 유도한다. 본 연구에서는 제안한 탐색 전략을 기존에 개발된 3종의 탐색 전략을 기반으로 적용하여 CREST 도구에 구현하였다. 4개의 오픈소스 C 프로그램을 대상으로 실험한 결과, 본 연구에서 제안하는 반복 횟수 제한 탐색 기법이 기존의 탐색 전략보다 높은 분기 커버리지를, 보다 짧은 시간 내에 달성함을 확인할 수 있었다.

커버리지 변화 정보를 활용한 코드 누락 결함에 대한 뮤테이션 기반 결함 위치 식별 기법의 성능 향상

전주영, 홍신

http://doi.org/10.5626/JOK.2020.47.9.863

많은 소프트웨어 결함이 코드 누락 결함(omission fault)의 형태를 가지는 데 반하여, 기존의 뮤테이션 기반 결함 위치 식별(mutation-based fault localization) 기법은 코드 누락 결함에 대해 낮은 정확도를 보여 효용성이 낮은 문제가 있다. 본 논문에서는 뮤테이션 기반 결함 위치 식별 기법인 MUSEUM과 Metallaxis에 뮤테이션에 따른 커버리지 변화와 테스트 결과 또는 출력을 연계하는 요소를 추가함으로써 코드 누락 결함을 대상으로 위치 식별 성능을 향상하는 MUSEUM+과 Metallaxis+ 기법을 제안한다. 10개의 코드 누락 결함과 6개의 일반 결함을 포함하는 총 16개 Defects4J 결함사례를 대상으로 실험한 결과, 제안한 MUSEUM+과 Metallaxis+기법은 총 10개의 코드 누락 결함 중 6개에 대해 효과적으로 정확도를 향상시켰으며, 16개 전반에 있어 정확도 향상을 확인할 수 있었다.

Java 프로그램 단위 테스트 코드에서 발생하는 결함의 분류와 패턴 정의

최한솔, 홍신

http://doi.org/10.5626/JOK.2019.46.4.341

단위 테스트 케이스를 이용한 자동 회귀 테스팅 방법론이 널리 사용됨에 따라, 단위 테스트 케이스 작성 중 발생하는 ‘테스트 코드 결함’이 소프트웨어 제품의 품질과 프로젝트의 생산성을 저하하는 새로운 소프트웨어 품질 문제로 대두되고 있다. 이러한 단위 테스트 코드 결함의 체계적인 이해와 탐지를 위하여, 본 논문에서는 Java 프로그램 단위 테스트 케이스 결함을 분류하는 결함 분류 체계와 실제 결함사례에 기반한 단위 테스트 케이스 결함 패턴을 소개한다. 테스트 케이스 결함에 대한 단편적인 분류 기준을 제시하는 기존 연구와 달리, 본 연구에서는 단위 테스트 코드의 다양한 구조적, 기능적, 의미적 구성요소의 범주를 제시한 후 이에 기반한 총체적인 분류 체계를 제안하며, 이를 이용해 실제 결함 사례와 정적 결함 검출기의 검출대상을 분류한 결과 소개한다. 이에 더하여, 본 논문에서는 실제 테스트 결함 사례로부터, 테스트 코드 결함의 주요 조건을 구체적이고 명확하게 표현한 새로운 8종의 테스트 결함 패턴을 소개한다.

Mutagen4J : 효과적인 Java 프로그램 변이 생성 도구

전이루, 김윤호, 홍신, 김문주

http://doi.org/

프로그램 변이 분석은 분석대상 프로그램의 코드를 변형한 다양한 프로그램 변이를 활용해 분석대상 프로그램의 특성을 분석하는 기법이다. 효과적인 변이 분석을 위해서는 분석대상 프로그램의 동작을 다양하게 변화시키는 유용한 변형 연산자의 사용이 필수적이다. 현재까지 Java 프로그램을 대상으로 제안된 변이 생성 도구들은 변형 연산자의 종류가 제한적이거나, 최근 Java 언어 요소로 작성된 분석대상 프로그램의 경우 올바른 변이 생성을 지원하지 못하는 한계가 있다. 본 논문은 Java 프로그램을 위한 새로운 변이 생성 도구 Mutagen4J를 소개한다. Mutagen4J는 기존 연구를 통해 유용한 것으로 알려진 프로그램 변형 연산자를 추가로 지원하며, 최근 Java 언어요소를 처리함으로써, Java 프로그램에 대한 효과적인 변이 분석을 지원한다. 기존 Java 프로그램 변이 생성 도구와 비교 실험을 수행한 결과, Mutagen4J이 기존 도구보다 유용한 변이를 평균 2.3배 생성하였다.


Search




Journal of KIISE

  • ISSN : 2383-630X(Print)
  • ISSN : 2383-6296(Electronic)
  • KCI Accredited Journal

사무국

  • Tel. +82-2-588-9240
  • Fax. +82-2-521-1352
  • E-mail. chwoo@kiise.or.kr