TDD 실습으로 TDD의 한계점만 느끼고 있다. std::cin buffer를 바꿔치기해서 thread를 띄우고 gmock에 시간차를 두고 표준 입력을 전달하려니 이게 프로그램 테스트인지 C++ 지식 테스트인지 모르겠다. 테스트 코드가 테스트할 코드보다 어려운 현상은 매우 흔하며, 대개 src 폴더에 있는 코드보다 더욱 빠르게 레거시 코드로 상해버린다. 테스팅은 소프트웨어 개발 주기에서 필수적인 역할을 지니고 있으나 TDD가 프로그램의 명확함을 보장하는 방향으로 굴러가긴 어렵다. 명확한 프로그램은 선행되는 테스트가 아니라 명확한 설계에서 나오기 때문이다.
@evenharder이하 테스트 코드는 테스트가 없어서, 더 이해 가능성에 초점을 맞추고 작성해야 하더라고요. 코드로 코드를 테스트하니 코드와 환경에 대한 이해를 더 높게 가져야하는 부담이 있는 것도 늘상 경험하는 일이고요.
If you have a fediverse account, you can quote this note from your own instance. Search https://social.long-echo.net/@ysh/01983746-f22d-7f5b-b8fc-fe9731f88720 on your instance and quote it. (Note that quoting is not supported in Mastodon.)