디지털 라이브러리[ 검색결과 ]
회귀 분석을 이용한 고복잡도 소프트웨어의 테스터빌리티 예측 모형 구축
http://doi.org/10.5626/JOK.2023.50.2.162
테스터빌리티는 소프트웨어가 주어진 테스트 컨텍스트에서 테스트를 지원하는 정도를 말한다. 테스터빌리티를 조기에 예측하면 개발자가 소프트웨어 품질을 보장하기 위해 많은 노력을 수행해야하는 소프트웨어 구성 요소를 조기에 식별하고, 테스트 활동을 계획하고, 시험 노력을 줄이기 위한 리팩터링 필요성을 인식하는 데 도움이 될 수 있다. 소프트웨어 메트릭과 코드 커버리지를 이용하여 회귀 분석을 수행해 테스터빌리티를 예측하는 연구들이 수행되었다. 기존 연구들은 단순한 소프트웨어 구조의 비중이 큰 학습 데이터를 사용하였다. 그러나 단순한 구조의 비중이 큰, 불균형 데이터로 학습한 예측 모형은 고복잡도 소프트웨어의 테스터빌리티 예측 정확도가 낮을 수 있다. 본 연구는 고복잡도 소프트웨어를 고려한 예측모형 구축을 위해 산업 도메인 표준의 메트릭 허용 기준을 기반으로 생성한 학습 데이터를 사용하였다. 3가지 회귀 분석을 사용하여 테스터빌리티 예측 모형을 구축한 결과 약 4.4%의 분기 커버리지 오차와 0.86의 결정계수를 가지는 예측 모형을 구축하였다.
코드 커버리지를 높이기 위한 상태 머신 변환 방법
모델 기반 테스팅은 시스템의 행위를 표현하는 모델을 시스템 명세로 활용하여 테스트를 수행하는 기술이다. 자동차, 국방/항공, 의료, 철도, 원자력과 같은 산업 도메인에서는 소프트웨어의 품질 향상을 위해 모델 기반 테스팅과 코드 커버리지 기반 테스팅을 요구하고 있다. 모델 기반 테스팅과 코드 커버리지 기반 테스팅이 모두 요구됨에도 모델과 소스 코드 간의 추상화 수준 차이로 인해 모델 기반 테스팅만으로 높은 코드 커버리지를 달성하는 것이 어려워 모델 기반 테스팅과 코드 커버리지 기반 테스팅이 별도로 수행되어져 왔다. 본 연구에서는 기존의 모델 기반 테스팅의 한계점을 개선하기 위하여 모델 기반 테스팅에서 테스트 모델로서 이용되는 대표적인 모델링 방법 중 하나인 프로토콜 상태 머신을 테스트 모델로서 이용하여 효과적으로 코드 커버리지를 향상시키는 상태 머신 변환 방법을 제안한다. 또한 본 연구에서는 두 시스템을 대상으로 한 사례 연구를 수행하여 제안 방법의 효과성을 분석하였다.
메트릭에 따른 탐색 기반 테스팅 알고리즘 비교
탐색 기반 테스팅은 넓은 탐색 범위에서 효과적으로 테스트 데이터를 생성하는 대표적인 기술중 하나이다. 탐색 기반 테스팅의 성능이 프로그램의 구조적 특성에 영향을 받는 것이 알려져 있음에도 구조적 특성을 고려한 탐색 기반 테스팅 비교 연구는 제한적으로 수행되었다. 본 연구는 탐색 기반 테스팅 비교를 통해 테스트 대상의 구조적 특성 차이에 따른 최적 알고리즘을 분석하고자 한다. 실험 결과의 일반화를 위해 탐색 성능에 영향을 주는 4가지 메트릭 값을 조합하여 19,800개의 테스트 대상 프로그램을 자동 생성하였다. 실험 결과 복잡도가 높은 프로그램을 20,000번 이하의 횟수로 분석하였을 경우에는 유전알고리즘이 가장 우수한 성능을 보였으나 50,000번 이상 분석하였을 경우에는 유전 담금질 기법과 담금질 기법이 다른 알고리즘들 보다 우수한 성능을 보였다. 복잡도가 낮은 프로그램에서는 유전 담금질 기법, 담금질 기법, 언덕 오르기 방법이 다른 알고리즘들 보다 우수한 성능을 보였다.