잡담

실용적인 단위 테스트

tomato13 2007. 5. 29. 09:36

안녕하세요.

평소에 계속되던 고민이었는데 아침에 잠시 적어보았습니다. 편하게 적었습니다. 부분적으로 논리에 안 맞을 수도 있으나 관심 있으신 분들은 편하게 읽어주세요~~ ^_^

 

현재 전사 개발 과제에 대해서 개발 단계 가운데 단위 테스팅을 수행하고 이에 대한 결과를 산출하기 위한 노력이 지속되고 있습니다. 그리고 이에 대한 직접적인 지원자 가운데 한 명인 저는 AV() DX-10과제를 지원하고 있습니다. MyTest를 적용하여 단위 테스팅을 지원하면서 개인적으로도 사실상 계속 궁금한 것은 ROI , 투자 대비 효과가 만족스러울까였습니다. 개발자들은 나름대로의 단위 테스팅을 이미 수행하고 있습니다. 이에 저희 측에서 권하는 것 가운데 하나는 이를 MyTest와 같은 도구를 사용하여 정형화된 테스트 결과서를 산출하는 것입니다. 이를 통해서 Defect의 조기 발견도 가능하겠으며 또한 이와 더불어 자신이 만든 모듈을 다른 개발자에게 넘기기에 앞서 자신이 작성한 TC로 특정 범위 이내에서 무결성을 보일 수 있다고 생각을 합니다.

.

.

그런데 일반적으로 개발팀에서의 얘기는 다음과 같습니다. 사실 맞는 말인데 시간이 없다는 것입니다. 그렇다면 왜 이런 얘기가 나오는 것일까요? 이미 단위 테스팅을 수행하고 있는 개발자 조차 이러한 얘기를 하는 이유 가운데 하나는 모든 PASS/FAIL결과를 ASSERTION으로 확인해야 하기 때문이 아닐까 생각을 해 보았습니다. 예를 들어 파일을 생성하고 파일이 생성되었는지는 윈도우 탐색기로 보는 것이 편하고 빠릅니다. 그리고 생성된 파일이 모두 몇 개인지를 확인하는 것도 ASSERTION을 사용하여 확인하려면 별도의 확인 방안에 고심을 하게 됩니다.

.

.

그래서 이에 대해서 나름대로 다음과 같이 생각을 해 보았습니다. 개인적으로는 ASSERTION 이외에도 Expected resultcapture된 화면으로 준비할 수 있지 않을까 생각을 해 보았습니다. 물론 PASS/FAIL판별은 TC수행자가 직접 수동적으로 하는 것이 아직까지는 효과적이지 않을까 생각을 해 봅니다. Capture된 화면이 없다면 즉, 준비된 expected result가 없어도 TC수행자가 수동적으로 확인을 하고 PASS/FAIL결과 기입을 하는 방법을 생각해 보고 싶습니다. 그리고 Pass일 경우 이에 대한 capture된 화면을 expected result로 보관할 수 있다면 차후 regression test시에 도움이 될 것이라고 생각을 합니다. 그런데 Target상에서 TC를 수행할 때에는 이러한 capture기능 지원이 쉽지 않을 것도 같습니다.

.

.

Test Case는 자신이 많든 코드의 무결성을 보장하고 다른 사람(Application개발자, Tester)에게 코드를 설명할 수 있는 좋은 수단일 듯 합니다. 그리고 Regression test에서 재사용될 수 있다면 더 효과적일 것입니다. 그러나 항시 부딪히는 문제는 ROI입니다. 이에 대해서 지속적으로 고민을 해 보고 싶습니다..