100510323

Page 1


Spis

treści

Wprowadzenie

Adam Roman, Karolina Zmitrowicz

1. Automatyzacja testów

Natalia Krawczyk

1.1. Opis przypadku

1.2. Rozwiązanie problemu

1.3. Podsumowanie

1.4. Wnioski, zalecenia, rekomendacje

2. Testowanie mobilne

Piotr Wicherski

2.1. Opis przypadku

2.2. Fragmentacja

2.3. Koszt urządzeń i rozproszenie zespołów

2.4. Problemy i wyzwania

2.4.1. Dobór urządzeń

2.4.2. Zasilanie

2.4.3. Chłodzenie

2.4.4. Przygotowanie urządzeń

2.4.5. Przygotowanie

2.4.6.

2.4.7. Organizacja

2.4.8.

2.4.9. Analiza rozwiązań w chmurze

2.4.10. Rozliczanie czasu dostępu

2.4.11. Analiza rozwiązania lokalnego

2.4.12. Potencjalne zalety posiadania laboratorium urządzeń mobilnych

2.4.13. Potencjalne wady posiadania laboratorium urządzeń mobilnych

2.4.14. Możliwości rozwoju

2.4.15. Sprzęt .

2.4.16. Wnioski, zalecenia, rekomendacje

3. Testowanie aplikacji mobilnych

Ewa Ludwiczak (Bielska), Tomasz Mnich

3.1. Opis przypadku

3.2. Główne różnice między testowaniem aplikacji mobilnych a aplikacji desktopowych i webowych

3.3. Fragmentacja

3.3.1. Opis przypadku

3.3.2. Rozwiązanie problemu

3.4. Automatyzacja testów

3.4.1. Opis przypadku

3.4.2. Rozwiązanie problemu

3.5. Wsparcie osób z dysfunkcjami wzroku w korzystaniu z aplikacji

3.5.1. Opis przypadku

3.5.2. Rozwiązanie problemu

3.6. Imitowanie odpowiedzi API

3.6.1. Opis przypadku

3.6.2. Rozwiązanie problemu

3.7. Testy aplikacji w zmiennych warunkach sieciowych

3.7.1. Opis przypadku

3.7.2. Rozwiązanie problemu

3.8. Skąd czerpać wiedzę o działaniu aplikacji w środowisku produkcyjnym

3.8.1. Opis przypadku

3.8.2. Rozwiązanie problemu

3.9. Podsumowanie

4. Testy użyteczności – badanie użyteczności sklepów internetowych ze zdrową żywnością

Emilia Feliks, Magdalena Damaschke, Adrian Modzelewski

4.1. Opis przypadku

4.2. Rozwiązanie problemu

4.3 Metodologia badania

4.4. Wyniki przeprowadzonych badań – analiza i rekomendacje

4.5. Wnioski i zalecenia

5. Testy wydajności

Jacek Okrojek

5.1. Wprowadzenie

5.2. Testy wydajności w końcowej fazie projektu

5.3. Brak lub nieprecyzyjne wymagania

5.4. Zbyt ogólne założenia dla testów

5.5. Podsumowanie

6. Wdrożenie testów eksploracyjnych w dużej

Radosław Smilgin

6.1. Opis przypadku

6.2. Świadomość testowania eksploracyjnego

6.3. Punkt startowy

6.4. Decyzja

6.5. Techniki i zasady testowania

6.5.1. Testowanie sterowane kontekstem

6.5.2. Sesja

6.5.3. Narzędzia

6.5.4. Inne techniki

6.5.5. Raportowanie

6.5.6. Środowiska

6.5.7. Funkcje

6.5.8. Czas

6.5.9. Wyniki sesji

6.5.10. Inne raporty

6.5.11. Łączenie raportów

6.5.12. Sprawozdanie

6.6. Podsumowanie

7. Fenomen i prostota

7.1. Opis przypadku

7.2. Uwarunkowania

7.3. Pomysł

7.4. Spotkanie organizacyjne

7.5. Pierwsze kroki

7.6. Ustalenia

7.7. Decyzje

7.8. Prace

7.9. Jakość

7.10. API

7.11. Panel aplikacji

7.12. Platforma aplikacji

7.13. Testy alfa

7.14. Testy beta

7.15. Testy akceptacyjne

7.16. Podsumowanie

7.17. Retrospekcja

7.18. Dziesięć przekazań Emila

7.19. Słownik wybranych pojęć

8. Do trzech razy sztuka

Marta Firlej

8.1. Opis przypadku

8.2. Podejście pierwsze

8.3. Podejście drugie

8.4. Podejście trzecie

8.5. Podsumowanie

8.6. Dobry produkt to nie wszystko – wnioski

9. Upadki w projektach z punktu widzenia testera

Tomasz Olszewski

9.1. Opis przypadku

9.2. Studium porażki

9.3. Znaki ostrzegawcze

9.4. Wstępne fazy projektu

9.5. Fazy dewelopmentu i testowania

9.6. Na koniec z nadzieją – wnioski

10. Zarządzanie dużym zespołem testerów w praktyce – opis przypadku

Anna Jankowiak, Marek Falkowski

10.1. Wprowadzenie

10.2. Regulacje, regulacje, regulacje

10.3. Ilu was tam pracuje przy jednym błędzie

10.4. Bank to nie firma programistyczna

10.5. Jedyną stałą rzeczą jest zmiana

10.6. Czy my mówimy tym samym językiem?

10.7. Ale ktoś TO musi przetestować

10.8. Kto lubi testy regresji? Każdy, kto nie musi ich wykonywać

10.9. Ale na czym mam testować?

10.10. Nic tak nie motywuje pracownika jak dodatkowa premia

10.11. Kontrola to najwyższa forma uznania

10.12. Jedna metodologia dla wszystkich

10.13. Jednolite raportowanie

10.14. Grywalizacja

11. Trendy – nowa metodyka zapewnienia jakości: jak sztuczna inteligencja pomogła wybrać, gdzie zastosować najlepsze praktyki pisania kodu

Jarosław Hryszko

11.1. Opis przypadku

11.2. Studium problemu

11.3. Rozwiązanie problemu

11.4. Podsumowanie – rezultaty

12. Epilog – przyszłość testowania oprogramowania

Jędrzej Osiński

Testowanie aplikacji mobilnych opiera się na uniwersalnych paradygmatach testowania oprogramowania, wymaga jednak ukierunkowanego podejścia, specyficznego dla platform mobilnych. To ważne, aby zrozumieć, jak testowanie aplikacji mobilnych różni się od testów aplikacji przeglądarkowych i desktopowych. Podczas testów należy wziąć pod uwagę oczekiwania użytkowników względem urządzeń przenośnych i zainstalowanych na nich aplikacji, które dotykają niemal każdej dziedziny życia.

Proces testowania aplikacji mobilnych to duże wyzwanie przede wszystkim z uwagi na:

• szeroką gamę urządzeń mobilnych (m.in. smartfony, tablety, urządzenia typu wearables) i ich producentów;

• różne systemy operacyjne (m.in. Android, iOS, Windows Phone);

• częste aktualizacje systemów operacyjnych i aplikacji mobilnych;

• szeroki zakres wielkości i rozdzielczości ekranów o różnym zagęszczeniu pikseli;

• zmienne warunki sieciowe, w których funkcjonują aplikacje;

• minimalizację wykorzystania baterii.

Celem poniższego rozdziału jest przedstawienie problemów, jakie napotkać można podczas codziennej pracy testera aplikacji mobilnych. Każdy z przedstawionych problemów zawiera opis, przykładowe rozwiązania oraz ich wady i zalety. Ze szczególną uwagą przedstawione są zagadnienia dotyczące dwóch najpopularniejszych mobilnych systemów operacyjnych: Android i iOS5. Dla wybranych tematów dostępne są również przykładowe testy umieszczone w repozytoriach autorów tekstu6. Skupienie się na konkretnych problemach i ich praktyczne ujęcie mają ułatwić rozpoczęcie przygody z mobilnością zarówno przez początkującego, jak i zaawansowanego testera7.

3.2. Główne różnice między testowaniem aplikacji mobilnych a aplikacji desktopowych i webowych

Aby zrozumieć różnice w podejściu do testów aplikacji mobilnych w porównaniu do przeglądarkowych i desktopowych, należy poznać cechy i zachowania charakterystyczne dla mobilnego ekosystemu8. Poniższa lista jest dobrym wstępem do zapoznania się z jego specyfiką. Bardziej szczegółowe informacje, poszerzone o przypadki testowe

5 Statystyki dotyczące popularności mobilnych systemów operacyjnych, https://www.netmarketshare. com/operating-system-market-share.aspx?qprid=8&qpcustomd=1

6 Poglądowa aplikacja z przykładowymi testami na system iOS, https://github.com/bielski/iOSTestingExample, oraz Android https://github.com/tomaszmnich/AndroidTestingExample

7 W momencie publikacji książki najnowszymi wersjami systemów były Android 7.0, iOS 10 oraz Windows 10 Mobile.

8 https://smartbear.com/learn/software-testing/what-is-mobile-testing/; https://www.utest.com/articles/ why-mobile-apps-testing-is-different-from-desktop-and-web

typowe dla urządzeń mobilnych, można znaleźć w książce Daniela Knotta „Hands-On Mobile App Testing”9.

Wielkość ekranu

Różnorodność wielkości, proporcji oraz gęstości ekranów może być przytłaczająca.

Z punktu widzenia testera aplikacja mobilna powinna zostać sprawdzona w każdej możliwej konfiguracji ekranu. Jest to jednak bardzo trudne, a wręcz niewykonalne zadanie. Zróżnicowanie urządzeń mobilnych jest dużym wyzwaniem w planowaniu i wykonywaniu testów; więcej na ten temat w podrozdziale 3.3. Fragmentacja.

Możliwość obrotu ekranu

Akcelerometr umieszczony w urządzeniu mobilnym wykorzystywany jest m.in. w celu przełączenia między trybem ekranu w orientacji poziomej i pionowej. Ta prosta funkcjonalność zapewnia ogromne możliwości, dostarcza bowiem dodatkowe rozmieszczenie elementów interfejsu użytkownika bez konieczności użycia jakiegokolwiek przycisku. Elementy interfejsu graficznego aplikacji wyświetlają się w inny sposób w zależności od poziomej lub pionowej orientacji ekranu urządzenia mobilnego. Testowanie aplikacji dla różnych orientacji ekranu generuje dodatkowe przypadki testowe i wymaga szczególnej uwagi.

Zasoby pamięci i RAM

W zależności od parametrów technicznych pamięć urządzenia mobilnego można szybko zapełnić, instalując i uruchamiając wiele aplikacji jednocześnie. Aplikacje, które są uruchomione w tle, mogą być wtedy usunięte z pamięci operacyjnej przez system. Użytkownik, który wraca po jakimś czasie do aplikacji, nie powinien być zaskoczony jej stanem i móc płynnie kontynuować korzystanie z jej funkcjonalności. Warto więc zwrócić uwagę na to, jak aplikacja mobilna zachowuje się w różnych warunkach wykorzystania pamięci na telefonie. Zwłaszcza dla starszych urządzeń o niższych parametrach technicznych należy przetestować aplikację pod kątem działania w zubożonych warunkach pamięci. Żywotność baterii

Wzrost wydajności aplikacji mobilnych nie idzie w parze z innowacyjnością w dziedzinie wydłużenia żywotności baterii. Podczas testów warto sprawdzić, jak aplikacja zachowa się w różnych warunkach naładowania baterii, na przykład w stanie bliskim rozładowania lub po ponownym uruchomieniu telefonu spowodowanym całkowitym wyładowaniem.

Urządzenia wskazujące i klawiatura

Interakcja użytkownika ze standardową aplikacją przeglądarkową sprowadza się do użycia klawiatury i myszki. Niektóre urządzenia mobilne wspierają możliwość podłączenia

9 Daniel Knott “Hands-On Mobile App Testing”, rozdział 1–4.

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.
100510323 by WN PWN - Issuu