Proven by Intelligence
보이지 않는 안전을 인텔리전스로 증명하다.
기술 인사이트를 만나보세요.
소프트웨어 개발 과정에서 테스팅은 필수적인 요소입니다.
테스팅은 개발자, 테스터 엔지니어 등 다양한 주체가 수행할 수 있습니다. 어떤 주체가 테스팅을 수행하는지에 따라 독립성의 수준이 달라지게 됩니다.
이번 글에서는 ISTQB (International Software Testing Qualifications Board)에서 다루는 테스팅의 독립성에 대해 살펴보겠습니다.

소프트웨어 테스팅의 독립성

테스팅 과정에서 살펴보았을 때, 개발자와 테스트 엔지니어 간에는 서로 다른 접근 방식을 가지게 됩니다.
개발자는 자신의 코드가 기능에 맞게 정상적으로 수행될 것을 생각하고 접근하며, 테스트 엔지니어는 잠재적 결함이나 예외적인 상황에서의 동작을 검증하는 데 초점을 두고 접근합니다.
전자의 경우 개발한 코드에 대한 친숙함을 바탕으로 결함을 효율적으로 검출해 낼 수 있으며, 진행 후자의 경우에는 개발과는 독립적으로 객관적인 판단을 할 수 있습니다.
이와 같이 테스팅과 관련한 독립성의 정도에 따라 결과가 달라질 수 있습니다.
테스팅의 독립성은 다음과 같이 크게 네 가지로 나누어 볼 수 있습니다.
- 개발자가 직접 진행 (독립성 없음)
- 개발 팀 내의 동료가 진행 (일정 수준의 독립성)
- 다른 팀의 테스트 엔지니어가 진행 (높은 독립성)
- 조직 외부의 테스트 엔지니어가 진행 (매우 높은 독립성)
테스팅 과정은 사람에 의해 진행되기 때문에 확증 편향(Confirmation bias – 자신의 가치관이나 기존의 신념 등과 부합하는 정보에만 주목하고 그 외 정보는 무시하거나 간과하는 경향)과 같은 인지 편향이 작용할 수 있습니다.
이러한 요소는 소프트웨어를 개발한 개발자가 직접 테스팅을 진행하는 경우 객관적인 테스팅을 수행하는 데 방해가 되기도 합니다.
개발자와는 다른 배경, 기술적 관점, 인지 편향을 가진 독립적인 테스트 엔지니어를 통해 테스팅을 진행하면 충분한 독립성을 확보할 수 있습니다.
이렇게 독립성이 확보된 테스팅은 결함을 더 효과적으로 식별할 수 있게 해줍니다. 테스팅을 수행하는 주체가 기획, 설계, 개발과는 독립적인 상황이기 때문에, 중립적인 관점을 바탕으로 객관적으로 결함을 식별할 수 있습니다. 개발자가 테스팅 할 때와는 다른 유형의 장애와 결함을 식별할 가능성도 높아집니다.
그러나 테스팅의 독립성은 높기만 하다고 좋은 것은 아닙니다. 독립성의 수준이 높아질수록 개발이나 제품에 대한 정보가 부족할 수 있고, 의사소통과 협업이 어려워질 수 있습니다. 그리고 개발자가 가져야 할 품질에 대한 책임감이 감소할 수도 있습니다.
이처럼 하나의 테스팅의 독립성 수준으로 진행하기보다는 조직의 규모, 프로젝트의 목적 등 여러 가지 상황을 종합하여 여러 수준의 독립성을 가질 수 있도록 테스팅을 수행하는 것이 중요합니다.
출처 : ISTQB Certified Tester Foundation Level Syllabus 2018

지금까지 테스팅의 독립성에 대해 알아보았습니다.
상황에 맞는 적절한 수준의 독립성을 확보하여 품질 높은 소프트웨어를 개발하여 고객 신뢰와 만족도를 높일 수 있습니다.
MDS인텔리전스 소프트웨어 검증 센터는 다양한 검증 서비스를 제공합니다.
풍부한 경험과 노하우를 가진 전문 인력을 보유하고 있으며, 국제적으로 인증된 검증도구를 활용한 서비스를 제공합니다.
MDS인텔리전스 소프트웨어 검증 센터의 다양한 분야의 검증 서비스를 경험해 보세요.
더 구체적인 검증 서비스에 대해서 궁금하시거나, 기타 문의 사항은 sve@mdsit.co.kr로 문의 메일 부탁드립니다.

MDS인텔리전스
임베디드 소프트웨어 고품질 및 신뢰성 확보를 위한, SW 검증센터
E. sve@mdsit.co.kr
