[코압/인턴 후기] 3부 – SV&V 란 무엇일까

역지사지 실감하기

회사가 크면 클 수록 일의 분화가 잘되어 있는 편입니다. 각 팀별로 맡은 역할이 분명하기 때문에, 일의 전문성이 높고 동시에 효율성도 자연스레 높아지게 마련이에요. 하지만 동시에 서로간의 깊은 유대감 없이는 감정의 골이 심화될 수 밖에 없는 상황에 이르게 되기도 합니다. 서로가 서로를 존중해주지 않는 이상 프로젝트의 진행이 어려워질 수 밖에 없지요.

소프트웨어 개발 사이클에서 (제 생각으로) 가장 중요한 역할을 차지하고 있는 SV&V 팀의 주된 목적은 제품의 퀄리티 보장입니다. 개발자들이 짜놓은 프로그램이 제대로 실행되는 지, 문제점은 없는 지 테스트 해보는 것이 일인 직업이에요. 물론 테스트하는 것만이 전부가 아니라, 버그가 발견 되었을 시에는 확실히 보고하고, 버그픽스가 나오면 재확인하는 것 또한 SV&V 팀이 맡아서 하는 중요한 일 중 하나입니다.

대부분의 경우 탁구 경기를 보는 것과 같은 일상이 반복 되기 마련입니다. 버그가 생기면 제대로 된 절차를 통해서 개발자에게 넘겨지고, 버그가 고쳐지면 다시 테스터에게 넘어오게 되고 말이에요. 금방 금방 해결 되면 기분이 좋긴하지만, 계속 반복되면 짜증이 나게 마련입니다. 개발자와 테스터간의 사이가 좋은 경우에 농담으로 웃고 넘기게 마련입니다만, 그렇지 못한 경우엔 앞으로든 뒤로든 서로 손가락질을 하게 됩니다. 개발자는 개발자 나름대로, 테스터들이 좀 더 일찍 버그를 발견하지 못한 것에 불만이 생기고, 테스터는 테스터 나름대로 불완전한 소프트웨어에 불만을 가지게 되요.

RIM에서 근무하는 동안, (적어도 아직은) 불미스런 일은 발생하지 않았습니다. 비록 맡은 일은 다르지만, 결국 같은 밥을 먹는 한 식구라서 그런지도 모르겠어요. 😀 초기에는 저도 항상 개발자로서의 테스팅만 해보았던 터라, 과연 SV&V팀으로서의 테스팅은 어떻게 되어야 하는 지 공감하는 데 시간이 조금 걸렸어요. 덕분에 테스팅이라는 게 쉽지않다는 것을 항상 실감하고 있습니다. 🙂

궁극적으로는,

SV&V에게 주어진 역할은 수박 겉 핥기식으로 해낼 수 있는 것이 아니에요. 소프트웨어라는 것 자체가 물질적으로 존재하지 않는 것이기에 눈대중으로 대충 실행되나 안되나 확인할 수 없는 것 아니겠어요. 더군다나 실행되는 것만으로 만족할 수도 없고 꼼꼼히 많은 부분을 확인해 봐야 합니다. 대부분의 경우, End user 가 할 수 있는 일이라면 어떤 시나리오도 가능하다는 마인드를 가지고 있어야 합니다. 설혹 멍청하거나 황당한 행동이라도 발생 가능한 이상 꼭 확인을 해봐야 합니다. 소 잃고 외양간 고치는 식의 마인드는 냉혹한 비지니스 세계에서 용납되지 않거든요.

최소한의 버그를 유지한체 성공적으로 프로젝트를 발표하기 위해선 최대한 조금이라도 일찍 버그를 발견해내는 것이 중요합니다. 단순히 코드 자체만을 테스트 할 것이 아니라, 디자인 레벨부터 시작으로 프로젝트의 초기 단계에 (발생 가능한) 버그를 발견해내는 것이 중요해요. 많은 수의 버그가 잘못된 문서 표기에서 발생되는 경우가 많답니다. 그렇기에 개발자가 최종 사용자가 원하는 방향이 아닌 엉뚱한 방향으로 잘못 코드를 작성하기 이전에 미리 예방하는 것이 중요해요.

SV&V 내에서의 그리고 전체적인 회사내에서의 역할 분담

SV&V 팀 내에서도 역할 분담이 명확히 되어 있는 경우가 많습니다. 각자 개인의 장점을 잘 살려서 테스트 자동화쪽을 전문적으로 맡는 사람이 있는 가 하면, 뛰어난 언어 능력을 발휘해서 localisation 이나 internationalisation 쪽의 테스팅을 맡는 사람도 있습니다. 프로그래밍 능력이 특출난 사람들은 테스팅을 좀 더 수월하게 할 수 있도록 도와주는 개별적인 프로그램을 따로 개발하는 경우도 있구요.

RIM의 경우엔 테스터로 일하다가 개발자로 넘어가는 경우도 있고, 개발자로 일하다가 테스터로 일하게 되는 경우도 있습니다. 물론 아예 마케팅과 같은 아주 다른 부서로 넘어가는 경우도 있구요. 결국 자신을 제한하는 것은 단 하나, 자기 자신 뿐입니다. 자기 개발을 게을리하지 않는다면, 가능성은 무한합니다.

혹시? 설마?

이처럼 겉으로 드러나는 역할분담도 중요하지만, 모든 테스터들이 가져야 할 공통 마인드도 있습니다. 설마하는 부분은 꼭 짚고 넘어가는 것이 중요해요. 심각하다고 생각되는 부분은 꼭 자문을 구해서 문서화 해두는 것이 중요합니다. 차후에 진짜 문제로 판명되든 아니든, 한번쯤은 이미 이슈화 되었다는 것이 중요하거든요. 특히나 최종 사용자는 어떤 일이든 ‘저지를 수 있다’ 라는 생각을 잊지 않는 것이 중요하겠네요. 뜨거운 커피 컵에 “조심하세요, 본 음료는 뜨겁습니다’ 라는 문구가 필시 기재되어야 하는 것 처럼, 사소한 일이라고, 당연하다고 생각된다고 해서 쉽게 넘어가는 일은 없어야 되겠습니다.

우스개 말이지만, 테스터로서 일을 오래 하다보면 항상 제품이든 계획이든 테스터로서의 관점에서 바라보게 되는 것 같아요. 내가 만약 이런 일을 하면 어떻게 될까 하는 생각들은 답답해 보이지만 테스터로서는 필수라고 생각되네요. 🙂

점점 글을 쓰다 보니, 소재가 줄어들고 있네요. 길게 쓰려니 너무 장황하게 될거 같고 간략하게 쓰려니 너무 간단하게 되는 것 같아요. 그래도 힘을 내서 다음 4부는 SV&V의 입지에 관한 글을 써보려 합니다.