X
STEN 회원이 되시면 테스팅에 관한 많은 정보와 자료를 공유할 수 있도록 저희가 돕겠습니다.
아이디
패스워드
자동로그인 사용
 
아직 회원이 아니십니까?    
아이디/패스워드를 잊으셨습니까?    

     
   
기능 자동화 도구 소개
글쓴이 : 김환성 날짜 : 16-09-06 16:11 조회 : 2536




안녕하세요,



기능 자동화 도구인 TestComplete를 소개 해 드립니다.



가성비 최고인 이 도구는 모듈(Desktop, Web, Mobile) 별로 구매해서 사용하실 수 있는 도구입니다.



게다가 Keyword Driven과 Object based 방식을 취하고 있기 때문에,



스크립트 생성이나 활용에 상당히 편리한 도구입니다.



좀 더 자세한 사항은 아래 링크를 통해서 확인 해 주세요.




링크 : TestComplete 소개 페이지

푸른나무 16-09-06 16:58
키워드/오브젝트 기반 UI 자동화 툴을 전에 개발 해 본 경험이 있어서 이렇게 훌륭한 툴이 있다니 놀랍습니다.
     
김환성 16-09-07 11:27
자동화 툴을 개발해 보셨다니 대단하시네요.

기회가 된다면 도구를 개발하시면서 느꼈던 자동화 도구의 장단점이라든가, 사용자 편의성을 위해 어떤 기능을 구현하셨는지 여쭙고 싶네요.. ^^
          
푸른나무 16-09-07 15:51
아마도 TestComplete 와 비슷한 개념일 듯 한데, MSAA 와 HWND handle 등을 얻는 것을 기본 라이브러리로 해서 스크립트 언어로 구현하였는데, 사용자가 클릭하는것을 자동 기록하여 1차 테스트 스크립트를 만드는것도 해보았으나(마우스 클릭을 기록하는 윈도용 툴 작성) 실제 사용자가 원하는 의도를 잘 기록하지 못하여, 나중에 수정하는데 더 애먹게 되더군요, 그래서 상요자 행동을 기록하지 않고 각 단계를 사용자가 수동으로 Object - Action - Content - Window title - Option 같은 항목에서 골라서 직접 입력 해 넣는것으로 하였습니다. 물론 그렇게 하면 한 2~5번 단계 정도 하고 잘 되는지 테스트 해 보고나서 다음 단계를 계속 작성 해야 하는 불편이 있긴 합니다만, 워낙 다양하고 특이한 조건이 있어서 수동으로 사람이 액션을 고르게 하는게 일단 정확하긴 했습니다. 거기에는 영문버전용 마스터 스크립트를 다국어 버전에 모두 동일하게 적용하려고 했기 때문에 Option 에 "DEU-2" 처럼 주어서 어쩔 수 없이 독일어 화면에서는 무조건 2번째 object 를 클릭하라고 지시를 하기도 했습니다.

다국어 UI 테스트에 한 2~3년 적용 했었는데 효과는... 좋았을 때는 밤사이에 미국에서 새로운 빌드가 나오고 밤에 테스트가 다 되어서 아침에 출근하면 테스트가 오류없이 다 끝나고 각 단계마다 스크린샷 켑춰한것과 결과를 HTML 로 한번에 다 보여주면 정말 행복한 하루였습니다.

안 좋았을 때는 테스트가 중간에 멈추어서 (중간에 sleep 시간이 너무 적었거나, 새로운 UI 가 나오는등 변경으로) 앞부분 몇단계 끝나고 중단 되었을 때, 다시 작업 하면 무력감이 들었었네요.

지금은 인공지능기법도 있고 DOM 에서 내가 원하는 object 가 다음번 빌드에서 변했을 때 그것을 찾는 유사도 분석 기법이 더 다양해졌을 것 같은데, 그 때는 키워드 방식으로도 실패하면 그 때 내부 object index등으로 찾아야 하는데, 그 방법이 너무 단순 했었네요.
               
푸른나무 16-09-07 16:26
참, 다국어 테스트시에 키워드로 입력한 것을 다른 언어에서 테스트시에 실시간 번역을 해서 그 번역 된 다른 언어의 키워드를 사용 할 때에는 TM(Translation Memory) 에서 가져와서 실시간 번역하면서 하기도 했었습니다. 이미 과거 버전등에서 번역 해 놓은 언어 파일에서 모두 수집해 놓고 full match 또는 부분 매치 해서 찾습니다.
                    
김환성 16-09-08 15:06
말씀하신 내용이 정말 TestComplete 도구와 아주 흡사한 것 같네요. 게다가 다국어 테스트는 관련 업체들에게는 정말 유용한 도구일 듯 합니다.
TestComplete의 경우에는 다국어 테스트 시 OCR을 지원하긴 하지만, 자체 지원하는 모듈이 제한적이라 따로 오픈 소스를 플러그인 해서 사용한 적이 있었습니다.
그런데 말씀하신 도구는 번역까지 한다니 훌륭하네요.. ^^
                         
푸른나무 16-09-08 15:30
TM 번역 (leverage) 할 때 힘든것 중 하나가 문장중에서 부분적으로만 매치하는데 하필 중간에서 글자가 다를 경우처럼 insert, deletion, inversion, structure variation 같은 단순 partial match 하기에는 난이도가 높은 것들이었습니다. 예를들어 DNA 염기서열이 사람마다, 암세포마다 마치 버전 1.0과 1.2 사이에 설명서 문서가 약 98% 만 같고 나머지 2%는 여러 형태로 다른것을 분석해 내는것과 같더군요.
하지만 이전 버전의 설명서/코드 파일에서 매치의 후보 재료로 사용해보는것은 가치가 있었습니다.
PlatformQA 16-09-06 20:30
Desktop 이라는게 Windows Application 또는 Mac Application을 말씀하시는건가요?
     
김환성 16-09-07 11:27
위에 말씀드린 도구는 MS Window 계열만 지원 합니다. 
그래서 말씀하신데로 Desktop 모듈은 Windows Application을 지원 합니다.
Mac은 지원하지 않습니다.
현학파 16-09-07 15:40
키워드 기반 UI 자동화 라는게 어떤 개념일까요? 소개 페이지를 봤는데, keyword driven testing이 어떻게 UI testing과 함께 사용되는지 잘 이해가 안가서요. 그림에는 data driven loop 라고 적혀 있고, 이후에 data driven testing 이 별도 페이지로 나와서 혹 잘못설명한 것은 아닌가 하는 오해(?)도 하게 되네요.
     
김환성 16-09-08 15:22
좋은 PT 자료는 누가 봐도 쉽게 이해할 수 있어야 하는데, 제가 아직 그 역량 까지는 안되는 것 같습니다. ㅠㅠ

키워드 기반 UI 자동화라는 말은 두 개의 의미를 같이 언급한 것이니 분리 해서 설명 드리면,

키워드 기반 : PPT 5 페이지의 스크립트를 보시면 Click, SetText, Drag 등으로 쓰여 있는게 보이실 겁니다. Click은 마우스 클릭 하는 이벤트이고, SetText는 지정한 값에 따라 텍스트를 입력하는 것이고요, 이렇듯 사전에 정의한 값에 따라 자동으로 실행될 수 있도록 하는 것을 말합니다. 물론 저런 이벤트들을 사용자가 하나하나 입력해야 한다면 상당히 불편하겠지요, 그래서 지원되는 또다른 기능이 레코딩&플레이 방식입니다. 레코딩 버튼을 누르고 마우스 클릭이나 값을 입력하면 그런 이벤트들이 자동으로 스크립트 형태로 저장됩니다.

UI 자동화 : User Interface 자동화, UI 자동화라고 하면 대부분 기능 테스트 자동화를 얘기 합니다.

Keyword Driven testing : 키워드 기반 테스팅을 말합니다. 위에 언급드린데로 UI 자동화 테스트를 키워드 기반 방식으로 진행한다는 의미입니다.

Data Driven Loop : TestComplete에서 지원되는 하나의 기능입니다. PPT의 8페이지를 보신 듯 한데, Data Driven Testing는 데이터를 참조해서 반복테스트 하는 것을 의미하고요, 그런 테스트를 하기 위해 TestComplete에서 지원되는 기능을 Data Driven Loop라고 합니다.

좋은 지적 감사드리고 앞으로도 계속 부탁 드립니다~ ^^
          
현학파 16-09-08 16:54
설명 감사합니다. 시스템에서 정의한 키워드로 스크립트를 만들수도 있고, 레코드 방식으로 만들수도 있다는 얘기였군요. 전 레코드 & 플레이백 방식도 결국 결과비교는 스크립트나 유사한 것(?)을 사용해야 할 텐데, 그부분을 키워드도 만들수 있어서 그런 이름을 붙였나 했어요.
키워드 기반으로 자동화 한 것을 바탕으로 데이터만 바꿔서 돌아가게끔 할 수 있어 데이터 기반 자동화도 하신다는 것으로 이해 하면 될까요?
제가 UI 자동화는 5-6년 전에 해보고 안해봐서 감이 많이 없네요 ^^
               
김환성 16-09-08 18:05
네, 데이타 드리븐 테스트는 말씀하신게 맞습니다~^^
Won님 16-09-07 20:31
이 도구를 잘 사용했을 때의 기대결과와 효과본 모습은 어떤 것인지요?
UI 테스트가 자동화 돼 사람이 마우스 클릭해 가며 하는 단수 테스트 실행이 드라마틱하게 감소하는 것이 한가지 겠고...^^ 또 어떤게 있을까요?
     
김환성 16-09-08 16:13
안그래도 올 해 진행한 자동화 도구 적용 사례를 만들어서 공유해 드리려고 하는데, 생각 처럼 빨리빨리 진행되지가 않네요.

말씀하신 부분에 대한 답변을 드린다면,
최근 증권사에서 자동화 도입 프로젝트를 진행했는데, 프로젝트의 줄기를 간단하게 설명 드리면, TestComplete의 세 개의 모듈(Desktop, Web, Mobile)을 이용해서 증권사의 HTS, Web, Mobile(iOS/Andorid)에 대한 스크립트를 생성하고, 생성된 여러 개의 스크립트를 시나리오로 엮어서 실행할 수 있게 합니다. 생성된 테스트 스크립트(시나리오)는 스케쥴 기능을 엮어서 테스트 할 수 있도록 구비하고, 나타난 결과는 게시판을 통해 실행PC+일자별로 구분 되서 확인할 수 있습니다.

이렇게 말씀드리면 보통 자동화에 대해 잘 모르시는 분들은 "와~ 대단하다~"라고 하시고, 그렇게 자동화를 하기 위한 제반 조건에 대해 아주 막막해 하십니다. 그래서 저는 위에 언급한 데로 말씀드리고 싶지가 않습니다. 자동화를 시작하기 전부터 오해를 불러 일으키기 때문입니다.

Won님께서 질문하신 문구 중 '단수 테스트'가 자동화의 9할 이상입니다. 그렇기 때문에 자동화의 성공 여부는 단수 테스트를 위한 스크립트 생성이 얼마나 편리하냐 이게 가장 큰 관건인데, 테스트 자동화 도입을 생각하시는 많은 유저 분들은 사용성은 보지 않고, 그저 얼마나 많은 기능을 지원하는 지만 보고 있습니다.

단수 테스트만 잘 만들 수 있으면, 그것들을 엮어서 시나리오를 만들고, 그 외에 기타 기능들은 그저 편의에 의해 추가만 하면 되는 것들입니다. 그러므로 다른 분들도 자동화를 생각 하실 때 너무 스케일을 크게 잡지 마시고, 단순한 부분들 부터 하나하나 확장해 나가는 것을 목표로 하시면 자동화 도입에 대한 성공률을 높일 수 있습니다. 우리가 평소에 포토샵 보다 그림판을 더 자주 쓰는 이유와 비슷한 맥락이라고 보시면 됩니다~ ^^

조만간 기능 자동화 관련 세미나를 가질 예정인데요, 아마도 지금 말씀드린 부분을 계속 강조하게 되지 않을까 합니다~ ^^
오드리부장 16-09-20 11:23
기능자동화 관련 세미나가 기대됩니다!!
장재진 16-09-22 11:03
Mobile 부분은 Android OS 지원은 어떻게 되는지요?
Android OS가 업그레이드되면 TestComplete에서는 어느 정도 시차를 두고 지원이 되는지도 궁금합니다.
     
김환성 16-09-22 13:27
Android OS의 경우 버전 업그레이드에 따른 도구의 패치가 얼마나 빨리 되는 지는 정확하게 모르겠습니다.

다만, Win 10 이 8월 말 경에 오픈 될 때 TestComplete 공지에는 8월 초 부터 이미 Win 10 을 지원한다고 했습니다.

그래서 제 생각에는 Android OS 역시 릴리즈 전에 먼저 적용되어 패치 되지 않을까 합니다.

해외에서 많은 기업들이 TestComplete 라이선스를 계속 갱신하면서 사용하고 있기에 그런 대응이 늦는다면 아마도 많은 컴플레인이 있을 것입니다.
로드로드 17-01-23 09:00
세미나 저도 기대됩니다!
일한만시즈 17-05-16 10:42
저도 기대 됩니다.