본문 바로가기
Homo Ware

조직과 기술 발전 - 테스트 조직 구성

by javauser 2011. 1. 12.
우리는 자리가 사람을 만든다는 이야기를 합니다. 자리는 직책이 될 수도 있으며, 혹은 조직 내에서 역할이 될 수도 있습니다. 결국 하는 일에 그 사람의 자격과 업의 본질을 바꿀 수 있다라는 말일 것입니다. 이를 조직내에서도 그대로 적용해보면 조직 내의 해당 역할을 담당하는 부서를 통해서 해당 기술의 발전을 꾀할 수 있을 것입니다. 소프트웨어를 생산하는 조직은 크게 보면, 전반적인 기본적인 뼈대를 담당하는 아키텍처/인프라를 구성하는 팀과, 여기에 비즈니스라는 살을 입히는 비즈니스 구현팀, 해당 구현된 SW를 검증하거나 품질을 보장하는 품질관리팀 등으로 구성될 수 있습니다. 물론, PMO와 같은 지원을 담당하는 팀이나, 인사나 재무와 같은 업무를 통해 지원하는 팀 역시 프로젝트를 수행하기 위해서 필요한 팀이지만, SW를 만드는 관점에서는 단순하게 지원조직으로 분류해볼 수 있습니다.

우선은 아키텍처/인프라를 구성하는 팀과 같은 경우, 실질적으로 비즈니스와는 다소 독립적인 영역들이 존재하며 (그렇다 하더라도 해당 프로젝트에서는 반드시 비즈니스와 결부되어야 합니다.), 구현팀보다는 다양한 기술들을 다루는 영역이다 보니 별도의 팀을 구성해서 운영하는 SW 조직들이 점점 많이지고 있으며, 이 영역은 앞으로도 꾸준한 발전과 더불어서 반드시 필요한 팀으로 인식되고 있는 실정입니다. 또한, 이 영역들은 자동화가 가능한 영역이 다소 제한적이며, 많은 창조적인 작업을 필요로 하기 때문에 사람의 능력을 제외하기란 여간 힘든 부분이기도 합니다.

비즈니스 구현팀 역시 마찬가지 영역으로, 인력 절감 내지는 비용 절감의 관점에서 수많은 노력들이 있었지만, 아직까지는 그 결과로만 본다면, 예나 지금이나 절대적인 시간과 비용을 들여야지만 그 결과를 얻을 수 있는 영역입니다. 결국은 이 영역 역시 사람의 능력이 절대적으로 필요한 영역입니다.

마지막으로 구현된 SW 품질을 검증하고 보장하는 작업을 하는 품질관리팀의 경우, 크게 SW 구현에 대한 일관된 품질을 유지시키는 활동을 수행하는 QA(Quality Assurance) 조직과 요구사항에 얼마나 근접하게 구현되었는지를 보장하는 Test 조직으로 구분될 수 있습니다. 사실 이 두가지 영역은 통상 QA라는 명칭하에서 혼돈해서 사용되기도 하며, 많은 조직에서도 품질관리팀 내에서 테스트를 같이 수행하기도 합니다. 하지만, 지금과 같이 SW 기술의 고도화로 인해서 테스트 분야는 상당히 다양해지고 있으며, 그 기법도 너무나도 광범위해지고 있습니다.

그리고, QA는 많은 도구를 통해서 사람의 능력보다는 순수한 관리라는 관점에서 자동화시키는 영역이 꽤 많이 있습니다. PMS (Project Management System) 도구들은 이러한 영역을 지원하고 있으며, 표준화라는 관점에서 주요한 활동을 수행하고 있습니다. 결국 품질을 일정하게 유지하기 위해서는 표준화를 지향하게 되며, 이는 곧 도구를 통한 관리가 가능하다는 것입니다. 아직은 PMS 영역들이 현실적이거나 실질적인 정보를 관리하는데는 다소 미흡한 부분들이 많이 있지만, 이러한 부분들은 정량화라는 측면에서 많은 노력들이 관리된다면 일정 부분들은 현실적인 정보를 제공하는 것이 가능한 부분들도 있습니다.

하지만, SW의 품질을 일정하게 유지하기 위한 주된 활동 중에 하나는 바로 검증을 수행하는 테스트 영역이 가장 비중을 많이 차지할 것입니다. SW를 만드는 궁극적인 목적이 화려한 문서를 만들거나, 체계화되고 일관된 소스 코드를 만드는 것이 아니라 바로 동작하는 (기능을 제대로 수행하는) 실행하는 SW입니다. 기능이 제대로 수행하고 동작하는지를 검증하는 영역이 테스트이다 보니, 이 테스트에 대한 영역 역시 결국은 구현하는 SW 기술이나 아키텍처/인프라와 결부되고, 비즈니스와도 같이 맞물리는 위치에 있게 됩니다. 이러한 테스트에 대한 영역을 강조하거나 강화하려다보니, 테스트 조직을 만들게 되며, 전문적인 인력을 훈련시켜서 SW 조직의 기술 발전을 도모하는 경우들이 많이 있습니다. SW 기술 발전이라는 측면에서 보면, 또한 역사적으로 기술 발전 측면에서도 업에 대한 세분화와 전문화는 반드시 필요한 부분이며 그렇게 진행되는 것이 사실입니다.

테스트 조직의 신설은 분명 테스트 기술이 부족한 조직에서는 반드시 필요하다고 생각되며, 그러한 조직을 갖춤으로써 테스트 능력을 빠른 시일 안에 확보하는 방편으로 조직을 관리할 수 있을 것입니다. 하지만, 조직의 신설이 반드시 기술 발전을 의미하지는 않는게 현실이기도 합니다. 자리가 사람을 만드는 것처럼 조직이 해당 기술을 만들기도 합니다. 하지만, 그 자리를 적임이 아닌 사람이 차지하는 경우에는 자리를 만드는 것보다 더 못한 경우도 많습니다. 테스트 조직 역시 마찬가지로 테스트 기술이 조직 내에서 일정 수준이 도달하지 않는 상태에서 가장 최고의 테스트 기술을 가지려고만 한다면 테스트 조직이 없는 것만 못합니다. SW의 검증은 사실 SW를 만드는 입장보다 그 배나 더 어려운 작업입니다. 우선은 SW 기술을 알아야 하며, 그 안에 담겨진 비즈니스 역시 알아야 합니다. 거기다가 이러한 구현체를 검증할 수 있는 능력까지 더해져야 합니다. 아무리 많은 노력을 하더라도 현실적으로 SW를 직접 만드는 사람보다 검증할 수 있는 영역이 한계가 제한적일 수 밖에 없습니다. (MS가 구현노력보다 3배 이상을 테스트 노력에 쏟았다는 사실이 이를 증명하는 부분일 것입니다.)

테스트를 가장 일반적인 분류로 white/black box로 나누기도 하지만, 이 두가지 방식 모두는 비즈니스의 이해가 그 전제가 됩니다. 도구를 통한 테스트의 경우, 일반적으로 black box 테스트를 수행하는 형태로, 비즈니스 흐름을 주로 검증하게 되는데, 이러한 테스트를 수행하기 전에 가장 먼저 부딪히는 것이 테스트 데이터의 생성입니다. 또한, 비즈니스와 비즈니스 간의 연계를 자동화시키는 부분도 어려운 부분 중에 하나입니다. 테스트에 대한 자동화의 요구가 증가하면서, 또한 도구를 통한 테스트를 수행함으로써 다양한 상황에 대한 결과를 얻기를 원하는 경우가 많아짐에 따라 고가의 검증된 상용 도구가 사용되기도 합니다. 하지만, 이러한 상용 도구들은 특수한 경우의 구현체까지 지원하기에는 한계가 있기 때문에 검증 대상 시스템과 도구와 맞추는 작업이 별도로 진행되어야 합니다. 도구(프레임워크, 솔루션, 패키지 등도 마찬가지로)는 늘 'one size fits all' 이라는 환상을 갖게 합니다. 도구를 사용해서 신뢰할 수 있는 검증 결과를 내는 테스트 작업은 이외로 상당한 노력을 요합니다. 물론, 테스트 조직에서 이를 대부분 담당하는 형태로 진행됩니다. 이 경우, 개발을 직접 담당하는 개발자는 테스트를 온전히 테스트 전담팀으로 넘기게 됩니다. 한정된 인력을 가지고 도구를 통해 테스트를 자동화하려는 노력은 수많은 프로그램 검증의 요청을 사실상 거의 불가능해질 수 있습니다.

테스트를 통한 검증은 개발 단계에서부터 수행되어야 합니다. 소위 '단위테스트'라는 개념은 대부분의 현장에서 '단위 화면 UI 테스트'라는 의미로 통용되고 있는 것이 사실이며, 이는 잘못된 개념을 사용됨에도 불구하고 개발자는 어떤 방법을 사용하든지 간에 자신이 만든 코드를 자신의 능력 안에서 검증을 완료해야 합니다. 국내와 같이 개발 조직보다 적은 인원수의 테스트 조직을 운영하려는 경우에는 반드시 '단위테스트'(개발자 테스트)가 더욱 더 중요합니다. 물론, 이에 대한 가이드는 테스트 조직에서 수행할 수도 있을겁니다. 하지만, 앞에서도 말했듯이 여기에는 아키텍처, 비즈니스 등의 여러 복합적인 부분들을 고려해야 하기 때문에 테스트 조직에서 이를 가이드하기에는 어느 정도 한계가 있을겁니다.

결론적으로, 테스트 조직은 SW 기술 발전을 위해서 필요한 조직(기구)입니다. 하지만, 아직까지는 그 역할과 기능에 대해서는 많은 이견들이 있고 정착화되기에는 상당한 시간이 걸릴 것으로 보입니다. 또한, SW 개발 영역의 자동화 분야가 확대되기 전까지는 아직까지 상당히 많은 작업이 사람의 머리와 손에 의존해야 하기 때문에 테스트에 대한 노력을 개발 영역의 노력보다 더 들일 수 밖에 없습니다. 테스트 조직이 생긴다고 하더라도 SW 개발에서 개발 역할을 수행하는 작업자에게 테스트는 반드시 수행해야 할 작업 중에 하나입니다. 기술 발전을 위해 조직을 구성하는 경우, 이러한 기술 발전이 문화적인 요인으로 정착되기 이전까지는 조직 설립에 대한 의미를 찾기 어렵습니다. '자리가 사람을 만든다'는 말은 결국 그 사람의 자질이 부족하다는 의미도 포함되어 있습니다. 조직을 만드는 원래의 의도에 맞게 그 만큼의 자질을 키우려는 노력이 더 필요합니다. 조직을 만들어놓고 그것으로만 SW 기술을 가졌다고 보기 어렵습니다.
반응형