Dodatkowe materiały: https://www.dropbox.com/sh/tbf1l7omvopv1rg/AACxbDcdOhpzfF7u9SIWSnqUa/Filmiki%20i%20gify%20z%20prezentacji?dl=0
Testowanie aplikacji mobilnych bywa nie lada wyzwaniem. Niejednokrotnie samo urządzenie testowe jest niewystarczające nawet do przetestowania pojedynczej funkcjonalności, a wykonanie niektórych testów zależy od dostępności do programisty lub zewnętrznego oprogramowania. Istnieją jednak narzędzia ułatwiające pracę, o których marzy każdy tester. Mogą one znacząco wpłynąć na poprawę jakości w projekcie jak i zwiększenie ilości i różnorodności testów, które są przeprowadzane. Podczas prezentacji Dorota skupia się na debug screenie Hyperion, który sprawia, że zyskujemy szereg nowych możliwości, od testowania wydajności aplikacji, po podglądanie zapytań i odpowiedzi API.
7. QA Tool
7
% Aplikacja dostępna w Play Store
% Można wybrać aplikację, którą chcemy zbadać
8. Cockpit
8
% Debug menu dostępne na GitHubie -> Link do repozytorium
% Pozwala zdefiniować parametry widoków, które mogą być użyte w aplikacji bez
konieczności re-kompilowania projektu
9. Chuck
9
% HTTP Inspector dla Androidowego klienta OkHTTP. Dostępny na GitHubie -> Link do
repozytorium
% Pozwala na śledzenie requestów i responsów API
% Działa w trybie multi-window
10. DBDebug Toolkit
10
% Stworzony przez Dariusza Bukowskiego debug
screen dla platformy iOS
% Dostępny na GitHubie -> Link do repozytorium
% Pracuje w tle, wysuwa się na gest ‘shake’
% Umożliwia, m.in.:
○ Przeglądanie danych dotyczących wydajności,
np. CPU
○ Przeglądanie listy requestów i responsów API
○ Symulowanie lokalizacji
○ Szybkie otwieranie ustawień aplikacji lub
sprawdzanie wersji systemu iOS i modelu
telefonu
% Pełna lista funkcjonalności -> click
11. Hyperion - Debug Screen
% Stworzony przez amerykańską firmę WillowTree
% Dostępny na GitHubie:
○ iOS: Link do repozytorium
○ Android: Link do repozytorium
% Dostępny dla Androida i iOS
% Min: Android - SDK 15 (Android 4.0.3), iOS - 9+
% Pracuje w tle, wysuwa się na gest ‘shake’
11
4
13. Przypadek 1.
Brak dostępu do repozytorium
13
- Po prostu! Poproś developera o dodanie Hyperiona do projektu.
- Zdobądź dostęp do repozytorium projektu.
Jeśli potrzebujecie przekonującej argumentacji zapoznajcie się z
blogpostem -> Click
14. 14
Przypadek 2.
Posiadamy dostęp do repozytorium
1. Dodać do bloku dependencies w build.gradle (tym znajdującym
się w module app) linijkę:
2. Dodać wszystkie pluginy składające się na Hyperiona,
którymi jesteśmy zainteresowani (w tym samym bloku
dependencies)
15. 15
No-op, czyli nieoperacyjna wersja
biblioteki
% Zabezpiecza nas przed tym, żeby Hyperion nie pokazał się
przypadkiem w buildzie przeznaczonym do releasu
% W większości przypadków nie będzie potrzebny
% Należy go dodać tylko wtedy, gdy odwołujemy się bezpośrednio
do kodu Hyperiona (np. w celu ustawienia jakiegoś
customowego zachowania tego narzędzia)
16. Aktywacja Hyperiona w aplikacji
16
6
• Fizycznie dostępne urządzenie: Potrząśnij!
• Emulator:
◦ Jeśli uruchamiasz aplikację na emulatorze, możesz manualnie
otworzyć Hyperion menu poprzez Hyperion.open(Activity activity).
◦ Możesz także otworzyć menu klikając na notyfikację, która
pojawia się, gdy aplikacja, do której Hyperion jest wpięty, znajduje
się w foregroundzie.
18. Attributes
Inspector
18
% Pozwala na podejrzenie
parametrów poszczególnych
widoków
% Można dzięki niemu zmienić
tekst danego pola, bez
konieczności rebuildu całej
aplikacji, aby zobaczyć efekt.
20. File Explorer
20
% Umożliwia przeglądanie, usuwanie
i udostępnianie plików aplikacji
% Pliki jakie są tu przetrzymywane to,
np. pliki Shared Preferences,
Cache
22. Measurement
Inspector
22
% Mierzy odstępy pomiędzy
poszczególnymi elementami
aplikacji
% Pomocny przy podejściu Pixel
Perfect
% Pozwala na sprawdzenie
wymiarów marginesów i
paddingów
24. Recorder
24
% Umożliwia nagrywanie ekranu aplikacji
% Nagrane filmiki mogą być udostępnione do innych aplikacji, np. Google Photos,
Google Drive, Slack, Email
25. Shared
Preferences
25
% Pozwala na przeglądanie i zmianę
trwałych danych aplikacji zapisanych
w Shared Preferences
% Pozwala modyfikować nie tylko te
utworzone przez developerów, ale
również te z użytych w projekcie
bibliotek
26. Timber
26
% Pozwala przechwytywać komunikaty zalogowane za pomocą biblioteki Timber
% Tak przechwycone logi, możemy udostępnić przy pomocy różnych zewnętrznych
aplikacji, np. Slack, Gmail
27. Crash plugin
27
% Nie jest widoczny jako opcja
Hyperionowego menu
% Gdy aplikacja się crashuje, zostaje
wyświetlony ekran z logami
dotyczącymi tego crasha
29. Chuck
29
% Link do repozytorium na GitHubie
-> click
% Pozwala na śledzenie requestów i
responsów API
30. AppInfo
30
% Link do repozytorium na GitHubie
-> click
% Ułatwia przejście prosto do
informacji systemowych o
aplikacji
% Z tego poziomu możemy zrobić
wszystko to, na co pozwalają
ustawienia (np. odinstalować
aplikację, zmienić ustawienia
notyfikacji itd.
31. Simple Item
31
% Link do repozytorium na GitHubie
-> click
% Plugin pozwalający na dodawanie
dodatkowych informacji w postaci
kolejnej belki w menu (można
wyświetlić statyczny tekst z ikoną oraz
sprawić, że belka jest klikalna i dodać
dowolną akcję, która ma się zadziać
po jej kliknięciu).
33. Pozostałe pluginy
33
% DBFlow Manager: link do repozytorium na GitHubie -> click
% Kfin-state-machine: link do repozytorium na GitHubie -> click
Kontrybucja
Lista guidelinesów od WillowTree dla zainteresowanych
kontrybuowaniem do Hyperiona -> click
34. Narzędzie bez wad?
Oczywiście, że nie
34
9
% Pop-upy przykrywają Hyperiona
% Wprowadzone zmiany nie są zapamiętywane
% Problematyczne wyświetlanie nagrań z Recordera
% Brak możliwości przeklejenia tekstu w Attribute Inspectorze