GTAC 2016: prezentacje

Uwagi wstępne

Matt Lowrie (Google)

Ewolucja biznesu i inżynierii produktywności

Manasi Joshi (Google)

Linki: Wideo, Prezentacje

W tej prezentacji omawiamy przebieg ewolucji dyscypliny technologicznej w Google i pokazujemy, jak bardzo to wpłynęło na wzrost firmy w szybkim tempie, zachowanie stabilności i pewność zaufania podczas procesu programowania, publikowania i monitorowania. Wskażemy też niektóre z obecnych wyzwań oraz nowe możliwości testowania różnych platform w produktach Google w dużej branży lub w dużej branży.

Automatyzowanie przejazdu robota indeksującego

Tanya Jenkins (doradztwo w zakresie Cantilever)

Linki: Wideo, Prezentacje

Testowanie interfejsu nawigacji na urządzeniu do teleobecności jest trudnym zadaniem. Działa w rzeczywistym świecie, wchodzi w interakcje z ludźmi i obiektami, ale musi być testowana w kontrolowanym środowisku. Co trzeba zrobić, aby utworzyć realistyczne środowisko zdalnej jazdy, a jednocześnie sprawdzić lokalizację i pozycję urządzenia, gdy nie jest ono widoczne? Przedstawię innowacyjne rozwiązanie.

Co masz w Portfelu?

Hima Mandali (Capital One)

Linki: Wideo, Prezentacje

Capital One jest jedną z największych firm oferujących karty kredytowe w Stanach Zjednoczonych, mających ponad 70 milionów kont. W Capital Capital tworzymy wiele ciekawych produktów, które zapewniają naszym klientom wyjątkowe cyfrowe wrażenia. Skoro urządzenia mobilne stały się preferowanym kanałem dla naszych klientów, skupimy się na tym, jak rozwiązaliśmy problem z automatyzacją testową w aplikacjach mobilnych i co zrobiliśmy, aby przyspieszyć proces dostarczania oprogramowania. Udostępnimy także narzędzia open source, z których korzystaliśmy, oraz panel open source, który stworzyliśmy z myślą o rozwiązywaniu problemów.

Korzystanie ze statystyk automatyzacji uruchamiania w celu przewidywania, które testy należy przeprowadzić

Boris Prikhodky (Unity Technologies)

Linki: Wideo, Prezentacje

Testy odgrywają kluczową rolę w procesie tworzenia aplikacji, ale co zrobić, gdy w codziennym życiu jest gorzej. Prezentujemy nasze doświadczenie w zakresie czasu konfiguracji testu, który wynosi 3–6 godzin. W tej rozmowie przedstawiliśmy proste, ale skuteczne podejście, które pozwala zaoszczędzić cenny czas związany z prowadzeniem zielonych testów na budowie i gospodarstwie testowym. Omówimy też możliwe sposoby ulepszenia tego procesu.

Automatyzacja testów opartych na selenach w systemach Windows i Windows Phone

Nikolai Abalov (2gis)

Linki: Wideo, Prezentacje

Istnieje program Selenium służący do testowania automatyzacji aplikacji internetowych. Dostępna jest usługa Appium dla aplikacji mobilnych na iOS i Androida. Jednak w przypadku Windows Desktop i Windows Phone/Mobile musieliśmy opracować rozwiązanie oparte na selenium. Winium powstał. Winium to rozwiązanie open source do automatyzacji testów aplikacji Windows Desktop oraz Windows Phone/Mobile. Winium jest oparty na selenze, więc można go stosunkowo łatwo używać do automatyzacji, jeśli znasz już Selen lub Appium. Można ją zintegrować z dotychczasową infrastrukturą selenową. W trakcie prezentacji zaprezentuję projekty, które składają się na Winium.

Testy w wersji Quirkier

Brian Vanpee (Google)

Linki: Wideo, Prezentacje

Nie wszystkie błędy są jednakowe. Czasem błędy w językach programowania, których używamy, są często nie dostrzegane nawet wśród najlepszych programistów i testerów. Dołącz do nas i weź udział w testach pokazujących starannie wybrane przykłady z wielu języków, których używamy na co dzień. Na koniec spróbujmy odgadnąć, jakie dziwne przykłady prezentujemy w serwisach nietypowych, takich jak C, Java, cel-C, PHP i powszechnie popularne – JavaScript.

Algorytm systemów uczących się do konfigurowania środowiska testowego na urządzeniach mobilnych

Rajkumar Bhojan (technologie Wipro)

Linki: Wideo, Prezentacje

Ze względu na dynamiczny rozwój technologii mobilnych zapotrzebowanie na testowanie aplikacji na urządzenia mobilne jest duże. Zarządzanie urządzeniami mobilnymi odgrywa kluczową rolę w testowaniu aplikacji mobilnych, a zrozumienie problemów, jakie daje zarządzanie urządzeniami mobilnymi, jest równie ważne jak ich rozwiązanie. Aby uniknąć problemów związanych z konkretnym urządzeniem, testerzy automatyzacji muszą przetestować swoje aplikacje na dużej liczbie urządzeń, co jest kosztowne i nieefektywne. W tym filmie pokazujemy, jak algorytm systemów uczących się może zidentyfikować odpowiedni zestaw urządzeń do konfiguracji środowiska testowego na urządzeniach mobilnych.

„Czy słyszysz mnie?” – przetrwanie kontroli jakości dźwięku

Alexander Brauckman i Dan Hislop (Citrix)

Linki: Wideo, Prezentacje

IATF: nowa zautomatyzowana platforma API do testowania wielu platform i urządzeń

Yanbin Zhang (Intel)

Linki: Wideo, Prezentacje

Aby ułatwić korzystanie z technologii WebRTC i umożliwić ich szerokie rozszerzanie lub tworzenie nowych aplikacji, firma Intel opracowała kompleksowe rozwiązanie WebRTC – pakiet Intel® Collaborat Suite dla WebRTC. Obecnie Intel gromadzi już rozwijający się ekosystem Intel® Collaborat Suite dla WebRTC na całym świecie. Współpraca obejmuje różne obszary, w tym edukację, medycynę, chmurę przemysłową, transmisje online w mediach społecznościowych, konferencje wideo i urządzenia do noszenia itp. Szybko rozwijająca się liczba obsługiwanych platform interfejsów API pakietu SDK znacznie przyspiesza testy zgodności i integracji na różnych platformach. Dużym problemem jest dla niej automatyczne testowanie interoperacyjności między różnymi pakietami SDK na różnych platformach. W tej prezentacji przedstawimy platformę do automatycznej weryfikacji interfejsu API wieloplatformową i na wiele urządzeń. Można je stosować w przypadku testów na wielu platformach i wielu urządzeniach, które wymagają komunikacji na różnych platformach.

Wykorzystanie Formal Concept Analysis do testowania oprogramowania

Fedor Strok (Yandex/NRU HSE)

Linki: Wideo, Prezentacje

Formalna koncepcja koncepcyjna udostępnia zestaw narzędzi do tworzenia oficjalnej ontologii nad zestawem obiektów z opisami (wyrażonymi jako zestaw atrybutów). Ta gałąź teorii algebraicznej powstała w 1984 roku i obecnie jest wykorzystywana w wielu zadaniach związanych z eksploracją danych. Omówimy tu techniki, które mogą być szczególnie przydatne do testowania oprogramowania: używanie formalnej ontologii do wygodnych raportów testowych i automatyczne generowanie testów testowych.

Jak niespójne testy są przeprowadzane w ramach ciągłej integracji: obecne praktyki w Google i przyszłe kierunki

John Micco (Google)

i

Atif Memon (University of Maryland, College Park)

Linki: Wideo, Prezentacje

Google ma ogromny zbiór testów, które przeprowadzamy w naszym olbrzymim systemie ciągłej integracji. Analizując te dane, zauważamy, że niepewny test przyczynia się do marnotrawstwa w kilku różnych wymiarach. Pracujemy nad ulepszeniem funkcji, która umożliwia nam wykrycie wpływu, wykrycie i złagodzenie niepewnego poziomu niepewności, który widzimy w naszym systemie.

Doświadczenia programistów

Nilpan Tulpule (Google)

Linki: Wideo, Prezentacje

Rozproszone gospodarstwo testowe oparte na Dockerze opartym na Dockerze – program testowy infrastruktury w programie Intel Android

Jerry Yu (Intel) i Guobing Chen (Intel)

Linki: Wideo, Prezentacje

OpenHTF – platforma open source do testowania sprzętu

Joe Ethier (Google) i John Hawley (Google)

Linki: Wideo, Prezentacje

Skierowano test do generowania nieskutecznych pętli

Monika Dhok (Indyjski Instytut Nauki)

Linki: Wideo, Prezentacje

Zbędne przemierzanie pętli zostało zidentyfikowane jako źródło błędów dotyczących wydajności w wielu bibliotekach Java. W efekcie opracowaliśmy statyczne i dynamiczne techniki analizy, które automatycznie wykrywają te błędy wydajności. Chociaż skuteczność analiz dynamicznych zależy od analizowanych testów wejściowych, analizy statyczne są mniej skuteczne w automatycznej weryfikacji obecności tych problemów, sprawdzaniu poprawek i unikaniu regresji w przyszłych wersjach. Proponujemy nowatorskie podejście do automatycznego generowania testów służących do wykrywania niespójności bibliotek w języku Java. W tej prezentacji znajdziesz krótkie omówienie.

Potrzebna prędkość – testowanie automatyzacji w 3 godziny do 3 minut

Emanuil Slavov (Komfo Inc)

Linki: Wideo, Prezentacje

Wszystkie testy automatyczne na najwyższym poziomie są powolne w obecnym, szybko działającym środowisku. Jest to słoń w pokoju, który wszyscy ignorują. I nie bez powodu. Osiągnięcie szybkich, niezawodnych i przydatnych automatycznych testów to ciężka praca. Nie masz jednak wyboru – z powodu powolnych testów, wysyłasz śmieci do klienta jeszcze szybciej. W firmie Komfo miało ponad 3 godziny conocnych testów. Czas wykonywania nie zmniejszał się. Testy były niestabilne i bezużyteczne jako pętla informacji zwrotnych. W tym czasie okres testów trwał ponad 20 dni z rzędu. Błędy regresji zaczęły pojawiać się w wersji produkcyjnej. Postanowiliśmy zaprzestać tego szaleństwa i po intensywnych wysiłkach i poświęceniu obecnie te same testy trwają mniej niż 3 minuty. To historia ciągłego ulepszania, która pozwoliła nam osiągnąć 60-krotnie szybsze testy.

Zasięg kodu jest doskonałym narzędziem do prognozowania skuteczności pakietów testowych w rzeczywistości

Rahul Gopinath (Uniwersytet Stanowy Oregonu)

Linki: Wideo, Prezentacje

Klaster klastra: szybkie przekazywanie opinii z testów za pomocą skalowania poziomego

Taejun Lee (Box Inc) i Joseph Harrington (Box Inc)

Linki: Wideo, Prezentacje

Box przeprowadza około 30 godzin testów jednostkowych i integracji przy każdym zatwierdzeniu. Równolegle uruchamiamy je w niecałe 17 minut, używając naszej platformy open source do dystrybucji testów – klastrów Runner. Dlaczego Box ma tyle testów? Jak działa klaster Runner? Czy łatwo jest skonfigurować klaster Runner na potrzeby własnych testów? (Spoiler: Tak). Narzędzie klastrów Runnerner zapewnia niewiarygodnie szybkie przesyłanie opinii przez przeprowadzanie testów równolegle na jednym hoście i rozsyłanie informacji między wieloma hostami. Za pomocą klastra RunRunner wewnętrznie korzystamy z zespołu inżynierów ds. produktywności w Box. Jesteśmy w stanie wykonywać ponad 30 godzin testów liniowych w ciągu 17 minut i robimy to setki razy dziennie. Narzędzie RunRunner jest dostępne na licencji open source i nie wymaga znajomości języka, więc możesz z niego łatwo korzystać w swoim projekcie. Stworzyliśmy klaster Runner dla zespołów inżynierów, które zmagają się z długimi opóźnieniami testowania lub nietestowanym kodem. Opracowaliśmy ją od podstaw, aby była łatwa w użyciu i mogła zostać zintegrowana z dotychczasowym systemem CI. Uczy się on do przeprowadzania testów i planuje przyszłe testy, aby jak najszybciej przekazywać opinie. Jej komponenty komunikują się za pomocą przyjaznego interfejsu API typu REST, dzięki czemu są zarówno łatwo dostępne, jak i rozszerzone.

Testowanie integracji z wieloma urządzeniami mobilnymi i usługami

Alexander Dorokhine (Google) i Ang Li (Google)

Linki: Wideo, Prezentacje

Mobly to opracowane przez Google środowisko open-source do testowania produktów, które wymagają interakcji na wielu urządzeniach, takich jak aplikacje społecznościowe, lub testów, które wymagają kontrolowania środowiska testowego, np. połączenia Wi-Fi. W tym module omówimy różnice między testowaniem na różnych urządzeniach a ich niepowtarzalnymi problemami, takimi jak synchronizacja i przepływ kodu na wielu urządzeniach. Omówimy w nim również, jak firma Mobly rozwiązuje te problemy.

Skalowanie a wartość: testowanie automatyzacji w BBC

Jitesh Gosai (BBC) i David Buckhurst (BBC)

Linki: Wideo, Prezentacje

Stworzyliśmy chmurową aplikację typu open source do skalowania testów naszych aplikacji mobilnych i telewizyjnych. Szybko jednak stała się potworem, który zmusił nas do ponownego przemyślenia naszego podejścia do automatyzacji i uzyskania właściwej równowagi między skalą a wartością. Dowiedz się, jak rozwiązaliśmy problemy z testowaniem na urządzeniu z wykorzystaniem automatyzacji i wspólnej własności. Dowiedz się też, jak stworzyć własną chmurę urządzeń i wykorzystać nasze narzędzia open source.

Znajdowanie błędów w bibliotekach C++ za pomocą LibFuzzer

Kostya Serebryany (Google)

Linki: Wideo, Prezentacje

Jak nauczyłam się testować serwer

Jonathan Abrahams (MongoDB)

Linki: Wideo, Prezentacje

Dowiedz się, jak testowaliśmy solidność serwera MongoDB, aby przetrwał różne scenariusze awarii systemu. Dowiedz się, jak zautomatyzować awarię serwera dowolnego typu systemu operacyjnego i konfiguracji hosta (fizycznego lub wirtualnego).