Offcanvas

비즈니스|경제 / 애플리케이션

기고 | 소프트웨어 개발, 테스팅, 그리고 인스펙션에 대한 재고

2012.02.13 Matthew Heusser   |  CIO


애자일 프로그래밍과 익스트림 프로그래밍
익스트림 프로그래밍, 즉 XP는 소프트웨어 개발에 많은 이점을 제공했다. 그러나 코드 익스펙션에 있어서는 최소한 두 가지가 중요하다. 우선, 짝(pair) 프로그래밍에서는 동료가 지속적인 코드 검토를 수행하는 상황을 함의하고 있는 반면, 테스트 지향 개발(Test Driven Development) 즉 TDD는 익스펙션을 통해 해결되어야 할 컴파일-타임, 오프-바이-원(off-by-one), 인덱스, 그리고 포인터 오류 등을 금지한다는 것이다.

익스트림 프로그래밍이 제시하는 두 번째 통찰은 “오류를 늦게 발견했을 때 발생하는 비용”과 관계가 있다.

오류 수정에 비용은 각 단계에 따라 기하급수적으로 증가한다는 것이 통설이다. 즉, 생산 단계에서 발견되어 수정된 오류는 요구서(requirement) 단계에서 발견된 것보다 수 백 혹은 수 천 배의 비용을 더 유발하는 것이다. 이것과 관련해서는 배리 뵘이 저서 “소프트웨어 엔지니어링 경제학(Software Engineering Economics)”에 제공한 오류 발견과 수정 단계에 따른 비용 곡선 그림이 유명하다. 스티브 맥코넬(Steve McConnell) 등이 이를 자주 인용하고 있다.

이 그래프는 시간이 지남에 따라 오류 수정 비용이 증가한다는 일반적인 원리를 보여준다. 이 그래프는 그림이라는 것에 주목할 필요가 있다. Y 축에는 아무런 숫자도 표시되어 있지 않고, 실제 비용은 매우 달라질 수 있다. 수치는 평균에 따른 것이고 정규 분포를 가정한 것이지만, 정규 분포가 항상 정확한 것은 아닐 수도 있다. 그리고 2011년 한 컨퍼런스에서 앨런 페이지(Alan Page)가 발표한 논문 “마이크로소프트의 소프트웨어 테스트 방식(How We Test Software at Microsoft)”에 따르면 오류 수정 곡선의 비용은 버그의 종류에 매우 따라 달라 질 수 있다.

 


이그림을 해석하면 단계가 증가할수록 비용이 증가한다는 것이다. 그리고 다르게 해석하자면 시간이 지남에 따라 비용이 상승한다는 것이다. 한 가지 유의해야 할 것은 뵘이 이러한 연구를 진행할 당시에는 거의 모든 프로젝트가 폭포수 모델(waterfall model)을 따랐고, 그러므로 프로젝트 단계와 선형 시간은 동일한 것이었다는 것이다.  

그러나 오늘 날, 애자일 소프트웨어 팀은 하루 만에 아니면 몇 시간 또는 몇 분만에 요구사항에서부터 설계 그리고 코딩과 테스팅을 수행해 버린다. 이것은 2주의 반복 기간을 갖는 프로젝트와 6개월의 폭포수로 계획된 프로젝트 2개에 대해 애자일 프로젝트는 폭포수 프로젝트 내에서 검토가 수행되기 이전 시점인 1~2주 내에 오류를 찾아내어 비용을 낮출 수 있다는 것을 의미한다.

이와 동시에, 인터넷은 신규 소프트웨어의 교체를 빠르게 단축하고 있다. CD와 플로피 디스크가 배송되기를 기다릴 필요 없이, 우리는 서버 혹은 서버 팜을 빠르게 구축할 수 있는 것이다.

이러한 모든 것이 통합된다는 것은 인스펙션의 가치가 감소함에 따라 인스펙션을 통해 완화될 것으로 기대되었던 위험도 또한 감소 혹은 TDD, 짝 프로그래밍, 신속한 탐색적 시험(exploratory testing)과 같은 다른 수단을 통해 해결될 수 있다는 것을 의미한다.

즉, TDD와 페어 프로그래밍이 일반적이지 않은 조직에서는 특히, 인스펙션이 실제적으로 매우 중요하다는 것이다. 이것과 관련하여 필자는 재고해볼 시기라고 생각했다.

CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국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.