SDET로써 Early Testing 가능한 SW QA 프로세스 확립 및 웹 모바일 테스트 자동화(UI, API) 프레임워크 개발뿐 아니라 사내 서비스에 사용할 자동화 도구를 개발하고 QA Engineering에 필요한 기술(기능, 비기능)과 방법론 도입에 있어서 보다 기술에 대한 이해도를 높이고자 DeepDive 중인 요즘인데요.우선 실무 관점에서 앞으로 해결 필요한 문제는 QA Engineer분들의 스크립트 작성과 유지보수 서포트 관점에서 필요한 생산성 향상입니다.
프레임워크를 유지보수 용이한 구조로 설계하여 스크립트 개발에 필요한 기본적인 가이드라인을 문서화시키고 유지 보수할 예정이지만 동료분들께서 최소한의 노력으로 많은 효율을 이끌어 낼 수 있는 방법에 대해서 고민하던 중 Aqua IDE 출시 소식을 접하게 되었습니다.
사이드 프로젝트로 진행 중인 React App 서비스를 개발하는 과정에서 Aqua IDE를 간단히 살펴보며 느낀 점에 대한 포스팅을 진행하게 되었습니다.
서비스에 필요한 값만 바꿔서 편리하게 사용토록 자동 생성하는 모습입니다. 캡슐화가 안되어있거나 mainPage처럼 중간 정도의 수준으로 되어있습니다. 최소한 mainPage 정도의 캡슐화로 구현되는 것이 유지보수 관점에서 편리하고 가독성도 뛰어납니다.
Aqua IDE에서 지원하는 Page Objects 자동 생성 템플릿 코드를 수정하거나 테스트 파일에서 UI 구조의 세부 정보가 나타나지 않도록 자동 생성된 mainPage 코드를 참고하여 PageObjects로 구현하면 좋을 것 같습니다.
Web Inspector
고유한 로케이터를 쉽게 생성할 수 있도록 selectorshub를 사용했었기에 개인적으로 가장 기대했던 기능입니다.
Aqua IDE는 로케이터 생성을 IDE에서 지원토록 Web Inspector가 내장되어 있습니다. 사용 방법은 Selenium에서 로케이터 찾는 방법과 동일하며 css와 xpath를 지원합니다.
우측 + 클릭 시 해당 로케이터가 @FindBy로 자동 생성됩니다. 변수명은 적절히 변경해서 사용하면 좋을 것 같습니다.
전체적인 느낌
Page Obejects를 편리하게 구현할 수 있도록 구성되어 있고 Selenium 자동화에 필요한 초기 프로젝트 구성이 편리했습니다. 또한 테스트 코드 구현에 필요한 사전 지식이 부족하더라도 Web Inspector로 로케이터를 생성하여 초기 구성된 예시 코드를 참고하여 쉽고 간편하게 구현할 수 있었습니다.
다만 실무에서 수백수천 개의 테스트 시나리오를 구현하고 운영하는 관점에서 생각해 봤을 때 IDE가 도와주는 구성과 편리한 점도 분명 좋지만 자동화 설계와 운영 관점에서 Selenium Webdriver에 대한 지식과 사용하는 언어로 필요한 로직을 구현해낼 수 있는 역량은 꼭 필요하다고 생각됩니다.
이번 블로깅에서는 초기 구성과 로케이터 생성 방식만 다뤄보았습니다. Aqua IDE에서 지원하는 여러 기능들과 더불어 API, 데이터베이스, 도커는 진행 중인 리액트 프로젝트 서버 배포까지 마무리된 이후에 다뤄 볼 예정입니다.
현재 구현 중인 React App으로 E2E, API, 데이터 베이스에 대한 테스트를 Aqua IDE로 어떻게 구현할 수 있고, 그 과정에서 발견된 Aqua IDE로 구현했을 때의 장점을 보다 상세히 분석하여 공유해보도록 하겠습니다.