본문 바로가기

프로그래밍/소프트웨어

소프트웨어 테스터에게 필요한 것

소프트웨어 테스터에게 필요한 것 - Dr. James McCaffrey

최근 Microsoft를 비롯한 소프트웨어 회사의 소프트웨어 엔지니어 및 관리자와 대화를 하다 보면 같은 이야기를 매번 듣게 됩니다. 바로 뛰어난 소프트웨어 테스터를 찾기는 원래도 어려웠지만 최근 몇 년 동안에는 더 어려워졌다는 이야기입니다.
그렇다면 훌륭한 소프트웨어 테스터가 되기 위해 필요한 요소는 무엇일까요? 필자가 가장 중요하게 생각하는 8가지 자질을 정리해 보았습니다.
  1. 분석과 테스트에 대한 열정 모든 일에서 성공의 열쇠는 자신의 일에 대한 진정한 열정입니다. 훌륭한 소프트웨어 테스터는 일반적으로 응용 프로그램 자체를 작성할 때보다 소프트웨어 응용 프로그램을 이리저리 움직이게 하는 테스트 자동화를 작성할 때 더 큰 만족감을 얻습니다. 이러한 특성은 수학, 경제학, 그리고 컴퓨터 과학과 같은 계량적 학문을 전공한 사람들에게서 자주 발견됩니다. 분석에 대한 이러한 열정은 후천적으로 형성되기보다는 타고나는 경우가 많습니다.
  2. 전문 기술 훌륭한 소프트웨어 테스터는 테스트 대상 시스템을 이해하고, 개발자와 의견을 교환하고, 테스트 자동화를 작성하기 위해 상당한 수준의 코딩 기술을 보유해야 합니다. 대부분의 전문 기술은 교육이나 경험을 통해 얻을 수 있습니다. 훌륭한 테스터가 되려면 어느 정도 수준의 코딩 기술을 갖추어야 하는지에 대해서는 필자 주변만 봐도 여러 의견이 있지만 필자는 응용 프로그램 개발 기술을 1-10단계로 평가할 때 최소한 7.5단계는 되어야 한다고 생각합니다.
  3. 순수한 지적 능력 훌륭한 소프트웨어 테스터는 탁월한 분석 및 논리적 사고 능력을 갖춘 영리한 사람이어야 합니다. 소프트웨어 개발은 본질적으로 논리 활동이며, 이러한 환경에서 높은 수준의 업무를 수행하려면 소프트웨어 테스터는 당연히 영리해야 합니다.
  4. 우선 순위화 및 체계화 능력 이러한 자질은 거의 모든 직업에 필요하지만 소프트웨어 테스터에게는 특히 중요합니다. 소프트웨어 개발과 테스트는 핵심 변수가 매주, 심지어 매일 바뀔 수 있는 상당히 동적이고 유동적인 활동입니다. 따라서 이렇게 자주 변하는 작업 환경 요소를 인식, 해석, 체계화하는 능력이 필수적입니다.
  5. 적응 및 학습 능력 소프트웨어 엔지니어링 분야에서는 신기술이 등장하는 속도가 놀라울 정도로 빠릅니다. 예를 들어 2003년 초에 발표된 C#과 Microsoft .NET Framework는 소프트웨어 응용 프로그램 개발에 완전한 혁명을 일으켰습니다. 훌륭한 소프트웨어 테스터가 되기 위해서는 끊임없이 배울 자세가 되어 있어야 하며 매주 일정한 시간을 자신의 기술을 업그레이드하는 데 투자해야 합니다. 필자가 2년 전에 했던 연구에 의하면 소프트웨어 엔지니어의 기술이 가진 효과가 절반으로 떨어지는 시기는 약 18개월로 나타났습니다. 이는 소프트웨어 엔지니어가 기술 업그레이드 노력을 게을리하면 직업 시장에서 급속하게 도태됨을 의미합니다.
  6. 직접적인 감독 없이 일할 수 있는 능력 이 요소 역시 일반적인 업무 능력이지만 소프트웨어 테스터에게 특히 중요한 능력입니다. 독립적으로 조치를 취하기 위해 필요한 능력입니다. 소프트웨어 테스트 작업과 관련된 기술적 요구 또는 비즈니스 요구를 신속하게 인식하고, 관리자의 승인이 없어도 수행해야 할 단계를 파악하는 능력(또한 관리자의 승인을 받을 때까지 진행해서는 안 되는 경우를 파악하는 능력)은 필수적입니다.
  7. 의사 소통 능력 훌륭한 소프트웨어 테스터에게는 원활한 서면 및 구두 의사 소통 기술이 필요합니다. 제품 설명서를 읽고 분석하고, 테스트 계획을 수립하고, 명료한 버그 보고서를 작성하고, 관리자에게 제출할 논리 정연한 상태 보고서를 작성하고(정식 보고서 및 임시 전자 메일 보고서 모두), 회의에서 상대의 의견을 경청하고 논리적으로 말할 수 있는 능력은 필수적입니다.

출처 : http://msdn.microsoft.com