모듈화된 테스트, 유닛 테스트(Unit Testing)의 중요성

2024. 08. 03. 오후 05:12

Slime(Viscoelastic Fluid Simulation) 프로젝트에서 SPH로 유체를 시뮬레이션하고 Marching Cubes 알고리즘으로 표면을 추출하여 렌더링하는 과정이 있었다. 처음에는 SPH와 Marching Cubes를 모두 구현한 후, 바로 렌더링을 하여 2가지 요소가 모두 정확히 구현되었는지 테스트했다. 렌더링 결과를 확인하고, 우선 Marching Cubes의 구현이 어딘가 잘못되었다는 것을 알았다. 그리고 유체 표면을 제대로 확인할 수 없었기에, SPH 구현의 정확성을 확인할 수 없었다.

이후 교수님의 조언이 있었다. SPH와 Marching Cubes는 각각 테스트 후 적용하는 것이 바람직하다는 것, SPH의 경우 각 입자를 우선 Point로 렌더링해보는 것, Marching Cubes의 경우 테스트 데이터를 갖고 독립적으로 테스트하는 방법이 좋다는 것이었다. 사실 이전까지는 이 정도의 복잡성을 가진 시뮬레이션이나 렌더링 알고리즘을 구현해 본 적이 많지 않았기에 모듈화된 테스트, 혹은 유닛 테스트(Unit Testing)를 수행한 적이 별로 없었다. 유닛 테스트를 통해 복잡한 프로그램의 복잡한 프로그램의 정확성, 유효성을 효율적으로 확인할 수 있다. Slime 프로젝트에서 유닛 테스트의 중요성을 몸소 느꼈다. 앞으로의 프로그래밍에서는 유닛 테스트를 수행하고, 각 모듈의 유효성을 확인 후 모듈을 통합(integrate)하는 과정을 포함하는 것이 좋겠다고 생각했다.

0
Comments
© 2024 Kihun Jang