개발 자체 서비스 만들다보니..
조회 1,683 · 공감 0 · 댓글 13
테스트 코드에 대해 개념을 참 알기 어렵네요
처음에는 tdd로 빡시게 만들었다가 아 ai로 만드는데 이거 너무 병목 현상 심한데..
라고 생각해서 (물론 좋은 경험이긴 했어요)
다음 프로젝트는
그냥 테스트 코드없이 개발을 하고 있긴한데
이게 아직까지는 큰 문제가 없어서..
테스트 코드가.. 이게
테스트코드 돌린것만으로도 실제 서비스가 동작된다는걸 완벽 검증하게 되는건지
왜냐면 처음에 tdd로 개발할때
테스트코드에서는 그린인데 실사용에서는 red 인경우가.. 종종 있더라구요
제가 잘 못짜서 그렇긴 한것같은데
이게 테스트코드 개념이..
기능 추가할때 기존 기능 안깨지게 하는게 더큰 의미 인지
아니면 테스트 올 그린되면 문제없구나 라는 그 신뢰성의 의미인지..
혹시 여러분은 어떻게 생각하시나요
댓글 13
다 테스트하면 말씀대로 올 그린으로 신뢰성을 가지게 할 수도 있죠. 그러면 좋은데 빡세지니 트레이드 오프가 있는거구요.
애매하면 핵심로직만이라도 짜시는 걸 추천 드려요.
리그레션 테스트를 하고 싶으시면 전반적 코드에 대해서 대부분 커버하게 작성 하셔야겠죠.
더군다나 서비스 개발이면요ㅎ
tdd가 탄생한 시기를 보면 오히려 si가 성행하던 시기라, tdd는 si쪽에 더 잘맞을거라는게 제 생각입니다
(참고로 저는 si경험은 없습니다)
+ 아 오해가 있을까봐 서비스 개발 쪽에만 있었습니다
Tdd도 분파(?) 같은게 있는데
Mockist와 클래시스트로 나누어지는데, 이 경계를 잘 타는게 중요해요, 저는 클래시스트 쪽인데 되도록 Mock을 안쓰긴합니다(외부 인프라 쪽만 mock)
실환경이랑 동일한 테스트 환경을 꾸미는게 제일 좋긴 하죠 ㅎ
실제 환경에서 테스트할 때 느리지 않다면 실제 환경에서 하는게 더 정확하지요.
예전에 메모리 직접 access 할 때는 A 값을 변경했는데, 가끔 B 값이 바뀔때가 있어서 (메모리 범위 넘어가버리다보니)
거의 필수적으로 덕지덕지 넣었는데, 요즘은 그냥 오류났을 때마다 하나씩 추가하는 마음가짐으로 가져가고 있습니다.
tdd와 테스트를 작성한다의 개념이 혼용되어있는거 같네요~!
아하 그러셨군요~ 주변에서 많이들 이런방식으로 쓰시는거 같아요 ㅎㅎ
ui쪽은 안하고요. ai 는 ui쪽 코드까지 테스트를 짜서 병목이 좀 많더라고요.
(취향문제지만)
모든 잘못된 경우를 막는 것은 별도의 테스트 담당자가 필요합니다. 예를 들어 삼각형의 각 점의 위치가 정확한가를 테스트하려면 TDD는 몇 개만 하고 넘어가지만 제대로 하려면 수십개의 테스트를 해야 합니다.