정보시스템분야 Stack 통합 Test 결과보고서 [ Open edx ] 2015. 03.
목 차 I. Stack 통합테스트개요 1 1. 목적 1 II. 테스트대상소개 2 1. Open edx 소개 2 2. Open edx 주요기능및특징 3 3. Open edx 시스템요구사항 8 III. Stack 통합테스트 9 1. 테스트환경 9 2. 테스트접근방법 10 3. 테스트수행 12 4. 테스트수행결과 13 IV. 종합 14 참고자료 15 [ 별첨1] Open edx 테스트케이스
I. Stack 통합테스트개요 공개SW Stack 통합테스트는여러공개SW들의조합으로시스템 Stack을구성한후 Stack을구성하는공개SW의상호운용성에중점을두고기능및성능테스트시나리오를개발하여테스트를진행한다. 본통합테스트를통해안정적인 Stack 정보를제공하여민간및공공정보시스템개발및도입시활용될수있도록한다. 1. 목적 공개SW Stack 통합테스트수행목적ㅇ공개SW로구성된 Stack이유기적으로잘동작함을확인ㅇ다양한 Stack 구성에기반을둔테스트를통해안정된 Stack 조합규명ㅇ공개SW 시스템도입을위한 Stack 참조모델의신뢰성정보로활용ㅇ공개SW의신뢰성과범용성에대한사용자인식제고 - 1 -
II. 테스트대상소개 1. Open edx 소개 Edx는 Harvard, MIT 및수십여관련국제기구와컨소시엄을통해창립된비영리온라인주도권 (initiative) 운동단체이다. Edx는국제유수대학및관련기관에서운영되는온라인강좌와온라인공개수업 (MOOC : Massive Online Course) 환경을제공한다. Open edx는 edx 교육과정을운영하는오픈소스플랫폼으로 AGPL 및 Apache 라이선스를사용하여커뮤니티에서자유로이사용가능하다. 교육기관및교육자는 Open edx를통해개별필요에부합하는교육환경의구성이가능하고, 개발자들은관련플랫폼개발및개선에자유로이기여할수있다. [ 그림 1. Open edx 시스템기능구성개념도 ] - 2 -
2. Open edx 주요기능및특징 Open edx는웹베이스플랫폼으로온라인교육과정을생성하고, 전달및분석가능한도구및사용환경이다. 기술적측면에서 Open edx는 Python으로구현된서버단과 Django로구현된웹어플리케이션프레임워크로구성되며, Mako templates를사용한다. Open edx 플랫폼은 LMS, Studio, Course Browsing, Course Structure, Discussions, Mobile Apps, Analytics, Background work, Searching 등의주요기능요소로구성된다. Open edx 주요기능요소 (1) Learning Management System (LMS) 교육자용게시판을제공하며, 학생들은 LMS를통해교육과정을이수할수있다. LMS는다양한데이터소스를사용할수있다. 예를들어, 각교육과정들은 YouTube 또는 Amazon S3를통해제공되는 video 자료와함께몽고DB 에저장되고, 학생별데이터는 MySQL 에저장될수있다. (2) Studio Studio는코스개설환경을제공한다. Studio는 LMS가사용하는동일 Mongo DB를사용하며, 코스운영팀은 Studio를통해온라인강좌개설및업데이트작업을할수있다. (3) Course Browsing Open edx는코스 Browsing을위해간단한 front Page를제공한다. edx.org 사이트는개별홈페이지와오픈소스가아닌코스확인사이트를포함한다. (4) Course Structure - 3 -
Open edx 코스는 XBlocks로불리는단위로구성된다. 누구나새로운타입의 XBlock 정의가가능하고, XBlock을사용함으로써교육자들과기술자들은다양한컴포넌트구성으로교육과정 (Courses) 을확장시킬수있다. (5) Discussions Course Discussion은 Comment Service로불리는구분된서버를사용한다. Discussions는몇안되는 Non-Python 컴포넌트중하나이며, Sinatra 프레임워크를사용하는 Ruby로작성되었다. LMS는학생들의코스경험에대한의견을취합, 반영하기위해 Comments Service에의해제공되는 API를사용한다. (6) Mobile Apps Open edx는 ios와안드로이드를지원하는모바일어플리케이션을포함한다. 이를통해학생들은코스 video 자료들을활용할수있으며 edx는모바일어플리케이션을능동적으로개선시킬수있다. (7) Analytics ( 그림 2-1, 2-2 참조 ) Open edx analytics pipeline에의해포착된학생들의행동을표현하는 Events는 S3에 JSON형식으로저장되며, 프로세스는 Hadoop을사용하여처리되고, 집계결과는 MySQL에등록된다. MySQL에등록된분석결과는 REST API를통해 edx Insgihts에서활용가능하도록가공되고, 교육자및관리자들은데이터검색을위해 Django 어플리케이션을사용하여피교육자들이무슨작업을하고있으며, 어떤과정을수행하고있는지확인할수있다. (8) Background work edx 플랫폼의많은작업들은 background worker 에의해수행되며, 이런작업들은 Celery와 RabbitMQ 를사용하여정렬되고분배된다. Background work은예를들어, 전체과정평가, 다량의메일전송, - 4 -
배포보고서에대한답변작성, 교육과정수료증발급등과같은업무를포함한다. (9) Searching Open edx는 courseware 검색, comments 서비스와학생 Notes 특징에대한 Elasticsearch 기능을제공한다. [ 그림 2-1. edx Insights 아키텍처개념도 ] [ 그림 2-2. edx Analytic Pipeline 아키텍처개념도 ] - 5 -
Open edx 특징 - 확장성 (1) Learning Tools Interoperability (LTI) IMS Global Learning Tools Interoperability version 1.1.1 명세사항에근거하여개발된 LTI 컴포넌트를사용함으로써 PDF 포함다양한포맷의교육자료를추가, 제공할수있다. (2) JS Input 사용자는 Custom JavaScript 어플리케이션을 edx 스튜디오상교육과정에직접포함시킬수있다. 또한, 기초 Python 코드를사용하여게시물을조정할수있으며, LMS를통해학생들의피드백을받거나평가결과를반영할수있다. (3) APIs Open edx는 Representational State Transfer(ReST) 디자인규칙과 JavaScript Object Notation(JSON) 데이터교환포맷을지원하여 edx 플랫폼과연동되는어플리케이션을빌드할수있도록일련의 API를사용할수있는환경을제공한다. (4) XBlocks edx의컴포넌트아키텍처인 XBlock은웹어플리케이션의사용및연관컨텐츠와데이터에접속을가능케하는기능단위로다양한종류의소스로부터컴포넌트를연계시켜온라인교육과정을구성할수있게해준다. - 6 -
[ 그림 3. LTI 개념도 ] - 7 -
3. Open edx 시스템요구사항 Open edx 시스템요구사항 항목 OS 정보 - Windows, Linux, OS X 지원 VirtualBox - 4.3.12 이상 ( 최신안정버전권장 ) Vagrant - 1.6.5 이상 ( 최신안정버전권장 ) NFS(Network File System) - 최신안정버전권장 [ 표 1. Open edx 시스템요구사항 ] 상기시스템요구사항은 Provider로 Vagrant 및 VirtualBox를적용한최소요구사항이며, 시스템구성에따라 VMware 및 AWS를포함한다양한 Provider의적용이가능함 관련상세정보는아래의링크내역참조 [1] 기능 / 특징세부 - https://open.edx.org/extending-edx - https://open.edx.org/contributing-to-edx/architecture [2] Prerequisites - DevStack http://edx.readthedocs.org/projects/edx-installing-configuring-and-running/en /latest/devstack/install_devstack.html#software-prerequisites - FullStack http://edx.readthedocs.org/projects/edx-installing-configuring-and-running/en /latest/fullstack/install_fullstack.html#software-prerequisites - 8 -
III. Stack 통합테스트 1. 테스트환경 Open edx SW 환경 SW Version Ubuntu 12.04 LTS Vagrant 1.7.2 VirtualBox 4.3.26 Apache 2.2.22 [ 표 2-1. 테스트 SW 환경 ] Stack 환경 Stack OS 네트워크정보 (IP) A (Server) Ubuntu 12.04 LTS 192.168.33.10 A (Client) Ubuntu 12.04 LTS 121.162.249.93 [ 표 2-2. Stack 환경 ] HW 환경 제조사모델명 CPU MEM Disk NIC HP dc7900 CMT Quad-Core 2.66Ghz~4P 3.6GiB 265GB Gigabit 1Port [ 표 2-3. HW 환경 ] 참고 - 테스트 HW 및네트워크제약에따라 VM(VirtualBox 적용 ) 상에 Sever 구동하여 테스트환경구성함 / 시스템여건에따라 2 대이상의물리적으로구분된 PC 환경으로서버 / 클라이언트접속환경구축가능 - 9 -
2. 테스트접근방법 Open edx 는웹베이스플랫폼으로온라인교육과정생성및전달과분석가능한사용환경을제공한다. 또한, 사용목적에따라시스템개발및테스팅을주목적으로하는 Developer Stack 환경과서비스구성및배포를주목적으로하는 Fullstack 환경으로크게구분할수있다. 본테스트는온라인서비스의운용과시스템적용기관및단체의다양한요구조건을만족하기위한기반플랫폼으로서 Open edx 의기본환경구성의안정성및사용자접근성을확인하는데주된테스트방향성과목적을두고수행되었다. 탐색적테스팅 (Exploratory Testing) 탐색적테스팅은테스트엔지니어의지적능력을최대한공유, 활용하는것을목적으로하는테스트접근법으로테스트를수행할대상을실행시켜사용함과동시에사용측면에서문제가되는부분에집중하여테스트를설계및계획한다. 이러한과정은효율적진행을위한 Time Boxing을통해수행되므로테스트케이스작성을최소화할수있고, 상대적으로적은시간에집중적인테스트를가능하게한다. 리스크기반테스트 (Risk based Testing) 리스크기반테스팅기법은테스트대상에비해서테스트자원이부족한경우효과적이고, 효율적인테스트수행을위해적용될수있다. 해당기법은크게리스크식별과리스크분석, 그리고리스크계획의세단계로구분진행된다. 리스크식별단계에서는제품품질관점에서테스트대상이될항목을식별하고, 프로젝트나제품에대한리스크요소를식별한다. - 10 -
리스크분석단계에서는장애발생가능성과장애로인한영향을식별하고리스크우선순위를결정한다. 마지막으로리스크계획단계에서는리스크의우선순위에따른대처방안및완화정책을수립하며, 이후테스트수행시커버리지를고려하여선택과집중을통해테스트를수행하게된다. 시나리오테스트시나리오테스트기법은단일기능에대한결함여부를확인하는것이아니라, 서로다른컴포넌트사이의상호작용과간섭으로발생할수있는결함을발견하기위한기법이다. - 11 -
3. 테스트수행테스트수행관련세부내역은별첨 Open edx 테스트케이스 문서를참고한다. 탐색적테스트현황이하, 테스트현황의차터항목구분은각기능아이템항목별세부구분항목으로서사용자시나리오를기반으로정의되었다. 기능아이템 기본차터 테스트아이디어 Open edx 기본환경관리 1 8 Open edx 교육자원관리 1 31 Open edx 운용환경관리 2 24 합 계 4 63 [ 표 3. 테스트아이디어현황 ] - 기본환경관리카테고리에서는대상 SW의설치및기본환경구성측면에서사용자계정별웹접속기능을중심으로테스트진행 - 교육자원관리카테고리에서는 Studio 환경접속및기능카테고리별정보의등록과등록된교육과정정보의관리기능을중심으로테스트진행 - 운용환경관리카테고리에서는등록계정별 LMS 접속에따른교육과정 (Course) 정보조회및진행과정관리와웹브라우저접근성및호환성확인을목적으로테스트진행 - 12 -
4. 테스트수행결과 Open edx 테스트를수행한결과기능카테고리별정리된내용은 아래와같다. 분류기능테스트아이디어 PASS FAIL N/T N/A Open edx 기본환경관리 8 8 0 0 0 Open edx 교육자원관리 31 31 0 0 0 Open edx 운용환경관리 24 24 0 0 0 [ 표 4. 테스트결과 ] - Open edx로통합관리서버환경을구축하고서버와구분된 PC 환경에서웹브라우저 UI 접속을하여테스트수행한결과, Linux 환경에서 Provider 적용 (Vagrant, VirtualBox 설정 ) 을통해 Studio 및 LMS (Learning Management System) 가정상설치, 설정관리됨을확인 - 접속환경별제공되는기능카테고리구분에따른세부항목들에대하여주요기능관련한심각한오류및치명적장애이슈는발견되지않음 - 13 -
IV. 종합 Open edx 테스트수행결과공개 SW로구성된 Stack 환경에서치명적결함이슈발생없이설치, 설정관리되며, 온라인교육자산통합관리시스템관련제반기능들이각기능단위 resource 들과유기적으로동작함을확인하였다. Open edx는교육과정의운영주체에따라목적에부합하는다양한교육과정구성및컨텐츠구성환경을제공하므로온라인교육시스템및관련자원을효율적이고, 체계적으로관리할수있게해준다. Open edx는 Web기반사용자환경을제공하므로 OS환경에따른간섭을최소화할수있고, Cross Browsing 지원및모바일환경에대한개발환경을지원함으로다양한규모의온라인교육시스템구성및탄력적운용에유용한솔루션이다. - 14 -
참고자료 [1] Open edx 공식사이트 - https://open.edx.org/ [2] 설치가이드 - http://edx.readthedocs.org/projects/edx-installing-configuring-and-running/en/latest/ - https://github.com/edx/configuration/wiki/edx-developer-stack - https://github.com/edx/configuration/wiki/edx-full-stack - https://github.com/edx/configuration/wiki/edx-ubuntu-12.04-64-bit-installation - https://github.com/edx/configuration/wiki/single-aws-server-installation-using-amazon-machine-image [3] 배포 - https://github.com/edx/configuration [4] 포럼 / 커뮤니티 - https://groups.google.com/forum/#!forum/edx-code - https://twitter.com/openedx - 15 -