본문 바로가기

개발

UI 테스트 자동화의 선입견에 대한 회고

728x90

밤에 자야 하는데, 잠이 안와서 이런 저런 글을 적어 보고 있다.


흐흐! UI 테스트 자동화가 왜 어려웠지에 대해서 끄적 끄적 거려 봤다.

UI 테스트 자동화가 어려운 이유는 쉽다고 생각하는 선입견때문이다.

최근에는 아니지만, 얼마 전까지 테스트 자동화를 적용하고 싶다고 하는 프로젝트나 솔루션들에 투입되어 이야기를 하다보면 가끔씩 난감한 상황에 부딪히곤 했다.

개발자들 바뿌니까 Unit, API 말고 UI 테스트 자동화를 하는게 어떄?
UI 테스트 자동화가 제일 쉽지 않아?
일단 Pilot 해보고 괜찬으면 담당자 붙여줄께!

왜냐고? 쉬워 보이니까! 그냥 까이꺼 사람이 마우스로 클릭하는 것처럼 클릭하게 만들면 되는거 아냐? 라고 생각하는 선입견을 가진 분들이 많았기 떄문이다. 하지만, Unit, Api 테스트 자동화 보단 UI 테스트 자동화가 적용하는데 있어서 힘든 일이라고 생각한다. 다양한 이유가 있지만 그 중 두가지만 꼽아 본다면 다음과 같다.

 

첫번째, UI 테스트 코드를 작성하면서 디버깅 하는 일은 생각보다 많은인내와 노력이 필요하다. 왜냐고? 사람이 버튼을 클릭하고 타이핑 하는 것처럼 동작하는 테스트 코드를 작성하고 내가 작성한 것 처럼 동작하는지를 계속 지켜 보면서 어디가 잘못 되었는지를 반복해야 하기 때문이다.

 

두번째, UI 테스트 자동화 도구에서 버튼을 클릭하라고 했지만 개발에 사용된 Front-End 기술에 따라서 다르게 동작 하는 경우가 의외로 많이 발생한다는 것이다. 이런 문제들 때문에 정말 다양한 꼼수(?)가 필요하고 이런 꼼수(?)들은 얼마나 많은 프로젝트에서 이런 경험을 해보았는지에 따라서 빠르게 해결이 가능하다. 가끔은 UI 테스트 자동화 도구의 소스까지도 수정 하거나 개발 코드를 수정해야 하는 경우도 종종발생한다.

 

 

이런 이유들로 UI 테스트 자동화는 생각보다 힘들다. 이런 생각은 많이들 알고 있는 Agile 피라미드에서도 잘 나타나 있다.

하지만, UI 테스트 자동화를 쉽다고 생각하는 선입견으로 인해서 UI 테스트 자동화 적용시 큰 기대를 갖게 되어 아래와 같은 요구사항을 제시 하게 된다.

End To End 로 모든 테스트 케이스를 자동화 해주면 좋겠다

만들어만 놓으면 개발자 아무나 붙여서 인수 인계 하면 되니까, 유지 보수는 걱정하지마!

하지만!!! 이런 요구사항들은 정말 만족시키기 어려운 요구 사항이다. 슬프게도 말이다. 이런 상황을 여러 번 겪다 보니 아래처럼 UI 테스트 자동화를 적용해본다면 성공 확률이 높아지지 않을까라는 생각을 하게 되었다.

1. UI 테스트 자동화의 범위를 작게 가져가자!
: Risk Base 가 되었든 사용자 인터뷰가 되었든 가장 불필요하게 반복하는 테스트 케이스,가장 중요한 테스트 케이스 부터 작게 시작하자

2. UI 테스트 자동화의 유지 보수를 생각하고 진행 해야 한다
: UI 테스트 자동화 코드가 노후화 되는 경우 이를 유지 보수할 담당자를 지정 하자. 개발자들이 모두 UI 테스트 자동화 코드를 유지 보수한다면 좋겠지만, 그런 경우는 드물기 때문에 적어도 1명의 담당자는 지정하자

3. 매뉴얼 테스트가 UI 테스트 자동화보다 더 효과적인 경우가 있다는 것을 고려하고 모든 것을 적용 하려고 하지 말자
: 흔히 이야기 하는것처럼 Silver Bullet 은 없다

[참고]

테스트 자동화 대상을 선정 할때는 agile testing quadrants 를 보면도움이 많이 된다.

[출처] UI 테스트 자동화가 어려운 이유|작성자 쩌비군