안녕하세요 깍돌이입니다.  NaverCloudPlatform 을 기준으로 잡고 Puppeteer 를 통해서 UI 자동화 하는 작업들을 포스팅 하려고합니다.

 

UI 자동화에 대해서는 할말이 매우 많지만 그거는 개인생각 끄적끄적에서 다뤄보도록 하겠습니다.

 

Portal -> Console

Portal -> Portal 에 대해서 체크할수 있는 방법 

 

 

레코딩

간혹 레코딩 방식에 대해서 말씀하시는 분들이 계신데 경험상으로 느꼈지만 UI 자동화에 대한 토론을 해본적이 없었기에 현재 세상에서 UI를 레코딩으로 하는것만큼 비효율적인 게 있을까 싶긴합니다.

Pass / Fail 유무는 어떻게 판단할 것인가

=> 이미지로 판단한다고 하면 OpenCv Template Matching을 이용하여서 기대 이미지로 체크할것도 아니고 더 복잡한 케이스가 된다고 생각합니다.

예외처리에 대해서 어떻게 처리할 것인가

 

=> 중간에 예외 처리로 종료 되었을 때 Suspend , Resume에 대한 처리는 어떻게 할것 이며 이부분에 대해서 시스템 오류인지 제품에 대한 오류인지 판단을 어떤식으로 할지 10년 전에야 레코딩 방식이 거의 주를 이루었고 그걸 기준으로 자동화가 이루어졌지만 현재 시대 및 앞으로의 방향성에서는 레코딩 방식은 전혀 좋은 방법이 아니라고 생각 합니다. 이에 대해 다른 견해를 가지신분이 있다면 이야기 하면 너무 좋을거 같네요

 

결과에 따른 신뢰도 바탕이 될 수 있는 것인가

=> 사람이 눈으로 보지 않는 한 레코딩의 Pass / Fail 판단부터 명확하지 않는데 이부분에 대해서 어떻게 할지 마땅이 떠오르지 않습니다.

 

신입 때 자동화 발표를 봤었는데 시나리오는 아래와 같았습니다.

 

페이지 이동 -> 로그인 -> 검색 -> 리스트 

 

레코딩으로 진행된 발표였으며 Pass / Fail 기준은 리스트까지 이동하고 오류없이 진행됐으면 Pass 였습니다.

그래서 질문을 했습니다. 

질문 : " 리스트에 결과가 안나왔어도 성공인가요?

답변 : "네 맞습니다. "

이유는 기준으로 정해놓은 시나리오는 성공했기 때문이라는 답변을 받았습니다.  문제는 없는 답변이였습니다. 리스트페이지까지 이동하는게 시나리오에 제목이였기 때문에 그래서 다시 물어봤던 기억이 납니다.

질문 :  "리스트에 대한 케이스 자동화는 안되는건가요? "

답변 :  "그런건 직접 보고있습니다."

=> 사실 리스트를 클릭하게 하고 Exception 으로 종료시키는 방법도 있지만 레코딩 방법은 한계가 명확한 방법이라고 생각합니다.

 

Element DOM Native Code

그렇다고 Element 기반으로 하게 되었을때 그만큼 좋냐라고 물어보게 된다면 그것도 확실한 대답을 드리려면

"잘해야" 좋다고 할수있을거 같습니다. 그리고 또한 잘하냐 못하냐에 문제가 해결된다고 해도 직접 코드로 처리로 작성되는 경우는 숙련되지않는 한 공수가 매우 많이 들어가게 됩니다.

필자는 잘한다고 생각하진 않지만 꽤 숙련된 사람이라고 생각 합니다.   그러면 여기서 "잘하기가 어렵지 않냐" 라고 하시는 분들이 간혹 있었습니다. 

QA는 제가 생각하기에 개발자가 만든 제품에 대한 "테스터"가 아닙니다. "품질관리자" 입니다. 그렇기 때문에 당연히 개발 경험도 있어야 하고 최소한 시니어 개발자가 아닌 주니어 개발자 만큼 혹은 그 이상의 뷰를 가질수 있어야 한다고 생각합니다. 외국계에서는 시니어 개발자가 QA로 넘어 가서 주니어개발자들의 코드 및 품질을 봐주는 케이스 처럼입니다. 

 

그리고 잘하기 위해서 노력해야 한다고도 생각합니다.  QA로써 Web 자동화를 한다면 최소한의 Browser 가 어떻게 Syntax Tree를 그리고 DOM 에 Element를 붙인후에 CSS를 입혀서 스타일링되고 현재시대에 와서 MPA가 아닌 SPA에서의 웹 자동화 테스트를 위해서 어떤식으로 돌아가는지는 알고 완벽하진 않지만 완벽함을 추구하는 테스트 자동화를 구성해야 한다고 생각 합니다.

앱도 마찬가지입니다. 최소한 IOS / APP 의 View Life Cycle은 알고 있어야 한다고 생각 합니다. 

 

테스트 자동화 케이스는 만드는거 자체는 어렵지 않습니다. 어떻게 보면 쉽다고도 할수 있습니다. UI Automation 어디에서 검색해도 관련 튜토리얼은 너무나 많고 동작 하나하나에 대한 API 도 매우 간단하고 설명도 잘되어있습니다. 

여기서 어려운거는 신뢰도 있는 케이스를 만들어 내는 것이라고 생각 합니다.  지금 실패가 정말 제품에 대한 오류인가에 대한 것에 대해서 

 

그래서 개인적으로는 많이 실행해본 사람이 더 잘할 거라고 생각합니다. Exception 처리에 대한 경험이 곧 실력이 될수도 있다고도 생각합니다.

 

포스팅을 통해서 실행이라도 많이 하여야 현재 필요한 시점에 자유롭게 쓸수 있을거 같아서 작성을 준비합니다.

 

 

 

 

 

+ Recent posts