아니 ㅋㅋ 어차피 버릴 코드를 테스트해서 뭐하냐

프로그램에서 라이브러리처럼 잘 안 바뀌는 저수준 코드들은 빡센 테스트나 심하면 증명까지도 할 수는 있는데
유스케이스에 가깝고 계속 변하는 고수준 코드들은 의미가 없음
TDD도 하지 말고 그냥 짜고 확인만 함


증명이고 테스트고 변하지 않는 무언가를 검증하는데
문제는 사용자가 써보기 전에는 뭐가 바뀌고 뭐가 고정되는지 확실하지가 않음
극단적으로는 A/B 테스트가 있음. 한쪽은 버려지는데 테스트를 넣겠냐구 ㅋㅋ

너무 많이 변하고 고수준이라서 테스트 짜는 게 수지가 안 맞는 경우는 그냥 어쩔 수 없는 거 같음
1)잘 검증된 부품들을 2)실수하기 어려운 방식으로 조합해서 유스케이스를 해결하는 코드를 짜는 것 밖에 답이 없는 거 같음.
그나마 빠르고 버그도 적은 방법이라 생각함
(물론 설계가 저런 조합이 가능해야 하고)

그러다가 어플리케이션이 좀 성숙하면 회귀테스트나 앱 전체를 검증하는 PBT도 넣고 그러면 될 듯...


테스트, 증명은 플머의 생각이 코드로 제대로 표현됬는지 확인하는 툴이라서
걍 생각 자체가 현실에 맞지 않을 때는 그냥 시간낭비가 됨

근데 어지간한 쌉고인물 도메인 전문가가 아닌 이상
사람 생각이란 게 현실이랑 늘 달라서 매번 대가리를 깨버리더라고