이 글은 https://yozm.wishket.com/magazine/detail/1964을 읽고 내용 및 생각을 정리한 글입니다.
테스트 코드는 왜 만들까? | 요즘IT
지금 돌이켜 생각하면 부끄러운 일이지만, 처음 테스트 코드를 마주했을 때 든 생각은 '왜 귀찮은 테스트 코드를 만들어야 하는 걸까?'였습니다. 물론 지금은 테스트 코드의 중요성을 깨달아 열
yozm.wishket.com
해당 본문이 테스트 코드에 대한 정리가 잘 되어 있어서 해당 글을 정독하시는걸 추천드립니다.
테스트 코드란?
- 소프트웨어의 기능과 동작을 테스트하는데 사용되는 코드.
- 개발자가 작성한 코드를 실행하고 예상된 결과가 나오는지 확인하는데 사용
- 테스트 코드의 종류로는 단위 테스트. 통합 테스트, 시스템 테스트, 사용자 인수 테스트 등이 존재
개발자가 주로 다루는 테스트 코드
단위 테스트 (Unit Test): 개별적인 코드 단위(ex) 함수,메서드)가 의도한대로 작동하는지 확인하는 과정
통합 테스트(Integration Test): 서로 다른 모듈들 간의 상호작용을 테스트하는 과정.
테스트 코드를 작성하는 이유
- 테스트 코드를 작성하면 요구사항의 기능적인 항목들을 정리하는 경험을 가질 수 있다.
- 테스트 코드를 통해 기능 수정간 발생할 수 있는 에러 상황에서 보호받을 수 있다.
- 테스트 코드를 작성하면서 복잡한 의존성에 대한 고민을 하게 되고, 더 나은 코드를 작성할 수 있게 된다.
내가 생각하는 테스트 코드란 ?
테스트 케이스 작성간 발생할 수 있는 단점은 테스트 코드에 대한 이해도가 부족한 개발자가 작성한 테스트 코드 뿐이라고 생각합니다. 올바른 테스트 코드 작성은 서비스의 코드 품질을 높이며 유지보수에 큰 도움을 줄 수 있습니다. 그렇기에 테스트 코드의 올바른 이해가 작성 이전에 진행되어야 된다고 생각하고 저 또한 더 좋은 테스트 코드 작성을 위해 많은 공부를 하고 있습니다.
TDD(Test Driven Development) 방식도 존재하지만 이러한 방식에 대해서는 주니어 개발자의 입장에서 다소 회의적입니다. '숙련된 개발자일수록 TDD가 용이해 질 것이라 생각하지만 개발 순서의 차이일 뿐 동일한 결과물이 나오지 않을까...?' 또는 '오히려 시간이 더 소요되지 않을까..?' 하는 생각도 들고요.
주니어 개발자들은 개발을 진행하고 TC를 작성하며 더 좋은 코드를 향해 리팩토링하는 과정을 거치는 것이 보다 더 좋은 코드를 작성할 수 있는 방법이 아닐까 싶습니다. 어느 정도 코드 작성에 숙련되었다 생각된다면 TDD에 대한 고려도 필요하겠지만요.
위의 의견을 요약하면 내가 만드는 기능이 어떤 요구사항이 존재하는지, 어떤 케이스가 예외 사항이 될 수 있을지 정리하고 테스트 코드를 더 간결하게 짜기 위해 서비스 로직 구성을 고려해야 합니다. 그러다 보면 어느새 좋은 코드(clean code)를 작성하는 개발자가 되어 있을 것이라고 생각한다는 의견을 남기며 글을 마무리하겠습니다.
다음 글에서는 테스트 기법에 대해 다루는 시간을 가져보겠습니다.
읽어주셔서 감사합니다.
'기타 > 테스트' 카테고리의 다른 글
4. How to Migrate and Using Junit 5 (0) | 2023.05.01 |
---|---|
3. Junit 5 (0) | 2023.05.01 |
2. Test Double (0) | 2023.03.25 |