SlideShare a Scribd company logo
TESTOWANIE
OPROGRAMOWANIA
DLA BARDZO POCZĄTKUJĄCYCH
TESTOWANIE OPROGRAMOWANIA
ETAPY TESTOWANIA OPROGRAMOWANIA
▸ Testy modułowy - Unit testy
▸ Testy integracyjne
▸ Testy systemowe
▸ Testy akceptacyjne
TESTY JEDNOSTKOWE
I. TESTY JEDNOSTKOWE
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 —>>>
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
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
TESTY INTEGRACYJNE
II. TESTY INTEGRACYJNE
TESTY INTEGRACYJNE
PODSTAWY TESTÓW INTEGRACYJNYCH
▸ Projekt oprogramowania systemu
▸ Architektura
▸ Przepływ procesów
▸ Przypadki użycia
Czyli na jakiej podstawie przeprowadzamy testy integracyjne.
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 :
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.
TESTY JEDNOSTKOWE VS. TESTY INTEGRACYJNE
TESTY JEDNOSTKOWE
VS.
TESTY INTEGRACYJNE
TESTY JEDNOSTKOWE VS. TESTY INTEGRACYJNE CD.
TESTY JEDNOSTKOWE CD.
VS.
TESTY INTEGRACYJNE
TESTY SYSTEMOWE
II. TESTY SYSTEMOWE
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.
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
TESTY AKCEPTACYJNE
IV. TESTY AKCEPTACYJNE
Celem testów akceptacyjnych jest uzyskania akceptacji klienta
(uzyskanie przez klienta lub użytkownika ufności do systemu).
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
WNIOSKI …
1. OPROGRAMOWANIE NALEŻY TESTOWAĆ NA KAŻDYM ETAPIE
Bo jak nie, to będzie tak … :

More Related Content

Similar to Testowanie oprogramowania dla początkujących - Escola Software house

Wprowadzenie do PHPUnit
Wprowadzenie do PHPUnitWprowadzenie do PHPUnit
Wprowadzenie do PHPUnit
Michał Kowalik
 
MS - Wprowadzenie do testów jednostkowych
MS - Wprowadzenie do testów jednostkowychMS - Wprowadzenie do testów jednostkowych
MS - Wprowadzenie do testów jednostkowych
Marcin Samsonowski
 
JUnit. Pragmatyczne testy jednostkowe w Javie
JUnit. Pragmatyczne testy jednostkowe w JavieJUnit. Pragmatyczne testy jednostkowe w Javie
JUnit. Pragmatyczne testy jednostkowe w Javie
Wydawnictwo Helion
 
Katarzyna Bylec, Testowanie - perspektywa programisty
Katarzyna Bylec, Testowanie - perspektywa programistyKatarzyna Bylec, Testowanie - perspektywa programisty
Katarzyna Bylec, Testowanie - perspektywa programistyGeek Girls Carrots Poznan
 
Więcej testów/mniej kodu - Michał Gaworski, kraQA 13
Więcej testów/mniej kodu - Michał Gaworski, kraQA 13Więcej testów/mniej kodu - Michał Gaworski, kraQA 13
Więcej testów/mniej kodu - Michał Gaworski, kraQA 13
kraqa
 
Testy jednostkowe - PHPUnit
Testy jednostkowe - PHPUnitTesty jednostkowe - PHPUnit
Testy jednostkowe - PHPUnit
PHPstokPHPstok
 
Tdd - Czyli jak tworzyć dobre jakościowo aplikacje
Tdd - Czyli jak tworzyć dobre jakościowo aplikacjeTdd - Czyli jak tworzyć dobre jakościowo aplikacje
Tdd - Czyli jak tworzyć dobre jakościowo aplikacje
SPARK MEDIA
 
Perl. Testowanie. Zapiski programisty
Perl. Testowanie. Zapiski programistyPerl. Testowanie. Zapiski programisty
Perl. Testowanie. Zapiski programisty
Wydawnictwo Helion
 
xUnit - narzędzie do testowania
xUnit - narzędzie do testowaniaxUnit - narzędzie do testowania
xUnit - narzędzie do testowania
Michał Bartyzel
 
Matka, żona, i...testerka
Matka, żona, i...testerkaMatka, żona, i...testerka
Matka, żona, i...testerka
testuj.pl
 
Bezstratna kompresja listy przypadków testowych
Bezstratna kompresja listy przypadków testowychBezstratna kompresja listy przypadków testowych
Bezstratna kompresja listy przypadków testowych
Piotr Piotrowski
 
Jak skrócić czas wykonywania testów integracyjnych?
Jak skrócić czas wykonywania testów integracyjnych?Jak skrócić czas wykonywania testów integracyjnych?
Jak skrócić czas wykonywania testów integracyjnych?
Łukasz Zakrzewski
 
JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)
JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)
JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)
PROIDEA
 
Context Driven School of testing w prostych przykładach
Context Driven School of testing w prostych przykładachContext Driven School of testing w prostych przykładach
Context Driven School of testing w prostych przykładach
Radoslaw Smilgin
 
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
kraqa
 

Similar to Testowanie oprogramowania dla początkujących - Escola Software house (15)

Wprowadzenie do PHPUnit
Wprowadzenie do PHPUnitWprowadzenie do PHPUnit
Wprowadzenie do PHPUnit
 
MS - Wprowadzenie do testów jednostkowych
MS - Wprowadzenie do testów jednostkowychMS - Wprowadzenie do testów jednostkowych
MS - Wprowadzenie do testów jednostkowych
 
JUnit. Pragmatyczne testy jednostkowe w Javie
JUnit. Pragmatyczne testy jednostkowe w JavieJUnit. Pragmatyczne testy jednostkowe w Javie
JUnit. Pragmatyczne testy jednostkowe w Javie
 
Katarzyna Bylec, Testowanie - perspektywa programisty
Katarzyna Bylec, Testowanie - perspektywa programistyKatarzyna Bylec, Testowanie - perspektywa programisty
Katarzyna Bylec, Testowanie - perspektywa programisty
 
Więcej testów/mniej kodu - Michał Gaworski, kraQA 13
Więcej testów/mniej kodu - Michał Gaworski, kraQA 13Więcej testów/mniej kodu - Michał Gaworski, kraQA 13
Więcej testów/mniej kodu - Michał Gaworski, kraQA 13
 
Testy jednostkowe - PHPUnit
Testy jednostkowe - PHPUnitTesty jednostkowe - PHPUnit
Testy jednostkowe - PHPUnit
 
Tdd - Czyli jak tworzyć dobre jakościowo aplikacje
Tdd - Czyli jak tworzyć dobre jakościowo aplikacjeTdd - Czyli jak tworzyć dobre jakościowo aplikacje
Tdd - Czyli jak tworzyć dobre jakościowo aplikacje
 
Perl. Testowanie. Zapiski programisty
Perl. Testowanie. Zapiski programistyPerl. Testowanie. Zapiski programisty
Perl. Testowanie. Zapiski programisty
 
xUnit - narzędzie do testowania
xUnit - narzędzie do testowaniaxUnit - narzędzie do testowania
xUnit - narzędzie do testowania
 
Matka, żona, i...testerka
Matka, żona, i...testerkaMatka, żona, i...testerka
Matka, żona, i...testerka
 
Bezstratna kompresja listy przypadków testowych
Bezstratna kompresja listy przypadków testowychBezstratna kompresja listy przypadków testowych
Bezstratna kompresja listy przypadków testowych
 
Jak skrócić czas wykonywania testów integracyjnych?
Jak skrócić czas wykonywania testów integracyjnych?Jak skrócić czas wykonywania testów integracyjnych?
Jak skrócić czas wykonywania testów integracyjnych?
 
JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)
JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)
JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)
 
Context Driven School of testing w prostych przykładach
Context Driven School of testing w prostych przykładachContext Driven School of testing w prostych przykładach
Context Driven School of testing w prostych przykładach
 
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
 

Testowanie oprogramowania dla początkujących - Escola Software house

  • 2. TESTOWANIE OPROGRAMOWANIA ETAPY TESTOWANIA OPROGRAMOWANIA ▸ Testy modułowy - Unit testy ▸ Testy integracyjne ▸ Testy systemowe ▸ Testy akceptacyjne
  • 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.
  • 11. TESTY JEDNOSTKOWE VS. TESTY INTEGRACYJNE TESTY JEDNOSTKOWE VS. TESTY INTEGRACYJNE
  • 12. TESTY JEDNOSTKOWE VS. TESTY INTEGRACYJNE CD. TESTY JEDNOSTKOWE CD. VS. TESTY INTEGRACYJNE
  • 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
  • 18. WNIOSKI … 1. OPROGRAMOWANIE NALEŻY TESTOWAĆ NA KAŻDYM ETAPIE Bo jak nie, to będzie tak … :