brunch

You can make anything
by writing

C.S.Lewis

by 금융앱빌런 Apr 19. 2023

이게 된다고? 배포 전 테스트

단위 테스트, 통합 테스트, 관통 테스트 등

현재 통합테스트는 20% 완료되었습니다.


 이제 새롭게 만든 기능을 오픈할 때가 다가왔다. 평화로운 주간회의 시간,  SI업체 PM의 말 한마디가 싸하다. 곧이어 분위기가 차갑게 내려앉는다. 20%라니 심각하구먼 그런데 통합테스트가 뭐지?


 개발자가 개발한 내용이 한 번에 아무런 이슈없이 되는 그런 마법 같은 일이 현실에서는 일어나지 않는다. 오히려 한 번에 되면 그게 더 이상하다. 어디선가 문제가 있는데 우리가 모르는 것일 수도 있다. 아무튼 개발 후에는 여러 번의 테스트를 통해 초기에 현업 기획자의 요구사항대로 개발이 되었는지를 확인하는 것이 필요하다.


이게... 되네?


개별 모듈/컴포넌트에서 수행하는 단위테스트


 보통 개발이 진행되면, 모듈이나 컴포넌트 단위에서 개발이 진행된다. 코딩 직후에 수행하는 것이 바로 이 단위테스트다. 사용자의 요구사항을 기반으로 기능이 제대로 구현이 됐는지 확인한다. 빠르게 작은 단위의 테스트를 수행해 오류를 빨리 발견할 수 있다. 이러한 단위테스트는 다른 모듈과 값을 주고받는 것이 안 되는 경우에도 수행하기 때문에 이럴 때는 테스트 드라이버 등을 통해 해당 값이 들어온 것으로 간주하고, 값이 들어온 뒤의 모듈이 제대로 수행되는지 테스트한다.


모듈들이 하나의 시스템으로 돌아가는지 확인하는 통합 테스트


 통합 테스트는 개별적으로 테스트된 모듈들을 하나로 통합하여 전체 시스템의 동작을 검증하는 과정이다. 단위 테스트에서는 다른 모듈에서 줘야 하는 값이 '들어왔다 치고' 테스트를 하기 때문에 실제로 모듈 간 값을 주고받으며 테스트를 진행하는 것이다. 서로 몰랐던 케이스가 발생하거나, 연동 자체에 문제가 생기거나 하는 경우도 있다. 빅뱅 방식으로 한 번에 통합 테스트를 진행하거나, 상향식/하향식 방법을 통해 인터페이스 문제, 데이터 전달 및 저장에 이슈가 없는지 파악할 수 있다.


사용자 관점에서 전체 흐름을 점검하는 관통테스트(라이프사이클 테스트)


 통합테스트 완료 후에 사용자가 많이 쓰는 서비스에 대해서는 관통테스트(라이프사이클 테스트)도 진행하기도 한다. 차세대를 통해 수신 프로세스가 변경되었다고 하면, 실제로 사용자들의 관점에서 알파/베타테스트 형식으로 본인인증, 약관동의, 계좌개설, 개설 후 입금/출금/송금/해지 등을 수행해 보는 것이다. 알파테스트로 진행되어 금융회사 내부 직원들만이 수행할 수도 있고, 고객 중 테스터를 선정해 베타테스트를 진행할 수도 있다. 아무리 통합테스트가 잘 됐다 할지라도 모든 테스트 케이스를 다 다룰 수는 없기 때문에, 사용자들이 실제로 사용하며 문제를 발견하는 방식이다.


 이런 테스트들에서 가장 큰 걸림돌은 금융 IT에서는 테스트 케이스이다. 전자금융법상 실데이터를 테스트계에 넣을 수도 없을뿐더러, 금융사 내부의 IT도 은행, 카드끼리는 분리가 되어있기에 데이터를 주고받는 것도 어렵다. 테스트하려고 test고객의 계좌에 100만 원을 넣었더니, 누군가 그 계정을 가지고 탈회 테스트를 해버리면 없이 지는 경우도 많다.


 내가 일하는 환경에서는 특수 케이스를 테스트해보는 것도 쉽지 않다. 특히 운영에서 이미 사용하는 기능들에 새로이 개발을 해서 점검을 하는 경우에 이름이 긴 사람, 14세 미만 초등학생, 외국인, 65세 이상의 할아버지... 이런 케이스를 주변에 수소문해서 테스트해 봐야 하는데 어려움을 겪는 경우가 있다. 그런 케이스가 얼마나 되냐? 하면 얼마 없긴 하지만 그 사용자 입장에서는 "쳐 죽일 금융앱"이 되는 것인데...


테스트 못해서 죄송합니다. 김...돌돌이 고객님


 어찌어찌 테스트들을 하면 문제없이 서비스가 잘 오픈될 것 같지만 그렇지도 않다. 테스트 상황에서 고려되지 않은 것들이 끊임없이 튀어나와 유지보수 과정에서 개선에 개선을 거듭하게 된다. 하지만 최대한 문제를 먼저 찾아 예방하려는 차원에서 이렇게 여러 테스트를 수행하게 된다.


 



[참고자료]

https://sharplee7.tistory.com/37


https://sharplee7.tistory.com/40


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari