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