RE:개발자

개발자인 내가 테스트하면 이상하게 잘 된다 | RE:개발자 #13

nocklock 2026. 9. 25. 08:19

Bug

배포까지 끝났다.

내 컴퓨터에서만 돌아가던 화면이 이제는 URL만 보내면 다른 사람도 사용할 수 있게 됐다.

 

이 서비스를 실제로 배포하면서 겪었던 과정은 이전 글인 내 컴퓨터에서는 잘 됐는데요 | RE:개발자 #12 에 따로 적어뒀다.

 

여기까지 오니까 조금 안심이 됐다.

개발도 했고, 테스트도 했고, 배포도 했으니 이제 꽤 괜찮은 상태라고 생각했다.

그런데 배포된 서비스를 다시 이것저것 눌러보다가 바로 문제를 하나 발견했다.

평범한 사진을 하나 넣었는데, 일부 기능이 내가 생각한 대로 동작하지 않았다.

순간 이런 생각이 들었다.

분명 테스트 많이 했는데 왜 이걸 이제 발견했지?


테스트를 안 한 건 아니었다

오히려 꽤 많이 했다.

사진을 바꿔가면서 분석해보고,

결과가 제대로 나오는지 확인하고,

화면도 계속 눌러봤다.

문제가 있으면 고치고 다시 테스트했다.

그래서 나름대로는 충분히 확인했다고 생각했다.

그런데 돌이켜보니 내가 테스트했던 방식에는 공통점이 있었다.

기능이 잘 동작할 만한 상황을 계속 만들고 있었다.

분석 기능을 테스트하니까 분석할 만한 데이터를 넣었고,

특정 정보를 찾는 기능을 만들었으니까 그 정보가 들어 있는 이미지를 넣었다.

당연한 행동이다.

문제는 실제 사용자가 꼭 그렇게 사용하지는 않는다는 것이었다.


아무것도 발견되지 않는 것도 정상이다

이번에 놓친 부분도 비슷했다.

나는 무언가가 탐지되어야 기능이 제대로 동작했다고 생각하고 있었다.

예를 들면

개인정보 2건 발견
위험 정보 확인
분석 완료
 

이런 결과가 나오면 자연스럽게 성공처럼 느껴졌다.

반대로

발견된 정보 0건
 

이라고 나오면 어딘가 기능을 제대로 못 한 것 같은 느낌이 들었다.

그런데 생각해보면 전혀 그렇지 않다.

이미지를 정상적으로 분석했고,

확인할 정보가 없어서

“없다”라는 결과를 냈다면 그것도 정상적인 분석 결과다.

0건 발견과 분석 실패는 완전히 다른 상태다.

너무 당연한 이야기인데 만들 때는 그 차이를 제대로 생각하지 못했다.


개발자인 내가 쓰면 이상하게 잘 된다

이번에 가장 크게 느낀 부분이다.

개발자인 내가 내 서비스를 테스트하면 이상하게 잘 된다.

왜 그런지 생각해보면 간단하다.

나는 이미 이 서비스가 어떻게 동작하는지 알고 있다.

어떤 파일을 넣어야 하는지도 알고,

어떤 버튼을 눌러야 하는지도 알고,

어떤 순서로 사용해야 하는지도 안다.

심지어 어떤 결과가 나와야 정상인지까지 알고 있다.

그러니까 나도 모르게 정답을 알고 테스트한다.

사용자가 틀릴 수 있는 길을 피해 간다.

개발자인 내가 원하는 방향으로 서비스가 흘러가게 만든다.

그러니 당연히 잘 된다.


실제 사용자는 내가 생각한 대로 움직이지 않는다

사용자는 다르다.

처음 보는 화면에서

내가 예상하지 못한 파일을 올릴 수도 있고,

내가 중요하다고 생각하지 않은 버튼을 먼저 누를 수도 있고,

아예 내가 생각하지 못한 순서로 사용할 수도 있다.

그리고 그게 이상한 게 아니다.

오히려 그게 정상이다.

서비스가 사용자의 행동을 통제해야 하는 게 아니라,

어느 정도는 사용자가 예상하지 못한 방식으로 사용해도 버텨야 한다.

이번에 발견한 문제도 결국 그 차이에서 나왔다.

나는 계속 내가 만든 기능을 확인하고 있었고,

실제 사용 상황을 충분히 확인하지 못하고 있었다.


배포하고 나서야 테스트가 달라졌다

배포 전에는 테스트라는 게 거의 내 컴퓨터 안에서 이루어졌다.

코드를 수정하고,

서버를 실행하고,

브라우저에서 확인하고,

다시 코드를 수정했다.

그런데 배포를 하고 나니까 조금 달라졌다.

PC가 아닌 휴대폰에서도 열어보고,

그냥 평범한 사진도 넣어보고,

내가 개발할 때 사용하지 않던 방식으로 화면을 눌러보게 됐다.

무엇보다 이제는 다른 사람에게 URL을 보낼 수 있다.

그 순간부터 테스트가

“내가 만든 기능이 동작하는지 확인하는 것”

에서

“다른 사람이 사용해도 괜찮은지 확인하는 것”

으로 조금 바뀐 것 같다.


버그 하나를 고쳤는데 생각은 꽤 많이 바뀌었다

이번에 발견한 건 사실 큰 버그는 아니었다.

몇 군데 흐름을 다시 확인하고 수정하면 해결할 수 있는 문제였다.

그런데 버그를 고치는 것보다 더 기억에 남은 건 따로 있었다.

나는 그동안 테스트를 꽤 많이 했다고 생각했다.

그런데 내가 했던 건 대부분

내가 만든 기능이 내가 생각한 대로 움직이는지 확인하는 테스트였다.

사용자 입장에서 서비스를 보는 건 또 다른 문제였다.

개발하면서 자꾸

왜 이걸 못 봤지?

라는 생각을 하게 된다.

아마 앞으로도 계속 그럴 것 같다.

그래도 이번에는 이유를 하나 알게 됐다.

내가 너무 잘 알고 있기 때문에 오히려 못 보는 것도 있다.


이제 다른 사람에게 맡겨보려고 한다

지금까지는 거의 내가 만들고 내가 테스트했다.

이제는 처음 보는 사람에게 URL만 보내보고 싶다.

별다른 설명 없이 한 번 사용해보라고 해볼 생각이다.

어디에서 멈추는지,

무슨 버튼을 먼저 누르는지,

내가 당연하다고 생각했던 부분에서 헷갈리지는 않는지.

그걸 보면 또 새로운 문제가 보일 것 같다.

조금 무섭기도 하지만,

이제는 그게 더 필요한 단계인 것 같다.

 

개발자인 내가 찾는 버그보다
사용자가 찾는 버그가 더 중요할 수도 있으니까.


 

직접 만든 서비스를 다른 사람에게 처음 테스트시켜봤을 때, 예상하지 못한 곳에서 막혔던 경험이 있다면 궁금하다.