GTAC 2014: 프레젠테이션

모든 GTAC 2014 동영상 녹화 자료와 슬라이드는 공개적으로 제공됩니다. GTAC 2014 YouTube 재생목록에서 시청하거나 아래 대담을 시청하세요.

시작 문구

Sonal Shah (Google)

기조연설 - 빠르게 움직이고 중단하지 않기

Ankit Mehta(Google)

링크: 동영상, 슬라이드

더 나은 웹을 위한 자동화

제임스 그레이엄(Mozilla)

웹은 전 세계에서 가장 많이 사용되는 애플리케이션 플랫폼이지만 브라우저 상호 운용성이 제대로 작동하지 않을 경우 웹 개발자 사이에서 실망과 좌절을 느낄 수 있습니다. 이러한 상황을 개선하기 위해 W3C는 지속적으로 업데이트되는 교차 브라우저, 오픈 웹을 위한 테스트 도구 모음(웹 플랫폼 테스트)을 생성하기 위한 커뮤니티의 노력을 촉진하고 있습니다. 이 강연에서 제임스는 웹 플랫폼 테스트를 소개하고 다양한 데스크톱 브라우저 및 Firefox OS를 실행하는 휴대기기에서 테스트를 자동화하기 위해 만든 도구를 설명합니다. 이 소프트웨어는 Mozilla의 지속적 통합 시스템에서 하루에 수백 건의 커밋을 통해 외부 소스에서 자주 업데이트되는 테스트 모음을 실행하는 데 따르는 어려움을 충족할 수 있도록 어떻게 설계되었는지 보여줍니다.

링크: 동영상, 슬라이드

Chrome을 최고의 모바일 브라우저로 만들기

Karin Lundberg (Google)

Chrome이 성공을 거둔 이유 중 하나는 속도, 안정성, 단순성, 보안의 핵심 원칙 (4가지 S)입니다. Android 및 iOS용 Chrome을 출시할 당시 저희는 4S를 브라우저뿐 아니라 자동화된 테스트와 실행하는 테스트 유형에도 적용했습니다.

  • 속도는 성능 테스트와 빠른 테스트를 위한 것입니다.
  • 안정성은 안정성 테스트와 안정적인 테스트에 사용됩니다.
  • 단순성은 Chrome에 간단한 사용자 환경이 있는지 테스트하고 간편하게 추가하고 실행할 수 있도록 하는 것입니다.
  • 보안은 보안 테스트용입니다.

링크: 동영상, 슬라이드

행동 모델을 위한 테스트 자동화 언어

난 리(Medidata Solutions)

모델 기반 테스터는 그래프의 경로와 같은 모델 측면에서 추상 테스트를 설계합니다. 그런 다음 추상 테스트를 구현의 측면에서 정의되는 구체적인 테스트로 변환해야 합니다. 추상 테스트에서 구체적인 테스트로의 변환은 자동화되어야 합니다. 행동 모델에 대한 기존 모델 기반 테스트 기법은 테스트 변환 및 생성을 위한 클래스 다이어그램 및 사용 사례 다이어그램과 같은 다양한 추가 다이어그램을 사용합니다. 요구사항이 자주 변경되는 경우에도 테스터가 모든 관련 다이어그램을 항상 일관되게 만들어야 하기 때문에 실제로는 사용하기가 매우 복잡합니다.

이 강연에서는 테스터가 상태 머신 다이어그램과 같은 하나의 동작 모델만 사용하여 테스트를 생성할 수 있는 테스트 자동화 언어를 소개합니다. (1) 모델에서 실행 가능한 테스트 코드로 매핑 만들기 및 테스트 값 생성, (2) 그래프 변환 및 커버리지 기준을 사용하여 테스트 경로 생성, (3) 제약조건 해결 및 구체적인 테스트 생성, 이렇게 세 가지 문제를 해결합니다.

링크: 동영상, 슬라이드

Google의 테스트 범위

안드레이 치릴라(Google)

Google에서 테스트하는 방식이 궁금했던 적이 있나요? Google에서 어떤 도구를 사용하는 데 도움이 되며, 테스트 적용 범위를 측정하고 이에 맞게 조치를 취하나요? Google의 개발 프로세스를 간단히 설명하고 코드 적용 범위 측정 사용과 코드 품질 및 엔지니어링 생산성 개선을 위해 코드 적용 범위를 사용하는 방법을 중점적으로 다룹니다. 마지막으로, 100, 000개가 넘는 커밋에 걸쳐 방대한 양의 커버리지 데이터를 표시하고, 보다 광범위한 결론을 도출합니다.

링크: 동영상, 슬라이드

CATJS: 테스트를 수행하는 애플리케이션

란 스니르(HP) 및 라이어 루벤(HP)

지난 몇 년 동안 컴퓨팅 세상에 대한 생각이 바뀌는 변화가 많이 있었습니다. 3D 프린터로 인쇄되는 3D 프린터는 자체적으로 생각해 본 다음 catjs를 사용한 로봇입니다.

catjs는 모바일 웹 앱이 스스로 테스트할 수 있는 기능을 추가하는 오픈소스 프레임워크입니다. HTML5 코드의 간단한 주석은 애플리케이션의 수명 주기 내에 삽입된 테스트 스크립트로 변환됩니다. 이러한 모바일 웹 테스트는 모든 기기, 운영체제 및 브라우저에서 실행할 수 있습니다. catjs를 사용하면 애플리케이션의 테스트 흐름을 빠르고 쉽게 처리할 수 있습니다.

링크: 동영상, 슬라이드

확장 가능한 지속적 통합 - 오픈소스 사용

Vishal Arora (Dropbox)

지속적 통합 (CI)에 사용할 수 있는 여러 오픈소스 도구가 있습니다. 소수의 광고주만이 대규모에서 제대로 작동합니다. 분산 환경에서 확장할 수 있도록 빌드된 제품은 거의 없습니다. CI를 규모에 맞게 구현하는 데 따르는 과제와 오픈소스 조각을 결합하여 확장 가능한 자체 CI 시스템을 빠르게 빌드하는 방법을 알아보세요.

링크: 동영상, 슬라이드

자주 테스트하지는 않지만, 테스트하면 프로덕션 단계에서 테스트합니다.

Gareth Bowles (Netflix)

Netflix에는 매일 더 많은 고객이 이용하는 클라이언트 기기에서 더 많은 콘텐츠를 소비하고 있습니다. 또한 Google은 고객 경험을 개선하기 위해 끊임없이 혁신을 추구하고 있습니다. 이렇게 급변하는 환경에서 테스트하는 것은 매우 어려운 과제이며, Google은 프로덕션 환경에서 테스트를 실행하는 것이 이러한 변경사항을 검증하는 가장 효율적인 방법일 수 있다는 결론을 내렸습니다. 이 강연에서는 프로덕션에서 사용하는 세 가지 테스트 방법인 시미안 군대의 모든 서비스 중단 시뮬레이션, 카나리아를 사용한 회귀 사례 찾기, 프로덕션의 코드 적용 범위 분석을 통한 테스트 효과 측정에 대해 다룹니다.

링크: 동영상, 슬라이드

실제 및 가상 휴대기기에서의 자동 테스트의 중요성

제이 스리니바산(Google), 마니쉬 라흐와니(Google)

웹 세상에 비해 모바일 테스트는 지뢰밭입니다. 여러 기기, 운영체제, 네트워크, 위치에 따라 개발자가 고려해야 할 변수는 무한합니다. 이 교육 세션에서는 모바일 앱의 성능과 품질을 최적화할 때 수반되는 몇 가지 고유한 과제와 이를 해결하기 위한 전략, 자동화, 실제 기기, 실제 사용자 상태에 대한 논의를 다룹니다.

링크: 동영상, 슬라이드

무료 테스트가 무료 바나나보다 낫습니다. 데이터 마이닝과 머신러닝을 사용해 실시간 프로덕션 모니터링을 자동화하는 방법입니다.

Celal Ziftci (Google)

소프트웨어 시스템의 분석, 유지보수, 테스트에 데이터 마이닝과 머신러닝 기술을 활용하는 것에 대한 관심이 증가하고 있습니다. 이 강연에서는 Celal이 이러한 기법을 사용하여 시스템 변이를 자동으로 마이닝하고 실시간으로 이러한 시스템을 모니터링하며 몇 분 이내에 잠재적인 프로덕션 문제를 엔지니어에게 알리는 방법에 대해 논의합니다.

강연에서는 내부적으로 사용하는 두 가지 도구와 이러한 도구를 결합하여 엔지니어에게 거의 무료로 실시간 프로덕션 모니터링을 제공하는 방법을 다룹니다.

  1. 시스템 변이를 마이닝할 수 있는 도구입니다.
  2. 프로덕션 시스템을 모니터링하고 첫 번째 도구를 사용하여 실시간으로 발생할 수 있는 문제를 식별하는 데 사용하는 로직의 일부를 자동으로 생성하는 도구입니다.

링크: 동영상, 슬라이드

적외선 셋톱 박스에서 자동화 테스트

Olivier Etienne (오렌지)

이 강연에서는 TV 앱 컨텍스트가 무엇이며 자동화를 시도할 때 발생할 수 있는 문제를 설명합니다. 올리비에는 이전 실패와 그 접근 방식, 자동 테스트 도구를 빌드하기 위한 핵심 사항을 살펴봅니다. 시간이 있으면 구현 세부정보를 자세히 살펴볼 것입니다.

솔저 몇 개와 코드 몇 줄로 풍부한 웹 테스트 세계가 어떻게 셋톱 박스에 공개되었는지 들어보세요.

링크: 동영상, 슬라이드

클라우드 제공업체와 공정하게 비교해야 하는 과제

Anthony Voellm(Google)

이 강연에서는 메인프레임에서 Cloud로의 벤치마킹 역사를 다룹니다. 목표는 벤치마크가 시작된 위치와 벤치마크가 도달한 위치에 대한 토대를 구축하는 것입니다. 아이디어의 미래는 클라우드 벤치마킹의 미래와 이를 실제로 어떻게 구현할 수 있는지에 대한 것입니다.

링크: 동영상, 슬라이드

머신 작업 작업을 위해 인간을 전송하지 않음: Facebook이 봇을 사용하여 테스트를 관리하는 방법

Roy Williams(Facebook)

Facebook에는 테스트 조직이 없으므로 개발자는 코드 작성부터 테스트, 프로덕션 단계에 이르기까지 모든 것을 소유합니다. 그렇다고 해서 테스트를 하지 않는 것은 아닙니다. 이 정도까지는 테스트 수명 주기를 자동화하여 신호를 높게, 노이즈를 낮게 유지하는 방식으로 진행했습니다. 새 테스트는 신뢰할 수 없는 것으로 간주되며 비정상적으로 빠르게 트리에서 삭제됩니다. 테스트에서 신뢰를 쌓기 위해 무엇이 효과적이고 무엇이 효과적이지 않았는지 알아보겠습니다.

링크: 동영상, 슬라이드

에스프레소, 스푼, 와이콕, 오 마이! ( 또는 걱정을 멈추고 Android 테스트를 좋아하는 방법을 배웠습니다)

마이클 베일리 (American Express)

빠르고 안정적인 자동 Android UI 테스트를 만들고 실행하는 방법을 알아봅니다. 도구에는 Espresso, Spoon, Wiremock, Jenkins 등이 포함됩니다. 기본적인 Android 및 자바 개발 지식이 있다고 가정합니다.

링크: 동영상, 슬라이드

Google BigQuery 분석

Brian Vance (Google)

BigQuery는 Google Cloud의 대화형 빅데이터 서비스입니다. 사용자는 SQL과 유사한 쿼리를 통해 몇 초 만에 테라바이트 단위의 데이터를 분석할 수 있습니다. Google 테스터가 수년 동안 내부에서 사용해 온 Dremel을 기반으로 합니다. 몇 가지 예시를 살펴보고 BigQuery를 시작하는 방법을 알아보겠습니다.

링크: 동영상, 슬라이드

Selendroid - Android용 Selenium

Dominik Dary (Adobe)

Selendroid는 Android 네이티브 및 하이브리드 애플리케이션과 모바일 웹의 UI를 구동하는 오픈소스 테스트 자동화 프레임워크입니다. 테스트는 Selenium 2 클라이언트 API를 사용하여 작성됩니다. 테스트를 위해 자동화를 위해 테스트 중인 앱을 수정하지 않아도 됩니다.

이 프레젠테이션은 잠재고객에게 얼마나 쉽게 모바일 테스트 자동화를 수행할 수 있는지 보여줍니다. Selendroid를 사용하여 네이티브 및 하이브리드 Android 앱을 테스트하는 방법과 Selenium Grid를 여러 기기에서 병렬 테스트에 사용하는 방법을 보여줍니다. 런타임 시 Selendroid 자체를 확장하고 크로스 플랫폼 테스트를 수행하는 것과 같은 고급 주제도 다룹니다.

링크: 동영상, 슬라이드

하이퍼미디어 환경에서 상태 유지

Amit Easow (Comcast)

Comcast가 케이블 회사에서 미디어 및 기술 리더로 발전함에 따라 엔지니어링팀도 더욱 스마트해졌습니다. Amit은 2006년에 Comcast Interactive Media (CIM)에 입사하여 수동 테스트 업체로 근무했습니다. 2007년에 첫 웹사이트를 출시한 후 자동화된 UI 테스트 인프라의 프로토타입을 만들기 시작했습니다. GTAC 2008에서 Selenium을 도입한 후 Comcast로 돌아와 Selenium Grid, Hudson, Subversion으로 자동화된 테스트 인프라를 구축했습니다. 현재는 평일에 프로덕션 배포와 함께 API 테스트를 담당하고 있습니다. Python, Git, Gerrit, Anthill을 사용하면 가능합니다.

링크: 동영상, 슬라이드

MSL로 더 빠르게 이전하세요!

브라이언 로빈스 (FINRA) 및 다니엘 쿠 (FINRA)

품질을 유지하면서 소프트웨어를 더 빠르게 제공하는 것은 간단한 일이 아닙니다. 최소한의 유지보수 공간으로 테스트를 조기에 개발하고 더 빠르게 테스트를 실행하여 속도를 높이길 바랍니다. FINRA에서 MSL('미사일'로 발음)을 개발한 Agile팀은 MVC와 같은 계층화된 아키텍처를 활용하여 UI 코드를 더 빠르고 개별적으로 테스트할 수 있게 되었습니다.

MSL은 Node.js 서버에 로컬로 배포하고 클라이언트 (자바, 자바스크립트 또는 Node.js) 중 하나를 사용하여 테스트 코드에서 모의 HTTP 응답을 구성하여 UI 코드 (예: 자바스크립트, HTML, CSS)의 통합 테스트를 지원합니다. 이 강연에서는 몇 가지 예시와 함께 MSL의 주요 기능을 소개합니다.

링크: 동영상, 슬라이드

테스트 사용자 환경

Alex Eagle(Google)

Google의 제품은 자주 출시되므로 상당한 자동화 테스트 및 '빌드'가 필요합니다. Google은 현재 테스트 인프라를 Google Cloud Platform의 일부로 제공하기 위해 노력하고 있습니다. 이 강연에서는 빌드를 녹색으로 유지하고 제품에 결함이 없는 것을 유지하고 이를 전 세계에 어떻게 노출하고 있는지 미리 보여줍니다.

링크: 동영상, 슬라이드

라운드테이블 토크 1 - 모바일 크로스 플랫폼 테스트

링크: 동영상, 슬라이드

원탁 토의 2 - 문서 자동화 적용 범위

링크: 동영상, 슬라이드

커뮤니티 구조가 SAT 해결자 실적에 미치는 영향

Zack Newsham (워털루 대학)

최신 CDCL SAT 솔버는 비교적 짧은 시간에 매우 큰 규모의 산업용 SAT 인스턴스를 일상적으로 해결합니다. 이러한 문제 해결사가 실제 인스턴스의 구조를 어떻게 활용하는지에 분명합니다. 하지만 지금까지는 이 구조를 정확하게 나타내는 결과가 거의 없었습니다. 이 문서에서는 실제 SAT 인스턴스의 커뮤니티 구조가 CDCL SAT 솔버의 실행 시간에 상관관계가 있다는 증거를 제공합니다. 한동안 실제 SAT 인스턴스에는 그래프로 표시되는 자연 커뮤니티가 포함된 것으로 알려져 있습니다. 커뮤니티는 SAT 인스턴스의 그래프의 하위 그래프입니다. 따라서 이 하위 그래프는 그래프의 나머지 부분으로 보내는 것보다 내부 가장자리가 더 많습니다. 그래프의 커뮤니티 구조는 Q라는 품질 측정항목이 특징인 경우가 많습니다. 직관적으로, 고품질 커뮤니티 구조 (높은 Q)가 있는 그래프는 더 작은 커뮤니티로 쉽게 분리할 수 있지만, Q가 낮은 그래프는 그렇지 않습니다. 경험적 데이터를 토대로 한 세 가지 결과를 통해 실제 산업 인스턴스의 커뮤니티 구조가 변수 및 절과 같이 일반적으로 고려되는 다른 요소보다 CDCL 솔버의 실행 시간을 더 잘 예측한다는 것을 알 수 있습니다. 먼저, Glucose와 유사한 솔버의 절 삭제 정책에서 사용되는 충돌 절의 Q 값과 리터럴 블록 거리 측정항목 사이에는 강한 상관관계가 있음을 보여줍니다. 둘째, 회귀 분석을 사용하면 변수 수 또는 절 수와 같은 기존 측정항목보다 실제 SAT 인스턴스 그래프의 커뮤니티 수와 Q 값이 CDCL 솔버의 실행 시간을 더 잘 예측한다는 것을 알 수 있습니다. 마지막으로, 0.05 ≤ Q ≤ 0.13인 무작위로 생성된 SAT 인스턴스는 다른 방식으로보다 CDCL 솔버의 문제를 해결하기가 상당히 어렵다는 것을 보여줍니다.

링크: 동영상, 슬라이드

보증 범위 외: 테스트 모음의 Lurks

패트릭 람(워털루 대학)

우리는 모두 '더 나은' 테스트 모음을 원합니다. 하지만 좋은 테스트 도구 모음은 어떻게 만들어질까요? 물론 테스트 묶음은 적절한 보도 커버리지를 목표로 해야 하며, 적어도 문 범위 수준에서 그러한 노력을 기울여야 합니다. 테스트 묶음을 유용하게 사용하려면 적시에 피드백을 제공해야 합니다.

이 강연에서는 테스트 모음을 평가할 다른 여러 측정기준을 알아봅니다. 강연에서는 더 나은 테스트 모음을 더 쉽게 유지보수할 수 있고 (예: 더 빠르게 실행되거나 리소스를 더 적게 사용) 테스트 가능한 모음이 더 적합하고 부당한 오류가 더 적다고 주장합니다. 이 강연에서는 10개의 오픈소스 테스트 모음 (8,000~246,000줄의 코드)에 대한 사실을 발표하고 종합한 다음 그 결과를 평가합니다.

링크: 동영상, 슬라이드

친환경: 유해한 모바일 환경 정화

토마스 나이니 (Google), 스테판 람사우어 (Google), 발라라 자카로프 (Google), 비샬 세티아 (Google)

대화형 개발 모드와 지속적 통합 모드 모두에서 Android 테스트를 실행하기 위한 빠르고 안정적이며 밀폐된 테스트 환경을 만들기 위한 도구와 기법을 소개합니다. 이는 지난 GTAC에 발표했던 고차원적인 토론을 기반으로 합니다.

링크: 동영상, 슬라이드