GTAC 2016: 프레젠테이션

시작 문구

매트 로우리 (Google)

비즈니스 및 엔지니어링 생산성의 발전

마나시 조시 (Google)

링크: 동영상, 프레젠테이션

이 기조연설에서는 Google의 엔지니어링 생산성 분야가 발전한 과정과 이것이 Google의 비즈니스 성장에 얼마나 중요한 역할을 했는지, 그러한 노력이 어떻게 빠르게 발전하고 안정적인 상태를 유지하며 개발/출시/모니터링 프로세스를 통해 확신을 주는지 설명합니다. 또한 오늘날 우리가 직면하고 있는 몇 가지 도전과제를 파악하고, Google이 연결하는 연결성/카테고리 제품 환경에서 크로스 플랫폼을 테스트하기 위한 새로운 지평을 마련했습니다.

Telepresence 로봇 운전 자동화

Tanya Jenkins (캔틸레버 컨설팅)

링크: 동영상, 프레젠테이션

텔레프레젠스 기기의 운전 인터페이스 테스트는 까다롭습니다. 실제 환경에서 작동하고 사람 및 사물과 상호작용하지만 통제된 환경에서 테스트해야 합니다. 기기가 보이지 않을 때 기기의 위치와 위치를 동시에 검증하면서 현실적인 원격 운전 환경을 만들려면 어떻게 해야 할까요? 혁신적인 솔루션을 제시하겠습니다.

월렛에 무엇이 포함되어 있나요?

히마 만달리 (Capital One)

링크: 동영상, 프레젠테이션

Capital One은 미국 최대의 신용카드사 중 하나로 7천만 개 이상의 계좌를 보유하고 있습니다. Capital One은 고객에게 놀라운 디지털 경험을 제공하는 멋진 제품을 다양하게 만들고 있습니다. 휴대기기가 고객에게 선호되는 채널이 된 가운데, 이 강연에서는 모바일 웹 앱의 테스트 자동화 문제를 어떻게 해결했으며 더 빠른 소프트웨어 배포 파이프라인을 만들기 위해 어떤 노력을 기울였는지에 대해 중점적으로 다룹니다. 또한 사용한 오픈소스 도구와 문제 해결을 위해 구축한 오픈소스 대시보드를 공유합니다.

테스트 실행 자동화 통계를 사용하여 실행할 테스트 예측

Boris Prikhodky (Unity Technologies)

링크: 동영상, 프레젠테이션

테스트는 애플리케이션 개발 프로세스에서 중요한 부분이 되었지만 구세주가 일상에서 병목 현상을 갖게 되었을 때 어떻게 해야 하는지 설명합니다. 여기에서는 테스트 구성을 실행하기 위해 3~6시간을 기다려야 했을 때의 경험을 공유합니다. 이 토론에서는 간단하지만 강력한 접근 방식을 보여줍니다. 빌드 및 테스트 팜에서 친환경 테스트를 실행하는 귀중한 시간을 절약할 수 있습니다. 이 프로세스를 개선할 수 있는 방법도 다룹니다.

Windows 및 Windows Phone용 Selenium 기반 테스트 자동화

니콜라이 아발로프 (2gis)

링크: 동영상, 프레젠테이션

웹 애플리케이션의 테스트 자동화를 위한 Selenium이 있습니다. iOS 및 Android용 모바일 애플리케이션용 Appium이 있습니다. 하지만 Windows 데스크톱과 Windows Phone/Mobile의 경우 자체 Selenium 기반 솔루션을 찾아야 했습니다. Winium이 만들어졌습니다. Winium은 Windows 데스크톱 및 Windows Phone/Mobile 앱의 테스트 자동화를 위한 오픈소스 솔루션입니다. Winium은 Selenium을 기반으로 하므로 Selenium 또는 Appium을 이미 알고 있는 경우 자동화 니즈에 맞게 비교적 쉽게 사용할 수 있어야 합니다. 강연에서는 Winium을 구성하는 프로젝트를 제시하고 Winium.Desktop과 Winium.Mobile이 작동하는 모습을 보여줍니다.

테스트의 Quirkier 측

브라이언 반피 (Google)

링크: 동영상, 프레젠테이션

모든 버그가 동일하게 만들어지는 것은 아닙니다. 가끔 사용하는 프로그래밍 언어에서 문제가 발생하는 경우가 있는데, 이를 봐도 최고의 프로그래머와 테스터조차 발견하지 못하는 경우가 많습니다. 매일 사용되는 여러 언어 중에서 몇 가지 직접 선별된 예시를 보여주는 재미있는 테스트를 재미있게 살펴보세요. 마지막으로 특이사항을 추측해 보겠습니다. C, 자바, Objective-C, PHP와 같이 모두가 좋아하는 자바스크립트로 된 일련의 특이한 예를 소개합니다.

모바일 테스트 환경 설정을 위한 ML 알고리즘

Rajkumar Bhojan (Wipro 기술)

링크: 동영상, 프레젠테이션

모바일 컴퓨팅 기술이 빠르게 발전하면서 휴대기기의 모바일 애플리케이션 테스트에 대한 요구가 크게 증가하고 있습니다. 휴대기기 관리는 모바일 앱 테스트에서 중요한 역할을 하며 휴대기기 관리 문제를 해결하는 것만큼이나 중요합니다. 기기별 문제를 방지하려면 테스트 자동화 개발자는 많은 기기에서 앱을 테스트해야 하는데, 이 과정에서 비용과 비용이 많이 듭니다. 이 강연에서는 머신러닝 알고리즘이 모바일 테스트 환경 설정에 적합한 기기 집합을 식별하는 방법을 설명합니다.

"내 말 들려?" - 오디오 품질 테스트에서 살아남음

Alexander Brauckman, Dan Hislop (Citrix)

링크: 동영상, 프레젠테이션

IATF: 새로운 자동화된 교차 플랫폼 및 다중 기기 API 테스트 프레임워크

Yanbin Zhang (Intel)

링크: 동영상, 프레젠테이션

Intel은 WebRTC 기술의 채택을 간소화하고 새로운 애플리케이션을 확장하거나 만들 수 있도록 광범위하게 사용할 수 있도록 엔드 투 엔드 WebRTC 솔루션인 WebRTC용 Intel® 공동작업 제품군을 개발했습니다. 현재 Intel은 이미 WebRTC용 Intel® 공동작업 제품군 생태계를 전 세계적으로 구축하고 있습니다. 협력을 통해 교육, 의료, 산업 클라우드, 소셜 미디어 온라인 방송, 화상 회의, 웨어러블 등을 비롯한 다양한 영역을 포괄합니다. SDK API에 지원되는 플랫폼이 빠르게 증가하면서 교차 플랫폼 호환성 및 통합 테스트 작업이 폭발적으로 증가하고 있습니다. 서로 다른 플랫폼에 있는 이러한 다양한 SDK 간의 상호 운용성을 자동으로 테스트하는 방법은 문제가 됩니다. 이 강연에서는 Automated Cross-platform and Multi-device API Test Framework-IATF를 소개합니다. 여러 플랫폼에서의 통신이 필요한 모든 교차 플랫폼 및 다중 기기 SDK 테스트에 채택할 수 있습니다.

소프트웨어 테스트에 공식 개념 분석 사용

Fedor Strok (Yandex/NRU HSE)

링크: 동영상, 프레젠테이션

공식 개념 분석은 설명 (속성 세트로 표현됨)과 함께 객체 집합에 대한 공식 온톨로지를 빌드하는 도구 모음을 제공합니다. 이 대수 이론 분기는 1984년에 도입되었으며 현재 다양한 데이터 마이닝 작업에 적용됩니다. 이 강연에서는 소프트웨어 테스트에 특히 유용할 수 있는 기법에 대해 집중적으로 다룹니다. 즉, 편리한 테스트 보고서를 위해 공식 온톨로지를 사용하고 반자동 테스트 사례 파생을 사용하는 기법에 중점을 둡니다.

지속적 통합의 불안정 테스트: Google의 현재 관행 및 향후 방향

존 미코 (Google)

아티프 메몬 (메릴랜드 대학교, 칼리지 파크)

링크: 동영상, 프레젠테이션

Google은 방대한 지속적 통합 시스템에서 엄청난 양의 테스트를 지속적으로 진행하고 있습니다. 이 데이터를 살펴보면 불안정한 테스트로 인해 여러 차원에서 상당한 낭비가 발생한다는 것을 알 수 있습니다. 시스템에 미치는 영향을 이해하고, 본질적으로 발생하는 취약점을 감지하고 완화하기 위해 노력하고 있습니다.

개발자 환경, FTW!

니란잔 툴풀 (Google)

링크: 동영상, 프레젠테이션

Docker 기반 지역 분산 테스트 팜 - Intel Android 프로그램의 테스트 인프라 연습

제리 유 (인텔) 및 구빙 첸 (인텔)

링크: 동영상, 프레젠테이션

OpenHTF - 오픈소스 하드웨어 테스트 프레임워크

조 에티어 (Google)와 존 호울리 (Google)

링크: 동영상, 프레젠테이션

루프 효율 감지를 위한 테스트 생성 안내

모니카 독 (Indian Institute of Science)

링크: 동영상, 프레젠테이션

많은 자바 라이브러리에서 중복된 루프 순회가 성능 버그의 원인으로 확인되었습니다. 그 결과 이러한 성능 버그를 자동으로 감지하는 정적 및 동적 분석 기법이 개발되었습니다. 그러나 동적 분석의 효과는 분석된 입력 테스트에 따라 다르지만 정적 분석은 이러한 문제의 존재 여부를 자동으로 검증하고 수정사항의 유효성을 검사하고 향후 버전에서 회귀를 방지하는 데 효과적이지 않습니다. 자바 라이브러리에서 루프 비효율성을 자동으로 감지하는 테스트를 생성하는 새로운 접근 방식을 제안합니다. 이 강연에서는 이 작업에 대해 간략히 설명합니다.

속도의 필요성 - 자동화 테스트 3시간~3분 가속화

Emanuil Slavov (Komfo Inc)

링크: 동영상, 프레젠테이션

오늘날과 같이 빠르게 발전하는 첫 번째 환경의 경우에는 높은 수준의 자동화된 테스트가 더 느립니다. 이 방은 모두가 무시하는 코끼리입니다. 합당한 이유가 있습니다. 빠르고 안정적이며 유용한 자동 테스트를 달성하는 것은 어려운 작업입니다. 하지만 어떤 방법도 선택할 수 없습니다. 느린 자동 테스트 덕분에 고객에게 더 빠르게 배급을 제공하고 있습니다. Komfo에서는 매일 밤 3시간 넘게 테스트를 진행했습니다. 실행 시간이 무제한으로 늘어났습니다. 테스트가 불안정해졌고 피드백 루프로 사용할 수 없었습니다. 한 시점에 테스트가 연속으로 20일 넘게 실패했습니다. 프로덕션에서 회귀 버그가 나타나기 시작했습니다. Google은 이 엄청난 흥망을 멈출 것을 결정했고, 상당한 노력과 헌신을 바탕으로 현재는 3분 미만의 동일한 테스트를 실행합니다. 테스트에서 60배 더 빠른 테스트를 거친 지속적 개선 사례입니다.

코드 적용 범위는 실제 테스트 도구 모음의 효과를 효과적으로 예측할 수 있는 요인입니다.

라훌 고피나스 (오리건 주립대학교)

링크: 동영상, 프레젠테이션

ClusterRunner: 수평 확장을 통해 빠른 테스트 피드백 제공

이준준 (Box Inc) 및 조셉 해링턴 (Box Inc)

링크: 동영상, 프레젠테이션

Box는 커밋할 때마다 약 30시간의 단위 테스트와 통합 테스트를 실행합니다. 오픈소스 테스트 배포 플랫폼인 ClusterRunner를 사용하여 17분 이내에 실행할 수 있습니다. Box에서 이렇게 많은 테스트를 진행하는 이유는 무엇인가요? ClusterRunner의 작동 방식 자체 테스트를 위해 ClusterRunner를 쉽게 설정할 수 있나요? (스포일러: 네.) ClusterRunner를 사용하면 한 호스트에서 테스트를 병렬 처리하고 여러 호스트에 분산하여 매우 빠르게 테스트 피드백을 얻을 수 있습니다. Box의 생산성 엔지니어링팀이 개발한 Google은 내부적으로 ClusterRunner를 사용하여 17분 동안 30시간 이상 분량의 테스트를 실행하고 있으며 매일 수백 번 실행합니다. ClusterRunner는 오픈소스이며 언어에 구애받지 않으므로 프로젝트에 쉽게 사용할 수 있습니다. Google은 긴 테스트 의견 지연이나 테스트 부족 코드 때문에 어려움을 겪는 엔지니어링팀을 위해 ClusterRunner를 만들었습니다. 사용하기 쉽고 처음부터 기존 CI 시스템과 통합할 수 있도록 설계되었습니다. 테스트를 실행하는 데 걸리는 시간을 학습하고 향후 실행을 예약하여 최대한 빠르게 의견을 전달합니다. 구성요소는 친숙한 REST API를 통해 통신하므로 액세스와 확장이 모두 가능합니다.

여러 휴대기기 및 서비스를 사용한 통합 테스트

Alexander Dorokhine (Google) 및 Ang Li (Google)

링크: 동영상, 프레젠테이션

Mobly는 소셜 미디어와 같이 여러 기기 간의 상호작용이 필요한 제품 또는 Wi-Fi 연결과 같은 테스트 환경을 제어해야 하는 테스트를 위해 Google에서 개발한 오픈소스 프레임워크입니다. 다중 기기 테스트가 단일 기기 테스트와 어떻게 다른지, 그리고 여러 기기 간의 동기화 및 코드 흐름과 같은 고유한 문제와 Mobly에서 이를 해결하는 방법에 관해 논의합니다.

규모와 가치 비교: BBC의 테스트 자동화

지테시 고사이 (BBC) 및 데이비드 벅허스트 (BBC)

링크: 동영상, 프레젠테이션

모바일 기기 및 TV 애플리케이션 테스트를 확장하기 위해 사내 오픈소스 기기 클라우드를 구축했지만, 꽤 빠르게 성장하면서 자동화에 대한 접근방식을 재고하고 규모와 가치 사이에서 올바른 균형을 찾아야 했습니다. 집중된 자동화와 공유 소유권을 통해 기기 내 테스트의 문제를 어떻게 해결했는지 알아보세요. 또한 내부 기기 클라우드를 빌드하고 오픈소스 도구를 활용하는 방법도 살펴봅니다.

LibFuzzer를 사용하여 C++ 라이브러리에서 버그 찾기

코스티아 세레브리야니 (Google)

링크: 동영상, 프레젠테이션

서버 비정상 종료 테스트를 학습한 방법

조나단 아브라함스 (MongoDB)

링크: 동영상, 프레젠테이션

다양한 시스템 비정상 종료 시나리오를 극복하기 위해 MongoDB 서버의 견고성을 테스트한 방법을 알아보세요. 모든 유형의 OS 및 호스트 구성 (물리적 또는 가상)의 서버 비정상 종료를 자동화하는 방법을 알아보세요.