테스트 자동화가 어떻게 발전했는지 간단하게 살펴보려고 한다.
개발이 시작됨과 동시에 개발된 소스를 자동으로 테스트 하기위한 다양한 방법이 연구되었다.
자동화 테스트를 처음 시작할때 많이 사용한 Record & Playback
부터 최근 트랜드인 Code Less Automation
혹은 AI 테스트
방법까지 계속 발전하고 있다.
각각 하나씩 살펴보면
사용자가 녹화 기능을 킨 후 사용자가 수행한 Action
을 테스트 자동화 Tool
이 Script형태로 녹화 한 후 Play
를 수행하였을 때 사용자의 Action을 그대로 수행해주는 형태이다.
초창기에는 사용자의 화면의 X,Y
좌표와 마우스 클릭등의 액션을 저장하거나, Command Line
에 입력한 input내용을 그대로 수행해주는 형태로 작성되었다.
하지만 현재는 다양한 Library가 개발되어 사용자가 클릭한 대상 객체를 Object
나 Element
로 자동으로 인식하여 Script
형태로 저장하는 방법등으로 활용중이며, 대표적인 Tool을 소개하자면 Selenium IDE
, QTP
, 대부분의 RPA
툴을 예로 들 수 있다.
앞선 Record & Playback
의 장점은 빠르게 작성할 수 있다.
로 표현할 수 있다. 한개의 테스트 시나리오를 Script화 하는데 아주 적은 시간이 소요된다.
하지만, 여러 테스트 시나리오를 수행하려고 하면, 각각의 시나리오 마다 동일한 동작이 들어갈 것이다. Web화면 자동화를 하려고 하면 반복적으로 Browser를 키는 동작
이나 로그인을 수행
하는 동작은 매번 반복된다.
Use / Reuse of functions
방법은 이러한 단점을 극복하고자 많이 사용되는 flow
를 function
또는 module
화 하는게 핵심이다. 그래서 해당 방법을 Modular Driven
방법이라고 표현하기도 한다.
예)
테스트 시나리오
가 나오게 된다.보험료계산
같은 시스템을 예로 들 수 있다. 보험료계산
이라는 로직을 제대로 테스트 하기 위해서는 다양한 고객
의 데이터를 모두 만족해야 한다.고객의 정보 Data
하나하나가 한개의 Test case
로 봐야 하기 때문이다.excel
또는 csv
의 한줄 한줄을 Test Case로 보고 해당 Test Case를 수행해줄 Test Script
를 만들어서 대량의 복잡한 형태의 Solution을 검증하는 방법이다.Action Keywords Scripts
는 이런 문제를 해결하고자 연구되었다. 테스트 스크립트를 우리가 표현하는 자연어
형태로 표현하고, 해당 자연어
를 테스트 툴이 미리 지정된 Module
스크립트를 호출 해 줄 수 있다면, 제일 외부에 노출되는 스크립트는 모두가 이해할 수 있는 자연어
일 것이고 적어도 테스트 스크립트가 어떤 내용을 담고 있는지는 처음보는 사람이 봐도 이해할 것이다.Keyword Driven
방식으로도 표현하고, 이를 지원하는 Framework로는 대표적인것이 Robot Framework
다Robot Framework
에 대해서는 앞으로 더 세부적으로 소개할 예정이다.