소프트웨어는 빌드라는 작업을 통해서, 유저가 사용할 수 있는 상태로 만들어 집니다. 이러한 결과물이 사용자에게 전달되기 전에 테스트 하는 작업을 진행하여, 완성도를 높히거나 문제점을 잡는 과정이 필요합니다.


 게임 역시 소프트웨어의 한 일종이기 때문에, 대부분 버전 테스트를 진행할 때, 소프트웨어의 빌드 테스트 방법을 사용하게 됩니다. QA 직군에 해당하거나, 관련하여 기반 지식이 있는 개발자라면 테스트 용어에 대하여 잘 알고 계시겠지만, 용어에 대한 이해 없이 일을 진행하는 경우가 많습니다. 그런 분들을 위하여, 각 테스트에 대한 의미를 정리해 보았습니다.





Unit Test (단위 테스트)


 개발자가 자신이 작성한 소스 코드를 테스트하는 것을 의미합니다. 일반적으로 비공식적으로 진행하며, 진행 단위는 케이스에 따라 다릅니다. 





System Test (시스템 테스트)


결함을 찾아 내기 위하여, 소프트웨어를 실행하여 테스트를 진행하는 것을 의미합니다. 주로 테스트 조직에서 담당하며, 요구되는 사항을 토대로 테스트 계획서를 작성하여 케이스를 만듭니다.





Smoke Test (스모크 테스트)


 새로운 빌드를 만든 후, 테스트를 진행하기에 앞서, 해당 빌드가 정식으로 테스트 받을 만한 가치가 있는 것인지 검증하는 과정을 구성하여, 보다 효율적인 테스트를 진행할 필요가 있습니다. 이렇게 빌드의 테스트를 진행할만한 가치가 있는지 살펴보는 과정을 해당 빌드에 대한 '스모크 테스트 수행' 이라고 부릅니다. 이렇게 부르는 이유는 해당 빌드를 실행할 때, 기능 고장으로 인하여 연기(Smoke: 스모크)가 나지 않도록 판단하는데 사용되기 때문이라고 합니다.


The next step after accepting a new build and preparing to test it is to cerify that the build is worthwhile to formally test. This process is sometimes called performing a smoke test on the build. because it's used to determine whether a build "smokes"(malfunctions) when run.

[ Game Testing All-in-one ]

 

 일반적으로 테스트 팀은 여러개로 이루어진 스모크 테스트를 수행한다고 합니다. 대개 이러한 것들은 BAT(Build Verification Test) 혹은 BAT(Build Acceptance Test) 로 알려져 있습니다. 스모크 테스트의 목적은 모든 버그를 찾아 내는 것이 아니라, 제품의 안정성을 유지하기 위함이라는 것을 기억해야 합니다.





BVT (빌드 검증 테스트: Build Verification Test)


 문자 그대로 해석하면, 빌드 검증 테스트 라고 할 수 있습니다. 각 소프트웨어마다 다양한 방법 또는 각 팀마다 고유의 방법을 제공하지만, 여기서는 MS 에서 사용한다고 알려진 BVT 속성을 다루고 넘어가도록 하겠습니다.


모든 것을 자동화 하라.

모든 빌드가 나올때마다 테스트해야 하는 내용들을 설치, 삭제 같은 것을 자동화하여 테스트를 효율적으로 진행한다.


일부만 테스트하라.

기본 기능을 확인하여 빌드가 테스트 진행을 위해 사용 가능한지를 확인한다.


신속하게 테스트하라.

전체 빌드 검증 테스트는 몇 시간 안에 끝낸다. 수행 시간이 짧을 수록 빌드가 문제가 있는지 즉각 파악할 수 있다.


실패를 정확하게 인지하라.

BVT가 실패했다면, 실패 원인은 즉시 수정되어야 한다.


깊게가 아닌 넓게 테스트하라.

BVT 는 전반에 걸친 테스트를 진행하는 것이다. 세세한 부분은 나중에 하고 주요 기능, 주요 사용 시나리오를 가능한 많이 포함시킨다.


디버그와 유지 보수가 용이하게 하라.

실패가 일어났다면, 그 원인을 파악하여 목록으로 기록한다.


신뢰할 수 있어야 한다.

실패하였다면 즉시 알려야 한다. 타협하면 안된다.


 위에 보듯이 BVT 는 빠르게 빌드 전반에 대한 내용을 테스트 하는게 핵심입니다. 그러기 위하여 대부분의 BVT 목록은 다음 기준으로 작성됩니다.


  • 반복적인 수행이 가능해야 한다.
  • 빠르게 수행할 수 있어야 한다.
  • 테스트 케이스의 유지 보수가 어렵지 않아야 한다. 





BAT (빌드 수용 테스트: Build Acceptance Test)


 이 테스트 방법 역시, 문자 그대로 빌드 수용 테스트를 의미합니다. 주로 소프트웨어의 핵심 기능을 테스트 하는 과정으로 진행됩니다. 빌드를 진행한 후, 소프트웨어의 핵심 기능이 정상 작동되는지 확인함으로서, 세세한 테스트를 진행할 준비가 되어 있는지 확인하는 과정을 의미합니다.





Regression Test (회귀 테스트)


 소프트웨어를 수정한 후, 과거에 고쳤던 버그가 다시 살아나는 것을 Regression Bug (회귀 버그)라고 하며, 그 버그를 찾는 테스트는 Regression Test (회귀 테스트) 라고 합니다. 




Posted by Kr해머
,