Skip to content

Commit eae8ee1

Browse files
committed
junit post published
1 parent f59d368 commit eae8ee1

File tree

3 files changed

+3
-3
lines changed

3 files changed

+3
-3
lines changed

_drafts/2019-02-04-espresso.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ keywords: "testowanie, testing, testy, jednostkowe, integracyjne, manualne, ui,
1111
---
1212

1313
## Testy UI
14-
`Testy intregracyjne` są przeprowadzane w celu wykrycia błędów zachodzących w interakcji pomiędzy integrowanymi interfejsami systemu i polegają na testowaniu reakcji na wywołane zdarzenia oraz wymianie danych między testowanymi elementami. Wykonywane są na wielu poziomach testowania i dotyczą całego obszaru integracji (funkcjonalności, moduły, systemy). Realizacją testów integracyjnych w Android są `testy UI` (`testy interfejsu użytkownika`) polegające na przeprowadzeniu zestawu ciągu operacji w docelowej aplikacji z punktu widzenia użytkownika. `Ręczne testy` przeprowadzane przez testera choć ważne są jednak obciążone sporym nakładem czasowym i podatne na błędy, dlatego warto dążyć do automatyzacji testów UI. Instrumentalne `automatyczne testy` interfejsu użytkownika mogą dotyczyć jednej aplikacji lub interakcji między aplikacjami czy też aplikacją i systemem. Przykładem biblioteki przeznaczonej do testów UI obejmujących jedną aplikację jest `Espresso`, a dla interakcji między aplikacjami i systemem np. `UI Automator`. Jako alternatywę można rozważyć biblioteki `Robotium` lub `Appium`.
14+
`Testy intregracyjne` są przeprowadzane w celu wykrycia błędów zachodzących w interakcji pomiędzy integrowanymi interfejsami systemu i polegają na testowaniu reakcji na wywołane zdarzenia oraz wymianie danych między testowanymi elementami. Wykonywane są na wielu poziomach testowania i dotyczą całego obszaru integracji (funkcjonalności, moduły, systemy). Realizacją testów integracyjnych w Android są `testy UI` (`testy interfejsu użytkownika`) polegające na przeprowadzeniu zestawu ciągu operacji w docelowej aplikacji z punktu widzenia użytkownika. `Ręczne testy` przeprowadzane przez testera choć ważne są jednak obciążone sporym nakładem czasowym i podatne na błędy, dlatego warto dążyć do automatyzacji testów UI. Instrumentalne `automatyczne testy` interfejsu użytkownika mogą dotyczyć jednej aplikacji lub interakcji między aplikacjami czy też aplikacją i systemem. Przykładem biblioteki przeznaczonej do testów UI obejmujących jedną aplikację jest `Espresso`, a dla interakcji między aplikacjami i systemem np. `UI Automator`. Jako alternatywę można rozważyć biblioteki `Robotium` lub `Appium`. Interfejs użytkownika może być również testowany pod względem wydajności dzięki takim narzędziom jak `dumbsys` i `systrace`.
1515

1616
## Charakterystyka
1717
Testy jednej aplikacji weryfikują zachowanie docelowej aplikacji w stosunku do przeprowadzonych ustalonych działań lub wprowadzenia danych w ekranie aplikacji (`Aktywności`) przez użytkownika. Espresso w sposób automatyczny umożliwia przeprowadzanie symulacji akcji użytkownika w aplikacji oraz sprawdzenie oczekiwanego rezultatu po stronie UI co może przełożyć się na zwiększenie jakości `User Experience`. Udostępnione podstawowe API jest niewielkie, proste, intuicyjne i oparte jest o interakcję oraz asercje stanów widoków. Przeznaczone jest do operowania na konkretnych widokach oraz wybranych elementach kolekcji widoków. Espresso działa szybko i zapewnia właściwe zarządzanie wątkiem głównym dzięki czemu uruchamia polecenia testowe we właściwym czasie co zwalnia programistę z obowiązku tworzenia tymczasowych obejść. Aby uniknąć nieoczekiwanych rezultatów i błędów w przeprowadzanych testach rekomendowane jest wyłączenie (na testowanym urządzeniu fizycznym lub wirtualnym) animacji systemowych dostępnych w opcjach programisty (animacje okien, animacje przejścia, czas animacji).

_posts/testing/2018-12-31-proces_testowy.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ date: 2018-12-31
55
categories: ["Testowanie"]
66
image: testing/process
77
description: "Testowanie"
8-
keywords: "testowanie, testing, testy, proces, poziomy, jednostkowe, integracyjne, systemowe, akceptacyjne, manualne, automatyczne, lokalne, integracyjne, unit test, ui test, błąd, usterka, junit, jmeter, espresso, robolectric, crashlytics, android, programowanie, programming"
8+
keywords: "testowanie, testing, testy, proces, poziomy, jednostkowe, integracyjne, systemowe, akceptacyjne, manualne, automatyczne, lokalne, integracyjne, unit test, ui test, błąd, usterka, junit, espresso, robolectric, crashlytics, android, programowanie, programming"
99
---
1010

1111
## Definicja
@@ -21,7 +21,7 @@ W kontekście terminu testowania warto wyróżnić pojęcię błędu, usterki i
2121
W celu wykrycia błędów w interfejsach oraz interakcjach pomiędzy integrowanymi elementami systemu należy przeprowadzić `testy integracyjne`. Polegają one przede wszystkim na testowaniu wymiany danych między testowanymi elementami oraz sprawdzaniu reakcji na wywoływane zdarzenia. Mogą być one wykonywane na wielu poziomach oraz odnosić się do elementów różnej wielkości jak np.: integracja funkcjonalności systemu, integracja modułów czy systemów. Zatem dodanie nowej funkcjonalności, użycie zewnętrznej biblioteki czy wymiana danych z serwerem są dobrym powodem do przeprowadzenia testów. Narzędziami do przeprowadzania testów integracyjnych na Android mogą być m.in. automatyczne `testy UI` wykorzystając np. bibliotekę `Espresso` czy testy manualne prowadzone przez człowieka. Testy integracyjne należą do testów, które mogą leżeć w kompetencji programisty.
2222

2323
## Testy systemowe
24-
`Testy systemowe` dotyczą w pełni zintegrowanego systemu i sprawdzają czy spełnia on założenia specyfikacji. Weryfikują system pod względem realizacji wymagań klienta w środowisku jak najbardziej zbliżonym do produkcyjnego. Testy systemowe mogą być oparte o wymagania lub proces biznesowy oraz dotyczyć wydajności (np. narzędzia w `Android Studio` czy `jMeter`), użyteczności, bezpieczeństwa i przenaszalności (gdzie te ostatnie nie dotyczą platformy Android). W kontekście testowanych obszarów oraz wymagań technicznych klienta należy w odpowiedni sposób dobrać zestaw urządzeń testowych lub wykorzystać `farmę testową`. Przygotowanie i przeprowadzanie testów oraz podsumowanie wyników spoczywa na zespole testującym.
24+
`Testy systemowe` dotyczą w pełni zintegrowanego systemu i sprawdzają czy spełnia on założenia specyfikacji. Weryfikują system pod względem realizacji wymagań klienta w środowisku jak najbardziej zbliżonym do produkcyjnego. Testy systemowe mogą być oparte o wymagania lub proces biznesowy oraz dotyczyć wydajności (np. narzędzia diagnostyczne w `Android Studio` czy `Firebase Performance Monitoring`), użyteczności, bezpieczeństwa i przenaszalności (gdzie te ostatnie nie dotyczą platformy Android). W kontekście testowanych obszarów oraz wymagań technicznych klienta należy w odpowiedni sposób dobrać zestaw urządzeń testowych lub wykorzystać `farmę testową`. Przygotowanie i przeprowadzanie testów oraz podsumowanie wyników spoczywa na zespole testującym.
2525

2626
## Testy akceptacyjne
2727
Celem testów akceptacyjnych jest uzyskanie formalnego potwierdzenia wykonania aplikacji o ustalonej jakości zgodnie z ustalonymi założeniami i wymaganiami wg specyfikacji. Testy przeprowadzane są przez zespół odbiorców i twórców na środowisku produkcyjnym lub najbardziej zbliżonym do środowiska docelowego. Można wyróżnić etap testów `alfa` dokonywany przez wewnętrzny zespół testowy niezależny od zespołu twórców oraz testy `beta` wykonywane na zewnątrz firmy w różnorodnych środowiskach testowych. W przypadku tworzenia aplikacji przeznaczonych na sklep `Google Play` wydanie aplikacji w wersji beta przeznaczonej dla użytkowników zapisanych na `betatesty` może być sposobem realizacji testów akceptacyjnych. Wykorzystanie narzędzi automatycznie rejestrujących awarie aplikacji z urządzeń użytkowników np. `Firebase Crashlytics` pozwala poznać błędy i lokalizować usterki co ułatwia naprawę popełnionych błędów.
File renamed without changes.

0 commit comments

Comments
 (0)