Visual Studio 2005에서 단위 테스팅 기능을 선보였을 때, 대표적인 고객 요구 사항 중의 하나가 테스트 함수 입력 값을 자동으로 만드는 기능이었습니다. 이제 DevLabs (http://msdn.microsoft.com/en-us/devlabs/default.aspx) 프로젝트, PEX (Program Exploration)가 어느 정도 그 요구 사항을 만족할 수 있을 것 같습니다. 개발자에게 적용할 수 있는 시나리오는 이렇습니다.

1. Test-Driven Development에 충실하게 검증 규정, 함수, 입력 값을 먼저 만들어두면 좋겠지만, 그렇지 않고 기능 구현을 먼저 했는데 단위 테스팅이 필요한 상황이 된다면,

2. 사용하고 있는 Visual Studio 버전이 2008인 것을 확인하고,

3. http://msdn.microsoft.com/en-us/devlabs/cc950525.aspx 에서 PEX를 내려받기해서 설치하고,

4. Visual Studio에서 단위 테스팅을 할 함수의 코드로 이동합니다.

5. 목표 함수에 마우스를 위치한 다음, 반대편 클릭을 하고, “Run Pex Explorations”를 선택합니다.

6. 그러면 아래와 같이 자동으로 입력 값을 만들고, 입력 값에 대한 출력 값도 보여줍니다. 이 과정에서 PEX는 함수 입력 값의 유형에 따라 입력 값을 자동으로 생성하고, Visual Studio에서 테스팅 프로젝트를 만들어 줍니다.

7. 이다음부터는 Code Coverage를 수행하거나, 단위 테스팅 프로젝트를 다루듯이 이용하시면 됩니다.

clip_image002

이 기능은 테스트할 코드를 아는 상태에서 각종 테스트를 수행하는 White Box Testing 범주에 들어갑니다.

실전 프로젝트에서 단위 테스팅을 개발 프로세스의 한 단계로 만드는 것은 매우 어려운 일입니다. 많은 프로젝트를 대상으로 많은 함수를 포괄해서 단위 테스팅을 적용하는 것보다는 파사드 (façade) 유형의 함수에 먼저 적용을 하고 이를 통해 최소한의 품질 관리 기준을 마련한 다음 점차 확대하는 것이 성공 확률이 높습니다. PEX 기능이 궁금하신 분에게는 20분 분량의 비디오를 - http://channel9.msdn.com/posts/Peli/Getting-started-with-Pex-in-Visual-Studio-2008/ - 추천합니다. 영어로 되어 있기는 하지만 이해하시는데 어려움은 없을 것입니다.