7월 초, 책임 개발자님으로부터 Windows CP 테스트 업무를 배정받았다. 고객 요청으로 새롭게 개발된 기능으로, 간단히 말하면 Windows 로그인 화면에 2차 인증을 커스터마이징해서 적용할 수 있게 하는 기능이다.

블랙박스 테스트

코드 한 줄 볼 수 없이 문서와 책임 개발자님의 업무 기록과 설명에 의존해야 했다. 내가 본 CP 프로그램 버전만 해도 5개가 넘어간다. 내가 입사하기전부터 프로토타입이 있었던 걸로 과거 업무 기록을 보고 파악이 되는데, 정말 많은 개발 공수가 들어갔고 외부 개발자와의 원격 소통에는 여러 어려움이 따른다는 걸 체감했다.

또한, 개인적으로는 소스 코드를 볼 수 있고 없고의 차이가 정말 크다는 걸 실감했다. 아무리 낯선 언어라도 소스 코드가 있다면 C++이든 C#이든 문법을 찾아가며 코드를 분석하고 운이 좋다면 개선할 수 있는 포인트도 발견할 수 있지 않았을까? 최소한 개발자로서 시야를 넓힐 수 있을 텐데, 소스 코드를 볼 수 없는 상황이 참 답답했다.

그럼에도 불구하고

그래도 이왕 맡겨주신 업무에 최선을 다해야하지 않겠는가? 나도 돈을 받고 일하는 프로 개발자다. 첫 테스트 업무에서 느낀 점과 배운 점, 그리고 테스트를 반복하며 효율적인 E2E 테스트를 위해 시도한 것들을 정리해보려 한다.

고마운 VirtualBox

이번 테스트를 진행하면서 VirtualBox의 소중함을 새삼 느꼈다. 이 VM 도구가 없었다면 Windows 로그인 관련 기능을 테스트하는 데 얼마나 많은 시간과 컴퓨터가 필요했을까? 한 대의 컴퓨터에서 수십 대의 가상 머신을 생성하고 삭제하며 테스트할 수 있다는 게 정말 고마웠다.

동시에 VM의 근본적인 원리에 대한 궁금증도 생겼다. 내 컴퓨터에 올린 VM은 실제 컴퓨터와 무엇이 다를까? 앞으로 공부해볼 흥미로운 주제로 저장해두었다.

개발자로서 성장

처음 3회차까지는 계획 없이 진행하다가 같은 작업을 반복하거나 완료한 작업을 까먹는 실수를 했다. 4회차부터 정신을 차리고 다음과 같은 기준을 세워 체계적으로 접근했다. 이를 통해 프로 개발자로서 일을 진행하는데 있어 효율성을 증대하는법을 배웠다고 생각한다.

1. 테스트 목적과 흐름을 미리 설계하기

경우의 수를 미리 고려해서 계획을 세웠다. 설치 과정의 체크박스 옵션들, 로그아웃, 사용자 전환, 원격 연결 등 가능한 시나리오를 Obsidian에 정리해두고 차근차근 진행하니 훨씬 체계적이었다. 테스트 작업의 전체 그림을 볼 수 있어 지루함도 덜 수 있었다.

2. 이슈 발생 시 즉시 기록하기

테스트 초기에는 버그를 발견하고도 당황한 나머지 VM을 그냥 종료해버려서 나중에 재현하는 데 애를 먹었다. 이 경험 이후로는 버그나 이슈를 마주치면 마음을 가라앉히고 즉시 노트 앱을 열어 스크린샷, 발생 시간, 환경 등을 차분히 기록했다.

3. 팀 기여: 선제적 문제 해결 시도

테스트 과정에서 발견한 문제점들을 단순히 보고하는 데 그치지 않고, 가능한 원인을 분석하고 가능하다면 해결방법까지 찾아 팀에 공유했다. 이를 통해 전체적인 소통 비용과 디버깅 시간을 절약하는 데 기여할 수 있었다. 비록 소스 코드는 볼 수 없었지만, 테스트 결과와 로그 분석을 통해 문제의 실마리를 찾아내는 경험을 할 수 있었다.

생각보다 배울게 많았다

처음 테스트 업무를 맡고 시작할 때까지만해도 개발에 참여도 안하고, 소스코드도 볼 수 없는 남이 개발한 윈도우 프로그램 테스트하러 온게 아닌데…라는 생각으로 임했다.

그런데 테스트를 진행하다보니 다음과 같이 긍정적인 경험을 했다.

  • 회사 솔루션 이해 향상
  • 문제 발생 시, 로그를 보는 습관 습득
  • 문제 발생 시, 깔끔하게 문제를 공유할 문서의 중요성
  • 꼼꼼히 기록하는것의 강력함
  • 쳬계적으로 계획을 세워 일을 하는 것의 이로움
  • 이슈 발생 환경, 시점 파악의 중요성

현재 내 실력과 경험으로는 그 어떤 업무라도 일단 하면 배울 점이 많은거 같다. 믿고 업무를 맡겨준 상사분과 같이 일하는데 도움을 많이준 동료 개발자들에대한 고마움을 마음에 새기며 이번 글을 마무리해본다.