Development/Testing

테스트를 시작하는데 방해하는 것들

bbubbush 2020. 5. 24. 15:50

테스트의 중요성이 대두되고 있습니다. 이미 기본적인 개발룰로 적용되어 강제적으로 작성해야하는 회사도 있고, 아직까지 테스트는 거추장스럽고 불필요한 시간을 소모시키는 천덕꾸러기로 생각하는 회사도 있습니다.

오늘날은 바야흐로 테스트 코드의 과도기라고 할 수 있다고 생각합니다. 이런 시대에 맞춰 테스트코드를 작성하기 시작하는 분들을 위해, 테스트 코드를 작성하기에 어떤 것들이 방해하는지 경험적이고 주관적인 생각들을 꺼내보겠습니다.

1. TDD(Test-Driven Development)

'응? 테스트 열풍의 중심인 TDD가 오히려 테스트를 시작하는데 방해한다고?' 네 그렇습니다. TDD는 생각보다 극단적으로 치우쳐있습니다. 어떤 개발을 하든 테스트 코드를 작성해두고, 이를 하나씩 통과시켜가는 과정으로 개발을 바라보게 합니다. 테스트 코드 또한, 엄격하게 유닛(작은 단위)으로 관리되길 바라며, 그를 위해 Mock 객체를 적극적으로 사용하길 희망합니다.

이런 일련의 과정을 모두 지키면서 개발하다 보면 어느순간 테스트 자체의 회의감을 갖게 됩니다. 이 테스트의 본질은 무엇인지, 왜 내가 테스트 코드를 작성하고 있는 것인지, '나를 제외한 다른 개발자들은 이전의 개발방법으로 더 빠르게 업무를 해내는 것 같은데 나는 왜 느리지... 이 방법이 잘못되었나?'

그래서 TDD보다는 내 코드를 위해 테스트 코드를 활용하기를 바라는 마음으로 다가서길 권유합니다.

2. 동료 개발자 및 회사의 분위기

개인적인 기준으로 개발자가 성장하기에 좋은 회사와 나쁜 회사를 나누는 기준이라고 생각합니다. 돈 많이 주는 회사, 유명한 회사 등으로 생각나는 회사들은 좋은 인재들이 모이게 되고, 이로 인해 좋은 개발문화와 방법론을 적용하기에 최고의 조건이 됩니다.

만약 본인이 테스트를 시작하지 못하는 이유가 이 문제라면 진지하게 이직을 고민해봐야 합니다. 특히 저와 같은 주니어 개발자라면 미래의10년동안의 코딩스타일을 정하는 문제이기 때문에 더욱 더 진지해질 필요가 있습니다.

실무에서 사용해야하는 또 다른 이유라면 업무에 적용되는 테스트 코드와 토이 프로젝트에 적용되는 테스트코드는 분명히 다른 경험을 선사합니다. 할 수 있다면, 적극적으로 도입해보길 바랍니다.

3. 허슬없는 래퍼, 노력없는 개발자

위 두 개의 키워드는 주로 환경적인 요인을 선택했다면, 이번에는 개인적인 요인을 선택했습니다. 주변에 개발에 대한 꾸준한 노력을 하는 개발자는 생각보다 많지 않습니다. 누구는 현실적인 이유로, 누구는 개발직무에 맞지 않아서 등 제각각 다양한 이유가 존재합니다. 그래도 꾸준히 노력하기위한 노력을 놓지 않았으면 좋겠습니다.

과거에 이름난 래퍼가 쇼미더머니에 나와 오래된 스타일의 랩을 고수하며 주변인의 눈총과 불편함을 주는 장면이 떠올라 이런 부제목을 선택해봤습니다. 과거에 뛰어난 개발자로 불리며, 오늘날의 후배개발자들에게 불편함을 주는 존재가 되지 않기 위해 꾸준히 노력하는 모습, 그게 우리 모두에게 필요하지 않을까 싶습니다.

4. 영어는 잘 모르는데 테스트 케이스 이름은 정해야겠고...

테스트 코드가 하나 둘 쌓이기 시작하면 가장 먼저 부딧히는 것이 테스트메서드의 이름을 정하는 것입니다. 많은 개발자가 그러하듯 저 역시 영어를 잘 못합니다. 한번도 토익, 토플과 같은 영어수준을 평가하는 시험을 치룬적이 없고, 수능 때도 외국어 8등급이라는 기이한 기록을 남겼습니다. 안되는 영어를 테스트할 때 마다 번역해가면서 테스트 코드를 작성하다보니 이 과정 역시 너무 고된 작업이 되었습니다. 하나의 예제코드를 보겠습니다.

이 테스트명을 통해 무엇인지 알수 있을까?

메서드 명을 번역 프로그램 통해 열심히 작성했지만, 정작 미래의 나와 다른 동료 개발자가 볼 때, 한번에 이해되지 않았습니다. 그래서 이번에는 한글로 테스트 명을 작성해보겠다고 생각했습니다.

 

 

이름 짓는 것이 어렵다면 한글로 적용해보자

어느것이 편한지는 여러분 각자가 선택하면 됩니다. 다만 영어로 테스트이름을 작성하는 것이 힘들어서 테스트 코드 작성을 그만두고 싶어진다면, 저처럼 한글로 작성해보시길 바랍니다. 물론 점진적으로 영어로 변경하려는 노력은 이어가셔야 합니다. 하지만 중요한 것은 테스트 코드를 계속해서 작성해 가는 것이라는 걸 잊지 않는 것입니다.

마치며

TDD가 잘못된 방법론이라는 이야기를 하려는 것이 아닙니다. 제 짧은 식견과 지식은 그런 판단을 하기에 한없이 부족합니다. 그럼에도 이렇게 의견을 남기는 것은 많은 분들이 테스트 코드를 작성하길 바라는 마음 때문입니다.

Just Do It Test! 일단 시작해보시길 바랍니다. 형식과 틀에 얽메이지 마시고 저를 포함한 많은 개발자 분들이 '자유롭게 사는 개발자의 환상을 가지고 이 일을 시작'했듯, 틀에 갇히지 않고 자유롭게 시도해보시길 바랍니다.

오늘도 글을 읽어주셔서 감사합니다. :)