Directions
Home > Research > Research Labs
계산지능형 소프트웨어 공학 연구실 (Computational Intelligence for Software Engineering Lab, COINSE Lab )은 각종 계산지능 알고리즘을 소프트웨어 공학 문제에 적용하는 연구를 수행한다. COINSE Lab은 유전알고리즘이나 기계학습, Monte-Carlo 방법과 같은 다양한 계산지능형 알고리즘을 이용해서 테스트 자동 생성, 회귀 테스팅 최적화, 자동 디버깅 및 패칭 등의 다양한 세부 연구 분야를 다룬다. COINSE Lab의 연구 목표는 자동화된 계산지능형 알고리즘을 이용해 반복적이고 실수가 잦은 소프트웨어 공학 제업무를 자동화하거나, 방대한 양의 자료로부터 사람이 쉽게 얻을 수 없는 통찰을 제공하는 것이다.
결함 위치 식별
프로그램의 테스트 결과, 소스 코드의 변경 내역 및 코드 자체 등 다양한 정보를 바탕으로 개발자에게 테스트 케이스 실패의 원인인 버그 위치를 정확하게 찾아낼 수 있도록 자동으로 도와주는 기술이다. 기존에 이미 위치를 알고 있는 버그들을 수집한 벤치마크를 바탕으로 다양한 기계학습 기술을 이용해 위치를 찾아주는 모델을 개발한다.
프로그램 자동 수정
단순히 결함의 위치를 자동으로 찾는 데서 한 걸음 더 나아가, 테스트가 모두 성공할 때까지 자동으로 프로그램 소스 코드를 수정해주는 기술을 연구한다. 이를 위해서 딥러닝 기반의 언어 모델이나 트리 탐색 등 다양한 인공지능 기반 기술을 소프트웨어 테스팅 기술에 접목해서 사용한다.
기계학습 모델의 검증
명확한 명세 기반으로 사람이 코드를 작성해 만들어지는 전통적인 소프트웨어와 달리, 기계학습 모델은 주어진 데이터 기반으로 랜덤한 학습 과정을 통해 얻어지는 일종의 블랙박스이다. 이렇게 얻어진 모델이 사람이 작성한 코드와 함께 사용될 때, 전체적인 시스템의 품질을 어떻게 검증 및 평가할 수 있는지를 연구한다.