본문 바로가기

프로그래밍

MSA 테스트 자동화

테스트란?

 - 소프트웨어의 결함이 있는 부분을 찾아내는 과정

 - 테스트에서 밝혀내야하는 결함이란 오류뿐 아니라 설계와 다르게 동작하는 것, 의도되지 않은대로 동작하는 것을 포함

 

테스트 종류

 - 유닛 테스트 : 단위 기능 테스트

 - 서비스 테스트 : 각 모듈(MSA로 분리된 각 Service)의 외부로 공개한 API를 대상으로 한 테스트

 - 통합 테스트 : MSA로 분리된 전체 모듈을 연동하여 테스트

 - 시스템 테스트 : 실 서비스에 준하는 상황으로 테스트

 

테스트 자동화를 해야 하는 이유

 - 운영중인 서비스에 추가, 변경 사항이 생길 경우 사이드 이펙트를 모두 파악하기 어려움

 - 코드 리팩토링, 라이브러리 업그레이드 등을 진행한 뒤에도 기존 기능에 영향이 없는지 확인이 필요함

 - 코드 변경이 생기는 경우에 기존 기능에 영향이 없는지 검증하는 가장 기본적인 방법

 

결론

 - 테스트가 자동화 되어 있지 않다면 코드가 변경 될때 마다 사이드 이펙트를 우려해 리팩토링을 수행하지 못할 확률이 높음

 - 결국 코드 개선이 되지 않아 시간이 지나면 우리가 흔히 보는 레거시 시스템이 될 확률이 높음

 - 테스트 케이스를 작성하고 자동화 하는 것은 귀찮고 힘든 일이지만 반드시 수행해야 함

 - 테스트 케이스는 코드 추가, 변경이 생길 경우에도 지속적으로 유지보수가 되어야 함

 

[참조]

https://engineering-skcc.github.io/msa/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4%ED%85%8C%EC%8A%A4%ED%8A%B8/

'프로그래밍' 카테고리의 다른 글

OWASP Top 10 2020  (0) 2020.10.04
FQDN - Fully Qualified Domain Name  (0) 2020.07.06
디미터 법칙  (0) 2020.04.24
GRASP 패턴  (0) 2020.04.22
TDD, BDD, DDD, RDD  (0) 2020.04.21