HBsmith
테스트 대상의 내부 구조를 모르는 상태에서 Tester의 Input → Output으로 정상 여부를 판단하는 블랙박스 테스트. 블랙박스 테스팅은 End-User가 유입되는 출시일에 가까워질수록 중요성은 증가한다. 보다 효율적이고 전문적인 관점에서 진행하고자 하는 QA 팀 노력의 방향도, 인력 중심의 테스트 방식에서 탈피하고자 하는 노력이 필요한 시점이 찾아왔다.
인력 중심 블랙박스 테스트 방법에는 어떠한 것이 있을까? 이를 구분 짓는 가장 큰 기준은 테스트 플랜부터 테스트 케이스 또는 체크리스트 디자인 가능한 수준의 요구 사항(명세서)의 제공 여부이다. 또한 제품의 모든 Spec은, QA 팀과의 기획 리뷰를 거쳐 결정되는 것이 테스트 수행 시점에서의 불필요한 커뮤니케이션 리소스 최소화가 가능하였다. 속한 조직이 위와 같다면 블랙박스 테스트는 명세 기반으로 진행/관리되는 것이 품질 관리에 도움이 된다.
하지만 테스트 인력의 경험과 도메인 지식 및 제품 이해도가 높다면 테스트 설계 중심의 테스트 방법보단 수행 중심인 경험 기반 기법을 활용한 프로세스를 잡아가는 것이 도움되었다. 조직마다 정의한 QA의 목표, 수준이 모두 다르기에 각자 처한 환경에 적합한 프로세스로 역량 내재화가 필요했다.
인력 중심 테스트 방법에는 테스트 준비단계부터 많은 리소스가 사용된다. 특히 신규 입사자 비율이 높은 QA 팀일수록 경험 기반 기법의 체크리스트와 탐색적 테스팅과 같은 방법론을 사용하기엔, 테스트 결과 신뢰성에 Risk가 존재한다. 결국 테스트 케이스 기반 수행 방식이 필요한데, 이는 테스트 케이스 디자인 단계부터 유지 보수에 많은 리소스가 사용된다. 한번 잘 작성된 테스트 케이스는 하나의 역 기획서라 불릴 만큼 조직의 중요한 자산으로 활용되지만 그 이면에는 QA 팀의 노고가 담겨있다.
지금까지 블랙박스 테스트의 전부라 할 수 있는 명세 기반과 경험 기반에 대해 알아보았고, 인력 중심으로 진행할 경우 발생하는 문제점은 아래와 같다.
TestCase의 핵심은 수행자가 아닌 설계자이다. 테스트 정황, 기법 등 고려 대상도 많을뿐더러, 테스트 숙련도와 관계없이 동일한 커버리지에서 같은 결괏값을 도출해내려면 설계자의 전문성이 중요하다.
테스트 사전 조건이 복잡한 대상일수록 Test Leader 포지션에 위치한 인력이 설계를 담당하게 되는데 많은 시간적 비용이 소요될뿐더러, 무엇보다 가성비가 좋지 못하다. 테스트 설계 기법에 대한 지식을 갖추고 각종 기법을 활용하여 케이스 도출을 하여도 운영(Live) 환경에서 발생되는 이슈를 사전에 밝혀내지 못한다면 사용자가 원치 않는 테스트 활동을 한 것이다. 만약 운영 환경에서 발생된 이슈 유형이 QA 기간 테스트 팀에 의해 발견될 수 있는 사전 조건과 스텝이었다면 더욱 그렇다.
이렇듯 명세 기반 테스트 방법에는 실제로 제품 동작을 지켜보고 탐색하는 과정보다, 오랜 기간 정립된 테스팅 이론을 활용하여 잘 작성된 문서화에 초점을 두는 경향이 다분하다. 하루의 대부분을 소프트웨어를 직접 보고 만지는 행위가 아닌, 빼곡히 쓰인 엑셀/구글 스프레드시트를 들여다보며 보내는 것이 결함이 존재함을 밝히는 활동의 본질인지 의심하고 되돌아볼 필요가 있다.
소프트웨어 테스팅은 결함이 존재함을 밝히는 활동이자 사전 예방을 통한 운영(Live) 환경에서 발생되는 이슈를 최소화하는 데에 목적을 두는 것을 다시 한번 상기시킬 필요성이 있다.
체크리스트는 테스트 케이스와는 반대로 수행자의 역량이 중요하다. 미션 보상 수령이 가능하다는 체크리스트가 있다고 가정한다.
미션 종류에는 50여 가지가 존재하며 특정 미션에서만 조건 충족 시 횟수 카운팅이 안 되는 문제가 이전 빌드에서 발견된 적이 있다. 이후 빌드에서 시간적 관계로, 회귀 테스트(Regression Test) 미진행, 확인 테스팅(Confirmation Test)만을 거쳐 수정 여부 확인 후 Close 되었다. 프로젝트 경험과 이해도가 높은 테스트 리더는 해당 체크리스트를 사전 조건과 테스트 스텝을 적절하게 세팅하여 결과를 도출해낸다. 더불어 회귀 테스트 미진행에 따른 리스크를 파악하고 1개의 체크리스트에서 수많은 테스트를 전체 테스트 종료 일정에 맞춰 적절한 시간 분배로 진행한다.
하지만 경험이 부족한 테스터는 일부분만 테스트한다거나 적절치 못한 시간 분배로 전체 일정에 영향을 끼칠 수 있다. 누락된 Test Validation 과정으로 발생된 보상받기 불가능 이슈가 운영 환경에서 발생한다면, 테스트 팀은 제 몫을 다하지 못하게 된 것이다. 또한 모든 테스트 내용을 기억에 의존하기엔 불가능하다.
이후 테스트 개선을 논의하는 포스트 모템 활동 간에, 사라진 기억에 의존하여 왜곡된 개선 방향을 도출할 우려가 존재한다. 빠른 실행 중심의 테스트 방법이라는 장점이 존재하지만 그에 상응하는 리스크가 분명 존재하기에, 이를 완화 혹은 해결시킬 방안이 필요하다.
배포된 QA 빌드가 정식 QA 진행에 필요한 기능 구현이 되었는지를 검증하는 BAT(Build Acceptance Test)에는 체크리스트를 활용하여 빠른 결과에 초점을 두고, 전체 기능에 대한 커버리지는 테스트 결과 신뢰성의 높고 낮음의 중요성에 맞춰 적절히 활용하는 것도 하나의 방법이다.
또한 중요한 업데이트 스펙들 모두 테스트 준비 단계에서 리소스 사용이 많더라도 테스트 케이스로 진행하는 방향처럼 상황에 맞춰 적절히 섞어가며 진행하는 방식도 효과적이다. 숙련된 테스터들은 테스트 차터, 타임 박싱, 테스트 아이디어, 디브리핑의 구성 요소가 담긴 탐색적 테스팅을 진행시키는 것도 좋은 방안이다.
하지만 TC 기반 테스트 방법과 경험 기반 테스트 방법이 피할 수 없는 고질적 문제가 존재한다. 바로 반복 테스트다.
반복 테스트는 테스터라면 피하고 싶지만 피할 수 없는 존재이다. 블랙박스 테스트에서 반복 테스트라 함은, 테스트 조건과 스텝이 정형화된 패턴을 보이는 모든 대상이라 할 수 있다. 이러한 테스트에 매몰될수록 높은 피로감 외에 얻는 수확은 그리 높지 않다.
경험상 사용자에게 중요한 기능들이 단순 반복 패턴을 보였다. 상품을 장바구니에 담고 결제 및 취소하는 비즈니스 로직도 하나의 예시가 될 수 있다.
상품을 장바구니에 담고 결제 및 취소, 적립금 확인이 필요한 비즈니스 로직에, 몇 개의 테스트 케이스가 도출될까? 테스트 대상의 Spec에 따라 다르겠지만 설치, 코딩 없이 Visual Test를 자동화시키는 HBsmith 서비스 이용 고객 사례를 살펴보면, 200개 정도의 TestCase가 발견되었다. 이를 HBsmith 운영팀에서 15분 만에 자동화시켰고 5분, 10분, 30분, 1시간 등과 같은 테스트 스케줄로 인공지능 봇이 365일 테스트 가능하도록 학습시켰다.
HBsmith 운영팀에서는 고객사 사이트의 비즈니스 로직을 분석하여 테스트 대상을 RPA 프로세스에 적합한 시나리오로 전환시킨다. 이후 Naoko라는 녹화 도구를 활용하여 테스트 스텝에 포함되는 클릭, 스와이프, 스크롤, 입력 등의 Action을 테스트할 때와 똑같이 진행한다. 테스트 기대 결과 값에 해당되는 항목들은 ROI 수치 비교를 통해 학습한 데이터와 테스트 데이터가 동일한지 체크하게 된다. 학습 당시 UI만 변경되지 않는다면 녹화 작업을 통한 자동화 과정 반복이 필요치 않으므로, 최초 1회 녹화만으로 200개의 TC를 365일 24시간 테스트 가능한 것이다.
QA와 테스트는 다르고 테스트만으로 품질을 보장할 수는 없다. 하지만 반복적이고 리스크 높은 테스트 대상을 빠른 실행 주기를 통해 점검, 예방할 수 있다면 인간의 판단이 필요한 시나리오에 보다 집중할 수 있을 것이다. 테스트 팀이 인간의 판단이 필요한 테스트 시나리오에 보다 집중한다는 것은, QA 팀 역량 강화와 커리어에 보탬이 되리라 생각된다. 단순 반복 테스트로 인해 새로운 테스트 방법을 시도조차 할 수 없는 환경에 놓인 테스터, 리더라면 매뉴얼 테스트 역량 강화만을 생각하기엔 그 자체로 리스크가 존재한다. 오늘 하루 동안 진행한 수백 개의 테스트 케이스에서 규칙과 패턴이 보였다면, RPA 솔루션을 검토해볼 필요가 있다.
국내 유일 설치, 코딩 없이 개발자 아닌 누구라도 자동화 가능한 HBsmith 서비스로 200개의 TestCase를 15분 만에 자동화시킬 수 있습니다. 단순 반복 테스트는 HBsmith 인공지능 봇에게 맡기고 탐색적 테스팅과 같은 경험, 직관, 기술이 필요한 창의적이고 커리어 성장 가능성이 높은 영역에 집중하세요. 유즈 케이스와 같은 사용자의 입장에서 표현된 테스트 시나리오를 봇에게 맡기시고 TestCase로는 발견하기 어려운 유형의 결함 발견에 집중하세요.
무료 평가판 신청
https://hbsmith.io