Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

소울메이커

통합테스트 유틸리티 Geb 본문

프로그래밍

통합테스트 유틸리티 Geb

언젠간 프로 2016. 11. 10. 14:10

소프트웨어를 개발하는데 테스트는 매우 중요하며 필수적인 영역일 수 밖에 없다. 

테스트없는 소프트웨어는 있을 수 없으며 설령 테스트없이 만들었다 해도 품질은 보장 할 수 없다. 


소프트웨어를 개발하는 대부분의 회사들은 테스트 조직을 따로 운용하며 테스트 솔루션을 도입하고 있다. 

하지만 일부 회사에서는 비용과 시간이 부족하다는 이유로 개발자가 하는 단위 테스트에서 끝나는 경우도 많다.

그들은 결국 나중에 더 큰 화로 돌아온다는 것을 알지만 어쩔 수 없다는 것으로 받아들인다.

물론 피는 개발자들이 보게 될 것이지만... 


통합 테스트는 말 그대로 시스템에 구현 된 모든 기능을 시나리오를 통해 전반적인 테스트를 수행하는 것이다.  

이 통합 테스트는 테스터가 수행할 수도 있고 테스트 솔루션을 이용해 수행할 수도 있다. 


이번 포스팅은 웹 어플리케이션의 통합 테스트를 자동화 할 수 있는 Geb에 대해서 정리하고자 한다.

자동화는 사람이 해야 할 일련의 과정들을 자동화 하여 시간과 비용을 절약할 수 있다는 의미가 되겠지만

그래도 모든 것을 알아서 해주지는 않는다. 테스트 시나리오를 작성하고 그 시나리오를 반영하여 테스트 케이스를 

구현하는 것은 결국 사람의 몫이다. 따라서 자동화라는 의미를 모든 것을 해준다는 의미로 받아들이지 말고

하지 않아도 될 일들을 줄여서 얻어진 시간을 활용하여 그 동안 못했던 테스트를 수행하고 뒤에 볼 피를 조금만 보자는 

의미로 받아들였으면 한다. 


Geb 의 특징 

  1. 웹 브라우져를 이용한 통합 테스트 
  2. 그루비 기반 
  3. jQuery 컨셉 문법


Geb은 그루비 언어를 지원하며 그에 따라 코드의 유연성을 제공한다. 

또한 웹 통합 테스트 시나리오에서 사용 할 셀렉터는 jQuery 문법을 이용한다. 

아래는 jQuery문법을 어떻게 사용하는지에 대한 샘플이다. 


$("div")

$("div", 0)

$("div", title: "section")

$("div", 0, title: "section") 

$("div.main") 

$("div.main", 0)  

$("p", 0).parent()


$("p").find("table", cellspacing: '0')


웹 개발자라면 jQuery는 많이 들어봤을 것이고 많이들 사용하고 있을것이다. 

이는 새로운 문법을 배워야하는 리스크가 줄어든다는 뜻이고 러닝커브가 그만큼 낮아진다는 의미가 되겠다. 


통합테스트 솔루션은 많이 있을테지만 Geb에 관심이 갔던 이유는 오픈소스라는 점, 그루비 언어 기반인 점, 

jQuery 문법을 사용한다는 점이였다. 

그 중 그루비 언어 기반이라는 점은 그냥 본인이 그루비 언어에 관심을 갖고 있으며 실제로 사용하고 있기 때문이였다. 


Geb에 대해 좀 더 알아보고 싶다면 공식 사이트 http://www.gebish.org 에서 확인 해 보자. 


다음에는 실제 프로젝트에서 어떻게 적용하는지에 대해 정리 해 보겠다.