개발자

파이썬 로봇 프레임워크를 활용한 소프트웨어 자동화 테스트의 가능성

Timo Füg  | InfoWorld 2022.04.11
코드를 변경할 때 생기는 부작용은 소프트웨어 오류를 만들어 낼 위험이 있다. 이러한 오류를(프로덕션 단계가 아니라) 초기 단계에서 찾아내려면 자동화 테스트로 소프트웨어의 예전 기능과 새로운 기능을 둘 다 검증해야 한다.

먼저, 프로젝트 목표(비전)와 대략적인 로드맵을 설정해야 한다. 이 때 필요한 예산을 무시해서는 안 된다. 완전 자동화된 테스트를 프로젝트 시작 시점에서 개발하려면 나중에 운영 과정에서 개발하는 것보다 훨씬 많은 노력이 필요하다. 그러나 테스트 결과를 검증하고 테스트 사례를 조정하고, 새로운 테스트 기능을 구현하는 과정애서 특정한 ‘배경 소음’은 항상 그대로 남는다. 

테스트할 소프트웨어의 절차와 프로세스를 명확히 설정한 후에는 툴과 프레임워크를 선택한다. 그 후 사용한 툴이 승인받을 수 있도록 첫 번째 시제품을 회의에서 발표할 수 있어야 한다.
 
ⓒ Getty Images Bank
 

자동화된 소프트웨어 테스트 – 도입

(새로운)소프트웨어가 성공적으로 개발된 후에는 테스트할 소프트웨어 버전과 테스트 자동화가 자동으로 시작된다. 설치 가능한 소프트웨어의 경우 테스트 자동화 작업은 수동 개입 없이 소위 ‘무음 모드’에서 수행되어야 한다. 그런데 대부분의 소프트웨어 설치 프로그램은 ‘반응 파일’을 제공한다. 반응 파일은 최초 설치 시 사용자가 지정한 입력값과 해당 대화가 포함된 텍스트 파일이다.

그 다음에는 소프트웨어가 자동으로 설정 및 매개변수화되고, 애플리케이션, 서비스, 브라우저, GUI 등의 정확한 기능이 테스트된다. 테스트할 소프트웨어 제품이 다양한 플랫폼(유닉스, 리눅스, 윈도우)을 지원한다면 모든 운영체제를 테스트해야 한다. 이때 테스트는 동시에 그리고 밤 사이에 실행한다. 그래야 실행 기간이 긴 테스트를 효율적으로 수행할 수 있고, 하드웨어 자원을 잘 분산해 활용할 수 있으며 테스트 결과를 아침에 받아서 추가로 분석할 수 있다.

다수의 테스트를 다양한 테스트 시스템에서 동시에 수행한다면, 가상머신(VM)이라고도 하는 가상 컴퓨터 시스템의 사용을 추천한다. 개인 하드웨어를 사용하고 싶지 않을 경우의 대안은 클라우드 컴퓨팅이다. 필요한 IT 자원도 제공된다.
 

로봇 프레임워크로 테스트하기

개인적으로 완전 자동화된 소프트웨어 테스트를 개발할 때 선호하는 것은 로봇 프레임워크(Robot Framework)이다. 기능의 범위를 넓히기 위한 폭넓은 모듈식 시스템과 통합 가능성이 높은 간단한 처리가 결정적인 요소다. 테이블 같은 테스트 사례 구조 덕분에 필요한 훈련 기간이 짧고 간단하다는 점도 장점이다.

로봇 프레임워크는 사용자 테스트(인수 테스트 및 엔드투엔드 테스트)에 집중하지만 시스템 테스트와 스모크(smoke) 테스트에도 사용된다. 파이썬으로 개발된 로봇 프레임워크는 오픈소스 소프트웨어로 자유롭게 이용할 수 있다. 주요 신규 릴리즈인 로봇 프레임워크 5.0은 2022년 3월 말경에 공개되었다.

프레임워크 설치는 복잡하지 않다. 파이썬 3과 패키지 관리 pip만 있으면 된다.

개발과 테스트 수행에 활용하는 두 기성 시스템은 함께 사용하면 각 환경의 장점을 즐길 수 있다. 로봇 프레임워크의 자체 개발 라이드(RIDE)를 통해 신참자도 프레임워크 사용법을 쉽게 배울 수 있다. 레드(RED)는 유능한 소프트웨어 개발자들이 매우 좋아할 에클립스(Eclipse) 기반의 개발 환경이다.
 

테스트 자동화 - 시나리오

앞에서 기술한 대로 소프트웨어의 모든 기능은 자동으로 테스트되어야 한다. 로봇 프레임워크는 쉽게 통합 가능한 추가 패키지와 다양한 라이브러리로 유용성을 더한다. 일례로, 안정적인 SSH 라이브러리를 통해 모든 테스트를 원격으로 실행하고 윈도우, 리눅스, 유닉스에서 재사용할 수 있다.

웹 브라우저용 종단간 사용자 인터페이스(UI) 테스트 분야에서는 플레이라이트(Playwright)의 최신 신형 브라우저 라이브러리(2021년 초 출시) 또는 오랫동안 자리잡은 셀레니움(Selenium) 프레임워크를 이용할 수 있다. 이들 라이브러리는 로봇 프레임워크에 편리하게 통합할 수 있다. 따라서, 웹사이트 상의 사용자 입출력이나 마우스 클릭과 같은 그래픽 기반 기능을 테스트하기 수월하다.

물론, 직접 작성한 테스트 스크립트도 아무 문제없이 로봇 프레임워크에 통합할 수 있다. 유용한 보고에 자바, 파이썬 또는 쉘 스크립트가 선호되는지 여부는 중요하지 않으며 단지 반환값이 0인지 아닌지 여부를 관찰해야 한다. 
 

소프트웨어 테스트 - 평가

로봇 프레임워크에 의해 자동으로 대량의 테스트 보고서가 HTML 페이지로 생성된다. 또한, 테스트 결과는 테스트링크(TestLink)와 같은 테스트 관리 시스템으로 가져올 수 있다. 오류를 보다 빠르게 분석할 수 있으려면, 로그 파일이 출력된 정확한 오류 설명이 매우 도움이 된다. 테스트가 많으면 각 테스트의 책임을 규정하는 것도 좋다. 그러면 해당 동료에게 자동 이메일을 통해 오류 보고서를 전달할 수 있다.
테스트 결과의 도식적 표현을 스플렁크의 대시보드 등과 통합하면 금상첨화다. 특히 소프트웨어 테스트가 많을 때 현재 상황을 편안하고 쉽게 볼 수 있다. 

대시보드로 부족하다면 신호등 시스템이 최고의 솔루션이다. 임계값을 미리 정해 두면 USB 신호등의 다양한 색상을 활용할 수 있다. 예를 들어, 아침에 출근했을 때 신호등이 빨간색이면 오류가 발생했음을 금방 알 수 있다. 반면, 신호등이 녹색이면 모든 테스트가 실행되었고 소프트웨어가 오류 없이 통과했다는 뜻이므로 여유 있게 하루를 시작할 수 있다.

특히 애자일 소프트웨어 개발에서 지속적으로 오류 없는 소프트웨어를 보장하기 위해 완전 자동화 테스트는 필수불가결한 요소다. 밤 사이에 실행되는 테스트 자동화를 통해 소중한 자원을 절약할 수 있다. 로봇 프레임워크는 모든 소프트웨어 테스트의 자동화에 활용할 수 있는 훌륭한 도구다.
editor@itworld.co.kr 
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.