디지털 라이브러리[ 검색결과 ]
유사 패치 기반 자동 프로그램 수정 기법
http://doi.org/10.5626/JOK.2025.52.2.152
휴리스틱 기반 자동 프로그램 수정(Automated Program Repair, APR) 기술의 주요 관심사는 탐색 공간의 크기 문제이다. 본 연구에서는 버그를 생성한 수정(Bug Introducing Change)의 유사성을 활용하여 탐색 공간을 줄이고, 적절한 수정 연산자를 제안하는 새로운 접근 방식인 Similar Patch Identifier(SPI)를 제안한다. 이 접근법을 평가하기 위해, 기존의 문맥 기반 APR 도구인 ConFix와 자바 결함 벤치 마크인 Defects4J를 활용했다. 실험을 통해 SPI가 탐색 공간을 각 결함에 적합한 10개의 버그 수정 커밋 후보로 줄였음에도, 기존 APR 도구인 ConFix가 고치지 못했던 4개의 버그에 대한 수정을 만들어내는 유의미한 결과를 확인할 수 있었다.
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개 라인을 수정하는 특징을 파악하였다.
오픈 소스 기계학습 애플리케이션에 대한 결함 사례 조사
http://doi.org/10.5626/JOK.2022.49.8.633
기계학습 기반 프로그래밍 패러다임과 전통적인 방식의 프로그래밍 패러다임의 차이는 기계학습 애플리케이션에서 발생할 수 있는 결함을 검출하고 이해, 분석, 해결하는 것에 다른 양상을 나타낼 수 있다. 이와 같은 상황에서, 본 연구는 기계학습 기반 시스템이 가진 결함을 이해하고 분석하기 위해, 오픈소스 기계학습 애플리케이션에서 발생했던 결함의 사례들을 수집하고 빈번하게 발생하는 결함의 원인을 파악하고자 하였다. 이를 위해, GitHub에 공개된 10개의 오픈소스 기계학습 애플리케이션을 대상으로 GitHub 이슈 게시판에 있는 1,205개의 결함 이슈 보고와 결함 수정 코드 이력을 직접 분석하여 보고/발견/수정되었던 결함에 대해 분석하였다. 10개 중 5개 이상의 프로젝트에서 공통으로 발견된 결함의 근본적인 원인 기준으로 20개의 결함 원인 범주를 설정하였다. 본 연구의 결과는 결함 위치 추적, 가능한 결함 해결 코드 수정 제안 등의 품질 향상 기술에 활용될 수 있을 것으로 기대된다.