김영민 와이즈스톤 팀장

▲ 김영민 와이즈스톤 팀장

[컴퓨터월드] 지금까지 테스트 프로세스 중에서 테스트 계획, 테스트 설계 및 환경 구축 그리고 프로젝트 초기부터 결함을 발견하기 위한 리뷰와 코드 인스펙션에 대해 알아봤다. 우리는 이러한 테스트 프로세스에 따라 제품에 대한 테스트를 수행하고, 결함을 발견해 제품의 품질을 향상시킨다.

그리고 테스트를 수행하면서 생성된 산출물, 테스트 결과 및 결함 등에 대한 기록과 관리를 지속적으로 수행한다. 하지만 사람이 이러한 기록과 관리를 하는 것은 쉽지 않으며 따라서 다양한 테스트 관리도구를 활용해야 한다.

각 기업의 QA(Quality Assurance) 또는 테스트조직들이 테스트 수행에 필요한 도구를 가잘 먼저 구입하는 것도 이런 이유 때문이다.

테스트를 수행할 때 도메인(임베디드, E-Commerce, 모바일 등) 영역에 따라 사용하는 도구들이 서로 다르지만, 일반적으로 프로젝트 관리도구, 결함관리도구(BTS: Bug Tracking System), 테스트 관리도구, 요구사항 관리도구 등을 활용한다.

하지만, 테스트 프로젝트를 오랫동안 진행하다 보면, 결함관리도구 뿐만 아니라 다양한 도구나 시스템이 필요하다는 것을 알 수 있다. 도메인 분야에 따라 차이가 있기는 하지만, 테스트조직은 단순히 테스트 수행 시 발생된 결함만을 등록하고 관리하는 것이 아니라, 테스트 관련 산출물을 관리하기도 하고, 소스코드 관리시스템에 접근해 정적분석을 하기도 하며, 빌드(Build)와 릴리즈(Release)를 담당하는 경우도 있다.

심지어 테스트 엔지니어가 품질보증 업무까지 담당을 하게 된다면, 그 업무의 양은 늘어날 수밖에 없다. 이 경우 위에서 언급된 다양한 기반시스템을 구축해야 하는데, 그러기에는 많은 비용이 소요되며, 또한 오픈 소스를 이용해 구축한다고 하더라도 시스템간 커스터마이징이 쉽지 않다.

품질향상을 위한 시스템 구축 SW Visualization

SW Visualization은 SW공학센터에서 제공하는 서비스로 효율적인 SW 개발 관리를 통해 기업의 SW 경쟁력확보와 SW품질 향상을 지원하기 위한 서비스이다.

SW Visualization은 공개 SW 기반으로 구성돼 기반 시스템을 구성하고자 하는 기업의 비용 부담을 줄여주며, SW공학 지식이 부족한 상태에서도 시스템 활용만으로 품질관리를 수행할 수 있도록 해준다.

▲ SW Visualization 구조 (출처: 소프트웨어공학센터, SW Visualization)

이렇게 구축된 SW Visualization은 테스트조직에게 다양한 정보와 여러 이점을 제공한다.

첫 번째 이점은 요구사항에 대한 실시간 파악이 가능하다는 것이다. 우리가 SW테스트를 수행하면서 가장 어렵고 힘든 점은 변경되는 요구사항에 대해 실시간으로 확인을 할 수 없다는 것이다. SW테스트에서 가장 중요한 것은 요구사항이며, 이러한 요구사항이 잘 관리되지 않는다면, 테스트 계획이나 테스트 설계 시 변경되는 요구사항을 반영할 수 없기 때문에 테스트를 반복적으로 수행하는 상황이 발생할 수밖에 없다.

두 번째 이점으로 문서화 작업의 간소화를 들 수 있다. 테스트를 수행 후에는 반드시 테스트 수행에 대한 결과 보고서를 작성해야 한다. 테스트 수행 후에는 항상 결과에 대한 리포트를 수치화하고 결과를 분석해 고객에게 전달해야 하는데, SW Visualization에서 사용되는 오픈소스 기반의 도구를 활용할 경우에는 테스트 수행도 수월할 뿐만 아니라 테스트 수행의 결과에 대한 기본적인 리포트를 제공하기 때문에 작성해야 하는 문서작업을 간소화 할 수 있다.

세 번째 이점으로는 변경사항에 대한 추적성 강화를 들 수 있다. 프로젝트를 진행하다 보면, 요구사항 변경뿐만 아니라, 테스트 관련 문서에 대한 변경이 지속적으로 발생란다. 하지만 변경된 내용을 사람이 지속적으로 기록하거나 기억하는 것이 불가능하기 때문에, 프로젝트를 진행하면서 많은 의견충돌이 발생한다. 변경에 대한 요구사항이 관리된다면 이러한 분쟁을 사전에 예방할 수 있다.

실제 프로젝트 진행 시 변경사항에 대한 관리가 이루어 지지 않아 발생한 문제에 대한 책임 소재가 불분명해 소송 등으로 이어지는 경우도 있다.


테스트 필수 도입 도구, 도입 순서는?

테스트를 수행하는 조직의 입장에서는 “저 많은 도구를 다 구축해야 하는가?” 또는 “저렇게 다양한 도구들 중에서 실제로 우리에게 필요한 도구는 어떤 거지?” 등에 대한 의문을 나타낼 수 있다. SW Visualization에서 활용하는 오픈소스가 분명 테스트 수행에 도움이 되는 것은 맞지만 실제로 테스트조직에서는 저렇게 많은 도구가 필요하지도 않을뿐더러, 당장 프로젝트에 도입해 효과를 거둘 수 있을까 의문을 나타내기도 한다.

많은 테스트 조직은 도구를 도입해 빠른 효과를 기대한다. 하지만 도구에 대한 분석 없이 무턱대고 도구를 도입할 경우 많은 비용을 지출하고도 큰 효과를 보기가 어렵다. 아래 그림은 기반 시스템의 도입 효과를 나타내고 있다. 도입효과가 확실하면서 도입이 쉬운 도구를 중심으로 하나씩 도입하는 것이 좋다.

▲ 기반 시스템 도입 효과 (출처: 소프트웨어 개발의 모든 것, 페가수스)

위의 그림을 기준으로 본다면, 테스트 조직은 우선적으로 결함관리도구(결함관리 시스템)를 도입해야 한다. 엑셀과 같은 프로그램을 이용해 결함을 관리하기도 하지만, 이 경우 실제 프로젝트에서는 각종 문제점이 나타날 수 있다. 앞에서 이미 언급했지만 기록에 대한 추적이 불가능하기 때문에 결함에 대한 분쟁이 발생 될 수 있으며 이런 이유로 결함관리 도구를 우선적으로 도입하는 것이 좋다.

프로젝트 관리 도구, 테스트케이스 관리 도구, 테스트 관리 도구 등도 중요하지 않은 것은 아니지만, 이러한 도구들은 테스트조직 내에서 충분히 관리하고 수정될 수 있다. 그러나 결함관리 도구는 테스트조직 외에도 전체 프로젝트 조직과 프로젝트 관련자들이 모두 사용하기 때문에 결함관리도구를 사용하지 않고 결함을 관리하는 것은 현실적으로 불가능하다고 할 수 있다.

▲ 기반 시스템 사용 흐름도(출처: 소프트웨어 개발의 모든 것, 페가수스)

오픈소스를 도입해 시스템을 구축하고 사용하는 것도 생각보다는 쉽지 않다. 오픈소스 기반의 시스템을 구축하고, 지속적으로 관리하는 것이 결코 쉬운 일이 아니기 때문이다.

아직까지 중소기업이 비용을 지불하고 결함관리도구를 사용하는 것은 쉽지 않은 선택이라 할 수 있다. 많은 도구업체들이 기존 패키지 서비스 방식에서 벗어나 SaaS 기반의 서비스를 제공하려 하는 것도 중소기업들의 비용 절감과 관계가 있다.


▲ OWL ITS(Issue Tracking System)


도구 도입만큼 중요한 것

많은 CEO나 프로젝트 관리자들이 잘못 인식하는 것이 하나 있다. 그것은 바로 테스트 관리 도구 도입만으로 SW품질을 향상시키고 테스트 수행 시간을 단축시킬 수 있다는 단순한 생각이다. “테스트 관리 도구를 모두 도입했으니 이제 SW품질이 향상되겠지”하고 생각하는 CEO나 프로젝트 관리자들이 의외로 많다. 그러나 도구의 도입만으로 당장 품질이 향상된다는 것은 착각이다. 개발조직, 테스트조직 등도 “이제 도구를 도입했으니 업무량이 줄어들고 일이 편해지겠지”하는 착각을 하기도 한다.

테스트 관리 도구의 도입으로 테스트 수행 및 관리에 대한 시간과 비용이 줄어드는 것은 맞지만, 도구의 도입만으로 업무량이 급격히 줄어들거나 비용이 갑작스럽게 크게 감소하는 것은 아니며 잘못 사용할 경우 오히려 업무의 양이 증가하고 프로젝트가 더 복잡해 질 수 있다.

이러한 문제가 발생되지 않도록 하기 위해서는 테스트 관리도구에 대한 지속적인 교육과 SW품질의 중요성에 대한 이해와 인지가 반드시 필요하다. 그렇지 않다면 이 도구들은 업무의 효율을 높이는 도구가 아니라 오히려 업무를 방해하는 도구가 될 것이다.

도구 도입의 허와 실

일반적으로 테스트를 수행할 때 도구를 활용하면 다양한 효과를 얻을 수 있다. 자동화도구를 도입할 경우 반복적인 업무가 감소돼 테스트 수행 시간이 줄어든다. 테스트 효율성이 증가하고 실수도 줄일 수 있어 유지보수 및 SW 수정 비용이 감소하게 된다.

또한 품질에 대한 객관적인 평가기준이 제공돼 품질에 대한 객관적인 평가가 가능하고, 품질향상으로 인해 고객의 만족도가 높아진다. 궁극적으로 SW 매출이 증가하고 시장에서의 점유율이 증가하는 등 기업의 경쟁력이 향상된다.

물론, 도구를 도입한다고 모두 이런 효과를 얻는 것은 아니다. 도구 도입으로 인해 발생될 수 있는 단점을 우선적으로 파악하고 이해해야만 위에서 언급한 효과를 볼 수 있다.

테스트 관리 도구는 고가이다. 물론 오픈소스를 사용한다면 비용이 절감되겠지만, 테스트 관리 도구를 유지하고 관리하는 데에는 많은 비용이 들어간다. SW Visualization과 같은 서비스가 있기는 하지만, 이 역시 초기 기반시스템 환경을 구축하고 테스트 수행을 위한 설정에 매우 많은 시간과 비용 그리고 노력이 요구된다. 이외에 도구에 의해 생성된 테스트 관련 데이터를 자산으로 만들어 관리하고 유지하는 데에도 많은 비용이 소요된다.

지금까지 테스트를 수행하면서 필요한 테스트 관리도구에 대해 알아봤다. 테스트 관리도구는 반드시 필요하다 할 수 있다. 하지만 테스트 관리도구가 만병통치약은 아니며, 도구를 잘못 사용할 때에는 테스트 업무가 가중되고 더 혼란스러워 질 수 있다는 점을 알아야 한다.

저작권자 © 컴퓨터월드 무단전재 및 재배포 금지