본문 바로가기

개발

TEST 그리고 오해의 시선?

728x90

최근 ‘QA 오해의 시선’ 이라는 글을 읽다 보니 내가 일하면서 어떤 시선으로 날 바라보았지? 라는 생각을 하면서 이 글을 끄적이게 되었다. 물론, 내가 끄적이는 내용은 내가 경험한 개인적인 상황에 기반한 것으로 다른 경우가 더 많을 수 있다는 생각을 하시고 읽으시면 좋겠다.

 

테스트 엔지니어로 일을 하면서 개발자들에게 다양한 시선을 받으면서 일을 하곤 했다. 다양한 시선이 모지? 라고 생각하시는 분들도 있겠지만, 대부분의 개발자가 바라 보는 시각은 이거였다.

 

    개발 코드 한 줄도 못짜는 애들

    바빠 죽겠는데, 귀찮게 하네

    아 짜증나!

    제네 부르지 말고 개발자나 더 달라고

 

 

물론 이렇게 생각하시지 않는 개발자들도 많았지만, 그렇지 않은 개발자가 더 많았던게 사실이다.

테스트 엔지니어로 일하면서 이런 시각을 몸으로 느끼면서 일했지만, 이걸 오해의 시선이라는 용어로 표현할 정도로 깊게 생각하지 않았었다. 당연히 좋아하지 않는 업무를 담당하고 있으니 이런 시각으로 나를 바라 보는게 당연하겠다라는 생각을 했었다.

물론 내가 개발자로 먼저 일을 시작해서인지 개발자들의 불편한 시선에 대한 공감이 먼저 되었기 때문에 그랬을지도 모른다.

 

 

왜 이런 오해의 시선이?

프로젝트에서 친한 개발자와 이런 저런 이야기를 하다보면, “너네 때문에 바빠 죽겠어… 왜 벌써 들어와서…” 와 같은 이야기를 쉽게 듣게 된다. “TEST 하지 말고 개발 좀 해주지 그래?” 라는 이야기를 하면서 TEST 나 품질은 지금 급하지 않은데… 라는 느낌의 이야기를 심심치 않게 듣게 된다. 

 

물론 이렇게 된 이유는 “선개발→ 품질/테스트” 로 이어지는 상황 때문이다.

 

항상 그렇듯이 제대로 되지 않은 상태에서 테스트는 중요하지 않다고 생각하게 된다. 이런 공식이 성립하는 테스터도 테스트 전략도 많겠지만, 한 걸음 나가서 더 좋은 제품, 소프트웨어를 만들어 가고 싶은 테스트 엔지니어에게는 답답한 상황으로 다가 오게 된다.

테스트는 개발이 어느 정도 완료된 이후에 진행해야 한다고 이야기를 한다. 어느 정도라는 기준에 대해서 물어보면 대부분 고민을 하다가 UI 테스트가 가능한 수준이라고 대답하는 경우가 많다.
하지만! 테스트는 개발의 일부분으로 개발이 어느 정도 완료된 이후에 진행하는 것이 아니라 개발 초기인 분석/설계 단계부터 테스트를 어떤 방식으로, 어디에 가치를 두어야 하는지, 어느 수준으로 테스트를 해야 할 것 인지를 함께 고민해야 한다고 생각한다.

이런 관점에서 Agile 이나, TDD 와 같은 것들을 적용하고 있는 상황을 만나게 되면 정말 답답함이 해소되는 기분을 느끼게 되곤 한다. Agile, TDD 을 하면 적어도 테스트를 나중에 나중에 하자는 이야기는 하지 않기 때문이다.

 

그래서 어떻게?

개발이 일정 부분까지 이루어지고 난 이후에 테스트를 한다는 공식 아닌 공식이 여러 사람들에게 생긴 이유는 무엇일까?
다른 사람들은 어떻게 생각 할지 모르겠지만, 개인적으로는 Manual Test(Exploratory Testing)로도 충분한 효과를 보던 과거의 성공 사례들 때문이라고 생각한다.

 

하지만, 새로운 기술들이 나오고 발전하고 있는데, 과거의 성공했던 기억만으로 테스트를 한다는 것은 너무 답답한 일이 아닐 수 없다.

과거의 테스트를 수행하던 사람들은 Technic 에 대한 지식이 크게 중요하지 않았다. 종종 개발을 몰라야 사용자 관점에서 테스트를 더 잘 할 수 있다는 이야기를 하는 사람들도 많았다. 하지만, 시간은 흐르고 지금은 테스트를 하는 사람에게도 Technic 이 중요한 세상이 되었다. 여기서 말하는 Technic 은 개발 코드에 대한 것 뿐 아니라 테스트 자동화, DevOps, Agile, 개발 Architecture 등등 정말 많은 것들을 알아야 개발 관점이 아닌 테스트/사용자와 같은 제 3의 관점으로 바라 볼 수 있기 때문이다.

이런 Technical 한 지식을 바탕으로 테스트를 하는 사람들은 개발을 하는 사람들이 어디에 집중해서 코드를 짜야 하는지, 어떤 테스트는 가볍게 넘어가도 되는지, 어떤 부분을 자동화하면 좋은지 등을 함께 협의를 하면서 더 효과적이고 효율적으로 프로젝트를 진행할 수 있게 된다. 물론 이렇게 된다면 더 품질이 좋은 제품을 만들 수 있게 될 것이다.

 

실제로 프로젝트를 진행하면서 프로젝트 초반부터 테스트를 진행했던 프로젝트에서는 개발하는 사람들에게 긍정적인 피드백을 얻기도 하였다.

 

"테스트를 하는 일을 아무나 해도 된다, 테스트는 개발이 어는 정도 되어야 할 수 있다, 테스트는 개발을 못하는 애들이나 하는 거지" 등등의 오해를 하는 사람들이 점점 적어졌으면 좋겠다. 물론 이렇게 되기 위해서는 테스트를 하는 사람들이 더 많이 공부하고 노력을 해야겠지만 말이다.