Offcanvas

How To / 개발자

기고 | 소프트웨어 테스트 문제를 방치하지 않아야 할 이유

2024.01.11 Trisha Gee  |  InfoWorld
코드와 관련된 변경 사항이 없는데도 한 번은 통과하고 다음 번에는 실패하는 테스트는 소프트웨어 품질, 배포 속도, 개발자의 행복을 위협한다.

식물을 가꾸어 본 적이 있다면 해충을 경험해 봤을 터다. 작은 해충의 징후가 보이기 시작하면 조치를 취해야 할 때다. 그렇지 않으면 변색되거나 얼룩진 잎 몇 개가 곧 나타나 전체를 손상시킬 수 있다. 

소프트웨어 엔지니어인 필자가 정원 가꾸기에 대해 이야기하는 이유는 뭘까? 엉성한 테스트는 소프트웨어 개발의 해충과 같기 때문이다. 해충을 방제하는 것이 식물의 건강을 위해 필수적인 것처럼, 소프트웨어 개발 프로세스의 건강을 위해 신뢰할 수 없는 테스트를 근절하는 것이 필수적이다.

개발자는 결함이 있는 테스트와 그로 인한 고통과 수고에 대해 잘 알고 있다. 하지만 기술 리더들은 종종 그 중요성을 놓치거나 심지어 사소한 불편으로 치부한다. 이는 실수다. 개발 팀과 그 목표에 관심이 있다면 결함이 있는 테스트가 광범위한 개발 프로세스에 미치는 영향을 이해하는 것이 절대적으로 중요하다. 종종 간과되는 이 생산성 저해 요인에 대해 자세히 살펴본다.
 
결함 테스트란?
제대로 작동하면 소프트웨어 테스트는 개발자에게 코드가 올바르게 작동한다는 확신을 준다. 테스트가 통과되면 모든 것이 정상이라는 것을 알 수 있다. 테스트가 실패하면 뭔가 잘못되었으므로 수정해야 한다. 그러나 불규칙한 테스트 결과는 이 프로세스에 혼란을 야기한다. 

비일관적인 테스트란 코드 변경이 없는데도 때때로 통과하고 때때로 실패하는, 예측할 수 없고 일관되지 않은 테스트다. 이는 혼란을 야기하여 소프트웨어 도구 체인의 신뢰성에 의문을 제기하고 개발자에게 수고와 좌절감을 안겨준다. 

시간이 지나면 개발자는 어떤 테스트가 ‘결함 있는 테스트’인지 알아채고 이를 무시하기 시작한다. 하지만 이는 실제 오류를 무시하는 결과로 이어지며, 간과되는 버그로 인해 제품의 품질이 저하되게 된다. 결국, 허술한 테스트는 소프트웨어 제공 속도와 품질을 저해하여 회사와 개발자 모두에게 부정적인 영향을 미친다.

결함 테스트를 무시할 수 없는 이유
결함이 있는 테스트는 소프트웨어 배포의 품질과 속도를 위협할 뿐만 아니라 소프트웨어 개발자의 행복과 만족도에 매우 실질적인 위협이 된다. 소프트웨어 개발 프로세스의 다른 병목 현상과 마찬가지로, 불규칙한 테스트는 개발자의 창의적 흐름을 방해하고 소프트웨어 개발이라는 본연의 업무를 방해한다. 

테스트에서 한 번은 통과하고 다음 번에서는 통과하지 못하는데, 그 사이에 코드베이스에 관련 변경 사항이 없다고 상상해보라. 이러한 일관성 없는 동작은 혼란을 야기할 수 있으며, 개발자는 무엇이 잘못되었는지 파악하기 위해 토끼굴로 빠져들게 된다. 이는 엄청난 시간 및 에너지의 낭비다.

기술 리더는 불완전한 테스트를 해결함으로써 개발자 경험을 직접적으로 개선할 수 있다. 개발자는 헛된 문제에 얽매이지 않고 새로운 기능을 만들거나 기존 코드를 개선하는 등의 작업을 수행하는 데 더 많은 시간을 할애할 수 있다. 불규칙적인 테스트가 제거되면 개발 프로세스가 훨씬 더 원활하게 진행되어 팀이 더욱 의욕적이고 행복해진다.

결국 이는 조직의 핵심 인력을 유치하고 유지하는 능력을 높인다. 오늘날 소프트웨어 개발 인력이 부족한 상황을 고려할 때 특히 중요하다. 최근 조사에 따르면 엔지니어링 리더의 절반 미만(45%)만이 올해 기술 인력 채용 목표를 달성할 수 있을 것이라고 보고 있었다. 이러한 인력 부족 현상은 IT 업계에 쏟아져 나오는 엄청난 양의 신기술로 인해 조만간 사라질 것 같지 않다. 

결함이 있는 테스트를 걸러내는 방법
결함이 있는 테스트를 우선적으로 수정하는 방침은 모든 소프트웨어 개발 전략의 필수적인 부분이어야 한다. 소프트웨어 테스트 문제는 저절로 고쳐지지 않는다는 것을 인식하는 것이 첫 번째 단계다. 그 다음에는 적절한 시간을 할애하여 문제를 해결해야 한다. 새로운 기능을 개발하거나 버그를 수정할 때와 같은 방식으로 결함이 있는 테스트를 수정하는 데 리소스를 투자한다.

소통의 문화를 조성하는 것도 중요하다. 개발자가 부실한 테스트로 인한 병목 현상에 대해 정기적으로 피드백을 제공하도록 장려하라. 이렇게 하면 더 큰 문제가 발생하기 전에 소프트웨어 개발 프로세스 내의 장애물을 신속하게 파악하고 해결하는 데 도움이 된다.

개발자가 생산성에 대한 우려와 피드백을 이야기할 때, 귀 기울여 수용되고 있다는 느낌을 받을 수 있도록 한다. 개발자들이 코드 작성 외에 가장 시간을 투입하는 프로세스는 빌드와 테스트를 기다리는 일이다. 전통적인 관리 관행에서는 기술적인 문제를 고려하지 않고 각 개인별로 생산성을 측정한다. 이로 인해 개발자는 좌절감을 느끼고 회사를 불신하게 된다. 생산성을 사람의 문제가 아니라 엔지니어링의 문제로 인식하고 프로세스 병목 현상을 극복할 수 있는 솔루션에 투자해야 한다. 

부실한 테스트를 대수롭지 않은 문제로 여겼다면 이제 변화해야 할 시점이다. 테스트 문제를 심각하게 받아들이고 이를 방지하기 위한 조치를 지속적으로 취함으로써 소프트웨어 개발 팀은 만개할 수 있을 것이다. 

* Trisha Gee는 그래들(Gradle)의 수석 개발자 에반젤리스트다. ciokr@idg.co.kr
 
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
Sponsored
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.