앱을 개발한다는 것은 개발하는 것도 물론 중요하지만 다 개발하고 난 후에, 테스트 하는 과정도 중요하다고 생각한다.
그렇다면 모바일 앱 테스트 과정에 대해 어떠한 것이 있는지 알아보자.
보통 더 나은 테스트를 위해서 QA 팀은 테스트 업무를 시작할 때 개발팀과 협력하여 모바일 앱이 구현되는 기술을 이해하고 진행해야 한다.
특히 모바일 앱은 반드시 목표 사용자 그룹을 위한 목적이 있으므로 그 목적을 중심으로 서비스가 어떻게 구현되었는지 이해할 필요가 있다.
이런 학습 과정을 통해 이해도를 높인 후 테스트 시나리오를 정의해야 한다.
모바일 앱의 이용 목적, 목표에 대한 이해가 없다면 필요성에 대해 평가하지 못할 수 있다.
따라서 개발자와 테스터는 테스트 업무가 시작될 때 테스트의 목적과 상세한 테스트 시나리오를 확립해야 한다.
이 과정을 통해 개발 및 테스트 업무를 일관된 프로세스로 수행할 수 있고 효율적인 테스트 과정을 통해 효과적인 결과를 달성하는 데 도움이 된다.
대부분의 테스터들은 모든 시나리오를 우선순위 없이 테스트한다. 이런 방식은 테스터들 간에 중복된 테스트 시나리오가 있을 확률이 높다.
결국 전체 테스트 시간이 길어지고 효율성은 떨어진다. 테스트 프로세스를 효율적으로 운영하기 위해서는 서비스 요구 사항과 중요성에 따라 시나리오와 테스트 우선순위를 지정해야 한다.
만약 모바일 앱 업데이트 과정에서 기능 변경 및 추가로 인해 이전 기능도 테스트 필요성이 발생했다면 테스터들은 전체에 대한 포괄적인 재 검증을 해야 한다.
이런 경우라면 수많은 테스트 상황을 포함해야 하므로 상당한 시간이 소요될 것이다. 더군다나 이 모든 것을 진행하기엔 주어진 시간이 부족하다면 어떻게 해야 할까?
다음과 같은 우선순위에 따라 단계별로 테스트를 실행하는 것을 추천한다. 각 단계별로 분리하여 진행하게 되면 시간과 인력을 줄이고 효율성을 높일 수 있다.
이 단계는 모바일 앱의 핵심 기능을 테스트하는 과정이며 기본적이면서도 가장 중심이 되는 핵심 기능을 테스트하는 단계이므로 전체 테스트 과정에서 최우선 순위로 진행되어야 한다.
만약, 앱의 기능 중 어느 하나라도 정상적으로 작동하지 않는다면 테스트 과정을 멈추고 해당 기능의 문제 해결에 집중해야 한다.
모든 테스트 작업 중 최우선 순위는 해당 기능의 문제 해결에 부여되며, 그 문제가 해결된 다음에 다시 작업이 진행되어야 한다.
예를 들어 모바일 앱이 모바일 단말의 불특정 환경 혹은 특정 상황에서 실행이 되지 않는다면 전체 작업이 의미가 없기 때문이다.
치명적인 문제점을 가지고 다음 단계의 테스트를 진행하는 것은 테스트에 소요되는 시간 자원을 중복으로 투자하는 것과 같다.
이 단계는 앱 사용자가 주로 이용하는 기능을 주요 범주로 하여 진행된다. 특히 사용자에게 앱 삭제를 유발할 정도로 사용자와 밀접한 관련성을 지니고 있는 기능과 서비스 시나리오를 테스트해야 한다.
사용자 이탈과 연관되어 있는 모든 상세 기능과 서비스 시나리오를 반드시 점검해야 되며 이 단계는 앞선 "Blockers" 단계가 정상적으로 종료된 후 진행하는 것이 바람직하다.
이 단계는 경쟁 앱에서 제공되지 않는, 우리만의 고유한 기능 및 서비스 시나리오를 중심으로 테스트하는 단계이다.
이 단계에서 발생된 오류 사항들이 전반적인 작동에 큰 영향을 미치지 않고 우리의 고유한 기능이 불편함을 상쇄시키고도 남을 큰 이점이 있다면 즉시 출시하는 것이 탁월한 선택일 것이다.
반대로 중요한 오류라면 수정 후에 출시하는 것이 최선이다.
이 단계에서 중요한 것은 발생한 오류와 우리만의 모바일 이점을 각각 가치로 환산하여 판단하는 것이다.
이 단계는 UI 및 변경 없이 유지되고 있는 기능을 테스트하는 단계이다.
이 단계의 범위는 모바일 앱 사용에 큰 영향을 미치지 않을 것이기에 사용화 목표 기한이 짧다면 이 단계는 진행하지 않거나 발생한 오류 항목들을 출시 이후에 해결해도 무관하다.
정리하면, 모바일 앱 테스트는 서비스에 대한 이해를 기반하여 기능 항목을 검토해야 한다.
그리고 서비스에 영향력이 큰 기능 순으로 분류하여 단계를 만들고 우선순위를 부여해 진행한다면 테스트 업무에 투자하는 시간과 비용을 절약할 수 있다.