Piotr Guzia - Fermentacja jabłek a zmiany w kodzie, czyli TDD w iOS
http://www.tsh.io
Czy zastanawiałeś się kiedyś, jak kilka „drobnych” zmian może wpłynąć na działanie aplikacji? Czy zdarzyło Ci się, że nie byłeś pewny, czy po zmianach nadal cały system działa poprawnie? Czy chciałbyś temu zapobiec? A może znasz odpowiedzi na te pytania, ale wchodzisz w świat iOS i chciałbyś tę wiedzę wykorzystać w Swifcie i Xcode? Jeśli choć raz padła odpowiedź „tak", to ten temat na pewno Cię zainteresuje!
Prezentacja z Uszanowanka Programowanka #15 http://www.meetup.com/Uszanowanko-Programowanko/events/233585217/
Piotr Guzia - Fermentacja jabłek a zmiany w kodzie, czyli TDD w iOS
http://www.tsh.io
Czy zastanawiałeś się kiedyś, jak kilka „drobnych” zmian może wpłynąć na działanie aplikacji? Czy zdarzyło Ci się, że nie byłeś pewny, czy po zmianach nadal cały system działa poprawnie? Czy chciałbyś temu zapobiec? A może znasz odpowiedzi na te pytania, ale wchodzisz w świat iOS i chciałbyś tę wiedzę wykorzystać w Swifcie i Xcode? Jeśli choć raz padła odpowiedź „tak", to ten temat na pewno Cię zainteresuje!
Prezentacja z Uszanowanka Programowanka #15 http://www.meetup.com/Uszanowanko-Programowanko/events/233585217/
Przetestuj swoje aplikacje podczas ich tworzenia
* Poznaj strukturę testów jednostkowych
* Stwórz poprawne testy jednostkowe
* Wykorzystaj moduły testowe w projekcie
Testy jednostkowe są niezwykle ważnym narzędziem programisty. Przeprowadzane podczas pisania aplikacji pozwalają na sprawdzenie poprawności kodu, wyłapanie błędów i szybkie usunięcie ich. W nowoczesnych metodykach wytwarzania oprogramowania testy jednostkowe są jednymi z najważniejszych elementów procesu. Tworzenie systemów bez korzystania z testów jednostkowych często porównywane jest do pisania programów na kartce. Nowoczesne narzędzia takie, jak JUnit bardzo ułatwiają przeprowadzanie testów jednostkowych, integrując się ze środowiskami programistycznymi.
Książka "JUnit. Pragmatyczne testy jednostkowe w Javie" to wprowadzenie do tematyki testów jednostkowych. Czytając ją poznasz ich znaczenie i nauczysz się stosować JUnit do projektowania i wykorzystywania testów. Dowiesz się, jak projektować testy jednostkowe w oparciu JUnit, co testować za ich pomocą i gdzie umieszczać kod testowy. W książce przeczytasz też o zasadach projektowania łatwego do testowania kodu oraz programowaniu sterowanym testami.
* Cele przeprowadzania testów jednostkowych
* Planowanie testów
* Implementacja testów z wykorzystaniem JUnit
* Zasady stosowania testów
* Automatyzowanie testów
* Określanie częstotliwości testowania
* Projektowanie kodu pod kątem testowania
Przekonaj się, jak bardzo testy jednostkowe ułatwią Ci pracę.
Testowanie aplikacji to temat najczęściej pomijany przez programistów. Testowanie nie jest tak pasjonujące jak tworzenie programów czy poznawanie nowych narzędzi. Jest jednak niezbędne. Prawidłowo przeprowadzony proces testowania może znacznie poprawić wydajność, podnieść jakość projektu i kodu, zmniejszyć obciążenia wynikające z konserwacji kodu i pomóc lepiej zaspokoić wymagania klientów, współpracowników i kierownictwa. W powszechnie uznanych metodykach projektowych testowanie, szczególnie za pomocą testów automatycznych, jest niezwykle istotnym procesem.
Książka "Perl. Testowanie. Zapiski programisty" to praktyczny przewodnik dla programistów Perla, którzy chcą poprawić jakość i wydajność tworzonych przez siebie programów. Opisuje metody tworzenia testów automatycznych, stosowania ich i interpretowania ich wyników. Przedstawia sposoby testowania pojedynczych modułów, całych aplikacji, witryn WWW, baz danych, a nawet programów stworzonych w innych językach programowania. Zawiera również informacje o tym, jak dostosować podstawowe narzędzia testujące do własnego środowiska i projektów.
* Instalowanie modułów testujących
* Pisanie testów
* Automatyzacja uruchamiania testów
* Analiza wyników testów
* Dystrybucja testów
* Testy jednostkowe
* Testowanie baz danych
* Testowanie witryn WWW i kodu HTML
Dzięki wiadomościom zawartym w tej książce można zredukować długość cyklu tworzenia oprogramowania i zdecydowanie ułatwić konserwację gotowych systemów.
Niniejszy plik jest materiałem reklamowym BNS IT s.c. i pozostaje własnością intelektualną BNS IT s.c.. Może być rozpowszechniany tylko w takiej postaci w jakiej jest. Używanie zawartych tu treści i form bez zaznaczenia autorstwa i pochodzenia pliku, zwłaszcza na użytek prowadzenia szkoleń, wykładów i wystąpień publicznych, jest zabronione.
Prezentacja, która powstała na potrzeby webinaru pt. "Matka, żona i... testerka".
Podczas webinaru poruszone zostały takie zagadnienia, jak:
- kim jest tester oprogramowania,
- czym zajmuje się na codzień,
- jakie umiejętności są wymagane, aby nim zostać,
- jak znaleźć pierwszą pracę, jako tester oprogramowania.
Jak skrócić czas wykonywania testów integracyjnych?Łukasz Zakrzewski
Celem prezentacji jest zachęcenie developerów do zwrócenia uwagi na czas wykonywania testów. Przedstawiono zalety testów które dają developerowi szybki feedback, oraz typowe problemy z jakimi spotkał się autor, które powodowały wolne wykonywanie się testów jak i przykładowe rozwiązania tych problemów.
JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)PROIDEA
TDD promises that the minute you start writing tests: - design of your code will improve, - bugs will magically disappear, - refactoring will be fun and easy, - customers will be happy, - your boss will give you a rise, - grass will be greener and the sun more shiny. In reality when you start with TDD, you can find yourself disappointed as none of these things happen instantly. In our talk we will address some of the most common pitfalls of implementing TDD. TDD is not easy but just a few simple rules can save you a lot of pain.
Context Driven School of testing w prostych przykładachRadoslaw Smilgin
Szkoła testowanie sterowanego kontekstem to jedno z najważniejszych metod testowania promująca testerów myślących i krytycznych względem produktu.
Slajdy z darmowego webinarium.
Przetestuj swoje aplikacje podczas ich tworzenia
* Poznaj strukturę testów jednostkowych
* Stwórz poprawne testy jednostkowe
* Wykorzystaj moduły testowe w projekcie
Testy jednostkowe są niezwykle ważnym narzędziem programisty. Przeprowadzane podczas pisania aplikacji pozwalają na sprawdzenie poprawności kodu, wyłapanie błędów i szybkie usunięcie ich. W nowoczesnych metodykach wytwarzania oprogramowania testy jednostkowe są jednymi z najważniejszych elementów procesu. Tworzenie systemów bez korzystania z testów jednostkowych często porównywane jest do pisania programów na kartce. Nowoczesne narzędzia takie, jak JUnit bardzo ułatwiają przeprowadzanie testów jednostkowych, integrując się ze środowiskami programistycznymi.
Książka "JUnit. Pragmatyczne testy jednostkowe w Javie" to wprowadzenie do tematyki testów jednostkowych. Czytając ją poznasz ich znaczenie i nauczysz się stosować JUnit do projektowania i wykorzystywania testów. Dowiesz się, jak projektować testy jednostkowe w oparciu JUnit, co testować za ich pomocą i gdzie umieszczać kod testowy. W książce przeczytasz też o zasadach projektowania łatwego do testowania kodu oraz programowaniu sterowanym testami.
* Cele przeprowadzania testów jednostkowych
* Planowanie testów
* Implementacja testów z wykorzystaniem JUnit
* Zasady stosowania testów
* Automatyzowanie testów
* Określanie częstotliwości testowania
* Projektowanie kodu pod kątem testowania
Przekonaj się, jak bardzo testy jednostkowe ułatwią Ci pracę.
Testowanie aplikacji to temat najczęściej pomijany przez programistów. Testowanie nie jest tak pasjonujące jak tworzenie programów czy poznawanie nowych narzędzi. Jest jednak niezbędne. Prawidłowo przeprowadzony proces testowania może znacznie poprawić wydajność, podnieść jakość projektu i kodu, zmniejszyć obciążenia wynikające z konserwacji kodu i pomóc lepiej zaspokoić wymagania klientów, współpracowników i kierownictwa. W powszechnie uznanych metodykach projektowych testowanie, szczególnie za pomocą testów automatycznych, jest niezwykle istotnym procesem.
Książka "Perl. Testowanie. Zapiski programisty" to praktyczny przewodnik dla programistów Perla, którzy chcą poprawić jakość i wydajność tworzonych przez siebie programów. Opisuje metody tworzenia testów automatycznych, stosowania ich i interpretowania ich wyników. Przedstawia sposoby testowania pojedynczych modułów, całych aplikacji, witryn WWW, baz danych, a nawet programów stworzonych w innych językach programowania. Zawiera również informacje o tym, jak dostosować podstawowe narzędzia testujące do własnego środowiska i projektów.
* Instalowanie modułów testujących
* Pisanie testów
* Automatyzacja uruchamiania testów
* Analiza wyników testów
* Dystrybucja testów
* Testy jednostkowe
* Testowanie baz danych
* Testowanie witryn WWW i kodu HTML
Dzięki wiadomościom zawartym w tej książce można zredukować długość cyklu tworzenia oprogramowania i zdecydowanie ułatwić konserwację gotowych systemów.
Niniejszy plik jest materiałem reklamowym BNS IT s.c. i pozostaje własnością intelektualną BNS IT s.c.. Może być rozpowszechniany tylko w takiej postaci w jakiej jest. Używanie zawartych tu treści i form bez zaznaczenia autorstwa i pochodzenia pliku, zwłaszcza na użytek prowadzenia szkoleń, wykładów i wystąpień publicznych, jest zabronione.
Prezentacja, która powstała na potrzeby webinaru pt. "Matka, żona i... testerka".
Podczas webinaru poruszone zostały takie zagadnienia, jak:
- kim jest tester oprogramowania,
- czym zajmuje się na codzień,
- jakie umiejętności są wymagane, aby nim zostać,
- jak znaleźć pierwszą pracę, jako tester oprogramowania.
Jak skrócić czas wykonywania testów integracyjnych?Łukasz Zakrzewski
Celem prezentacji jest zachęcenie developerów do zwrócenia uwagi na czas wykonywania testów. Przedstawiono zalety testów które dają developerowi szybki feedback, oraz typowe problemy z jakimi spotkał się autor, które powodowały wolne wykonywanie się testów jak i przykładowe rozwiązania tych problemów.
JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)PROIDEA
TDD promises that the minute you start writing tests: - design of your code will improve, - bugs will magically disappear, - refactoring will be fun and easy, - customers will be happy, - your boss will give you a rise, - grass will be greener and the sun more shiny. In reality when you start with TDD, you can find yourself disappointed as none of these things happen instantly. In our talk we will address some of the most common pitfalls of implementing TDD. TDD is not easy but just a few simple rules can save you a lot of pain.
Context Driven School of testing w prostych przykładachRadoslaw Smilgin
Szkoła testowanie sterowanego kontekstem to jedno z najważniejszych metod testowania promująca testerów myślących i krytycznych względem produktu.
Slajdy z darmowego webinarium.
4. TESTY JEDNOSTKOWE
ZAŁOŻENIA TESTÓW JEDNOSTKOWYCH
▸ Testujemy metody, klasy
▸ Do testowania używa się sztucznych, fejkowych danych
▸ Testy muszą być odizolowane i niezależne
▸ Testy muszą być deterministyczne
▸ Nie piszemy testów które zawsze kończą się sukcesem, lub
porażką
Przykład testu niedeterministycznego —>>>
5. TESTY JEDNOSTKOWE
RED - GREEN - REFACTOR PATTERN
Z testami jednostkowymi związana
jest metoda RGR oraz TDD.
▸ Red - piszemy teksty, które nie
przechodzą - nic dziwnego, nie mamy
jeszcze kodu …
▸ Green - piszemy kod który spełnia
minimalne wymagania naszego testu.
▸ Refactor - poprawiamy jakość i
czytelność kodu, oczywiście na bank
robimy to źle i zaczynamy nowy cykl RGR
6. TESTY JEDNOSTKOWE
DLACZEGO TWORZYĆ TESTY JEDNOSTKOWE
▸ Testowanie regresyjne !
▸ Testy wymagają pisania bardziej przemyślanego kodu,
dzielonego na wyraźne, niezależne moduły.
▸ Mamy możliwość sprawdzenie wydajności poszczególnych
Unitów
▸ Wymuszenie refaktoryzacji
8. TESTY INTEGRACYJNE
PODSTAWY TESTÓW INTEGRACYJNYCH
▸ Projekt oprogramowania systemu
▸ Architektura
▸ Przepływ procesów
▸ Przypadki użycia
Czyli na jakiej podstawie przeprowadzamy testy integracyjne.
9. TESTY INTEGRACYJNE
TESTY INTEGRACYJNE - CO TESTUJEMY ?
▸ Implementacja źródeł danych - testujemy na danych prawdziwych pochodzących
z bazy, lub np pamięci wewnętrznej. Używamy prawdziwych danych.
▸ Infrastruktura systemu.
▸ Konfiguracja systemu - dane konfiguracyjne (intensywniej będziemy to testować
w momencie rozpoczęcia testów systemowych).
Testy integracyjne dzielimy na :
▸ Funkcjonalne
▸ Wydajnościowe
▸ Funkcjonalne
▸ Wydajnościowe
▸ Regresywne
Testy modułowe :
Testy integracyjne pomiędzy
systemami :
10. TESTY INTEGRACYJNE
PODSTAWY TESTÓW INTEGRACYJNYCH
▸ Testowanie integracji modułów oznacza wykonywanie
testów w celu wykrycia usterek w interfejsach i interakcjach
pomiędzy integrowanymi modułami.
▸ Testujemy TYLKO działanie komunikacji między modułami.
▸ Testować możemy metodą inkrementalną, lub „wielkiego
wybuchu”. Oznacza to mniej-więcej tyle, że albo dodajemy
testy wraz z tworzeniem oprogramowania, lub wręcz
przeciwnie łączymy wszystko na raz i wówczas
przeprowadzamy wielkie testowanie wszystkiego na raz.
14. TESTY SYSTEMOWE
PODSTAWY TESTÓW SYSTEMOWYCH
▸ Testujemy system na środowisku jak najbardziej
przybliżonym do docelowego środowiska produkcyjnego.
▸ Celem testów systemowych jest wykrycie jak największej
liczby błędów spowodowanych błędami systemowymi.
▸ Testujemy w oparciu o podręczniki użytkownika,
systemowe, oraz w oparciu o różne konfiguracje systemu.
Czyli na jakiej podstawie przeprowadzamy testy integracyjne.
15. TESTY SYSTEMOWE
TYPY TESTÓW SYSTEMOWYCH
▸ Instalacyjne - sprawdzamy jak oprogramowanie będzie zachowywało
się na różnych platformach sprzętowych, systemach operacyjnych.
Bierzemy pod uwagę istnienie lub brak zainstalowanego
oprogramowania trzeciego.
▸ Funkcjonalne (metoda czarnej skrzynki) oraz niefunkcjonalne.
▸ Wydajnościowe
▸ Regresywne - celem testów regresyjnych jest sprawdzenie, czy
dodając nową fukcjonalność, lub proprawiając błędy nie naruszymy
niespodziewanie innej, juz istniejącej funkcjonalności
▸ Bezpieczeństwa
16. TESTY AKCEPTACYJNE
IV. TESTY AKCEPTACYJNE
Celem testów akceptacyjnych jest uzyskania akceptacji klienta
(uzyskanie przez klienta lub użytkownika ufności do systemu).
17. TESTY AKCEPTACYJNE
PODSTAWY TESTÓW AKCEPTACYJNYCH
▸ Wymagania użytkownika
▸ Wymagania systemowe
▸ Przypadki użycia
▸ Procesy biznesowe
▸ Procesy z analizy ryzyka
Czyli na jakiej podstawie przeprowadzamy testy akceptacyjne.
Co testujemy
▸ Procesy biznesowe na systemie w pełni zintegrowanym
▸ Procesy utrzymania i obsługi
▸ Procedury pracy użytkowników
▸ Formularze
▸ Raporty i dane konfiguracyjne