GTAC 2013: 프레젠테이션 1일 차

시작 문구

토니 보엘름 (Google)

기조연설 - 품질 보증에서 테스트 엔지니어링으로 발전

Ari Shamash (Google)

앱을 빌드하고 실행했습니다. 거기서 시작하여 적당한 자금을 조달하고 자금을 확보한 다음 처음부터 시작하면 '제대로' 수행할 수 있을 것이라고 생각했습니다. 그러나 새로운 기능에 대한 수요가 많기 때문에 이제 전례 없는 속도로 전례 없는 확장을 추진해야 하는 상황에 처했습니다. 엉터리! 다음 단계는 무엇일까요?

폐기하고 처음부터 새로 시작할 수는 없습니다. 보유한 기술을 발전시키면서 놀라운 속도로 계속해서 고품질 기능을 추가하면 됩니다. 또한 이미 있는 항목이 중단되지 않도록 해야 합니다. 어떻게 해야 할까요? 다행히 이 일반적인 시나리오를 다루는 소프트웨어 엔지니어링 산업 내에 새로운 필드가 형성되고 있습니다. Google에서는 이를 '테스트 엔지니어링'이라고 합니다.

강연에서는 테스트 엔지니어링이 무엇인지, 품질 보증에서 개선되었는지, 그리고 전체적으로 업계에서 테스트 엔지니어링을 어떻게 구현했는지 (Google에서 구현되는 방법에 관한 구체적인 예) 중점적으로 살펴봅니다.

대규모 시스템 테스트 @Twitter

제임스 월드롭(Twitter)

제임스는 트위터에서 성능 테스트에 사용되는 도구, 프로세스, 철학에 대해 논의합니다. 특히 프로덕션에 코드를 배포하기 전에 Twitter의 엔지니어링팀이 로드 테스트를 수행할 수 있도록 Iago 오픈소스 부하 테스트 라이브러리에 초점을 맞춥니다. 강연에서는 이러한 일부 테스트의 구현 세부정보 (소스 코드 포함)와 OAuth 및 임의의 Thrift 프로토콜과 같은 복잡한 요소를 관리하는 방법을 자세히 살펴봅니다.

모바일 OS는 어떻게 테스트하나요?

David Burns(Mozilla) 및 Malini Das(Mozilla)

Mozilla가 FirefoxOS에 진출하기로 결정하면서 발생한 문제입니다. 무엇부터 시작하고 그 과정을 통해 흥미로운 작업을 증명할 수 있었습니다. 이 문제를 어떻게 해결하고 새로운 프레임워크를 어떻게 만들었는지 들어보세요.

지속적 배포 파이프라인의 모바일 자동화

이고르 도로브스키크(Expedia) 및 카우슈타트 가완데(Expedia)

Expedia는 2012년 초부터 모바일 웹 및 iOS/Android 앱에 투자하기 시작했습니다. 이와 동시에 테스트 엔지니어는 처음부터 제품에 품질과 테스트 가능성을 빌드하기 위한 테스트 자동화 솔루션 개발을 시작했습니다. 이 강연에서는 Expedia의 민첩한 개발과 지속적 배포 환경에서 오픈소스 테스트를 활용하여 자동화된 테스트를 빌드한 경험과 결과를 공유할 예정입니다. 테스트 피라미드에 관해 이야기하고 저희에게 도움이 된 특정 오픈소스 도구를 좀 더 자세히 살펴보겠습니다. Google에서 사용하는 오픈소스 도구로는 Cucumber, 웹 자동화 도구 Selenium-WebDriver, iOS 자동화 도구 Frank, Android 자동화 도구 Robotium 및 Calabash, 지속적 통합 시스템 Jenkins와 같은 BDD 도구가 있습니다. 또한 TDD, 페어 프로그래밍, 빌드 및 테스트 라디에이터와 같이 채택하고자 하는 민첩한 배포 원칙을 공유합니다. 마지막으로, Agile에 투자하여 얻은 이점과 테스트 자동화를 통해 지속적 배포 목표를 달성하는 방법을 공유합니다.

GStreamer 및 OpenCV를 사용한 자동화된 셋톱 박스 테스트

David Röthlisberger(YouView)

3분 만에 GStreamer의 명령줄 도구와 OpenCV를 사용하여 영상 캡처 이미지 시스템을 빌드합니다. GStreamer는 오픈소스 미디어 처리 프레임워크입니다. OpenCV('Open Computer Vision')는 오픈소스 이미지 처리 라이브러리입니다.

이러한 시스템의 대표적인 예로 YouView에서 개발한 오픈소스 도구인 http://stb-tester.com을 통해 셋톱 박스의 UI 테스트를 자동화할 수 있습니다. stb-tester, GStreamer 토핑이 제공하는 유연성, 실현 가능한 가능성, 그리고 다가올 도전과제에 관해 설명하겠습니다.

Chrome용 Webdriver

Ken Kania(Google)

Windows 전용 브라우저에서 처음 출시된 시점부터 Chrome은 Mac, Linux, ChromeOS 그리고 가장 최근의 Android 및 iOS로 확장되었습니다. 이러한 플랫폼에서 웹 애플리케이션의 사용자 수준을 테스트하는 것은 어렵고 다양한 자동화 접근 방식이 필요했습니다. 이 강연에서는 모든 플랫폼에서 Chrome에 WebDriver를 제공하기 위해 Chrome팀이 어떤 노력을 기울이고 있는지 설명합니다. 여기에는 기본 접근 방식을 기술적으로 살펴보는 내용이나 개발자가 새로운 ChromeDriver를 사용하여 Chrome의 다양한 플랫폼에 대한 테스트를 작성하는 방법을 중점적으로 다룹니다. 또한 프로젝트의 현재 상태와 미래를 위한 로드맵도 다룹니다.

Karma - 자바스크립트용 테스트 실행기

Vojta Jina(Google)

실제 브라우저에서 자바스크립트 애플리케이션을 원활하고 재미있게 테스트할 수 있는 테스트 실행기인 Karma를 소개합니다.

여러 브라우저와 기기에서 작동해야 하는 자바스크립트 애플리케이션을 빌드하는 경우에는 테스트가 선택사항이 아닙니다. 하지만 이 모든 다양한 환경에서 테스트를 실행하기는 어렵습니다. 카르마는 이러한 번거로운 작업을 일반적으로 케이크로 만듭니다. 이를 통해 터미널이나 원하는 IDE에서 직접 스마트폰 또는 태블릿과 같은 실제 브라우저 또는 기기에서 자바스크립트 테스트를 실행할 수 있습니다.

자동 동영상 품질 측정

Pattrik Höglund (Google)

예. 동영상 품질과 같은 복잡하고 주관적인 측정값을 자동으로 테스트할 수 있습니다. 이 강연에서는 WebRTC 영상 통화의 지속적 및 자동 엔드 투 엔드 테스트를 지속적으로 구축한 방법을 보여줍니다. 도구 모음을 개괄적으로 살펴보고 구성 과정에서 어떤 문제가 있었는지 살펴보겠습니다. 미디어 테스트를 한 단계 발전시키는 방법에 대한 아이디어를 얻고 싶을 때 유용합니다.

좋은 애플리케이션에서 문제가 발생하면...

Minal Mishra(Netflix)

모바일과 태블릿 컴퓨팅의 호황은 소프트웨어 산업에 애플리케이션 개발 플랫폼을 불어넣었습니다. 컴퓨팅 플랫폼에서 소비자 애플리케이션을 개발하면 마법같은 최종 사용자 환경이 마련됩니다. 소비자를 상대하는 소프트웨어 회사는 이러한 플랫폼을 위한 애플리케이션을 개발할 때 항상 최선을 다하려고 합니다. 하지만 애플리케이션 개발에서 가장 큰 도전과제는 기업이 애플리케이션의 첫 버전을 출시한 후에만 시작됩니다. 소비자와 소프트웨어 회사는 최신 기능을 가능한 한 빨리 최고 수준으로 개발하길 원합니다. 이렇게 하면 스택의 모든 레이어에서 지속적인 코드 변동이 발생합니다. UI 자동화 엔지니어는 애플리케이션 문제를 조기에 해결하기 위한 다양한 감지 시스템을 빌드합니다. 이 강연에서는 애플리케이션 레이어 외부에서 문제를 찾는 데 도움이 되었지만 여전히 사용자 경험에 부정적인 영향을 미쳤던 감지 시스템 중 몇 가지 문제와 문제점을 공유할 것입니다.

교육용 게임 테스트 및 교육용 게임 테스트

타오 시에(노스캐롤라이나 주립대학교)

이 강연에서는 자동 테스트 생성을 활용한 수십만 명의 사용자로 확장할 수 있는 온라인 프로그래밍 시스템에서 자동 채점을 지원하는 Pex4Fun(http://www.pexforfun.com/)에 대해 설명합니다. 교실 밖에서 프로그래밍 중심 게임 환경을 제공하여 사용자에게 매개변수화된 단위 테스트 작성과 같은 테스트 기술을 포함하여 다양한 프로그래밍 및 소프트웨어 엔지니어링 기술을 학습하도록 교육합니다. Pex4Fun은 과제 채점이라는 알려진 문제에 상당한 기여를 할 뿐만 아니라 상호작용형 게임을 기반으로 한 재미있는 학습 환경을 제공합니다. Pex4Fun은 커뮤니티에서 큰 인기를 얻고 있습니다. 2010년 6월 출시된 후 'Ask Pex!' 버튼은 2013년 초부터 100만 건 이상의 조회수를 기록했습니다 (Pex4Fun에서 게임을 해결하려는 사용자의 시도를 나타냄).

기조연설 - Android에서 Facebook을 테스트하는 방법

Simon Stewart(Facebook)

Facebook은 가장 널리 사용되는 Android 애플리케이션 중 하나입니다. 이 강연에서는 각 버전이 최대한의 성능을 발휘할 수 있도록 하기 위해 Facebook에서 무엇을 하는지 알아봅니다. 코드 관리 방식, 테스트 접근 방식, dogfood에 이르기까지 모든 내용을 다룹니다.