TestSwarm은 개발자들이 신속하게 여러 브라우저의 버전에 대한 자신이 개발한 JavaScript 코드를 테스트하기 위한 쉬운 방법을 제시하는 것을 목표로 모질라 연구소의 새로운 프로젝트입니다. 

John Resig 은 잘 알려진 것 처럼 jQuery 개발과 JavaScript 에반젤리스트로 있다가 새로운 팀의 자바스크립트 툴 개발자로 지난 4월부터 중심이 되어 프로젝트를 진행해 왔습니다.

아마 팀을 옮기고 첫 작품이라 심혈을 기울이지 않았을까 하는 생각을 해봅니다.


크로스 브라우징 JavaScript 테스팅 및 디버깅의 현재

처음이 TestSwarm은 jQuery팀을 지원하기 위한 도구로서 시작한 것인데 오늘날의 방법은 크로스 브라우저 JavaScript를 테스트를 쉽게 지원하거나 기준을 잡을 수가 없습니다.. 

최근 소개한 JavaScript Debug Tool은 실제 개발 시 디버깅할 수 있어서 개발자에게 유용하지만 완료된 프로젝트이거나 큰 프로젝트의 경우에 테스트를 위한 도구는 그간 없었고 이런 테스트는 거의 개발자나 기획자의 PC에 깔린 브라우저 종류에 의존했었습니다.

이에 TestSwarm은 JavaScript 테스트 기반의 개발을 위한 도구로서 매우 유용하게 활용되어지리라 봅니다.

참고 - 현존하는 JavaScript 디버깅 툴
 - FireBug : http://getfirebug.com/


구조
이에 미리 다양한 환경의 많은 참가자들을 모집하여 PHP와 Mysql로 개발되어진 중앙 서버에 연결된 사용자가 등록한 JavaScript 테스트를 배포하고 실행 결과를 서버에 집계하는 구조를 갖습니다.


참고로 우측에 뜨는 벤치마크 점수와는 달리 서버에서 테스트를 추진하고 그 결과를 기다려야 합니다.  현재는 로그인한 참가자의 숫자가 갖추어질 때까지 실행되지 않도록 되어있어 운이 나쁘면 테스트가 발생하지 않을 수도 있습니다.  이런 부분은 차차 개선 되리라 봅니다.


참가방법(일반 - Runner)
프로젝트가 생성되고 테스터의 브라우저가 필요한 경우라면TestSwarm 사이트에 상단에 초대장과 함께 테스트에 참여할 수 있는 박스가 나타날 것입니다. 가입 후 몇 번 가봤지만 아직까지 프로젝트가 생성된 것을 보지는 못했습니다. 

 

(2009.09.10 추가)
우연찮게 들어갔다가 테스트 하는 장면을 목격하게 되었네요.

Selector tests 수행중 정상적인 수행이 되는 경우 녹색이 표시

Ajax tests... 수행중 비 정상적인 수행이 발생되는 경우 빨간색이 표시



참여하게 되면 탭에서 바로 실행되고 자동으로 새로운 테스트를 위해 매 30초 간격으로 프로젝트 서버로 Ping을 합니다. 그러면 새로운 테스트를 연이어 수행합니다.

그 결과를 다음과 같이 보여줍니다.

 


Vimeo 에 올린 영상을 보면 자세한 운용 방법이 있습니다.  John resig 의 세미나나 발표를 보면서 느낀 거지만 앙드레김 선생님보다 좀더 빠른 말투라는 생각이 자꾸 드네요.  특히 이번 영상에서는 더더욱이   “Am~~~ JavaScript~~”, “Am~~”


지원
TestSwarm은 다양한 운영체제와 웹 브라우저를 지원하고 그에 걸맞는 많은 참가자를 원하고 있습니다.  사이트에서 가입하여 누구나가 참여할 수 있게 되어있습니다.
 
  현재 Windows XP에서 Firefox 3.5 사용자가 가장 많네요. 아무래도 모질라 랩에서 개발한 거라 사내 직원들이 많이 참여한 것이 아닌가 추측해봅니다.

TestSwarm 메인 사이트에 보면 그 수치를 아래의 그림처럼 표시하고 있습니다.
 


현재 TestSwarm은 jQuery, YUI, Dojo, MooTools 그리고 Prototype.js 를 포함한 많은 개발자들이 의존하고 있는 인기 있는 다수의 오픈 소스 기반의 자바스크립트 라이브러리 테스트를 하고 있습니다. 
TestSwarm는 오픈 소스화 하였기 때문에 원한다면 자신의 프로젝트를 위해서 직접 설치하여 활용할 수도 있습니다.

소스 다운로드 http://github.com/jeresig/testswarm/tree/master

그런데 소스상에는 있지만 아직까지 Test를 생성할 수 있는 구석은 안보이는 것 같습니다.



향후 계획
긴 안목으로 모질라의 TestSwarm 아키텍쳐로 개발자들이 만든 자신의 코드를 테스트하기 위해 좀더 쉽게 만들기 위한 계획이고 또한 수동 검사를 위한 옵션이나 사용자 상호 작용이 필요한 곳에서 실행할 수 있도록 할 계획이라고 합니다.

1. pastebin 같은 서비스에 여러분이 코드를 넣어 두고 다양한 브라우저로부터 실시간으로 되돌아 오는 결과를 볼 수 있습니다. (paste 는 붙여넣기, bin 은 실행형이니까 클릭해서 만들어 내는 서비스를 말할까요?)
2. 필요한 부분만 변경하에 보낼 수 있는 IDE 통합으로 빠른 테스트를 실시 할 수 있다.
3. 유저 인터페이스 코드의 수동 테스트, 수동 테스트 처리 절차와 함께 밀어 넣고 사용자가 실행 할 수 있도록 한다.
4. 정해진 테스트 환경이 아닌 정해지지 않는 다수의 브라우저에서 테스트를 해보기 위한 배포 (작은 iframe를 자신의 사이트에 포함시켜 두고 사용자의 표본 자료에 테스트 결과를 수집 할 수 있다.)
5. 브라우저에서 코드와 확장 기능을 실행 시켜서 테스트하는 능력


추가내용 [2009.08.31]
Test Swarm 의 구조입니다.  좀더 이해하기 쉽도록 그려보았는데요. 참고용으로 사용하세요.
(경우에 따라서 오류가 있을 수 있습니다.)

     클릭해서 보시면 편합니다.

1. Test Swarm 에서 테스트를 생성한다.
2. Job Queue 에 추가합니다.
    이와 동시에 해당 테스트가 발생하고 조건에 맞는 사용자들에게 invite 박스가 표시됩니다. (testswarm 사이트에 접속하면 우측 상단에 작은 box가 초대 박스로 바뀐다고 합니다.)
3. Join the Swarm 에 접속한 Runner 는 매 30초 마다 Job Queue 에서 자기에게 맞는 다음 테스트를 수행하게 되고
   결과를 서버로 전송하게 됩니다.
   성공 혹은 실패 등의 결과를 서버에 저장하고 6번에서 보이는 결과를 Test Swarm 에서는 볼 수 있게 됩니다.



  
  
신고
Posted by Rhio.kim