GTAC 2013: prezentacje

Uwagi otwierające

Tony Voellm (Google)

Prezentacja otwierająca – ewolucja od kontroli jakości do inżynierii

Ari Shamash (Google)

Aplikacja została utworzona przez Ciebie. Myślisz, że dasz radę na niej zaistnieć, zgromadzisz pewną liczbę pieniędzy, uzyskasz trochę funduszy, wdrożysz ją i będziesz zacząć od początku, aby wszystko stworzyć od podstaw. Żądania nowych funkcji są jednak nadal wysokie. Obecnie prosimy o stosowanie się do bezprecedensowych skali. Kurza twarz! Co dalej?

Nie możesz zrezygnować z aplikacji i zacząć od zera, wystarczy, że zmienisz swoje obecne rozwiązania i jednocześnie dodasz wysokiej jakości funkcje w zachwycającej szybkości. Dodatkowo musisz się upewnić, że wszystko, co już istnieje, nie zostanie uszkodzone. Jak to zrobić? Na szczęście w branży oprogramowania tworzy się nowe pole, które odpowiada tym typowym scenariuszom: w Google nazywamy to „inżynierią testową”.

W tym wykładzie skupimy się na zagadnieniach związanych z analizą testów i rozwoju metod kontroli jakości oraz na tym, jak firma wdrożyła inżynierię testową (z konkretnymi przykładami implementacji w Google).

Testowanie systemów na dużą skalę @Twitter

James Waldrop (Twitter)

James omówimy narzędzia, proces i filozofię, które sprawdzą się w testach skuteczności na Twitterze. Przede wszystkim zwróć uwagę na bibliotekę reklam typu open source Iago, którą stworzył, aby zespoły inżynierów na Twitterze mogły przeprowadzić testy obciążenia przed wdrożeniem kodu do środowiska produkcyjnego. W tym materiale omówimy szczegóły wdrożenia niektórych z tych testów (w tym kod źródłowy) oraz sposoby zarządzania skomplikowanymi czynnikami, takimi jak protokół OAuth czy dowolne protokoły Thrift.

Jak przetestować mobilną wersję systemu operacyjnego?

David Burns (Mozilla) i Malini Das (Mozilla)

Ten problem napotkał Mozillę, gdy zdecydowaliśmy się wejść w świat FireOS. Od czego zacząć i jak to zrobić, pokazało się interesujące zadanie. Zobacz, jak rozwiązaliśmy ten problem i jak stworzyliśmy nową platformę.

Automatyzacja mobilna w ramach ciągłego dostarczania

Igor Dorovskikh (Expedia) i Kaustubh Gawande (Expedia)

Firma Expedia zaczęła inwestować w aplikacje mobilne oraz aplikacje na iOS i Androida na początku 2012 r. Jednocześnie testerzy zaczęli opracowywać rozwiązania do automatyzacji testów, aby od samego początku przygotowywać produkty pod kątem jakości i możliwości testowania. W tym materiale podzielimy się naszym doświadczeniem i wiedzą na temat wykorzystania narzędzi open source do tworzenia automatycznych testów w środowisku programistycznym i ciągłym. Porozmawiamy o piramidzie testowej i przejrzymy więcej konkretnych narzędzi open source, które dobrze się sprawdziły. Używamy w nich narzędzi open source, takich jak Cucumber, internetowy system automatyzacji, Selenium-WebDriver, automatyka iOS, Frank, narzędzia do automatyzacji Androida, Robotium czy Calabash, czy system ciągłej integracji, Jenkins. Dodatkowo przedstawimy niektóre zasady dotyczące sprawnego działania, które chcemy wdrożyć, takie jak akcja TDD, programowanie par, tworzenie i testowanie. Na koniec opowiem o korzyściach, jakie uzyskaliśmy dzięki inwestycjom w metodyki elastyczne i testowanie, a także o tym, jak pomagają nam one realizować cele ciągłego dostarczania.

Automatyczne testowanie dekoderów za pomocą GStreamer i OpenCV

David Röthlisberger (Ty)

W ciągu 3 minut stworzymy system rozpoznawania obrazów wykorzystujący narzędzia wiersza poleceń i OpenCV narzędzia GStreamer. (GStreamer to platforma do obsługi multimediów typu open source; OpenCV – „Open Computer Vision” – to biblioteka open source do przetwarzania obrazów).

Dobrym przykładem takiego systemu jest http://stb-tester.com – narzędzie typu open source opracowane w serwisie YouView, które automatyzuje testowanie interfejsu dekoderów przez interfejs użytkownika. Omówimy szczegółowo program stb-tester, elastyczność oferowana przez narzędzia GStreamer, niektóre możliwości oraz wyzwania przed nim.

WebDriver w Chrome

Ken Kania (Google)

Od samego początku przeglądarka była dostępna tylko w systemie Windows i działała na komputerach z systemem macOS, Linux i ChromeOS, a najnowszym także na urządzeniach z Androidem i iOS. Testowanie na poziomie użytkownika aplikacji internetowych na tych platformach było trudne i wymagało różnych metod automatyzacji. W tym materiale omówiono działania, które robi zespół Chrome, aby udostępnić funkcję WebDriver w Chrome na wszystkich platformach. Omówimy tutaj proces techniczny i pokażemy, jak deweloperzy mogą tworzyć nowe testy różnych platform Chrome przy użyciu nowej wersji ChromeDriver. Omówimy też aktualny stan projektu oraz plan działań na przyszłość.

Karma – Test Runner dla JavaScriptu

Vojta Jina (Google)

Wprowadzenie do Karmy – programu uruchamiającego, który testuje aplikacje JavaScript w praktycznych i przyjemnych przeglądarkach.

Testy nie są opcjonalne, jeśli tworzysz aplikację JavaScript, która musi działać w wielu przeglądarkach i na różnych urządzeniach. Jednak testy we wszystkich tych środowiskach są trudne. Karma skrupulatnie radzi sobie z trudnymi zadaniami. Umożliwia wykonywanie testów JavaScript w rzeczywistych przeglądarkach lub na urządzeniach, takich jak telefon czy tablet, bezpośrednio z poziomu terminala lub ulubionego środowiska IDE.

Automatyczne pomiary jakości filmów

Patrik Höglund (Google)

Tak, można automatycznie testować złożone, subiektywne pomiary, takie jak jakość filmu. W tym artykule pokazujemy, jak stworzyliśmy ciągły, pełny, kompleksowy test rozmowy wideo WebRTC. Zapoznamy się z całym łańcuchem narzędzi i poznamy wyzwania, z którymi się zmagaliśmy podczas jego tworzenia. To świetne rozwiązanie, jeśli szukasz inspiracji w zakresie testowania mediów.

Co się dzieje w przypadku dobrych aplikacji...

Minial Mishra (Netflix)

Boom w chmurze na komórki i tablety zawyżało branżę oprogramowania dzięki platformom do tworzenia aplikacji. Tworzenie aplikacji konsumenckich na platformach obliczeniowych ma własne, niesamowite doświadczenia dla użytkowników. Firmy tworzące takie aplikacje zawsze starają się jak najlepiej przygotować swoją aplikację. Jednak największe wyzwanie przy tworzeniu aplikacji rozpoczyna się dopiero po wdrożeniu pierwszej wersji aplikacji. Konsumenci i producenci oprogramowania chcą jak najszybciej oferować najnowsze funkcje w najwyższej jakości. Powoduje to stały rezygnacja z kodu na każdej warstwie stosu. Jako inżynierowie automatyzacji UI opracowujemy różne systemy wykrywania problemów z aplikacjami szybciej niż później. W tej prezentacji przedstawię niektóre wyzwania i sukcesy stojące za tym systemem wykrywania, który pomógł znaleźć problemy poza warstwą aplikacji, ale negatywnie wpływa na wrażenia użytkownika.

Testowanie do celów edukacyjnych i gier edukacyjnych

Tao Xie (Uniwersytet Karoliny Północnej)

W trakcie tej prezentacji prezentujemy usługę Pex4Fun (http://www.pexforfun.com/), która korzysta z automatycznego generowania testów, aby umożliwić systemowi automatyczne ocenianie w systemie programowania online, który można skalować do setek tysięcy użytkowników. Oferuje możliwość programowania w klasie, poza szkołą, w trakcie nauki umiejętności programowania i umiejętności w zakresie inżynierii oprogramowania, w tym umiejętność pisania testów jednostkowych z parametrami. Pex4Fun w znacznym stopniu przyczynia się do rozwiązania znanego problemu oceniania projektów, a także zapewnia zabawę w naukę opartą na interaktywnych grach. Pex4Fun zyskuje na popularności w społeczności: od chwili opublikowania go w czerwcu 2010 roku liczba kliknięć przycisku „Zapytaj Pex!” (wskazująca na to, że użytkownicy próbowali rozwiązywać gry w Pex4Fun), przekroczyła milion milionów na początku 2013 roku.

Zakończenie prezentacji – jak Facebook testuje Facebooka na Androidzie

Simon Stewart (Facebook)

Facebook to jedna z najpopularniejszych aplikacji na Androida. W tej prezentacji dowiesz się, co robi Facebook, aby zapewnić najwyższą jakość każdej wersji. Pokażemy, jak zarządzać kodem i podejść do testów, a nawet testy.