brunch

You can make anything
by writing

C.S.Lewis

by 호뎡 May 13. 2024

무의식 속 진정한 테스트의 개념
(사전은 저리 가라)

알아서 잘 딱 깔끔하고 센스 있게 정리하는 테스팅의 기본 개념


화목한 가정, 행복하고 윤택한 미래를 꿈꾸지만, 야망과 열정은 크게 가지고 있지 않은 평범한 Z세대답게

그럭저럭 남들과 다르지 않은 목표를 가지고 첫 입사를 하였습니다.


그런데 그토록 염원하던 첫 직장이 무려 소프트웨어 QA회사라니...!


첫인상은 마치 그들이 세상에 밝혀선 안될 비밀스러운 정보를 지키기 위해 시스템을 수호하는 자들과 같았습니다. 멀끔한 차림새의 인재들이 실시간 공격에 모니터를 부여잡고 대응하는 그런 느낌?


평범한 사무직으로 들어와 그 사람들과 조금은 다른 일을 하고 있는 저였지만, 저의 임무는 새로 진행할 사업의 방향과 목적을 설계해 주고 제시해 주는 그런 역할을 맡아야 했습니다. 솔직히 말하면, 자리에 대한 책임감이 막중했죠. 적어도 우리 회사가 어떤 일을 하는지에 대해 알아볼 필요가 있더군요.


사실 연상한 이미지와는 반대로 대부분 한눈에 봐서 이해하지 못할 프로그램을 돌려가며 무언가를 등록하고 있었습니다. 다만 한 가지 또렷하게 기억하는 건, 그들은 테스팅을 하고 있다고 말했습니다.


도대체 테스팅이 뭐길래?


출처: 위키백과




주저리주저리 뭐라 써져 있지만.... 저는 딱히 한눈에 들어오지는 않더군요.


제 나름대로 조사해 본 결과, 다들 이론상 테스트의 의미를 설명할 뿐, 우리가 테스트를 한다는 게 무엇인지 연상할 수 있도록 설명해 주는 경우가 많이 없었습니다. 다 아시겠지만, 테스팅이란 시스템과 소프트웨어가 의도한 대로 적절히 동작하는지 확인하는 단계....라고 합니다. 그래서 그게 도대체 뭘까요? 



그러던 와중 한 직원이 저한테 한 가지 웃긴 짤을 들이밀더군요.




도대체 ㅋ@ㅌㅐㄱㄴ먀ㅑ;ㅂ은 왜 주문하는데....


이제야 조금 연상이 되는 것 같더군요...! 위 그림과 같이 프로그램 접근 방법을 계속 바꿔가면서 하나하나 시도해 보는 겁니다. 

반복, 반복, 또 반복...... 이번에는 맥주 1개 주문, 이번에는 0개 주문, 이번에는 맥주 999999개 주문, 도마뱀도 주문...... 을 하다 보면, 언제 술집이 불길에 휩싸이는지, 즉 언제 이 프로그램이 문제가 발생하는지 알아내기 위해 접 발 벗고 문제들을 찾아다니는 겁니다!


결함을... 찾아내는... 중이다냥


우리는 왜 그렇게 결함에 민감할까요? 이 결함이라는 한 가지 구멍을 통해 여러 불상사가 일어나기 때문입니다. 인간의 몸으로 치면 같은 힘으로 타격해도 명치나 아킬레스건을 맞으면 순식간에 무게중심이 무너져 넘어지듯이, 프로그램도 분명 집중공략하면 무너지는 취약 포인트, 유독 버그가 많이 일어나는 버그의 중심지가 있겠죠.


코드를 작성할 때 전부 인간의 행위에 의해 생성되는 결과물이라고 볼 수 있는데, 오류가 생기지 않는 게 더욱 이상하겠죠.

오류가 최대한 발생하지 않게 작성한다 하더라도, 요구된 기능의 부정확한 처리로 인해 요구사항에 맞지 않는 설계가 이루어졌다거나, 해당 결함이 다음에 고장 또는 장애를 유발할 수 있는 트리거로 작동할 수 있습니다.


제목: 어... 이게 아닌데 되긴 되네?


개발자 짤로도 유명한 이 그림 아시는 분들도 있을 겁니다. 비둘기가 나는 건 성공했어도 머리로 날면 반드시 너무 어지러워서 중간에 추락하는 등 무슨 사고가 생기겠죠? 이런 식으로 구현은 얼추 완성된 것처럼 보이지만 실제로 발견되지 않은 내부의 결함을 직접 찾아내는 과정을 거쳐야 한다는 겁니다. 


그런 의미에서 우리는 이런 결함을 찾아내는 과정을 테스팅이라고 보는 겁니다.

어떠신가요? 위키백과보다 쓸만하죠?


                    

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