전문가칼럼

DBMS, DB 구축 절차, 빅데이터 기술 칼럼, 사례연구 및 세미나 자료를 소개합니다.

테스트 활동은 프로젝트 초기부터, 리뷰와 코드 인스펙션

전문가칼럼
DBMS별 분류
Etc
작성자
admin
작성일
2021-02-22 15:55
조회
3666

테스트 활동은 프로젝트 초기부터, 리뷰와 코드 인스펙션

지금까지 제품의 품질을 향상시키기 위한 방법 중 하나인 테 스트에 대해서 알아보았다. 테스트를 수행하기 위해서, 테스트 계획, 요구사항 분석을 통한 테스트케이스 설계 및 테스트 환 경 구축에 대해 이야기를 했다.
column_img_2808.jpg
그렇다면, 프로젝트 진행 시 테스트는 과연 언제 시작하는 게 효과적일까
일반적으로 테스트는 제품을 개발 중이거나 제품 개발이 완 료 되었을 때 수행되어야 한다고 생각을 하곤 한다. 또한 실제 로 많은 테스트 활동들이 개발 단계에서 많이 수행된다.
테스트는 이처럼 제품이 개발되어야 수행할 수 있는 것일까 답은“아니다”이다. 테스트는 프로젝트 시작과 동시에 수행되어야 하는 활동 이다. 프로젝트 시작과 동시에 테스트를 진행해 야 하는 가장 큰 이유는“비용”과“시간”을 절약 할 수 있기 때문이다.
혹시“The Snowball Effect“ 라는말을들어 보았는가“ The Snowball Effect“ 는 미국 사 업가 워런 버핏(Warren Buffett)이 사용한 용 어로 작은 규모로 시작한 것이 가속도가 붙어 큰 효과를 불러 온다는 의미를 가지고 있다.
테스트 관점에서 이 용어를 풀어보면, 프로젝트 초기에 결함 을 발견하지 못하면 이후 프로젝트 종료 시점에서 발견된 결함 에 대한 수정 및 유지 보수 비용이 크게 증가한다는 의미이다. 우리가 프로젝트 초기에 결함을 발견할 수 있다면, 큰 비용을 들이지 않고 결함을 수정할 수 있을 뿐 아니라, 재작업 및 유지 보수 비용과 프로젝트 기간을 절약할 수 있다.
하지만 일반적으로 제품이 개발되거나 개발이 완료된 상태 에서 결함을 발견하게 되면, 요구사항 확인, 설계, 수정 등의 다 양한 활동들이 추가되기 때문에 그만큼 비용이 더 추가될 수밖 에 없다.
그림에서 알 수 있듯이 요구사항 분석 단계에서 결함이 발생 되어 수정되는 비용이 1$라고 가정을 했을 경우 이 결함이 테 스트 단계에서 발견되면 최소 50$ 이상의 수정 비용이 발생된 다는 것을 보여주고 있다. 즉, 프로젝트 초기에 결함을 발견할 수만 있다면, 우리는 엄청난 비용과 시간을 절약할 수 있는 것 이다.
column_img_2809.jpg
우리는 프로젝트 초기 단계에서 결함을 발견해 프로젝트의 비용을 감소시키기 위한 일반적인 방법으로 리뷰(Review)와 코드 인스펙션(Code Inspection)을 수행한다. 일반적으로, 리 뷰와 코드 인스펙션은 테스트 엔지니어들이 수행을 하지 않는 경우가 많기 때문에, 기획자, 개발자, 품질보증 담당자 등이 수 행해야 하는 것으로 생각하는 경우가 많다. 그러나 테스트 엔 지니어가 리뷰와 코드 인스펙션 수행 시 결함을 발견하는 것뿐 만 아니라 테스트를 수행하는데 필요한 다양한 정보와 리스크 를 얻을 수 있기 때문에 리뷰와 코드 인스펙션 활동을 수행하 는 것은 매우 중요하다.

프로젝트 초기의 결함 발견, 리뷰

리뷰는 프로젝트를 진행하면서 개발된 개발 산출물(프로그 램 코드, 요구사항 명세서, 설계서 등)과 테스트 관련 산출물(테 스트 계획서, 테스트 설계서, 테스트 시나리오 등) 등을 검토해 결함을 발견하는 방법이다. 이러한 리뷰 활동을 통해서 프로젝 트 초기에 결함을 발견함으로써 개발 시간 단축, 테스트 수행 시간 및 비용 감소, 추가적인 유지 보수 비용 감소 등의 효과를 얻을 수 있다.
리뷰를 통해서 요구사항 결함, 설계 결함, 표준 위반 등의 결 함을 발견할 수 있으며, 또한 테스트를 수행해야 하는 제품에 대한 이해를 통해 테스트 수행 시 발생될 수 있는 문제점을 사 전에 파악하여 문제를 해결하거나 대응할 수 있다. 리뷰는 보 통 Informal Review, Technical Review, Walkthrough 및 Inspection으로 구분한다.
column_img_2810.jpg
column_img_2811.jpg
리뷰의 종류 중에서 Formality가 가장 높은 것은 인스펙션 (Inspection)이며 그 중에서 가장 대표적인 기법은 페이건 인 스펙션이다. 페이건 인스펙션은 1970년대 초 IBM의 페이건에 의해 적립된 방법으로 프로젝트 초반에 전문 인력을 투입해 초 기에 많은 결함을 발견하고 이를 통해 제품의 품질을 향상 시 키는 방법이며, 실제로 많은 성공 사례를 가지고 있는 방법 중 하나이다.
column_img_2812.jpg
실제 페이건 인스펙션을 도입한 한 업체의 경우 불량률 15배 감소, 납기 준수 39% 향상, 고객 만족도 41% 향상의 효과를 가 져 왔으며, 다른 업체의 경우에는 인스펙션을 통해 통합 테스 트 이전에 요구사항, 설계, 구현단계에서 70~80%의 결함을 발견하고, 납기 준수도 92%나 향상되었다고 한다.
물론, 우리나라의 IT 상황이나 현실의 장벽으로 인해 인스펙 션이 실제 위에서 언급한 것보다 적을 수 있겠지만, 가장 중요 한 것은 이러한 활동이 실제로 프로젝트의 기간과 비용에 많은 영향을 준다는 것이다.

코드 결함 발견을 위한 코드 인스펙션

코드 인스펙션은 제품의 품질을 향상시키기 위해 제품을 실 행하지 않고 제품의 소스코드를 확인해 결함을 발견하는 방법 이다. 리뷰와 마찬가지로 코드 인스펙션을 통해 테스트 수행 이전에 결함을 발견할 수 있으며, 동적 테스트로 발견하기 어 려운 결함 및 코드의 유지 보수성 등을 향상 시킬 수 있어 필수 적으로 수행해야 하는 방법이다.
일반적으로 코드 인스펙션 수행 시에는 코드 인스펙션 도구 에서 정의된 규칙이나 코딩 준수 여부에 대한 테스트를 수행하 게 되며, 이러한 규칙을 통해 사전에 발생될 수 있는 결함을 예 방하는 효과를 가질 수 있다.
코드 인스펙션의 중요성은 공공 사업에 적용되는 개발 프레 임 워크인“전자정부 표준 프레임워크”에서도 확인 할 수 있는 데, 이 개발 프레임 워크에는 기본적으로 코드 인스펙션을 진 행할 수 있도록 오픈소스인 PMD도구가 기본적으로 설정되어 있다.
또한, 매우 오래된 자료이기는 하지만 미국 국방성(DoD)에 서 제출한 논문에 따르면, 다양한 품질향상 활동 중에서 코드 인스펙션이 다른 활동에 비해 ROI(Return on investment) 측면에서 가장 효과적인 것으로 나타나기도 했다.
column_img_2813.jpg
column_img_2814.jpg
이처럼 코드 인스펙션은 다양한 품질 향상 활동 중에서 적은 비용으로 큰 효과를 볼 수 있는 방법이다. 물론 외국의 사례이 기 때문에 국내 현실에 적합하지 않거나 결과가 다르게 나올 수 있겠지만, 우리가 생각해야 할 것은 적은 비용과 조직의 변 화 없이 제품의 품질을 향상시킬 수 있는 방법이 있다는 것이 다.
지금까지는 적은 비용으로 프로젝트의 비용과 기간을 줄이 고 제품의 품질을 알아보았다. 다음 시간에는 테스트 수행에 도움이 되는 다양한 테스트 관리 도구에 대해 알아보도록 하겠다.