Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Podobne dokumenty
Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Program szkolenia: Receptury testowania automatycznego - problemy, strategie, taktyki, techniki, narzędzia

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Techniki efektywnego testowania kodu dla programistów Java (Spock

Receptury - niezbędnik projektanta i architekta

Program szkolenia: Test Driven Development (TDD) using Spock or JUnit 5

Program szkolenia: Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Wzorce projektowe i architektura dla platformy Java EE

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Java Persistence API - zagadnienia zaawansowane

Szkolenie wycofane z oferty

Program szkolenia: Wzorce projektowe w C++

Program szkolenia: Wprowadzenie do Domain Driven Design dla biznesu (część 0)

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Program szkolenia: Wzorce projektowe i architektoniczne oraz efektywne techniki Object Oriented Design dla projektantów systemów

Program szkolenia: Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów

Implementacja Domain Driven Design - wzorce architektoniczne (część

JUnit TESTY JEDNOSTKOWE. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

Wprowadzenie do Behaviordriven

Korporacyjna Magistrala Usług na przykładzie Mule ESB

Zaawansowane programowanie w języku C++

Program szkolenia: Continuous Integration i Git

Domain Driven Design - projektowanie modeli złożonych domen (część

Tester oprogramowania 2014/15 Tematy prac dyplomowych

PHP revisited - odświerzenie spojrzenia na programowanie w PHP

Testowanie oprogramowania. Piotr Ciskowski

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Program szkolenia: REST i Microservices w PHP

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Domain Driven Design - projektowanie modeli złożonych domen (część

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Program szkolenia: Zaawansowane programowanie w C++

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer

Praca z kodem legacy : strategie, naprawa błędów, refaktoryzacja oraz

METODY PROGRAMOWANIA

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

SZKOLENIE TWORZENIE SYSTEMÓW

Program szkolenia: JavaScript Craftsmanship

Szkolenie wycofane z oferty. Programowanie w JavaScript (zawiera jquery)

Ciągłe dostarczanie oprogramowania : kompletny przewodnik / Eberhard Wolff. Gliwice, cop Spis treści

Platformy Technologiczne

Testowanie oprogramowania

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

PRZEWODNIK PO PRZEDMIOCIE

Automatyzacja testów aplikacji webowych w Selenium podstawy. Natalia Krawczyk

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Weryfikacja i walidacja. Metody testowania systemów informatycznych

Projektowanie obiektowe oprogramowania Testowanie oprogramowania Wykład 13 Wiktor Zychla 2014

TWORZENIE I TESTOWANIE TEST-DRIVEN DEVELOPMENT APLIKACJI Z UŻYCIEM KOD: TDD

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE INTEGRACYJNE

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Spis treści. Przedmowa Karolina Zmitrowicz, Adam Roman. Część I. Organizacja i procesy 1

Programowanie Zespołowe

Maciej Oleksy Zenon Matuszyk

Automatyczne testowanie aplikacji Android

Testowanie. Ryszard Beczek & Piotr Miłkowski 1 04/11/07

Usługa: Audyt kodu źródłowego

REFERAT PRACY DYPLOMOWEJ

Etapy życia oprogramowania

Testowanie oprogramowania w środowisku IBM Rational Software Architect

Testowanie według modelu (MBT) Stowarzyszenie Inżynierii Wymagań wymagania.org.pl

Program szkolenia: Jenkins - Continuous Integration

INŻYNIERIA OPROGRAMOWANIA

Spis treúci. 1. Wprowadzenie... 13

Pytania i wyjaśnienia treści Specyfikacji Istotnych Warunków Zamówienia

Szkolenie: Automatyzacja testowania

Praktyczne zastosowanie bibliotek Boost oraz nowego standardu C++11

Luki w bezpieczeństwie aplikacji istotnym zagrożeniem dla infrastruktury krytycznej

ZAŁĄCZNIK Nr 2 do CZĘŚCI II SIWZ WYCIĄG ZE STANDARDÓW, ZASAD I WZORCÓW INTEGRACYJNYCH OBOWIĄZUJĄCYCH W PSE S.A.

Scala - programowanie obiektowo-funkcyjne

Jak uchronić architekturę i wymagania przed chaosem? Warszawa, 27 stycznia 2016 roku

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

Audyt oprogramowania systemu B2B oprogramowanie umożliwiające zarządzanie informacjami o produktach:

Analiza biznesowa a metody agile owe

NAJLEPSZE STRATEGIE SKUTECZNYCH PROGRAMISTÓW. TECHNIKI PRACY Z KODEM KOD: NSKOD

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

TESTOWANIE APLIKACJI KORPORACYJNYCH

Szybkość w biznesie. Zwinne testowanie oprogramowania (Agile) Mateusz Morawski (mateusz.morawski@hp.com) 14 kwietnia 2015

Testowanie w procesie Scrum

Projektowanie oprogramowania

Program szkolenia: Symfony, nowoczesny framework PHP

Zapewnienie bezpieczeństwa w całym cyklu życia aplikacji (czyli dlaczego lepiej zapobiegać chorobom, niż leczyć je w zaawansowanym stadium)

Wzorce projektowe. dr inż. Marcin Pietroo

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Michał Sierzputowski. Zautomatyzuj swoje testy automatyczne oparte o Selenium

Praktyka testowania dla początkujących testerów

Transkrypt:

Program szkolenia: Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, craft-test-test Testowanie automatyczne developerzy 4 dni 40% wykłady / 60% warsztaty Szkolenie skupia się na tworzenia testowalnego kodu oraz testów automatycznych aplikacji na platformie Android. Program kładzie szczególny nacisk na architekturę aplikacji, która jest podatna na testowanie. W programie znajduje się również wstęp do testowania w ogólności: strategie testowania, techniki i wzorce. Zalety szkolenia: Rzetelne podstawy testowania Architektura i wzorce projektowe Strategia racjonalnych testów (w tym kiedy testowanie nie ma sensu) Strona: 1/7

Szczegółowy program: 1. Podstawy testowania 1.1. Rodzaje testów i przykłady ich wykorzystania 1.1.1. Zakres testów 1.1.1.1. Jednostkowe 1.1.1.2. Integracyjne 1.1.1.3. End 2 End 1.1.2. Rola testów 1.1.2.1. Akceptacyjne 1.1.2.2. Regresyjne 1.1.3. Skupienie testów 1.1.3.1. Testy funkcjonalne 1.1.3.2. Testy bezpieczeństwa 1.1.3.3. Testy wydajności 1.2. Strategia budowania piramidy testów 2. Projektowanie przypadków testowych 2.1. Podejście do dokumentowania testów 2.1.1. User Story i Scenariusze akceptacyjne 2.1.2. Wykonywalne specyfikacje - techniki Behavior Driven Development 2.2. Testowanie przypadków granicznych 2.2.1. Nacisk na testy jednostkowe w celu osiągnięcia wysokiego pokrycia testami 2.2.2. Architektura wspierająca wysokie pokrycie testami 2.2.3. Rozwarstwienie logiki na Aplikacyjną i Domenową 2.2.4. Modelowanie logiki przy pomocy Building Blocks z Domain Driven Design Strona: 2/7

2.3. Powtarzalność testów, wyeliminowanie losowości z testów 2.4. Najlepsze praktyki tworzenia przypadków testowych 3. Strategia testowania architektury aplikacji 3.1. Rozwarstwienie logiki na aplikacyjną i domenową 3.2. Piramida testów - jak ją interpretować w kontekście warstw 3.2.1. Logika aplikacji - testy End 2 End 3.2.2. Logika domenowa - testy jednostkowe 3.3. Kiedy warto stosować zaślepki (Mock) a kiedy jest to zbędny koszt 4. Najlepsze techniki testowania - projektowanie testów, które można utrzymywać w przyszłości 4.1. Wprowadzenie 4.1.1. Czego nie testować 4.1.2. Struktury przypadków testowych 4.2. Organizacja kodu testowego 4.2.1. Klasa testowa per klasa produkcyjna 4.2.2. Klasa testowa per funkcjonalność 4.2.3. Klasa testowa per setup 4.2.4. Testy parametryzowane 4.3. Przygotowanie stanu (test fixture setup) 4.3.1. Testy wykorzystujące źródło danych (data-driven testing) 4.3.2. Użycie wzorca Asemblera (odmiana Builder Design Pattern) 4.3.3. Wzorce i szablony 4.4. Weryfikacja 4.4.1. Value Object, weryfikacja przez equals 4.4.2. Własne asercje 4.4.3. Weryfikacja przy użyciu specyfikacji (Matcher object) Strona: 3/7

4.4.4. Upraszczanie asercji z użyciem Assert Object 4.4.5. Poprawna weryfikacja przypadków negatywnych 4.4.6. Wzorce i szablony 4.5. Uprzątniecie po teście (fixture teardown) 4.5.1. Kiedy warto stosować 4.5.2. Manualne 4.5.3. Automatyczne 4.5.4. Wzorce i szablony 4.6. Antywzorce testowania (ponad 20 typowych błędów i pułapek) 4.7. Wykrywanie "Zapachów" złego kodu testowego 4.7.1. Delikatne testy (fragile) 4.7.2. Nieczytelne testy 4.7.3. Wolne testy 4.7.4. Testy niedeterministyczne 5. Testowanie jednostkowe 5.1. Szablony testów w xunit 5.2. Tworzenie własnych asercji 5.3. Techniki: Mock, Stub, Fake 5.3.1. Dobór technik do potrzeb - czym się kierować 5.3.2. Przykłady implementacji w Mockito 5.4. Mockowanie 5.4.1. Zalety testowania w izolacji 5.4.2. Nagrywanie zachowania 5.4.3. Weryfikacja wywołań 5.4.4. Antywzorce testów wykorzystujące mockowanie Strona: 4/7

5.5. Testability - podatność kodu na testy 5.5.1. Jak pisać kod, który daje się testować 5.5.2. Najlepsze praktyki: SOLID, GRASP 5.5.3. Wybrane wzorce projektowe, które zwiększają testability: Factory, Strategy, Value Object 5.5.4. Pułapki i typowe błędy 5.5.5. Code smell - "zapachy" nietestowalnego kodu 6. Testowanie akceptacyjne 6.1. Technika User Story 6.2. Tworzenie testów akceptacyjnych na podstawie User Story 7. Behaviour Driven Development 7.1. Zalety bliskiej współpracy z klientem 7.1.1. Rola dostawcy, rola klienta w testach akcpetacyjneych 7.2. Tworzenie aplikacji podejściem BDD 7.3. Podejście dwuwarstwowe 7.3.1. Warstwa Flow - User Story 7.3.2. Warstwa Automatyzacji interakcji z systemem 7.4. Narzędzia i wzorce 7.4.1. JBehave - najlepsze praktyki 7.4.2. Page Object - modelowanie użytkownika 7.5. Technika ujednolicania testów wykonywanych poprzez GUI i Servisy - Agenty 8. Specification by Example 8.1. Wzorce i techniki tworzenie wykonywalnych specyfikacji 8.2. Podejście trójwarstwowe 8.2.1. Warstwa Specyfikacji - cele biznesowe Strona: 5/7

8.2.2. Warstwa Flow - User Story 8.2.3. Warstwa Automatyzacji interakcji z systemem 8.3. Narzędzia automatyzacji 9. Architektura testowalnej aplikacji 9.1. Building Blocks 9.1.1. Komponenty aplikacji 9.1.1.1. Podatność na testowanie 9.1.1.2. Rodzaje testów per rodzaj komponentu 9.1.2. Architektura i cykl życia aplikacji 9.1.3. Zarządzanie stanem aplikacji 9.1.3.1. Zaślepki stanu 9.2. Użyteczne wzorce 9.2.1. Wzorzec Mediator 9.2.2. Layers 9.2.3. Ports and Adapters 9.3. Tworzenie modularnego kodu 9.3.1. Techniki Inversion of Control 9.3.1.1. Dependency Injection 9.3.1.2. Wstrzykiwanie zaślepek na czas testów 9.3.1.3. Events 9.3.1.4. Separacja i decoupling testowanych modułów 9.3.2. Dynamiczne wstrzykiwanie zależności. 9.3.3. Luźne wiązanie komponentów z użyciem Event Bus. 9.3.4. Dobre praktyki i użyteczne wzorce projektowe na platformie Android. 10. Zagadnienia zaawansowane Strona: 6/7

10.1. Wprowadzenie do testowania z użyciem Android Testing Framework 10.2. Mockowanie w środowisku Androida 10.2.1. Narzędzia, pułapki, najlepsze praktyki 10.3. Tworzenie szybkich testów z wykorzystaniem biblioteki Robolectric 10.4. Werbalizacja asercji z użyciem FEST oraz rozszerzenia FEST - Android 10.4.1. Pisania czytelnych, wykonywalnych specyfikacji 10.4.2. Odporność testów na zmiany 10.4.3. Myślenie deklaratywne zamiast imperatywnego 10.5. Testowanie z użyciem biblioteki RoboSpock 10.6. Tworzenie testów funkcjonalnych aplikacji 10.7. Przegląd narzędzi wspomagających testowanie 11. Zagadnienia dodatkowe 11.1. Optymalizacja aplikacji i poszukiwanie błędów z użyciem narzędzi deweloperskich. 11.2. Przegląd narzędzi developerskich dostarczonych z Android SDK. Strona: 7/7