소프트웨어의 작은 '유령 오류' 하나가 생태계 전체를 위협할 수 있다는 연구 결과가 나왔다.

일본 규슈대 연구팀은 26일(현지시간) 국제학술지 'IEEE 소프트웨어 공학 트랜잭션스'에 이 같은 내용의 논문을 발표했다.

연구팀은 널리 쓰이는 오픈소스 클라우드 컴퓨팅 플랫폼 '오픈스택'(OpenStack) 생태계의 649개 프로젝트를 분석했다. 그 결과, 전체의 55%가 불안정한 테스트로 인한 문제에 영향을 받는 것으로 나타났다.

문제의 원인은 '불안정한 테스트'(flaky tests)였다. 이는 코드 변경이 없는데도 실행할 때마다 무작위로 성공과 실패를 반복하는 소프트웨어 테스트를 말한다. 개발자들은 실제 결함이 아닌데도 원인 파악에 시간을 쏟게 된다.

연구 결과, 이 문제로 인해 낭비된 개발자 시간은 누적 1156일에 달했다. 하나의 불안정한 테스트가 여러 프로젝트에 동시다발적으로 영향을 미치는 '교차 프로젝트 불안정성'이 원인이었다.

특히 코드의 작은 단위를 검사해 가장 안정적이어야 할 '단위 테스트'의 약 70%가 이러한 교차 프로젝트 불안정성을 보이는 것으로 확인됐다.

연구팀은 오류의 원인이 코드 자체가 아니라, 프로젝트마다 다른 테스트 환경 설정, 일시적인 서버 문제, 소프트웨어 종속성 불일치 등 시스템 수준의 요인인 경우가 많다고 지적했다.

연구를 이끈 가메이 야스타카 교수는 "테스트 불안정성은 개별 프로젝트가 아닌 생태계 전반의 문제"라며 "고립된 해결책이 아닌 프로젝트 간의 협력이 필요하다"고 강조했다. 연구팀은 테스트 환경 표준화, 종속성 관리 개선 등을 해결책으로 제시했다.