SlideShare una empresa de Scribd logo
1 de 73
Descargar para leer sin conexión
“Software Engineer in Test” in 게임 개발 - TERA 는 테스트 자동화가 가능할까? 
김 성 민(sungmkim@bluehole.net) 
Lead SET / 블루홀 스튜디오
그 동안의 다양한 시행착오를 함께 공유하는 자리입니다
•게임 개발에서 테스트 자동화가 과연 가능할까? 를 고민하시는 분, 
•프로그래밍을 활용한 테스트에 관심이 많으신 분, 
•효율적인 개발 프로세스에 관심이 있으신 분들께 작게나마 도움이 되었으면 좋겠습니다.
1 부 (15:50 ~ 16:50) 
1.발표자 소개 
2.Software Engineer in Test? 
•Test Automation 
•SET at Bluehole Studio 
3.TERA Test Framework 
•TeraPuppet 
•TeraTest 
•Selenium Integration 
4.Q & A 
Agenda
2부 (17:00 ~ 18:00) 
1.Test Scenarios 
2.CI & 배포 연동 
3.성과 측정 
4.Summary 
1.DEMO 
2.현재까지의 성과 
3.아쉬운 점 
5.Q & A 
Agenda
•LG Electronics : 3 years Project: 4 mobile devices 
Sungmin Kim 
•새로운 개발을 좋아하는 11년 차 개발자 
그리고 아내와의 여행을 좋아하는, 한 아이(곧 두 아이)의 아빠 
Email: smkyhh@gmail.com / sungmkim@bluehole.net 
발표자 소개 
•Realtime Worlds, Client Programmer : 1 year Project: My Worlds (Data Generation) 
•Microsoft, SDET and SDE 2 : 5 years Project: Office 2010, Office 2013 (SharePoint Designer) Award: Gold Star Stock Awards (2011) with SPD Test Automation 
•Bluehole Studio, Lead SET (2013.08 ~ 현재) : 1.5 years Project: TERA (Test Automation )
Software Engineer in Test
Software Engineer in Test 
•국내에선 다소 생소하나, 서구에선 보편적 
–Blizzard, Riot, EA 등의 게임회사에서도 활발하게 SET 채용 
–SET @ Blizzard, EA, Riot, Google, … 
–SET @ Bluehole Studio  
–SDET @ Epic Games, Microsoft Game Studios,… 
•테스트 분야의 프로그래머 (TEST ≠ QA) 
–테스트 자동화 
–코드 오류 검증 
–개발 단계에서의 이슈 조기 검증 
–프로그래밍을 통한 테스트 
–Performance, Security 이슈 검증 
–지속적이고 & 정확한 이슈 관리 
–지식 전파 등 
•테스트 분야도 전문 프로그래머가 필요 
Software Engineer in Test ?
Software Engineer in Test 
•컴퓨터가 사람 대신 검증 할 수 있는 일은 컴퓨터를 통한 검증이 더 효율적 
–반복적인 작업 (Regression 확인) 
–정확한 수치 검증 
–Performance, Security, Code Defects 
•개발 현황, 조직 구조, 프로젝트 성격 등에 따라 추구하는 방향은 전혀 달라질 수 있음 
* 블루홀 스튜디오의 경우 
–Test 가능한 Project는 1개 (TERA) 
–조직 구조: TERA Project 기준 150 여명 ( QA 조직 포함 ) 
–성격: 게임 (MMORPG) 
–출시 국가: 6개 (한국, 중국, 대만, 일본, 북미, 유럽) 
-> 현재 SET 인원 1명 ; 
Software Engineer in Test ? 
For software?
Software Engineer in Test 
•모든 것을 검증 할 순 없다. 
–재미 
–UX 
–복잡한 환경의 멀티플레이 
•개발자와 QA의 보다 효율적인 업무 가능 
•QA 조직과 개발 조직과의 협업이 매우 중요 
•1) 업무 효율성, 2) 커버리지 향상, 3) 개발 프로세스 개선 
–개발비 절감 
–테스트 효율화 
–유지보수 용이 (테스트 담당자인 김 아무개씨의 퇴사 후에도 이미 만들어진 자동화 시나리오는 수행 됨) 
–효과적인 자동화 테스트 프로세스 도입 
–새로운 분석 및 투자를 통한 개발 효율성 향상 
Software Engineer in Test ? 
재미 
UX
Test Automation
테스트 자동화란? 
Software Engineer in Test ? 
Product의 장기적인 안정화와 비용 절감을 위한 중요한 요소 
장기적으로 빠르고 안정적으로 이슈를 검증 & 테스트 자동화를 기반으로 한 다양한 개발 방법론 도입 가능 
유지보수에 용이하며 비용 절감 측면에서 효과적 
기본 시나리오 검증 뿐 아니라, Security, Performance 및 Localization 테스트에도 용이 
다양한 Coverage 측정을 통해 중복 작업 최소화를 통한 자동화 테스트 검증 비용을 측정할 수 있음
효율적인 자동화 테스트 
Software Engineer in Test ? 
Reference: http://xunitpatterns.com/Goals of Test Automation.html
DEMO
왜 국내에선 생소할까? 
•항상 바쁘다 (정말 바쁘다.) 
•채용 (당장 개발자 뽑기도..) 
•경험 부족 (나 말고 누군가의 시행착오가 필요하다.) 
•초기 개발 비용 
•프로젝트의 불완전한 미래 
–개발 중에는 검증을 중요시 하진 않더라 
–잦은 스펙의 변화 
–개발 Process 보다는 당장의 Output 
–수작업(일단 바쁘니..) vs 시스템 개발 
Software Engineer in Test ? 
자동화가 힘들다 
바쁘다 
Because 
Because 
원래 이렇게 해왔다. 
어떻게 하는지 모르겠다. 
언제 접힐지 모른다. 
다른 것도 할 것이 많다 
기타 등등..
효율적인 SET 도입은 가능할까? 
•국내 개발 환경은 Microsoft 에서의 개발 환경 & 문화와 비교하여 차이가 제법 있음 
•프로젝트 성격과 국내 Online Game 개발 환경에 적합한 SET 역할 정리가 중요 
Software Engineer in Test ? 
SET at Bluehole Studio 
SDET at Microsoft 
장점 
•회사의 충분한 지원 
•소규모(1인) 개발 
•다양한 개발을 할 수 있다 
•필요한 모든 것을 만들 수 있다. 
•최신의 기술적 시도 가능 
•이미 정착된 문화 
•여러 SDET / SDE 들과 관련한 정보 교류 
•프로세스 & 도구들이 잘 갖추어짐 
•Career Path에 대한 방향 제시 
단점 
•정착되지 않은 문화 
•기존 Process와 융화 필요 
•소규모(1인) 개발 
•신뢰성 
•변화를 꾀하는 것이 쉽지 않음 
•기존 프레임웍 위에서 수행 
•이미 정착된 문화 
•자율성 
특징 
•QA 조직 존재 (TERA의 경우) 
•비용 중시 
•모든 것을 만들어야 함 
•QA 조직 없음 (Office 2010, 2013 개발의 경우) 
•커버리지 중시 
•개발 초기부터 계획된 라이브러리
효율적인 SET 도입은 가능할까? 
전체의 변화보다는 
Software Engineer in Test ? 
1) 기술적인 접근을 통한 커버리지 확대 
2) 테스트 자동화 수행을 통한 유지 보수로 인한 효율성 및 비용 절감 
3) 개발 과정의 테스트 도입을 통한 이슈 조기 검증 
을 목표로 진행을 시작한다면 안착 가능성이 높을 것이라 기대
SET at Bluehole Studio
•Microsoft 의 테스트 자동화 프로세스는 매우 매력적 
•Bluehole Studio 에서 테스트 자동화 도입 중 
•게임에도 도입하면 어떨까? 의 호기심 
•TERA는 테스트 자동화를 수행하기 매우 적절한 게임 (다양한 국가, 다양한 레거시 코드, 회사의 새로운 시도 등) 
•분명 더 나아질 것이라 믿고 시작 
SET at Bluehole Studio 
My SET History (2013.08 ~)
My SET History (2013.08 ~) 
SET at Bluehole Studio 
•나홀로 SET, 무엇을 하였나? 
–SET 직무 제안 및 역할 정리 
–테라 테스트 자동화를 위한 Tera Puppet 1.0 개발 
–테라 테스트 자동화를 위한 Tera Test 개발 
–웹 자동화를 위한 Selenium 선정 및 시나리오 작성 도구 개발 
–효율적인 BTS 시스템을 위한 JIRA 도입 및 설정 
–QA 실 테스트 자동화를 위한 툴 개발 
–QA실 테스트 자동화를 위한 지식 및 기술 전파 
–국가별 배포 시스템 연동을 통한 자동화 시나리오 수행 
–테스트 자동화 도입을 통한 개발 프로세스 효율화 
–Client Performance 의 지속적인 측정 
: 
•개발 진행 중 & 꾸준한 시도 중
SET at BHS 
Software Engineer in Test ? 
Bluehole Studio 에서의 모든 게임 Test Automation Framework 을 디자인하고 개발 
QA 및 다른 개발자들과 협업을 통한 전체 테스트 전략 수립 
개발자 테스트 및 Unit 테스트 도입 및 지원 
효율적인 자동화 테스트를 위한 라이브러리 및 툴 개발 
실제 소스코드를 기반의 Code Defect 검증 및 Security Test, Performance Test 및 관련 툴 개발, Code Coverage 측정 등의 수행 
새로운 기술을 항상 분석하여, 여러 프로젝트에 걸쳐 기술을 전파하고 효율적인 테스트 방법론 제시 
23 
Gathering requirements and Planning test automation framework 
Designing and developing test automation framework 
Executing test cases and supporting QA and developers 
Maintenance
이런 부분이 다르더라 
Game (TERA) 
Application (MS Office 2010) 
테스트 자동화 시점 
서비스 시작 이후 
개발 초기 단계부터 
로직 흐름 
비동기 
동기 
검증 대상 
Source Code + Data 
Source Code + Data 
검증 요소 
재미 + 기능 
기능 
상호 작용 
여러 유저들과의 Play 검증 필요 
없음 
개발 규모 
1년 6개월 * 1명 
10년 이상 * ? 명 
QA 
별도의 QA 조직 있음 
별도의 QA 조직 없음 
국가 
6 국가 
30+ 국가 
OS 
Windows 7 or Windows XP 
모든 OS 
Product 목적 
취미 
업무 
이슈 발생 
패치 + 보상 
소송 가능성 
업데이트 주기 
빠름 (1 ~ 2주) 
상대적으로 느림 
SET at Bluehole Studio
협업 
SET at Bluehole Studio 
•SET 
–Product 와 접목되어 수행될, 테스트 프레임 및 라이브러리 기획 및 개발 
–다른 개발자들이나 QA 분들이 사용하실 수 있도록 개발된 라이브러리의 템플릿 제공 
–새로운 기술 개발 및 솔루션 제공 
–QA의 요구 사항을 통한 테스트 툴 개발 
–시나리오 & 코드 리뷰 
•QA 
–시나리오 제작 및 이슈 분석 
–시나리오 관리 및 유지 보수 
–제작된 테스트 프레임 웍, 툴, 라이브러리 사용 피드백 
–툴 개발을 위한 기획서 작성 
•DEV 
–테스트 자동화 시스템 및 시나리오의 업무 활용 
–개발자 테스트 
–결과 확인 및 이슈 수정
아직 초반 
•더 많은 개발과 프로세스의 도입 필요 
–계획 대비 20 정도의 길 
–나머지 80의 길 
•시행착오가 예상됨 
–관리 
–개발 
–개발자 테스트 
–Unit Test 
–코드 커버리지 향상 
–데이터 커버리지 향상 
–Server Performance 측정 
: 
SET at Bluehole Studio
TERA Test Framework
자체 개발 vs 외부 솔루션 
•외부 솔루션을 이용한 게임 테스트 자동화는 한계 발생 
•TERA의 서버 & 클라이언트 코드를 완전히 이해하고, 
실제 Product 코드 위에 테스트 자동화 시스템을 구축하자 
–실제 Product 코드에서 개발 
–누구나 시나리오를 만들 수 있는, 시나리오 제작 & 재생 방식의 통합된 프레임웍 
–Unit Test 및 다양한 테스트 라이브러리 개발을 통한 추후 확장 용이 
–.NET을 이용하여 개발 생산성을 높이자 
–필요한 경우 공개 라이브러리를 활용하자 (e.g. Selenium) 
TERA Test Framework 
IN-HOUSE 
EXTERNAL SOLUTION
Framework Overview 
TERA Test Framework 
TeraPuppet (Record & Playback for TERA) 
-녹화 / 재생을 통한 시나리오 제작 및 실행 
-누구나 손쉽게 시나리오를 만들고 재생 가능 
-유지보수가 쉽다. 
-다소 제한적인 기능만 사용 가능하다는 단점 
Selenium Integration (Record & Playback for Web) 
-웹 테스트를 위한 Open source library인 Selenium을 활용한 테스트 자동화 
-TeraPuppet 과 연동되어 게임 내 시나리오와 연동하여 웹 테스트 가능 
-웹 기반의 자동화 테스트에 유용 
TeraTest (C# Library & Script) 
-테스트 라이브러리 기반 
-C# 으로 구성되어 다양한 .NET 라이브러리의 활용 가능 
-대규모 데이터 시트를 활용한 자동화 검증이나 혹은 복잡한 계산이 필요한 경우의 자동화 시나리오 제작에 유용 
-시나리오 제작을 위해 라이브러리 개발이 별도 필요 
Puppeteer (BlueholeTestWeb) 
- 웹 기반의 시나리오 관리 및 실행 
CI with the test automation (TeraTestAgent) - TERA 배포시에 자동으로 테스트 자동화 시나리오가 수행되도록 개발 
TERA
TeraPuppet 
TERA Test Framework 
31 
•Record & Playback 방식 
•수행 중인 게임에서, 1) 클라이언트와 서버간의 주고 받는 패킷, 2) 게임 내부의 UI Event, 3) Key Event, 4) Mouse Event, 5) 그 외의 다양한 기능을 구현하기 위한 Custom Action 등을 녹화하고, 이들을 조합하여, 원하는 시나리오를 만든 후, 다시 재생하는 방식 
•직관적이므로 프로그래밍을 몰라도 누구나 쉽게 시나리오 제작 가능 
•XML 기반의 시나리오로 구성 
•여러 상황을 재현하고 검증하기 위한 다양한 문법과 기능 
•녹화 기능, 스크린 캡쳐, 웹 자동화 연동, EXCEL 연동, DB 조작 등
TeraPuppet 
TERA Test Framework 
32 
•Excel 등을 활용한 대용량 데이터 처리 가능 
•프로그래머들의 로그 툴이나, 디버깅 용도로도 사용 가능 
•Packet과 Event를 많이 파악 할 수록 다양한 시나리오를 만들 수 있음 
•규격화된 문법이 아닌, 자체 제작된 문법들을 사용하므로 복잡한 기능의 검증을 위해서는 별도의 기능 구현이 필요 
•QA실에서 Tera Client의 검증의 경우는 Puppet을 활용하여 다양한 자동화 시나리오를 제작 중 
QA분이 만들어주신 Puppet 메뉴얼
TeraPuppet 
TERA Test Framework 
33 
DEMO
TeraTest 
TERA Test Framework 
34 
•C# 을 이용한 TERA 제어 & 검증 
•프로그래밍을 아는 사람이라면, 누구나 쉽게 스크립트 작성을 통해 TERA를 제어하고 검증할 수 있도록 라이브러리를 만들자 
•Native 코드로 개발된 TERA를 Managed World로 끌어오기 위한 별도의 개발 필요 
•복잡한 시나리오나, 프로그래밍의 장점이 필요한 부분, C#의 막강한 라이브러리를 필요로 하는 부분에 이용되면 좋음 (e.g. 대용량 데이터를 이용한 검증, TeraPuppet으로 제작이 힘든 시나리오)
TeraTest 
TERA Test Framework 
35 
•C++ /CLI Layer 
•C# (with WPF (Windows Presentation Foundation) 와 MVVM ) 
•개발자들의 UnitTest 개발에 용이 
•Puppet과 연동하여 다양한 Packet 재생 가능 
•대부분의 시나리오들이 이론상 구현 가능 
•다양한 Library 개발 중 
–BOT 
–DirectX 기반 Game UI 검증
TeraTest 
TERA Test Framework 
36 
DEMO
AutoIt vs Selenium 
•AutoIt 과 Selenium 중 확장성이 높은 Selenium 선정 
•QA 팀의 프로그래밍 언어를 C#으로 선정 
•전사 대상으로 C# Study 진행 
TERA Test Framework 
AutoIt 
Selenium 
코딩 난이도 
(상, 중, 하) 
- 
- 
확장성 
중 
상 
커뮤니티 
활성화 
중 
상 
장점 
•최초 진입 장벽이 낮음 
•자체 Library 지원 
•코드 수정이 쉬움 
•자동으로 코드를 생성해주는 Firefox IDE 
•다양한 확장성 (Excel 연동, .NET 연동 등) 
•다양한 언어 지원 및 변환 (VBA, C#, Autoit 등) 
단점 
•AutoIt 자체 언어를 배워야 함 
•C++ / C# 연동이 어려움 
•IDE로 최초 작성시 코드 수정이 어려움 
•특정 언어(C#)을 배워야 함
Selenium Integration 
TERA Test Framework 
•Open Source Library인 Selenium 을 사용한 웹 테스트 자동화 
•웹의 경우 표준을 대부분 따르고, HTML 기반의 구조이므로 외부 자동화 라이브러리 도입이 용이하고 활용도 높음 (JavaScript 제외) 
•현재 웹 기반의 테라 운영툴의 검증에 사용됨 
•SET가 Selenium Library 및 Puppet위에 수행될 수 있도록 개발 
•QA 분들께서 이를 활용하여 다양한 시나리오 제작 
•Puppet 이나 TeraTest의 연동 작업을 통해, 실제 게임에 융화되어 검증 ( Puppet 으로 TERA 환경 설정 -> Selenium 명령어를 통한 검증 - > Puppet으로 변경된 게임 결과 검증 )
Selenium Integration 
TERA Test Framework 
DEMO
•2부 에서는.. 
–TERA Test Framework에서 사용되는 시나리오 
–배포 연동 (CI) 
–성과 
–데모 
–좋았던 점 / 아쉬운 점 
–요약 
–Q & A
Q & A
2부 (17:00 ~ 18:00) 
1.Test Scenarios 
2.CI & 배포 연동 
3.성과 측정 
4.Summary 
1.DEMO 
2.현재까지의 성과 
3.아쉬운 점 
5.Q & A 
Agenda
Test Scenarios
테스트 자동화 시나리오 
Test Scenarios 
•사람이 하는 일을 컴퓨터가 대신 할 수 있도록 테스트 시나리오 제작 
•기능을 잘 아는 사람이 시나리오를 제작 하는 것이 효과적 
•시나리오를 잘 만드는 것도 경험과 노하우가 중요 
•시나리오를 잘못 만드는 경우, 비용만 들고 효율성이 떨어지는 역효과 
•비교적 안정적인 컨텐츠를 대상으로 제작하는 것이 효과적 
장 점 
단 점 
•반 영구적으로 사용 
•기능을 잘 모르는 분들도 시나리오 수행을 통해 안정적인 결과 확보 
•다양한 확장성 ( e.g. performance 검증) 
•시나리오 공유가 가능하면, 국가나 빌드의 추가에도 비용 최소화 
•다양한 OS나 국가별 OS에서도 쉽게 검증 가능 
•시나리오 유지 보수 비용 발생 
•초기 시나리오 제작 비용 발생 
•사람이 테스트하는 것과 100% 동일 할 순 없음
TERA 테스트 자동화 시나리오 현황 
Test Scenarios 
•5 개의 국가에서 수행 가능한 400 여 개 이상의 시나리오 
–국가: 한국, 중국, 일본, 유럽, 북미 
–목적: 빌드검증, 이슈 검증, 가배포, 세부 컨텐츠 
–대상: 신규 컨텐츠, 기존 컨텐츠, Performance 
–도구: TeraPuppet, TeraTest, Selenium Integration 
•QA 분들의 다양한 제작 노하우로 꾸준히 시나리오 제작 중 
•QA와 SET의 효율적인 역할 분담 중요 
–QA: 시나리오 제작 
–SET: 시나리오 제작 도구 개발 및 시나리오 Template 제공 
•개인이 개별 환경에서 별도로 돌리거나 CI (Continuous Integration) & 배포연동 시스템을 통해 수행
시나리오 예제 (TeraPuppet) 
Test Scenarios
시나리오 예제 (TeraTest) 
Test Scenarios
시나리오 예제 (Selenium) 
Test Scenarios
시나리오의 제작과 유지 보수는 테스트 자동화의 가장 중요한 요소 
Framework Overview 
TERA Test Framework 
TeraPuppet (Record & Playback for TERA) 
-녹화 / 재생을 통한 시나리오 제작 및 실행 
-누구나 손쉽게 시나리오를 만들고 재생 가능 
-유지보수가 쉽다. 
-다소 제한적인 기능만 사용 가능하다는 단점 
Selenium Integration (Record & Playback for Web) 
-웹 테스트를 위한 Open source library인 Selenium을 활용한 테스트 자동화 
-TeraPuppet 과 연동되어 게임 내 시나리오와 연동하여 웹 테스트 가능 
-웹 기반의 자동화 테스트에 유용 
TeraTest (C# Library & Script) 
-테스트 라이브러리 기반 
-C# 으로 구성되어 다양한 .NET 라이브러리의 활용 가능 
-대규모 데이터 시트를 활용한 자동화 검증이나 혹은 복잡한 계산이 필요한 경우의 자동화 시나리오 제작에 유용 
-시나리오 제작을 위해 라이브러리 개발이 별도 필요 
TERA CLIENT 
Puppeteer (BlueholeTestWeb) - 웹 기반의 시나리오 관리 및 실행 
CI with the test automation (TeraTestAgent) 
- TERA 배포시에 자동으로 테스트 자동화 시나리오가 수행되도록 개발
CI & 배포 연동
Continuous Integration 이란 
CI & 배포연동 
지속적으로 퀄리티 컨트롤을 적용하는 프로세스를 실행하는 것 
소프트웨어의 질적 향상과 소프트웨어를 배포하는데 걸리는 시간을 줄이는데 
지속적인 통합은 재작업을 줄여서 비용과 시간을 줄이는데 초점
Test Automation & CI 의 필요성 
CI & 배포연동 
Reference: http://www.embeddedinsights.com/channels/2012/03/19/unit-test-tools-and-automatic-test-generation/
TeraTest Agent 
CI & 배포연동 
•개발자의 수정 사항의 수시 확인을 통한, 이슈의 빠른 검증이 중요 
•배포가 완료되면, 서버와 클라이언트를 설치 후, 자동으로 테스트 자동화 시나리오들을 검증 
•국가별로 다양하게 배포가 진행되고, 실제 QA 업무에 활용되므로, 안정적이고 신뢰성 있는 시스템 구축 및 결과 전달이 중요 
•TERA의 기존 배포 시스템에 맞물려 수행되기 위한 별도의 시스템 
•C# (with WPF) 으로 개발
TeraPuppeteer 
•TeraPuppet 시나리오를 원격으로 수행시켜주는 웹 기반의 시나리오 수행 도구 
•시나리오 수행 결과, 시나리오 현황, 자세한 로그 등을 관리 
•모든 테스트 자동화의 결과를 한 눈에 볼 수 있는 곳 
•AngularJS & Bootstrap 으로 개발 
CI & 배포연동
E-mail 
•검증이 모두 완료되면, 정확하고 세부적인 검증 결과의 빠른 전달 필요 
이슈 관리 
CI & 배포연동 
Web 
BTS (JIRA)
•실패한 결과 발생 시, SET 및 해당 시나리오 담당자 분들의 빠른 이슈 확인 필요 
이슈 관리 
CI & 배포연동
성과 측정
Code Coverage 
성과 측정 
•테스트 시나리오들에 의해 코드의 몇 % 가 수행되었는지를 정확하게 측정하기 위한 방법 
•Automation & Manual Test 이후 제품이 출시 가능한지를 평가 할 수 있는 중요한 지표
Code Coverage 
성과 측정 
Microsoft 에서의 테스트의 주요 측정 지표는 Code Coverage 
•Office를 포함한 일반적인 Application은 코드를 통한 개발이 일반적 
•Code Coverage 결과와의 사투 
Code Coverage in 게임 개발 
성과 측정 
•Game의 경우는 Code Coverage 측정만으로는 한계 
–코드를 통한 개발 + 컨텐츠 데이터를 통한 개발 
–Client + Server + Contents Data 
•Packet Coverage 
–Server 와 Client 의 전체 Packet 중 몇 % 의 Packet 이 테스트에 의해 검증 되었는지 
–TERA의 경우, 보다 자세한 테스트 커버리지 측정을 위해, Code Coverage 뿐만 아니라 Packet Coverage도 측정 중 
•Data Coverage 
–전체 데이터 중 몇 %의 데이터가 테스트에 의해 커버되었는지 
–효과적인 Coverage 측정 방법 고민 중 
Packet Coverage
Summary
DEMO 
Summary
성 과 
Summary
•QA 분들과 개발자 분들의 테스트 자동화 업무의 효율성을 인지 
•테스트 자동화를 통한 리소스 절약 
•비용대비 효율이 낮진 않음 
•기본 Packet 검증의 40%를 테스트 자동화로 검증 가능 
•5개 국가에 자동으로 테스트 자동화 시나리오 수행 중 
•일부 빌드는 자동화 테스트를 위주로 검증 확인 예정 
•회사의 관련 업무 지원 
긍정적인 성과 
Summary 
많진 않지만 나름 알찬 랩 실의 테스트 자동화 머신들
긍정적인 성과 
Summary
아쉬운 점 
•나홀로 개발 
–큰 장점이자 단점 
–개발에만 집중할 수 있는 여유 필요 
•아직은 정착되지 않은 문화 
–모든 것을 만들어야 함 
–다양한 시스템 & 프로세스 구축 필요 
–규모와 프로젝트 성격에 맞는 SET 안착 필요 
•협업 
–이해관계가 얽힌 기존 조직과의 효율적인 업무 협업은 쉽지 않음 
–협업을 위한 리소스가 투입 됨 (회의, 리뷰, 메일 작성 등) 
–TERA 조직은 2007년 부터 잘 쌓아온 개발 및 QA 문화를 가지고 있음 
–조직에 많은 공헌을 할 수 있도록 꾸준한 고민과 노력 필요 
Summary
마무으리
마무으리 
•여전히 실험 단계 
•성공과 실패의 갈림길에서 다양한 고민과 시행착오를 통해 더 나은 길을 찾아가는 중
Q & A
Software Engineer in Test 의 업무에 관심 있으신가요  ? 
–sungmkim@bluehole.net / smkyhh@gmail.com

Más contenido relacionado

La actualidad más candente

짝 테스트(Pair Testing) 소개와 사례
짝 테스트(Pair Testing) 소개와 사례짝 테스트(Pair Testing) 소개와 사례
짝 테스트(Pair Testing) 소개와 사례SangIn Choung
 
2010 SW Testing Trend
2010 SW Testing Trend2010 SW Testing Trend
2010 SW Testing TrendMurian Song
 
소프트웨어 테스팅
소프트웨어 테스팅소프트웨어 테스팅
소프트웨어 테스팅영기 김
 
TDD&Refactoring Day 02: TDD
TDD&Refactoring Day 02: TDDTDD&Refactoring Day 02: TDD
TDD&Refactoring Day 02: TDDSuwon Chae
 
(SW 아키텍트 대회 2차)단위테스트자동화도구
(SW 아키텍트 대회 2차)단위테스트자동화도구(SW 아키텍트 대회 2차)단위테스트자동화도구
(SW 아키텍트 대회 2차)단위테스트자동화도구Lim SungHyun
 
단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종guest7178884
 
116 deview2013-guitar
116 deview2013-guitar116 deview2013-guitar
116 deview2013-guitarNAVER D2
 
[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스철민 신
 
Test Driven Development (TDD) basic
Test Driven Development (TDD) basicTest Driven Development (TDD) basic
Test Driven Development (TDD) basicCurt Park
 
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)SangIn Choung
 
[H3 2012] 스마트모바일 환경에서의 App.품질관리전략
[H3 2012] 스마트모바일 환경에서의 App.품질관리전략[H3 2012] 스마트모바일 환경에서의 App.품질관리전략
[H3 2012] 스마트모바일 환경에서의 App.품질관리전략KTH, 케이티하이텔
 
위험기반테스트접근 테스트계획 사례
위험기반테스트접근 테스트계획 사례위험기반테스트접근 테스트계획 사례
위험기반테스트접근 테스트계획 사례SangIn Choung
 
testing for agile?, agile for testing
testing for agile?, agile for testingtesting for agile?, agile for testing
testing for agile?, agile for testingSangIn Choung
 
IoT 개발자를 위한 Embedded C에서 TDD를 해보자
IoT 개발자를 위한 Embedded C에서 TDD를 해보자IoT 개발자를 위한 Embedded C에서 TDD를 해보자
IoT 개발자를 위한 Embedded C에서 TDD를 해보자Taeyeop Kim
 
테스트 케이스와 SW 품질
테스트 케이스와 SW 품질테스트 케이스와 SW 품질
테스트 케이스와 SW 품질도형 임
 
테스트 자동화와 TDD(테스트 주도 개발방법론)
테스트 자동화와 TDD(테스트 주도 개발방법론)테스트 자동화와 TDD(테스트 주도 개발방법론)
테스트 자동화와 TDD(테스트 주도 개발방법론)KH Park (박경훈)
 
행복한 개발을 위한_테스트_케이스
행복한 개발을 위한_테스트_케이스행복한 개발을 위한_테스트_케이스
행복한 개발을 위한_테스트_케이스도형 임
 
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)SangIn Choung
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법선협 이
 
테스트 주도 개발 By googletest 1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest 1장 다중 통화를 지원하는 money 객체Mickey SJ Lee
 

La actualidad más candente (20)

짝 테스트(Pair Testing) 소개와 사례
짝 테스트(Pair Testing) 소개와 사례짝 테스트(Pair Testing) 소개와 사례
짝 테스트(Pair Testing) 소개와 사례
 
2010 SW Testing Trend
2010 SW Testing Trend2010 SW Testing Trend
2010 SW Testing Trend
 
소프트웨어 테스팅
소프트웨어 테스팅소프트웨어 테스팅
소프트웨어 테스팅
 
TDD&Refactoring Day 02: TDD
TDD&Refactoring Day 02: TDDTDD&Refactoring Day 02: TDD
TDD&Refactoring Day 02: TDD
 
(SW 아키텍트 대회 2차)단위테스트자동화도구
(SW 아키텍트 대회 2차)단위테스트자동화도구(SW 아키텍트 대회 2차)단위테스트자동화도구
(SW 아키텍트 대회 2차)단위테스트자동화도구
 
단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종
 
116 deview2013-guitar
116 deview2013-guitar116 deview2013-guitar
116 deview2013-guitar
 
[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스
 
Test Driven Development (TDD) basic
Test Driven Development (TDD) basicTest Driven Development (TDD) basic
Test Driven Development (TDD) basic
 
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
 
[H3 2012] 스마트모바일 환경에서의 App.품질관리전략
[H3 2012] 스마트모바일 환경에서의 App.품질관리전략[H3 2012] 스마트모바일 환경에서의 App.품질관리전략
[H3 2012] 스마트모바일 환경에서의 App.품질관리전략
 
위험기반테스트접근 테스트계획 사례
위험기반테스트접근 테스트계획 사례위험기반테스트접근 테스트계획 사례
위험기반테스트접근 테스트계획 사례
 
testing for agile?, agile for testing
testing for agile?, agile for testingtesting for agile?, agile for testing
testing for agile?, agile for testing
 
IoT 개발자를 위한 Embedded C에서 TDD를 해보자
IoT 개발자를 위한 Embedded C에서 TDD를 해보자IoT 개발자를 위한 Embedded C에서 TDD를 해보자
IoT 개발자를 위한 Embedded C에서 TDD를 해보자
 
테스트 케이스와 SW 품질
테스트 케이스와 SW 품질테스트 케이스와 SW 품질
테스트 케이스와 SW 품질
 
테스트 자동화와 TDD(테스트 주도 개발방법론)
테스트 자동화와 TDD(테스트 주도 개발방법론)테스트 자동화와 TDD(테스트 주도 개발방법론)
테스트 자동화와 TDD(테스트 주도 개발방법론)
 
행복한 개발을 위한_테스트_케이스
행복한 개발을 위한_테스트_케이스행복한 개발을 위한_테스트_케이스
행복한 개발을 위한_테스트_케이스
 
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법
 
테스트 주도 개발 By googletest 1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체테스트 주도 개발 By googletest   1장 다중 통화를 지원하는 money 객체
테스트 주도 개발 By googletest 1장 다중 통화를 지원하는 money 객체
 

Similar a KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)

VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리Gyuwon Yi
 
개발 생산성 향상 기법 V1.2
개발 생산성 향상 기법 V1.2개발 생산성 향상 기법 V1.2
개발 생산성 향상 기법 V1.2Daniel Lim
 
성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기DomainDriven DomainDriven
 
모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)Jongwon Kim
 
ALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsTaeyoung Kim
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDDSunghyouk Bae
 
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스Hee Jae Lee
 
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2tobeware
 
테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션SangIn Choung
 
[오픈소스컨설팅]소프트웨어테스팅전략
[오픈소스컨설팅]소프트웨어테스팅전략[오픈소스컨설팅]소프트웨어테스팅전략
[오픈소스컨설팅]소프트웨어테스팅전략Ji-Woong Choi
 
개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)SangIn Choung
 
소프트웨어 개발 프로세스 배경 설명
소프트웨어 개발 프로세스 배경 설명소프트웨어 개발 프로세스 배경 설명
소프트웨어 개발 프로세스 배경 설명Andrew Sungjin Kim
 
효율적인 개발 프로세스를 위한 지속적 통합
효율적인 개발 프로세스를 위한 지속적 통합효율적인 개발 프로세스를 위한 지속적 통합
효율적인 개발 프로세스를 위한 지속적 통합홍렬 임
 
발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법SangIn Choung
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기Chris Ohk
 
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016Amazon Web Services Korea
 
How Google Tests Software (구글의 소프트웨어 테스팅)
How Google Tests Software (구글의 소프트웨어 테스팅)How Google Tests Software (구글의 소프트웨어 테스팅)
How Google Tests Software (구글의 소프트웨어 테스팅)Ye Joo Park
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법도형 임
 
Build Team Foundation Architecture
Build Team Foundation ArchitectureBuild Team Foundation Architecture
Build Team Foundation Architecture준일 엄
 
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)Kay Kim
 

Similar a KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio) (20)

VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리
 
개발 생산성 향상 기법 V1.2
개발 생산성 향상 기법 V1.2개발 생산성 향상 기법 V1.2
개발 생산성 향상 기법 V1.2
 
성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기성장하는 스타트업의 프로세스 개척기
성장하는 스타트업의 프로세스 개척기
 
모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)
 
ALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOpsALM과 DevOps 그리고 Azure DevOps
ALM과 DevOps 그리고 Azure DevOps
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDD
 
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
 
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
 
테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션
 
[오픈소스컨설팅]소프트웨어테스팅전략
[오픈소스컨설팅]소프트웨어테스팅전략[오픈소스컨설팅]소프트웨어테스팅전략
[오픈소스컨설팅]소프트웨어테스팅전략
 
개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)
 
소프트웨어 개발 프로세스 배경 설명
소프트웨어 개발 프로세스 배경 설명소프트웨어 개발 프로세스 배경 설명
소프트웨어 개발 프로세스 배경 설명
 
효율적인 개발 프로세스를 위한 지속적 통합
효율적인 개발 프로세스를 위한 지속적 통합효율적인 개발 프로세스를 위한 지속적 통합
효율적인 개발 프로세스를 위한 지속적 통합
 
발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
 
How Google Tests Software (구글의 소프트웨어 테스팅)
How Google Tests Software (구글의 소프트웨어 테스팅)How Google Tests Software (구글의 소프트웨어 테스팅)
How Google Tests Software (구글의 소프트웨어 테스팅)
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법
 
Build Team Foundation Architecture
Build Team Foundation ArchitectureBuild Team Foundation Architecture
Build Team Foundation Architecture
 
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)
 

Último

JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP Korea
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석JMP Korea
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법JMP Korea
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP Korea
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화JMP Korea
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP Korea
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?Jay Park
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP Korea
 

Último (8)

JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 

KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)

  • 1. “Software Engineer in Test” in 게임 개발 - TERA 는 테스트 자동화가 가능할까? 김 성 민(sungmkim@bluehole.net) Lead SET / 블루홀 스튜디오
  • 2. 그 동안의 다양한 시행착오를 함께 공유하는 자리입니다
  • 3. •게임 개발에서 테스트 자동화가 과연 가능할까? 를 고민하시는 분, •프로그래밍을 활용한 테스트에 관심이 많으신 분, •효율적인 개발 프로세스에 관심이 있으신 분들께 작게나마 도움이 되었으면 좋겠습니다.
  • 4. 1 부 (15:50 ~ 16:50) 1.발표자 소개 2.Software Engineer in Test? •Test Automation •SET at Bluehole Studio 3.TERA Test Framework •TeraPuppet •TeraTest •Selenium Integration 4.Q & A Agenda
  • 5. 2부 (17:00 ~ 18:00) 1.Test Scenarios 2.CI & 배포 연동 3.성과 측정 4.Summary 1.DEMO 2.현재까지의 성과 3.아쉬운 점 5.Q & A Agenda
  • 6. •LG Electronics : 3 years Project: 4 mobile devices Sungmin Kim •새로운 개발을 좋아하는 11년 차 개발자 그리고 아내와의 여행을 좋아하는, 한 아이(곧 두 아이)의 아빠 Email: smkyhh@gmail.com / sungmkim@bluehole.net 발표자 소개 •Realtime Worlds, Client Programmer : 1 year Project: My Worlds (Data Generation) •Microsoft, SDET and SDE 2 : 5 years Project: Office 2010, Office 2013 (SharePoint Designer) Award: Gold Star Stock Awards (2011) with SPD Test Automation •Bluehole Studio, Lead SET (2013.08 ~ 현재) : 1.5 years Project: TERA (Test Automation )
  • 8. Software Engineer in Test •국내에선 다소 생소하나, 서구에선 보편적 –Blizzard, Riot, EA 등의 게임회사에서도 활발하게 SET 채용 –SET @ Blizzard, EA, Riot, Google, … –SET @ Bluehole Studio  –SDET @ Epic Games, Microsoft Game Studios,… •테스트 분야의 프로그래머 (TEST ≠ QA) –테스트 자동화 –코드 오류 검증 –개발 단계에서의 이슈 조기 검증 –프로그래밍을 통한 테스트 –Performance, Security 이슈 검증 –지속적이고 & 정확한 이슈 관리 –지식 전파 등 •테스트 분야도 전문 프로그래머가 필요 Software Engineer in Test ?
  • 9. Software Engineer in Test •컴퓨터가 사람 대신 검증 할 수 있는 일은 컴퓨터를 통한 검증이 더 효율적 –반복적인 작업 (Regression 확인) –정확한 수치 검증 –Performance, Security, Code Defects •개발 현황, 조직 구조, 프로젝트 성격 등에 따라 추구하는 방향은 전혀 달라질 수 있음 * 블루홀 스튜디오의 경우 –Test 가능한 Project는 1개 (TERA) –조직 구조: TERA Project 기준 150 여명 ( QA 조직 포함 ) –성격: 게임 (MMORPG) –출시 국가: 6개 (한국, 중국, 대만, 일본, 북미, 유럽) -> 현재 SET 인원 1명 ; Software Engineer in Test ? For software?
  • 10. Software Engineer in Test •모든 것을 검증 할 순 없다. –재미 –UX –복잡한 환경의 멀티플레이 •개발자와 QA의 보다 효율적인 업무 가능 •QA 조직과 개발 조직과의 협업이 매우 중요 •1) 업무 효율성, 2) 커버리지 향상, 3) 개발 프로세스 개선 –개발비 절감 –테스트 효율화 –유지보수 용이 (테스트 담당자인 김 아무개씨의 퇴사 후에도 이미 만들어진 자동화 시나리오는 수행 됨) –효과적인 자동화 테스트 프로세스 도입 –새로운 분석 및 투자를 통한 개발 효율성 향상 Software Engineer in Test ? 재미 UX
  • 12.
  • 13. 테스트 자동화란? Software Engineer in Test ? Product의 장기적인 안정화와 비용 절감을 위한 중요한 요소 장기적으로 빠르고 안정적으로 이슈를 검증 & 테스트 자동화를 기반으로 한 다양한 개발 방법론 도입 가능 유지보수에 용이하며 비용 절감 측면에서 효과적 기본 시나리오 검증 뿐 아니라, Security, Performance 및 Localization 테스트에도 용이 다양한 Coverage 측정을 통해 중복 작업 최소화를 통한 자동화 테스트 검증 비용을 측정할 수 있음
  • 14. 효율적인 자동화 테스트 Software Engineer in Test ? Reference: http://xunitpatterns.com/Goals of Test Automation.html
  • 15. DEMO
  • 16.
  • 17. 왜 국내에선 생소할까? •항상 바쁘다 (정말 바쁘다.) •채용 (당장 개발자 뽑기도..) •경험 부족 (나 말고 누군가의 시행착오가 필요하다.) •초기 개발 비용 •프로젝트의 불완전한 미래 –개발 중에는 검증을 중요시 하진 않더라 –잦은 스펙의 변화 –개발 Process 보다는 당장의 Output –수작업(일단 바쁘니..) vs 시스템 개발 Software Engineer in Test ? 자동화가 힘들다 바쁘다 Because Because 원래 이렇게 해왔다. 어떻게 하는지 모르겠다. 언제 접힐지 모른다. 다른 것도 할 것이 많다 기타 등등..
  • 18. 효율적인 SET 도입은 가능할까? •국내 개발 환경은 Microsoft 에서의 개발 환경 & 문화와 비교하여 차이가 제법 있음 •프로젝트 성격과 국내 Online Game 개발 환경에 적합한 SET 역할 정리가 중요 Software Engineer in Test ? SET at Bluehole Studio SDET at Microsoft 장점 •회사의 충분한 지원 •소규모(1인) 개발 •다양한 개발을 할 수 있다 •필요한 모든 것을 만들 수 있다. •최신의 기술적 시도 가능 •이미 정착된 문화 •여러 SDET / SDE 들과 관련한 정보 교류 •프로세스 & 도구들이 잘 갖추어짐 •Career Path에 대한 방향 제시 단점 •정착되지 않은 문화 •기존 Process와 융화 필요 •소규모(1인) 개발 •신뢰성 •변화를 꾀하는 것이 쉽지 않음 •기존 프레임웍 위에서 수행 •이미 정착된 문화 •자율성 특징 •QA 조직 존재 (TERA의 경우) •비용 중시 •모든 것을 만들어야 함 •QA 조직 없음 (Office 2010, 2013 개발의 경우) •커버리지 중시 •개발 초기부터 계획된 라이브러리
  • 19. 효율적인 SET 도입은 가능할까? 전체의 변화보다는 Software Engineer in Test ? 1) 기술적인 접근을 통한 커버리지 확대 2) 테스트 자동화 수행을 통한 유지 보수로 인한 효율성 및 비용 절감 3) 개발 과정의 테스트 도입을 통한 이슈 조기 검증 을 목표로 진행을 시작한다면 안착 가능성이 높을 것이라 기대
  • 20. SET at Bluehole Studio
  • 21. •Microsoft 의 테스트 자동화 프로세스는 매우 매력적 •Bluehole Studio 에서 테스트 자동화 도입 중 •게임에도 도입하면 어떨까? 의 호기심 •TERA는 테스트 자동화를 수행하기 매우 적절한 게임 (다양한 국가, 다양한 레거시 코드, 회사의 새로운 시도 등) •분명 더 나아질 것이라 믿고 시작 SET at Bluehole Studio My SET History (2013.08 ~)
  • 22. My SET History (2013.08 ~) SET at Bluehole Studio •나홀로 SET, 무엇을 하였나? –SET 직무 제안 및 역할 정리 –테라 테스트 자동화를 위한 Tera Puppet 1.0 개발 –테라 테스트 자동화를 위한 Tera Test 개발 –웹 자동화를 위한 Selenium 선정 및 시나리오 작성 도구 개발 –효율적인 BTS 시스템을 위한 JIRA 도입 및 설정 –QA 실 테스트 자동화를 위한 툴 개발 –QA실 테스트 자동화를 위한 지식 및 기술 전파 –국가별 배포 시스템 연동을 통한 자동화 시나리오 수행 –테스트 자동화 도입을 통한 개발 프로세스 효율화 –Client Performance 의 지속적인 측정 : •개발 진행 중 & 꾸준한 시도 중
  • 23. SET at BHS Software Engineer in Test ? Bluehole Studio 에서의 모든 게임 Test Automation Framework 을 디자인하고 개발 QA 및 다른 개발자들과 협업을 통한 전체 테스트 전략 수립 개발자 테스트 및 Unit 테스트 도입 및 지원 효율적인 자동화 테스트를 위한 라이브러리 및 툴 개발 실제 소스코드를 기반의 Code Defect 검증 및 Security Test, Performance Test 및 관련 툴 개발, Code Coverage 측정 등의 수행 새로운 기술을 항상 분석하여, 여러 프로젝트에 걸쳐 기술을 전파하고 효율적인 테스트 방법론 제시 23 Gathering requirements and Planning test automation framework Designing and developing test automation framework Executing test cases and supporting QA and developers Maintenance
  • 24. 이런 부분이 다르더라 Game (TERA) Application (MS Office 2010) 테스트 자동화 시점 서비스 시작 이후 개발 초기 단계부터 로직 흐름 비동기 동기 검증 대상 Source Code + Data Source Code + Data 검증 요소 재미 + 기능 기능 상호 작용 여러 유저들과의 Play 검증 필요 없음 개발 규모 1년 6개월 * 1명 10년 이상 * ? 명 QA 별도의 QA 조직 있음 별도의 QA 조직 없음 국가 6 국가 30+ 국가 OS Windows 7 or Windows XP 모든 OS Product 목적 취미 업무 이슈 발생 패치 + 보상 소송 가능성 업데이트 주기 빠름 (1 ~ 2주) 상대적으로 느림 SET at Bluehole Studio
  • 25. 협업 SET at Bluehole Studio •SET –Product 와 접목되어 수행될, 테스트 프레임 및 라이브러리 기획 및 개발 –다른 개발자들이나 QA 분들이 사용하실 수 있도록 개발된 라이브러리의 템플릿 제공 –새로운 기술 개발 및 솔루션 제공 –QA의 요구 사항을 통한 테스트 툴 개발 –시나리오 & 코드 리뷰 •QA –시나리오 제작 및 이슈 분석 –시나리오 관리 및 유지 보수 –제작된 테스트 프레임 웍, 툴, 라이브러리 사용 피드백 –툴 개발을 위한 기획서 작성 •DEV –테스트 자동화 시스템 및 시나리오의 업무 활용 –개발자 테스트 –결과 확인 및 이슈 수정
  • 26. 아직 초반 •더 많은 개발과 프로세스의 도입 필요 –계획 대비 20 정도의 길 –나머지 80의 길 •시행착오가 예상됨 –관리 –개발 –개발자 테스트 –Unit Test –코드 커버리지 향상 –데이터 커버리지 향상 –Server Performance 측정 : SET at Bluehole Studio
  • 27.
  • 29. 자체 개발 vs 외부 솔루션 •외부 솔루션을 이용한 게임 테스트 자동화는 한계 발생 •TERA의 서버 & 클라이언트 코드를 완전히 이해하고, 실제 Product 코드 위에 테스트 자동화 시스템을 구축하자 –실제 Product 코드에서 개발 –누구나 시나리오를 만들 수 있는, 시나리오 제작 & 재생 방식의 통합된 프레임웍 –Unit Test 및 다양한 테스트 라이브러리 개발을 통한 추후 확장 용이 –.NET을 이용하여 개발 생산성을 높이자 –필요한 경우 공개 라이브러리를 활용하자 (e.g. Selenium) TERA Test Framework IN-HOUSE EXTERNAL SOLUTION
  • 30. Framework Overview TERA Test Framework TeraPuppet (Record & Playback for TERA) -녹화 / 재생을 통한 시나리오 제작 및 실행 -누구나 손쉽게 시나리오를 만들고 재생 가능 -유지보수가 쉽다. -다소 제한적인 기능만 사용 가능하다는 단점 Selenium Integration (Record & Playback for Web) -웹 테스트를 위한 Open source library인 Selenium을 활용한 테스트 자동화 -TeraPuppet 과 연동되어 게임 내 시나리오와 연동하여 웹 테스트 가능 -웹 기반의 자동화 테스트에 유용 TeraTest (C# Library & Script) -테스트 라이브러리 기반 -C# 으로 구성되어 다양한 .NET 라이브러리의 활용 가능 -대규모 데이터 시트를 활용한 자동화 검증이나 혹은 복잡한 계산이 필요한 경우의 자동화 시나리오 제작에 유용 -시나리오 제작을 위해 라이브러리 개발이 별도 필요 Puppeteer (BlueholeTestWeb) - 웹 기반의 시나리오 관리 및 실행 CI with the test automation (TeraTestAgent) - TERA 배포시에 자동으로 테스트 자동화 시나리오가 수행되도록 개발 TERA
  • 31. TeraPuppet TERA Test Framework 31 •Record & Playback 방식 •수행 중인 게임에서, 1) 클라이언트와 서버간의 주고 받는 패킷, 2) 게임 내부의 UI Event, 3) Key Event, 4) Mouse Event, 5) 그 외의 다양한 기능을 구현하기 위한 Custom Action 등을 녹화하고, 이들을 조합하여, 원하는 시나리오를 만든 후, 다시 재생하는 방식 •직관적이므로 프로그래밍을 몰라도 누구나 쉽게 시나리오 제작 가능 •XML 기반의 시나리오로 구성 •여러 상황을 재현하고 검증하기 위한 다양한 문법과 기능 •녹화 기능, 스크린 캡쳐, 웹 자동화 연동, EXCEL 연동, DB 조작 등
  • 32. TeraPuppet TERA Test Framework 32 •Excel 등을 활용한 대용량 데이터 처리 가능 •프로그래머들의 로그 툴이나, 디버깅 용도로도 사용 가능 •Packet과 Event를 많이 파악 할 수록 다양한 시나리오를 만들 수 있음 •규격화된 문법이 아닌, 자체 제작된 문법들을 사용하므로 복잡한 기능의 검증을 위해서는 별도의 기능 구현이 필요 •QA실에서 Tera Client의 검증의 경우는 Puppet을 활용하여 다양한 자동화 시나리오를 제작 중 QA분이 만들어주신 Puppet 메뉴얼
  • 33. TeraPuppet TERA Test Framework 33 DEMO
  • 34. TeraTest TERA Test Framework 34 •C# 을 이용한 TERA 제어 & 검증 •프로그래밍을 아는 사람이라면, 누구나 쉽게 스크립트 작성을 통해 TERA를 제어하고 검증할 수 있도록 라이브러리를 만들자 •Native 코드로 개발된 TERA를 Managed World로 끌어오기 위한 별도의 개발 필요 •복잡한 시나리오나, 프로그래밍의 장점이 필요한 부분, C#의 막강한 라이브러리를 필요로 하는 부분에 이용되면 좋음 (e.g. 대용량 데이터를 이용한 검증, TeraPuppet으로 제작이 힘든 시나리오)
  • 35. TeraTest TERA Test Framework 35 •C++ /CLI Layer •C# (with WPF (Windows Presentation Foundation) 와 MVVM ) •개발자들의 UnitTest 개발에 용이 •Puppet과 연동하여 다양한 Packet 재생 가능 •대부분의 시나리오들이 이론상 구현 가능 •다양한 Library 개발 중 –BOT –DirectX 기반 Game UI 검증
  • 36. TeraTest TERA Test Framework 36 DEMO
  • 37. AutoIt vs Selenium •AutoIt 과 Selenium 중 확장성이 높은 Selenium 선정 •QA 팀의 프로그래밍 언어를 C#으로 선정 •전사 대상으로 C# Study 진행 TERA Test Framework AutoIt Selenium 코딩 난이도 (상, 중, 하) - - 확장성 중 상 커뮤니티 활성화 중 상 장점 •최초 진입 장벽이 낮음 •자체 Library 지원 •코드 수정이 쉬움 •자동으로 코드를 생성해주는 Firefox IDE •다양한 확장성 (Excel 연동, .NET 연동 등) •다양한 언어 지원 및 변환 (VBA, C#, Autoit 등) 단점 •AutoIt 자체 언어를 배워야 함 •C++ / C# 연동이 어려움 •IDE로 최초 작성시 코드 수정이 어려움 •특정 언어(C#)을 배워야 함
  • 38. Selenium Integration TERA Test Framework •Open Source Library인 Selenium 을 사용한 웹 테스트 자동화 •웹의 경우 표준을 대부분 따르고, HTML 기반의 구조이므로 외부 자동화 라이브러리 도입이 용이하고 활용도 높음 (JavaScript 제외) •현재 웹 기반의 테라 운영툴의 검증에 사용됨 •SET가 Selenium Library 및 Puppet위에 수행될 수 있도록 개발 •QA 분들께서 이를 활용하여 다양한 시나리오 제작 •Puppet 이나 TeraTest의 연동 작업을 통해, 실제 게임에 융화되어 검증 ( Puppet 으로 TERA 환경 설정 -> Selenium 명령어를 통한 검증 - > Puppet으로 변경된 게임 결과 검증 )
  • 39. Selenium Integration TERA Test Framework DEMO
  • 40. •2부 에서는.. –TERA Test Framework에서 사용되는 시나리오 –배포 연동 (CI) –성과 –데모 –좋았던 점 / 아쉬운 점 –요약 –Q & A
  • 41. Q & A
  • 42. 2부 (17:00 ~ 18:00) 1.Test Scenarios 2.CI & 배포 연동 3.성과 측정 4.Summary 1.DEMO 2.현재까지의 성과 3.아쉬운 점 5.Q & A Agenda
  • 44.
  • 45. 테스트 자동화 시나리오 Test Scenarios •사람이 하는 일을 컴퓨터가 대신 할 수 있도록 테스트 시나리오 제작 •기능을 잘 아는 사람이 시나리오를 제작 하는 것이 효과적 •시나리오를 잘 만드는 것도 경험과 노하우가 중요 •시나리오를 잘못 만드는 경우, 비용만 들고 효율성이 떨어지는 역효과 •비교적 안정적인 컨텐츠를 대상으로 제작하는 것이 효과적 장 점 단 점 •반 영구적으로 사용 •기능을 잘 모르는 분들도 시나리오 수행을 통해 안정적인 결과 확보 •다양한 확장성 ( e.g. performance 검증) •시나리오 공유가 가능하면, 국가나 빌드의 추가에도 비용 최소화 •다양한 OS나 국가별 OS에서도 쉽게 검증 가능 •시나리오 유지 보수 비용 발생 •초기 시나리오 제작 비용 발생 •사람이 테스트하는 것과 100% 동일 할 순 없음
  • 46. TERA 테스트 자동화 시나리오 현황 Test Scenarios •5 개의 국가에서 수행 가능한 400 여 개 이상의 시나리오 –국가: 한국, 중국, 일본, 유럽, 북미 –목적: 빌드검증, 이슈 검증, 가배포, 세부 컨텐츠 –대상: 신규 컨텐츠, 기존 컨텐츠, Performance –도구: TeraPuppet, TeraTest, Selenium Integration •QA 분들의 다양한 제작 노하우로 꾸준히 시나리오 제작 중 •QA와 SET의 효율적인 역할 분담 중요 –QA: 시나리오 제작 –SET: 시나리오 제작 도구 개발 및 시나리오 Template 제공 •개인이 개별 환경에서 별도로 돌리거나 CI (Continuous Integration) & 배포연동 시스템을 통해 수행
  • 50. 시나리오의 제작과 유지 보수는 테스트 자동화의 가장 중요한 요소 
  • 51. Framework Overview TERA Test Framework TeraPuppet (Record & Playback for TERA) -녹화 / 재생을 통한 시나리오 제작 및 실행 -누구나 손쉽게 시나리오를 만들고 재생 가능 -유지보수가 쉽다. -다소 제한적인 기능만 사용 가능하다는 단점 Selenium Integration (Record & Playback for Web) -웹 테스트를 위한 Open source library인 Selenium을 활용한 테스트 자동화 -TeraPuppet 과 연동되어 게임 내 시나리오와 연동하여 웹 테스트 가능 -웹 기반의 자동화 테스트에 유용 TeraTest (C# Library & Script) -테스트 라이브러리 기반 -C# 으로 구성되어 다양한 .NET 라이브러리의 활용 가능 -대규모 데이터 시트를 활용한 자동화 검증이나 혹은 복잡한 계산이 필요한 경우의 자동화 시나리오 제작에 유용 -시나리오 제작을 위해 라이브러리 개발이 별도 필요 TERA CLIENT Puppeteer (BlueholeTestWeb) - 웹 기반의 시나리오 관리 및 실행 CI with the test automation (TeraTestAgent) - TERA 배포시에 자동으로 테스트 자동화 시나리오가 수행되도록 개발
  • 52. CI & 배포 연동
  • 53. Continuous Integration 이란 CI & 배포연동 지속적으로 퀄리티 컨트롤을 적용하는 프로세스를 실행하는 것 소프트웨어의 질적 향상과 소프트웨어를 배포하는데 걸리는 시간을 줄이는데 지속적인 통합은 재작업을 줄여서 비용과 시간을 줄이는데 초점
  • 54. Test Automation & CI 의 필요성 CI & 배포연동 Reference: http://www.embeddedinsights.com/channels/2012/03/19/unit-test-tools-and-automatic-test-generation/
  • 55. TeraTest Agent CI & 배포연동 •개발자의 수정 사항의 수시 확인을 통한, 이슈의 빠른 검증이 중요 •배포가 완료되면, 서버와 클라이언트를 설치 후, 자동으로 테스트 자동화 시나리오들을 검증 •국가별로 다양하게 배포가 진행되고, 실제 QA 업무에 활용되므로, 안정적이고 신뢰성 있는 시스템 구축 및 결과 전달이 중요 •TERA의 기존 배포 시스템에 맞물려 수행되기 위한 별도의 시스템 •C# (with WPF) 으로 개발
  • 56. TeraPuppeteer •TeraPuppet 시나리오를 원격으로 수행시켜주는 웹 기반의 시나리오 수행 도구 •시나리오 수행 결과, 시나리오 현황, 자세한 로그 등을 관리 •모든 테스트 자동화의 결과를 한 눈에 볼 수 있는 곳 •AngularJS & Bootstrap 으로 개발 CI & 배포연동
  • 57. E-mail •검증이 모두 완료되면, 정확하고 세부적인 검증 결과의 빠른 전달 필요 이슈 관리 CI & 배포연동 Web BTS (JIRA)
  • 58. •실패한 결과 발생 시, SET 및 해당 시나리오 담당자 분들의 빠른 이슈 확인 필요 이슈 관리 CI & 배포연동
  • 59.
  • 61. Code Coverage 성과 측정 •테스트 시나리오들에 의해 코드의 몇 % 가 수행되었는지를 정확하게 측정하기 위한 방법 •Automation & Manual Test 이후 제품이 출시 가능한지를 평가 할 수 있는 중요한 지표
  • 62. Code Coverage 성과 측정 Microsoft 에서의 테스트의 주요 측정 지표는 Code Coverage •Office를 포함한 일반적인 Application은 코드를 통한 개발이 일반적 •Code Coverage 결과와의 사투 
  • 63. Code Coverage in 게임 개발 성과 측정 •Game의 경우는 Code Coverage 측정만으로는 한계 –코드를 통한 개발 + 컨텐츠 데이터를 통한 개발 –Client + Server + Contents Data •Packet Coverage –Server 와 Client 의 전체 Packet 중 몇 % 의 Packet 이 테스트에 의해 검증 되었는지 –TERA의 경우, 보다 자세한 테스트 커버리지 측정을 위해, Code Coverage 뿐만 아니라 Packet Coverage도 측정 중 •Data Coverage –전체 데이터 중 몇 %의 데이터가 테스트에 의해 커버되었는지 –효과적인 Coverage 측정 방법 고민 중 Packet Coverage
  • 67. •QA 분들과 개발자 분들의 테스트 자동화 업무의 효율성을 인지 •테스트 자동화를 통한 리소스 절약 •비용대비 효율이 낮진 않음 •기본 Packet 검증의 40%를 테스트 자동화로 검증 가능 •5개 국가에 자동으로 테스트 자동화 시나리오 수행 중 •일부 빌드는 자동화 테스트를 위주로 검증 확인 예정 •회사의 관련 업무 지원 긍정적인 성과 Summary 많진 않지만 나름 알찬 랩 실의 테스트 자동화 머신들
  • 69. 아쉬운 점 •나홀로 개발 –큰 장점이자 단점 –개발에만 집중할 수 있는 여유 필요 •아직은 정착되지 않은 문화 –모든 것을 만들어야 함 –다양한 시스템 & 프로세스 구축 필요 –규모와 프로젝트 성격에 맞는 SET 안착 필요 •협업 –이해관계가 얽힌 기존 조직과의 효율적인 업무 협업은 쉽지 않음 –협업을 위한 리소스가 투입 됨 (회의, 리뷰, 메일 작성 등) –TERA 조직은 2007년 부터 잘 쌓아온 개발 및 QA 문화를 가지고 있음 –조직에 많은 공헌을 할 수 있도록 꾸준한 고민과 노력 필요 Summary
  • 71. 마무으리 •여전히 실험 단계 •성공과 실패의 갈림길에서 다양한 고민과 시행착오를 통해 더 나은 길을 찾아가는 중
  • 72. Q & A
  • 73. Software Engineer in Test 의 업무에 관심 있으신가요  ? –sungmkim@bluehole.net / smkyhh@gmail.com