이번편에서는

테스트 자동화가 어떻게 발전했는지 간단하게 살펴보려고 한다.

개발이 시작됨과 동시에 개발된 소스를 자동으로 테스트 하기위한 다양한 방법이 연구되었다.

자동화 테스트를 처음 시작할때 많이 사용한 Record & Playback 부터 최근 트랜드인 Code Less Automation 혹은 AI 테스트 방법까지 계속 발전하고 있다.

각각 하나씩 살펴보면

Record & Playback


사용자가 녹화 기능을 킨 후 사용자가 수행한 Action테스트 자동화 Tool이 Script형태로 녹화 한 후 Play를 수행하였을 때 사용자의 Action을 그대로 수행해주는 형태이다.
초창기에는 사용자의 화면의 X,Y좌표와 마우스 클릭등의 액션을 저장하거나, Command Line에 입력한 input내용을 그대로 수행해주는 형태로 작성되었다.

하지만 현재는 다양한 Library가 개발되어 사용자가 클릭한 대상 객체를 ObjectElement로 자동으로 인식하여 Script형태로 저장하는 방법등으로 활용중이며, 대표적인 Tool을 소개하자면 Selenium IDE, QTP, 대부분의 RPA툴을 예로 들 수 있다.

Use / Reuse of functions

앞선 Record & Playback의 장점은 빠르게 작성할 수 있다.로 표현할 수 있다. 한개의 테스트 시나리오를 Script화 하는데 아주 적은 시간이 소요된다.
하지만, 여러 테스트 시나리오를 수행하려고 하면, 각각의 시나리오 마다 동일한 동작이 들어갈 것이다. Web화면 자동화를 하려고 하면 반복적으로 Browser를 키는 동작이나 로그인을 수행하는 동작은 매번 반복된다.
Use / Reuse of functions방법은 이러한 단점을 극복하고자 많이 사용되는 flowfunction 또는 module화 하는게 핵심이다. 그래서 해당 방법을 Modular Driven방법이라고 표현하기도 한다.
예)

  • 로그인 수행(id, password){...}
  • 메뉴 바로가기(menu_name){...}

    Data Driven Scripts

    앞선 방법을 통해서 대부분의 스크립트를 작성 할 수 있게 되었다. 하지만, 앞선방법만으로는 처리하기 어려운 테스트 시나리오가 나오게 된다.
    예를 들면 금융권의 보험료계산같은 시스템을 예로 들 수 있다. 보험료계산이라는 로직을 제대로 테스트 하기 위해서는 다양한 고객의 데이터를 모두 만족해야 한다.
    고객의 정보에 따라서 계산의 결과는 다 달라져야 하기때문에 고객의 정보 Data 하나하나가 한개의 Test case로 봐야 하기 때문이다.

    Data Driven위의 그림처럼 excel또는 csv의 한줄 한줄을 Test Case로 보고 해당 Test Case를 수행해줄 Test Script를 만들어서 대량의 복잡한 형태의 Solution을 검증하는 방법이다.

    Action Keywords Scripts(Keyword Driven)

    테스트 스크립트는 개발언어에 맞게 Script화 해서 작성되어야 한다. Script를 작성하기 위해서는 개발언어에 맞는 문법으로 작성되어야 한다. 하지만 이렇게 작성된 Script는 개발언어를 아는 사람만 이해할 수 있게 된다.
    문제는 테스트 자동화를 하다보면 테스트 스크립트를 가지고 설명해야하는 문제가 발생한다. 테스트 스크립트는 Python으로 개발되었는데, 테스트 대상이 Javascript기반이라고 하면 Python을 모르는 개발자는 스크립트를 이해하지 못하고 설명을 들어야한다. 지나가던 QA도 그럴것이고 PM도 마찬가지 일 것이다. 이런데서 많은 소모적인 비용이 발생한다.
    Action Keywords Scripts는 이런 문제를 해결하고자 연구되었다. 테스트 스크립트를 우리가 표현하는 자연어형태로 표현하고, 해당 자연어를 테스트 툴이 미리 지정된 Module스크립트를 호출 해 줄 수 있다면, 제일 외부에 노출되는 스크립트는 모두가 이해할 수 있는 자연어일 것이고 적어도 테스트 스크립트가 어떤 내용을 담고 있는지는 처음보는 사람이 봐도 이해할 것이다.

    이런 문제를 해결하고자 연구된 방법은 테스트 자동화에서는 Keyword Driven방식으로도 표현하고, 이를 지원하는 Framework로는 대표적인것이 Robot Framework
    Robot Framework에 대해서는 앞으로 더 세부적으로 소개할 예정이다.

    Code less Automation & AI 테스트

    해당 영역은 아직도 계속 연구중이고, 본인도 제대로 경험하지 못한 영역이라서 제대로된 설명을 하기는 어렵겠다.
    다만 어느정도 상용화 되고, 알고 있는 기술은 이후에 정리해서 소개해 보려고 한다.
profile
안녕하세요~ :)

0개의 댓글