삽질의 현장/- ETC

[삽잡이::Framework] 그래서 Robot Framework는 뭔데?

shovelman 2015. 6. 19. 15:02

안녕하세요 여러분

삽잡이입니다~ 


오늘은 불타는 금요일입니다. 

포스팅좀 하다가 불태우러가야지... 아하하...


그렇다고 절대 포스팅을 대충할 일은 없다는 사실!


아무튼... 

지난 시간에 프레임워크에 대한 이해를 해봤고,

로봇 프레임워크에 대해서 아주 조금 소개를 했습니다.


그렇다면 다시한번 상기시켜보도록 하겠습니다...

로봇프레임워크란

1) 파이썬 기반으로 만드러진 테스팅 자동화 프레임워크

2) Keyword-Driven end-to-end acceptance 프레임 워크.

혹여나, 기억이 안나시는 분들은 RF_#001을 참고해주세요~! (클릭 가능!)


맞습니다... 지난 시간에 요기까지 설명을 했습니다. 

더욱 내려가보도록 하죠.


로봇프레임워크(편의상 RF로 할께요~!)는 왜 사용할까요?

위에서 언급했듯이 RF는 테스팅 자동화 프레임워크라고 했습니다. 자동화 테스팅...

여러분 예전에 혹시 기억 나시나요? 

게임할때 뭐 자동 광클 프로그램, 자동 사냥 프로그램 이런거요... 

(사용하시면 안됩니다 여러분^^... 저도 사용해본적 없어요^^)

그것도 뭐 자동화의 일종이죠. 

아무튼... 아~ RF는 자동화 테스팅을 위해 사용하는구나~!


제품을 개발하고 이상유무를 사람이 직접하기보단

Keyword 기반의 Test Case를 만들고 자동으로 돌리겠다 이거구나~!

이래서 사용하는 거군요...

참고로 Test Case는 뭐냐... 음... 예를 들어서 테스트를 하기 위한 순서, 조건을 만드는 것이죠...

정확하게 말씀드리자면, 특정 테스트 조건을 확인하기 위해 작성하는 case 입니다.


예를 들어서 우리가 만든 프로그램중 

"'삽'이라는 로고를 누르면 블로그 메인으로 돌아간다!" 의 기능이 있다고 가정해보죠...

테스트 케이스는 이 기능이 올바르게 수행되는지 확인하기 위해 작성하는 것입니다.

추가적으로,

테스트 케이스에는 테스트 케이스명, 사전 조건, 수행 절차, 기대 결과, 합격/불합격, 비고 등이 쓰여집니다~!


아무튼말입니다...


조금만 더 깊게 들어가자면 RF의 또하나의 특징중 하나는

바로, Acceptance-Test-Driven Development에 대한 

일반적인 테스트 자동화 프레임워크라는 것이죠.

줄여서 ATDD, 즉 뭐냐하면... 

프로젝트에 관여하는 고객들, 개발자들 그리고 테스터들 사이의 대화를 기반으로 하는 

개발 방법론을 말하는데요~ 



맞습니다. 왜인지 아직 모르시는 분들이 많을터인데요...

사람들이 모여서 대화를 기반으로 테스트 케이스를 작성하고

프로그램이 구현된다면 테스트 케이스를 기반으로 테스트를 수행한다는 것이죠.


즉! 종합해서 말씀드리자면 왜! 로봇 프레임워크는 

Acceptance-Test-Driven Development에 대한 일반적인 테스트 자동화 프레임워크냐 물어보신다면!


ATDD 작업에 맞게 테스트 케이스를 작성 하고! 개발 하고! 테스트를 수행하기 때문이죠! 

RF는 이러한 프로세스에 맞춰진 프레임워크입니다!


그렇다면~ RF의 장점은 뭘까요?


우선 확장 가능성이 있습니다. Python 기반으로 만들어졌다고 했는데요, 

Python이나 Java로 구현된 라이브러리를 확장할 수 있습니다.


그리고 Remote library interface를 지원합니다. 

Remote... 리모컨 아시죠? 저기 멀리서도 버튼 누르면 TV 켜지고 막 그런거요...

이와 같이 RF가 작동 중이 아닌 다른 머신에서도 테스트 라이브러리를 사용할 수 있게 해줍니다.



요런 느낌이랄까요~?

아... 그러니까 굳이 내 PC에 없는 라이브러리를 설치할 것이 아니라 

다른 PC에 라이브러리가 있다면 그걸 사용할 수 있다 그거군요!

하지만, 주인 없이 사용할 수는 없겠죠? 

주인이 열어놓으면 사용할 수 있다는 점~!


또한 첫번째 장점에 대한 의문도 명확하게 해결해 줍니다.

Remote를 사용함으로써 어떤 언어로 만들었던지에 상관 없이 라이브러리를 사용할 수 있게 되는 것이죠!


아무튼,

그리고 마지막 장점~! (설마 장점이 세개밖에 없을까요.... 내마음대로~ 크크)

가독성이 좋고 사용법이 간단합니다.

Keyword 형식으로 되어 있으니 그 키워드를 읽음으로 기능을 파악할 수 있겠고요

RF는 표형식으로 되어 있어서 읽고 쓰기에도 편합니다. 

RF를 사용하던 일부를 가져와봤습니다~ 맛보기~!


 


오호 'Create Directory'라는 키워드는 디렉토리를 생성한다는 기능을 가지고 있을 것 같네요.

또한 그 옆에 'C:\\temp' 라는 건 C:\에 temp라는 디렉토리를 만든다는 것이겠죠??


아하! 그래서 지난 시간에

Keyword-Driven end-to-end acceptance 프레임워크라고 했구나!

키워드 따로 키워드 구현 부분 따로 나누어져 있다는게 이런 뜻이었군요!



지금까지 RF에 대해서 알아보는 시간을 가졌습니다...

물론 전부 다 한건 아니죠~

이해하고 아 이런 기능을 가지고 있다 이정도까지 알아본 것 같네요...


물론 더 자세한 것은 


공식 사이트 : http://robotframework.org/

공식 가이드 : https://code.google.com/p/robotframework/wiki/UserGuide


에서 살펴보도록 하시죠~!


그러면 다음에는 뭘 들고 여러분께 찾아뵐까요~?!

기대하시며~

다음 시간에 뵙겠습니다!

이상 삽잡이였습니다~!



[참고자료]

#구글님 #Robot Framework 공식 사이트 

#내가 삽질하며 정리했던 자료들...(그 삽질하며 찾은 자료들의 출처는...? 뭐 당연히 공식 사이트겠지만요...)


[검색 키워드]

#Robot Framework #로봇 프레임워크 #자동화 테스팅 프레임워크 # Remote