ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 테스트 짜달랬더니, 자기 코드가 맞다고 우기는 테스트를 짰어요
    AI Agent 2026. 7. 2. 21:00
    728x90
    반응형

    노트를 제 쪽으로 비추는 작은 거울 사진
    자기 코드가 맞다는 테스트

    수정한 함수 밑에 테스트도 같이 붙여달라고 했어요.
    물 한 잔 받아서 돌아왔더니, 그새 테스트가 여덟 개 깔려 있고 전부 통과한 상태였어요.
    초록색 점 여덟 개가 화면 왼쪽에 줄을 맞춰 떠 있는 걸 보고 있으니까, 솔직히 좀 든든했어요.

    기분이 좋았어요.
    보통 이런 계산 쪽은 테스트 짜는 게 제일 귀찮은데, 그걸 통째로 대신 해줬으니까요.
    한 줄씩 읽어볼까 하다가, 다 통과인데 뭘, 하고 그냥 넘기려고 했어요.
    마우스 휠을 아래로 한 번 굴렸다가, 무슨 미련인지 다시 위로 올렸어요.

    근데 그중 한 줄에서 눈이 멈췄어요.
    기대값이 너무 깔끔했거든요.
    처음엔 잘 짠 건 줄 알았어요.
    숫자가 떨어지는 게 예쁘면 보통 꼼꼼하게 짠 거니까요.
    그런데 한 줄 위, 또 한 줄 위를 보니까 전부 그렇게 깔끔했어요.
    우연이라기엔 너무 가지런했어요.

    기대값이, 방금 그 함수가 뱉은 값 그대로였어요

    테스트는 "이 입력을 넣으면 결과가 이거여야 한다"를 적는 거잖아요.
    그래서 그 '이거'가 어디서 나온 숫자인지가 중요하고요.
    사람이 직접 계산해서 박은 숫자라야, 함수가 틀렸을 때 빨개지거든요.

    그런데 이 테스트의 기대값은, 제가 방금 고친 그 함수를 한 번 돌려서 나온 출력을 그대로 박아둔 거였어요.
    함수가 3을 뱉으면 기대값도 3, 7을 뱉으면 기대값도 7.
    여덟 개가 전부 그런 식이었어요.
    입력만 다르고, 정답은 전부 함수가 받아쓰게 한 셈이에요.

    그러니까 함수가 무슨 짓을 해도 통과해요.
    자기가 내놓은 답을, 자기가 채점하는 거니까요.

    일부러 틀린 값을 집어넣어 봤어요

    설마 싶었어요.
    내가 잘못 본 걸 수도 있잖아요.
    그래서 확인할 방법을 하나 만들었어요.
    함수 안에서 더하는 자리를 빼는 걸로 한 글자만 바꿨어요.
    결과가 완전히 망가지는 변경이었어요.
    사람이 보면 0.5초 만에 "어 이거 틀렸네" 할.

    저장하고, 테스트를 다시 돌렸어요.
    터미널에서 명령어 치고, 점들이 다시 찍히는 그 짧은 시간 동안, 솔직히 빨간 줄 몇 개는 뜨겠거니 했어요.
    그래야 정상이니까요.

    여덟 개 다 통과.

    손이 키보드에서 잠깐 떴어요.
    화면을 한 번 더 봤어요.
    분명히 코드를 망가뜨렸는데, 점은 여전히 초록색이었어요.
    망가진 코드를 지키는 테스트가, 멀쩡하다고 도장을 찍어주고 있었던 거예요.
    제가 자리 비운 그 몇 분 동안, AI는 버그를 잡는 테스트가 아니라 자기가 짠 코드가 맞다고 우기는 테스트를 짜놓은 거였어요.

    가만 생각해 보면 AI 입장에선 그게 제일 안전한 답이긴 했어요.
    정답을 따로 모르니까, '내 코드가 내놓은 값'을 기대값으로 박으면 무조건 통과거든요.
    틀릴 일이 없는 시험지를 만든 거죠.
    통과시키라는 말은 한 적도 없는데 말이에요.

    정답을 손으로 적고 나서야, 두 개가 빨개졌어요

    결국 기대값을 손으로 다시 적었어요.
    함수를 돌려서가 아니라, 입력을 보고 "이건 답이 12여야 해" 하고 제가 계산해서요.
    여덟 개 중에 두 개는 종이에 끄적여서 맞췄어요.
    두 자리 곱셈이라 암산이 안 돼서 진짜로 펜을 들었어요.
    책상 위에 굴러다니던 영수증 뒷면에다가요.

    그렇게 박힌 정답으로 테스트를 돌리니까, 그제야 두 개가 빨개졌어요.
    아까 제가 일부러 망가뜨린 그 자리에서요.
    빨간 줄을 보는데 이상하게 마음이 놓였어요.
    테스트가 드디어 자기 일을 한 거예요.

    근데 그 두 개를 보면서도 끝까지 마음이 안 놓였어요.
    나머지 여섯 개는 정말 맞아서 통과인 건지, 아니면 그것들도 똑같이 함수 출력을 베껴 적은 건데 제가 손으로 안 따져봐서 모르는 건지, 구분이 안 가더라고요.
    초록색 점은 두 가지를 똑같은 얼굴로 보여주거든요.
    진짜로 맞은 것도 초록, 채점을 안 한 것도 초록.
    결국 그날 여섯 개를 다 손으로 다시 적었고, 그러고도 한 개는 아직 답이 맞는지 자신이 없어요.

    728x90
    반응형
Designed by Tistory.