cleanUrl: /notes/combination-tests

다양한 상태와 행동들을 조합하여 테스트하는 조합 테스트는, 조합할 상태가 늘어남에 따라 테스트케이스가 기하급수적으로 늘어난다. 하지만 대부분 조합 테스트에서 발견하는 버그는 전체 버그의 10%인데 반해, 조합테스트에 들어가는 비용은 전체 테스트 비용의 80% 이상인 경우가 많다. 매우 비효율적인 투자이므로 하지 않는 것이 옳다.

그런데 만약 조합테스트에서 많은 버그가 발견된다면 어떻게 해야 할까? 조합테스트에서 많은 버그가 발견된다는 것은 프로그램의 설계 차원에서 결함이 있다는 증거이다. 전역변수를 너무 많이 쓰거나, 또는 멀티 쓰레드를 쓰면서 mutex 등을 제대로 사용하지 않은 것이다.

이런 버그는 QA단에서 발견해서는 안 되고 설계 차원에서 방지되어야 한다. 이미 발견되고 있다면, QA단에서 계속해서 발견할 것이 아니라, 설계를 다시 해야 한다.