아직까지도 테스트코드가 없는 회사들이 많다
여러 이유들을 들어보면 개발 속도가 느려진다, 실제 서비스개발을 하는 것이 아니다 등등을 이유로 댄다
난 주니어 개발자이다. 개인적으로 TDD를 하면 좋겠지만, TDD까지는 바라지 않는다
(TDD란 Test Driven Development이며 실패하는 테스트 코드를 만든 후 성공을 위한 코드를 만든다)
실제로 개발을 하면 개발자가 모든 입력값을 검증할 수 없다
프론트 단에서 null이 넘어올지 ''(empty string)이 넘어올지, undefined가 입력값으로 넘어올지 모르는 일이다
어느날 프론트 직원이 나한테 물어봤다. "이 입력 폼을 123에서 ''로 비워놔도 동작이 되나요?"
MSA 프로젝트라서 그 모듈 api를 열어서 컨트롤러로 가고 입력값 DTO로 가서 validation을 확인해본다
그 이후에 "아 가능합니다"라고 말한다
하지만 이런 요청들이 1명의 1번이 아니라 5명이 각각 3번 이상씩 묻는다면?
물론 API 명세(스웨거,레스트독스) 등으로 설명이 가능하지만, 부족하거나 validation은 정확하게 알지못한다
또는 어느날 validation을 바꿔줄 일도 있을 것이고, JPA의 경우에는 Entity 스펙이 바뀔수도있을 것이다
나 혼자 개발하는게 아니라 일은 협업이고, 사람은 실수를 한다. 실수를 할때 최대한 IDEA와 자바, 스프링의 도움을 받기 위해 Secure Coding Style을 하고, 내가 만든 코드에 확신과 빠른 의사소통을 위해 Test Code를 만드는 것이라 생각한다.
만약 이미 만들어진 테스트코드가 있다면 그 서비스 혹은 api만 테스트를 10초 동안 돌리고, "아 가능합니다 혹은 불가능합니다"
라고 할수있지않은가?
또는 로직이 복잡한 서비스라면 미리 테스트를 만들어 두는 것도 좋다고 생각한다
모든 테스트가 있다면 좋겠지만, 테스트 제외 빌드, 테스트 브랜치 %(소나큐브) 등등 설정할 것이 많아질 것이니 말이다..
참고로 프론트엔드도 스토리북으로 테스트가 가능한 것으로 알고있다
애석하지만 지금 내 위치에서는 테스트 코드를 작성할 여유가 없다
내가 개발 속도가 엄청 빨라지거나, 로직에 틈이 없이 작성할 능력과 왜 테스트 코드가 중요하고 개발 속도에 장점이 있는지 어필할 수 있는 위치 혹은 연차가 됐을때 어필을 해보려고 한다!!
그리고 통합테스트, 부하테스트, 인수테스트, 기능테스트, 슬라이스테스트 등등... 여러 테스트의 종류가 있으니 공부해보길 바란다~
댓글