diff --git a/materiały na PPB (wykład)/04_metodologia_Prince2.ipynb b/materiały na PPB (wykład)/04_metodologia_Prince2.ipynb index 2bf6346..2186a79 100644 --- a/materiały na PPB (wykład)/04_metodologia_Prince2.ipynb +++ b/materiały na PPB (wykład)/04_metodologia_Prince2.ipynb @@ -22,9 +22,26 @@ } }, "source": [ - "## Metodologia Prince2\n", + "# Metodologia Prince2 - wyjaśnienie pojęcia\n", "Prince2 (PRojects IN Controlled Environments) to metoda **zarządzania** ***projektami***\n", - "niezależna od zmiennych projektu, takich jak: środowisko, skala, typ, organizacja, kultura, położenie geograficzne." + "niezależna od zmiennych projektu, takich jak: \n", + " * środowisko, \n", + " * skala, \n", + " * typ, \n", + " * organizacja, \n", + " * kultura, \n", + " * położenie geograficzne." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# 1. Pojęcie projektu" ] }, { @@ -42,7 +59,7 @@ " \n", "

na określony czas

\n", "

w celu dostarczenia rozwiązania

\n", - "

dla określonej potrzeby biznesowej

\n", + "

dla określonej potrzeby biznesowej.

\n", "" ] }, @@ -61,7 +78,7 @@ "

Potrzeba biznesowa: Oszczędzenie 70% czasu biura obsługi klienta.

\n", "

Rozwiązanie: System automatycznego obiegu dokumentów.

\n", "

Czas: 6 miesięcy

\n", - "

Projekt: Zespół ludzi wydelegowanych na 6 miesięcy dla dostarczenia systemu automatycznego obiegu dokumentów w celu zaoszczędzenia 70\\% czasu biura obsługi klienta.

\n", + "

Projekt: Zespół ludzi wydelegowanych na 6 miesięcy dla dostarczenia systemu automatycznego obiegu dokumentów w celu zaoszczędzenia 70% czasu biura obsługi klienta.

\n", "\n" ] }, @@ -74,13 +91,13 @@ }, "source": [ "### Cechy charakterystyczne projektu\n", - "Projekt jest przeciwieństwiem pojęcia \"business as usual\" (działanie rutynowe). Projekt od rutyny odróżniają następujące cechy\n", + "Projekt jest przeciwieństwiem pojęcia \"business as usual\" (działanie rutynowe). Projekt od rutyny odróżniają następujące cechy:\n", "\n", - " * Zmiana - projekt to środek do przeprowadzenia zmiany.\n", - " * Tymczasowość - projekt ma swoją datę początku i końca.\n", - " * Wielofukcyjność - przy projektach zaangażowani są ludzie o różnych kompetencjach.\n", - " * Wyjątkowość - każdy projekt jest wyjątkowy (nawet jak jest jakiś wzorzec projektu, to każdy projekt się czymś wyróżnia: albo zespołem, albo klientem, albo położeniem geograficznym, itp.)\n", - " * Ryzyko (niepewność) - projekty ze swojej natury są ryzykowne, bo mają wprowadzić zmianę." + " * **Zmiana** - projekt to środek do przeprowadzenia zmiany.\n", + " * **Tymczasowość** - projekt ma swoją datę początku i końca.\n", + " * **Wielofukcyjność** - przy projektach zaangażowani są ludzie o różnych kompetencjach.\n", + " * **Wyjątkowość** - każdy projekt jest wyjątkowy (nawet jak jest jakiś wzorzec projektu, to każdy projekt się czymś wyróżnia: albo zespołem, albo klientem, albo położeniem geograficznym, itp.\n", + " * **Niepewność** - projekty ze swojej natury są ryzykowne, bo mają wprowadzić zmianę." ] }, { @@ -93,14 +110,14 @@ "source": [ "### Zarządzanie projektem\n", " Zarządzanie projektem to:\n", - " - planowanie zadań\n", - " - delegowanie ludzi do zadań\n", - " - monitorowanie wykonywania zadań\n", + " - planowanie zadań,\n", + " - delegowanie ludzi do zadań,\n", + " - monitorowanie wykonywania zadań,\n", " - kontrolowanie\n", " aby:\n", - " - osiągnąć cel projektu\n", - " - w wyznaczonym czasie\n", - " - przy zachowaniu przeznaczonych kosztów" + " - osiągnąć cel projektu,\n", + " - w wyznaczonym czasie,\n", + " - przy zachowaniu przeznaczonych kosztów." ] }, { @@ -112,13 +129,13 @@ }, "source": [ "### Aspekty kontroli w zarządzaniu projektem\n", - " Projekt należy kontrolować pod następującymi apektami:\n", - " - koszty (czy przestrzegamy kosztów projektu?)\n", - " - czas (kiedy skończymy?)\n", - " - jakość (czy produkt działa zgodnie z oczekiwaniami?)\n", - " - zakres (czy zakres działania projektu będzie pokrywa się z oczekiwaniami?)\n", - " - korzyści dla klienta (czy użytkownik naszego produktu uzyskuje planowaną korzyść?)\n", - " - ryzyko (jakie jest ryzyko niepowodzenia lub niepożądanych skutków projektu i czy potrafimy to ryzyko zminimalizować?)" + " Projekt należy kontrolować pod następującymi aspektami:\n", + " - koszty (czy przestrzegamy kosztów projektu?),\n", + " - czas (kiedy skończymy?),\n", + " - jakość (czy produkt spełnia oczekiwania jakościowe?),\n", + " - zakres (czy zakres działania projektu będzie pokrywa się z oczekiwaniami?),\n", + " - korzyści dla klienta (czy użytkownik naszego produktu uzyskuje planowaną korzyść?),\n", + " - ryzyko (jakie jest ryzyko niepowodzenia lub niepożądanych skutków projektu i czy potrafimy to ryzyko zminimalizować?)." ] }, { @@ -129,7 +146,7 @@ } }, "source": [ - "## Metodologie zarządzania projektem \n", + "# 2. Przegląd metodologii zarządzania projektem \n", "(por. https://startnearshoring.com/knowledge/it-project-management-a-quick-guide-to-tools-and-methodologies/)" ] }, @@ -141,14 +158,15 @@ } }, "source": [ - "### Metodologie tradycyjne\n", + "## 2.1. Metodologie tradycyjne\n", "Metodologie tradycyjne charakteryzują się działaniem \"krok po kroku\". Kładą nacisk na:\n", - " * skrupulatne zbieranie wymagań\n", - " * dokładną analizę\n", + " * skrupulatne zbieranie wymagań,\n", + " * dokładną analizęm\n", " * istotność dokumentacji.\n", " \n", "Sprawdzają się w projektach z dobrze określonymi wymaganiami już od początku. \n", - "Produkt ma być realizowany i dostarczony zgodnie z określonym planem. W planowaniu nie analizuje się szczegółowo, w jaki sposób produkt ma być wykonany. " + "\n", + "Produkt ma być realizowany i dostarczony zgodnie z określonym planem. W planowaniu **nie** analizuje się szczegółowo, w jaki sposób produkt ma być wykonany. " ] }, { @@ -159,7 +177,7 @@ } }, "source": [ - "#### Waterfall (model kaskadowy) (wg Wikipedia)\n", + "### Waterfall (model kaskadowy) (wg Wikipedia)\n", "> Model polega on na wykonywaniu podstawowych czynności jako odrębnych faz projektowych, kolejno po sobie. Jeśli któraś z faz nie powodzi się, to następuje nawrót do poprzedniej fazy. Każda czynność to schodek (kaskady):\n", "> * Planowanie systemu (w tym specyfikacja wymagań).\n", "> * Analiza systemu (w tym analiza wymagań i studium wykonalności).\n", @@ -202,7 +220,7 @@ "
Minusy modelu kaskadowego
\n", "
    \n", "
  1. Dokonanie wszelkich zmian w projekcie jest kosztowne.
  2. \n", - "
  3. Jakikolwiek namacalny efekt działań jest wdoczny dopiero po dłuższym czasie.
  4. \n", + "
  5. Jakikolwiek namacalny efekt działań jest widoczny dopiero po dłuższym czasie.
  6. \n", "
" ] }, @@ -214,12 +232,14 @@ } }, "source": [ - "#### Prince 2\n", - "W metodyce Prince2 projekt dzielony jest na etapy. Po każdym etapie następuje uszczegółowienie planu najbliższych etapów.\n", + "### Prince2\n", + "W metodyce Prince2 projekt dzielony jest na **etapy**. Po każdym etapie następuje uszczegółowienie planu najbliższych etapów.\n", "\n", - "W Prince 2 nacisk kładzie się na osiągnięcie założonych produktów biznesowych. \n", - "Struktura organizacyjna jest precyzyjnie określona - każdy członek teamu ma przypisaną rolę. \n", - "Ważną rolę odgrywają procedury raportowania." + "W Prince2 nacisk kładzie się na osiągnięcie założonych **produktów biznesowych**.\n", + "\n", + "**Struktura organizacyjna** jest precyzyjnie określona - każdy członek teamu ma przypisaną rolę. \n", + "\n", + "Ważną rolę odgrywają **procedury raportowania**." ] }, { @@ -264,14 +284,15 @@ } }, "source": [ - "#### PMBOX (wg Wikipedia)\n", - "Projekt składa się z ciągu etapów lub faz w których od inicjacji do zamknięcia.\n", - "Grupy procesów\n", - "* procesy rozpoczęcia (inicjowania) - zdefiniowanie nowego projektu (lub nowej fazy w istniejącym projekcie)\n", - "* procesy planowania - \n", - " * określenie zakresu i celu projektu \n", - " * zdefiniowanie akcji prowadzących do realizacji celu,\n", - " * procesy realizacji - realizacja wymagań projektowych\n", + "#### PMBOK (Project Management Body of Knowledge)\n", + "Projekt ma swój **cykl życia**, który składa się z ciągu etapów lub faz od inicjacji do zamknięcia. \n", + "\n", + "W cyklu życia projektu odbywają się różnego rodzaju **procesy**, które na siebie oddziaływują. \n", + "\n", + "Wyróżnia się nawet 49 różnych rodzajów procesów, podzielonych na **grupy**:\n", + " * procesy rozpoczęcia (inicjowania) - zdefiniowanie nowego projektu (lub nowej fazy w istniejącym projekcie),\n", + " * procesy planowania - określenie zakresu i celu projektu, zdefiniowanie akcji prowadzących do realizacji celu,\n", + " * procesy realizacji - realizacja wymagań projektowych,\n", " * procesy monitorowania i kontroli - śledzenie, przeglądanie postępu oraz wydajności prac projektowych; ewentualnie inicjacja zmian w planie,\n", " * procesy zakończenia (zamknięcia) - formalne zakończenie projektu.\n", "\n", @@ -290,9 +311,9 @@ "source": [ "
\n", " \n", - "
Plusy modelu PMBOX
\n", + "
Plusy modelu PMBOK
\n", "
    \n", - "
  1. Podczas trwania projektu można dodawać nowe narzędzia i techniki działania (ze względu na różnorodność dostępnych procesów)
  2. \n", + "
  3. Podczas trwania projektu można dodawać nowe narzędzia i techniki działania (ze względu na różnorodność dostępnych procesów).
  4. \n", "
  5. Kierownik projektu ma dostęp do pełnej informacji o zachodzących procesach.
  6. \n", "
" ] @@ -307,7 +328,7 @@ "source": [ "
\n", " \n", - "
Minusy modelu PMBOX
\n", + "
Minusy modelu PMBOK
\n", "
    \n", "
  1. Mała elastyczność
  2. \n", "
  3. Centralizacja władzy
  4. \n", @@ -322,7 +343,7 @@ } }, "source": [ - "### Metodologie zwinne\n", + "## 2.2. Metodologie zwinne\n", "Metodologie zwinne przeciwstawiają się metodologiom tradycyjnym w czterech płaszczyznach:\n", " * Inteakcje między ludźmi podczas pracy są ważniejsze niż procesy i narzędzia.\n", " * Działające oprogramowanie (choćby prototyp) jest ważniejsze niż rozbudowana dokumentacja.\n", @@ -338,8 +359,8 @@ } }, "source": [ - "#### Scrum\n", - "Scrum jest moetodologią, w której kluczowym elementem jest **sprint** - faza, która kończy się działającym prototypem. Po każdym sprincie następuje planowanie działań w kolejnym sprincie - biorące pod uwagę dotychczasowe doświadczenia." + "#### Scrum (pol. młyn)\n", + "Scrum jest metodologią, w której kluczowym elementem jest **sprint** - faza, która kończy się działającym prototypem. Po każdym sprincie następuje planowanie działań w kolejnym sprincie - biorące pod uwagę dotychczasowe doświadczenia." ] }, { @@ -384,7 +405,8 @@ }, "source": [ "#### Kanban\n", - "Kanban jest metodologią, w której kluczowym elementem jest **wizualizacja** przebiegu projektu - najczęściej za pomocą tablicy, na której przesuwane są zadania wraz z postępem ich wykonania (od początku do zakończenia)." + "Nazwa pochodzi z języka japońskiego (kan: widoczny ban: kartka papieru). \n", + "**Kanban** jest metodologią, w której kluczowym elementem jest **wizualizacja** przebiegu projektu - najczęściej za pomocą tablicy, na której przesuwane są zadania wraz z postępem ich wykonania (od początku do zakończenia)." ] }, { @@ -420,6 +442,17 @@ "
" ] }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# 3. Metodologia Prince2" + ] + }, { "cell_type": "markdown", "metadata": { @@ -430,9 +463,9 @@ "source": [ "
\n", " \n", - "

Pryncypia Prince2

\n", + "

3.1. Pryncypia w Prince2

\n", "\n", - " Pryncypia Prince 2 to nakazy wynikające z najlepszych praktyk zarządzania projektami. \n", + " Pryncypia Prince2 to nakazy wynikające z najlepszych praktyk zarządzania projektami. \n", " \n", "
" ] @@ -533,7 +566,7 @@ "source": [ "
\n", "\n", - "

Motywy przewodnie (tematy) Prince2

\n", + "

3.2. Motywy przewodnie (tematy) Prince2

\n", "\n", " Motyw przewodni to aspekt zarządzania. \n", " \n", @@ -563,7 +596,7 @@ }, "source": [ "### 2. Organizacja\n", - "Trzeba precyzyjnie przydzielić role w zespole oraz odpowiedzialności ." + "Trzeba precyzyjnie przydzielić role w zespole oraz odpowiedzialności." ] }, { @@ -613,7 +646,7 @@ "
\n", " \n", "

Ryzyko

\n", - "Ryzyko to niepewne wydarzenie, które w przypadku zajścia będzie miało wpływ na osiągnięcie założeń projektu.\n", + " Ryzyko to niepewne wydarzenie, które w przypadku zajścia będzie miało wpływ na osiągnięcie założeń projektu.\n", "
\n", " \n", "Wartość ryzyka można wyznaczyć mnożąc prawdopodobieństwo zajścia zdarzenia przez wielkość jego wpływu na projekt.\n", @@ -655,7 +688,7 @@ "source": [ "
\n", " \n", - "

Procesy Prince 2

\n", + "

3.3. Procesy Prince2

\n", " \n", " Proces to zestaw aktywności, mających na celu zrelizowanie pewnego określonego celu.\n", " \n", @@ -751,7 +784,7 @@ }, "source": [ "### 6. Zarządzanie punktami granicznymi między etapami\n", - " CEL: dostarczenie przełożonym wystarczającej informacji, by można określić\n", + " CEL: dostarczenie przełożonym wystarczającej informacji, by można określić:\n", " * czy etap zakończył się sukcesem,\n", " * czy (i ewentualnie jak) należy zmodyfikować kolejny etap,\n", " * czy (i ewentualnie jak) należy zmodyfikować cały plan,\n", @@ -782,7 +815,7 @@ } }, "source": [ - "## Trzy grupy interesariuszy\n", + "## 3.4. Grupy interesariuszy\n", "W projekcie zgodnym z PRINCE2 powinny być zawsze reprezentowane trzy główne grupy interesariuszy:\n", "\n", " * Biznes,\n", @@ -801,7 +834,7 @@ "### Strona reprezentująca Biznes\n", "„Czy projekt jest ciągle wart realizacji?”. \n", "\n", - "W Komitecie Sterującycm biznes reprezentowany jest przez **Przewodniczącego**." + "W Komitecie Sterującym biznes reprezentowany jest przez **Przewodniczącego**." ] }, { @@ -842,7 +875,7 @@ "source": [ "
\n", "\n", - "

Role w Prince 2

\n", + "

3.5. Role w Prince2

\n", " \n", " Rola to funkcja w projekcie, do której przypisane są obowiązki i odpowiedzialności. \n", "
Role są powierzane konkretnym osobom. W niewielkim projekcie jedna osoba może pełnić kilka ról.\n", @@ -858,7 +891,7 @@ } }, "source": [ - "* Komitet Sterujący (ang. Project Board), a w nim: \n", + "* **Komitet Sterujący** (ang. Project Board), a w nim: \n", " * Przewodniczący (Executive),\n", " * Główny Użytkownik (Senior User),\n", " * Główny Dostawca (Senior Supplier)." @@ -872,7 +905,7 @@ } }, "source": [ - "* Kierownik Projektu (Project Manager) - odpowiedzialny za operacyjne (codzienne) zarządzanie projektem. \n", + "* **Kierownik Projektu** (Project Manager) - odpowiedzialny za operacyjne (codzienne) zarządzanie projektem. \n", "\n", "Jego podstawowym obowiązkiem jest dbanie o to, aby projekt wytwarzał wymagane produkty przy założonych celach, którymi są: \n", "\n", @@ -892,7 +925,7 @@ } }, "source": [ - "* Kierownik Zespołu (Team Manager) - odpowiedzialny za dostarczanie określonego produktu o zdefiniowanej jakości w ramach uzgodnionego kosztu i czasu. \n", + "* **Kierownik Zespołu** (Team Manager) - odpowiedzialny za dostarczanie określonego produktu o zdefiniowanej jakości w ramach uzgodnionego kosztu i czasu. \n", "\n", "Rola Kierownika Zespołu jest opcjonalna i ma zazwyczaj zastosowanie w dużych projektach." ] @@ -905,7 +938,7 @@ } }, "source": [ - "* Nadzór Projektu (Project Assurance) - drugie źródło informacji dla Komitetu Sterującego (przydatne w sytuacji, gdy Kierownik Projektu nie chce ujawniać problemów)." + "* **Nadzór Projektu** (Project Assurance) - drugie źródło informacji dla Komitetu Sterującego (przydatne w sytuacji, gdy Kierownik Projektu nie chce ujawniać problemów)." ] }, { @@ -916,7 +949,7 @@ } }, "source": [ - "* Wsparcie Projektu (Project Support) - wsparcie administracyjne oraz wsparcie w zakresie planowania i zarządzania ryzykiem Obsługa Zmian." + "* **Wsparcie Projektu** (Project Support) - wsparcie administracyjne oraz wsparcie w zakresie planowania i zarządzania ryzykiem Obsługa Zmian." ] }, { @@ -927,7 +960,28 @@ } }, "source": [ - "* Obsługa Zmian - osoba lub zespół delegowany do oceny żądań zmian lub odstępstw - z reguły są to zmiany poważniejsze niż te, które są w gestii Kierownika Projektu, a za mało istotne, by zawracać głowę Komitetowi Sterującemu." + "* **Obsługa Zmian** - osoba lub zespół delegowany do oceny żądań zmian lub odstępstw - z reguły są to zmiany poważniejsze niż te, które są w gestii Kierownika Projektu, a za mało istotne, by zawracać głowę Komitetowi Sterującemu." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Podsumowanie\n", + " * Metodologie zarządzania projektami można podzielić na:\n", + " * tradycyjne (sekwencyjne)\n", + " * zwinne (adaptacyjne, iteracyjne)\n", + " * Prince2 zaliczana jest do metodologii sekwencyjnych. \n", + " * Metodologia Prince2 jest bardzo często stosowana w projektach badawczo-rozwojowych finansowanych przez instytucje, gdyż oczekują one:\n", + " * wymiernych produktów,\n", + " * ciągłego raportowania,\n", + " * umiejętności zarządzania ryzykiem.\n", + " * W rzeczywistych projektach stosuje się najczęściej kompilację przeróżnych metodologii.\n", + " " ] } ], diff --git a/materiały na PPB (wykład)/08_testowanie_w_programowaniu_zwinnym.ipynb b/materiały na PPB (wykład)/08_testowanie_w_programowaniu_zwinnym.ipynb index c5e8f69..a83982d 100644 --- a/materiały na PPB (wykład)/08_testowanie_w_programowaniu_zwinnym.ipynb +++ b/materiały na PPB (wykład)/08_testowanie_w_programowaniu_zwinnym.ipynb @@ -298,8 +298,12 @@ " * Prostej instrukcji do testera\n", " * Scenariusza przypadku testowego\n", " \n", - "**Przykład opisu przypadków testowych logowania do systemu:**\n", - "\"Opis" + "**Przykład opisu przypadków testowych z prostą instrukcją:**\n", + "\"Opis\n", + "\n", + " \n", + "**Przykład opisu przypadku testowego ze scenariuszem:**\n", + "\"Opis" ] }, { @@ -350,7 +354,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -364,7 +367,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -375,7 +377,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -392,7 +393,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -417,7 +417,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -434,7 +433,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -465,7 +463,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.8.5" }, "subtitle": "08. Testowanie w programowaniu zwinnym[wykład]", "title": "Przygotowanie do projektu badawczo-rozwojowego", diff --git a/materiały na PPB (wykład)/09_testowanie_integracyjne_i_systemowe.ipynb b/materiały na PPB (wykład)/09_testowanie_integracyjne_i_systemowe.ipynb index f24ad8b..11b147f 100644 --- a/materiały na PPB (wykład)/09_testowanie_integracyjne_i_systemowe.ipynb +++ b/materiały na PPB (wykład)/09_testowanie_integracyjne_i_systemowe.ipynb @@ -7,7 +7,7 @@ "![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n", "
\n", "

Przygotowanie do projektu badawczo-rozwojowego

\n", - "

9. Testowanie integracyjne i systemowe[wykład]

\n", + "

9. Testowanie systemowe i adaptacyjne[wykład]

\n", "

Krzysztof Jassem (2021)

\n", "
\n", "\n", @@ -18,37 +18,34 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "
\n", - " \n", - "

Błąd

\n", - " \n", - "Błąd to objaw nieoczekiwanego działania programu ujawniony podczas testów.\n", - "
" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "
\n", - " \n", - "

Defekt

\n", - " \n", - "Defekt to niedoskonałość w kodzie programu.\n", - "Błąd ujawniony w czasie testów świadczy o defekcie w testowanym kodzie.\n", - "
" + "# 1. Testowanie systemowe i adaptacyjne - wyjaśnienie pojęć" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "
\n", + "

Testowanie systemowe

\n", " \n", - "

Testowanie

\n", + "Przedmiotem testowania systemowego jest całość oprogramowania zainstalowana w pewnym środowisku wykonawczym.\n", + " * Środowisko testowania musi być zbliżone do środowiska pracy.\n", + " * Testowanie systemowe odbywa się metodą „czarnej skrzynki”.\n", + "
" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "

Testowanie adaptacyjne

\n", " \n", - "Testowanie to proces, który ma na celu wykazanie istnienia defektów w kodzie programu \n", - "poprzez wywołanie błędów w działaniu.\n", + "Przedmiotem testowania adaptacyjnego jest oprogramowanie stanowiące przedmiot dostawy do użytkownika w docelowym środowisku pracy.\n", + " * Testowana jest zgodność z wymaganiami i potrzebami użytkownika.\n", + " * Testowanie akceptacyjne przeprowadza użytkownik / klient.\n", "
" ] }, @@ -56,9 +53,160 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Opracowywanie przypadków testowych dla testowania integracyjnego" + "# 2. Typy testowania systemowego" ] }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.1. Testowanie funkcjonalne (functional testing)\n", + "**Testowanie funkcjonalne** ma na celu wykazanie rozbieżności między programem a jego specyfikacją zapisaną w postaci wymagań funkcjonalnych lub przypadków użycia.\n", + " * Przypadki testowe (scenariusze testowe) wielokrotnie tworzy się na podstawie przypadków użycia.\n", + " * Podstawowa zasada:Im więcej błędów wykryto w pewnej funkcji programu, tym (prawdopodobnie) większą liczbę błędów ona jeszcze ukrywa.\n", + " * Testowanie funkcjonalne może odbywać się na różnych poziomach szczegółowości:\n", + " * testy dymne\n", + " * testy zdroworozsądkowe\n", + " * testy regresywne" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Testy dymne\n", + "**Testy dymne** (ang. smoke tests) to powierzchowne testy pozwalające wykazać błędy krytyczne,\n", + " * Przykładem testu dymnego może być test CRUD (Create, Read, Update, Delete).\n", + " \n", + "**Przykład opisu testów dymnych:**\n", + "\"Przykład" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Testy zdroworozsądkowe\n", + "**Testy zdroworozsądkowe** mają wykazać, że aplikacja nie działa zgodnie ze stawianymi przed nią wymaganiami.\n", + ">\"Smoke test określa, czy w ogóle coś działa, a sanity test - czy działa tak, jak ma działać”.\n", + "\n", + "**Przykład przypadków testowych na poziomie testowania regresywnego:**\n", + "\"Przykład" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Testy regresywne\n", + "**Testy regresywne** to szczegółowe testy, pozwalające wykazać, że w aplikacji powstały nieznane błędów będące wynikiem wprowadzonych zmian.\n", + "\n", + "**Przykład przypadku testowego na poziomie testowania regresywnego:**\n", + "\"Przykład" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Raport z testowania funkcjonalnego\n", + "Przypadki testowe w testowaniu funkcjonalnym warto tworzyć w takiej formie, aby łatwo można je było rozszerzyć o wyniki testowania - tworząc raport z testowania.\n", + "\n", + "**Fragment raportu z testowania funckjonalnego:**\n", + "\"Przykład\n", + "\n", + "W raporcie z testowania można zawrzeć dodatkowe informacje np. o wydajności działania danego przypadku testowego." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.2. Testowanie wydajności (performance testing)\n", + "Zadaniem **testowania wydajności** jest wykazanie, że system nie daje odpowiedzi w wystarczająco krótkim czasie pod ustalonym obciążeniem produkcyjnym, np. przy dużym wolumenie przetwarzanych danych.\n", + "\n", + "**Przykładowy fragment raportu z testowania wydajności systemu tłumaczenia:**\n", + "\"Przykład\n", + "\n", + "**Stronę internetową** można bardzo szybko przetestować pod kątem wydajności, korzystając np. z narzędzia dostępnego na stronie https://webspeed.intensys.pl/.\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.3. Testowanie przeciążeń (load testing)\n", + "**Przeciążenie** to skumulowanie w krótkim czasie dużej liczby jednocześnie działających użytkowników lub przeprowadzanych transakcji. \n", + "\n", + "Celem **testowania przeciążeń** jest zweryfikowania działania systemu przy wysokim obciążeniu.\n", + " * Przykładowy scenariusz testowania przeciążeń:\n", + " * Nagranie ciągu operacji wykonywanych przez jednego klienta (np. \u000b", + "w postaci makra)\n", + " * Odtworzenie nagranego ciągu operacji dla wybranej (dużej) liczby klientów\n", + " * Analiza raportu\n", + "\n", + "**Przykład raportu tekstowego z testu przeciążeń systemu tłumaczenia:**\n", + "\"Przykład\n", + "\n", + "**Przykład raportu graficznego z testu przeciążeń systemu tłumaczenia:**\n", + "\"Przykład" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.4. Testowanie pamięci (memory testing)\n", + "Celem **testowania pamięci** jest wykazanie, że system narusza narzucone wymagania pamięciowe." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.5. Testowanie ochrony danych (security testing)\n", + "Proces ma wykazać, że dane nie są chronione w odpowiedni sposób.\n", + " * Przypadki testowe mają wymusić naruszenie mechanizmów ochrony danych." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.6. Testowanie konfiguracji\n", + "**Testowanie konfiguracji** ma na celu zweryfikowanie działania systemu w różnych konfiguracjach sprzętowych i programowych.\n", + " * Testowanie może odbywać się za pomocą specjalnie przygotowanej maszyny wirtualnej.\n", + " * Dla serwisów webowych istotne jest testowanie różnych urządzeń oraz różnych typów przeglądarek." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2.7. Testowanie zgodności wersji\n", + "**Testowanie zgodności wersji** ma na celu wykazanie niezgodności z przeszłymi wersjami programów:\n", + " * testowanie patchów i aktualizacji,\n", + " * testowanie nowych wersji." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/materiały na PPB (wykład)/obrazy/load test - raport graficzny.png b/materiały na PPB (wykład)/obrazy/load test - raport graficzny.png new file mode 100644 index 0000000..8989d98 Binary files /dev/null and b/materiały na PPB (wykład)/obrazy/load test - raport graficzny.png differ diff --git a/materiały na PPB (wykład)/obrazy/load test - raport tekstowy.png b/materiały na PPB (wykład)/obrazy/load test - raport tekstowy.png new file mode 100644 index 0000000..042be4b Binary files /dev/null and b/materiały na PPB (wykład)/obrazy/load test - raport tekstowy.png differ diff --git a/materiały na PPB (wykład)/obrazy/oprogramowanie.png b/materiały na PPB (wykład)/obrazy/oprogramowanie.png new file mode 100644 index 0000000..920870a Binary files /dev/null and b/materiały na PPB (wykład)/obrazy/oprogramowanie.png differ diff --git a/materiały na PPB (wykład)/obrazy/performance test.png b/materiały na PPB (wykład)/obrazy/performance test.png new file mode 100644 index 0000000..94c80ae Binary files /dev/null and b/materiały na PPB (wykład)/obrazy/performance test.png differ diff --git a/materiały na PPB (wykład)/obrazy/przypadek testowy ze scenariuszem.png b/materiały na PPB (wykład)/obrazy/przypadek testowy ze scenariuszem.png new file mode 100644 index 0000000..ee22f84 Binary files /dev/null and b/materiały na PPB (wykład)/obrazy/przypadek testowy ze scenariuszem.png differ diff --git a/materiały na PPB (wykład)/obrazy/raport z testowania.png b/materiały na PPB (wykład)/obrazy/raport z testowania.png new file mode 100644 index 0000000..b11d652 Binary files /dev/null and b/materiały na PPB (wykład)/obrazy/raport z testowania.png differ diff --git a/materiały na PPB (wykład)/obrazy/sanity test.png b/materiały na PPB (wykład)/obrazy/sanity test.png new file mode 100644 index 0000000..23ba368 Binary files /dev/null and b/materiały na PPB (wykład)/obrazy/sanity test.png differ diff --git a/materiały na PPB (wykład)/obrazy/software.png b/materiały na PPB (wykład)/obrazy/software.png new file mode 100644 index 0000000..920870a Binary files /dev/null and b/materiały na PPB (wykład)/obrazy/software.png differ diff --git a/materiały na PPB (wykład)/obrazy/test wydajnosci.png b/materiały na PPB (wykład)/obrazy/test wydajnosci.png new file mode 100644 index 0000000..ccc6cfa Binary files /dev/null and b/materiały na PPB (wykład)/obrazy/test wydajnosci.png differ diff --git a/materiały na PPB (wykład)/obrazy/testy dymne.png b/materiały na PPB (wykład)/obrazy/testy dymne.png new file mode 100644 index 0000000..bddfc3a Binary files /dev/null and b/materiały na PPB (wykład)/obrazy/testy dymne.png differ diff --git a/materiały na PPB (wykład)/obrazy/testy regresywne.png b/materiały na PPB (wykład)/obrazy/testy regresywne.png new file mode 100644 index 0000000..b3235f3 Binary files /dev/null and b/materiały na PPB (wykład)/obrazy/testy regresywne.png differ