aktualizacja plików wykładowych

This commit is contained in:
Krzysztof Jassem 2021-11-07 14:36:24 +01:00
parent 83570b61d3
commit 5428fd7411
14 changed files with 299 additions and 99 deletions

View File

@ -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",
"<p> na <b>określony czas</b> </p>\n",
"<p> w celu dostarczenia <b>rozwiązania</b></p>\n",
" <p> dla określonej <b>potrzeby</b> biznesowej </p> \n",
" <p> dla określonej <b>potrzeby</b> biznesowej. </p> \n",
"</div>"
]
},
@ -61,7 +78,7 @@
"<p><b>Potrzeba biznesowa:</b> Oszczędzenie 70% czasu biura obsługi klienta.</p>\n",
"<p><b>Rozwiązanie:</b> System automatycznego obiegu dokumentów. </p>\n",
"<p><b>Czas:</b> 6 miesięcy </p> \n",
"<p><b>Projekt:</b> Zespół ludzi wydelegowanych na 6 miesięcy dla dostarczenia systemu automatycznego obiegu dokumentów w celu zaoszczędzenia 70\\% czasu biura obsługi klienta. </p> \n",
"<p><b>Projekt:</b> Zespół ludzi wydelegowanych na 6 miesięcy dla dostarczenia systemu automatycznego obiegu dokumentów w celu zaoszczędzenia 70% czasu biura obsługi klienta. </p> \n",
"</div>\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 @@
"<h5>Minusy modelu kaskadowego</h5> \n",
"<ol>\n",
" <li> Dokonanie wszelkich zmian w projekcie jest kosztowne.</li>\n",
" <li> Jakikolwiek namacalny efekt działań jest wdoczny dopiero po dłuższym czasie.</li>\n",
" <li> Jakikolwiek namacalny efekt działań jest widoczny dopiero po dłuższym czasie.</li>\n",
"</ol>"
]
},
@ -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": [
"<div class=\"alert alert-block alert-success\">\n",
" \n",
"<h5>Plusy modelu PMBOX</h5> \n",
"<h5>Plusy modelu PMBOK</h5> \n",
"<ol>\n",
" <li> Podczas trwania projektu można dodawać nowe narzędzia i techniki działania (ze względu na różnorodność dostępnych procesów) </li>\n",
" <li> Podczas trwania projektu można dodawać nowe narzędzia i techniki działania (ze względu na różnorodność dostępnych procesów). </li>\n",
" <li> Kierownik projektu ma dostęp do pełnej informacji o zachodzących procesach.</li>\n",
" </ol>"
]
@ -307,7 +328,7 @@
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h5>Minusy modelu PMBOX</h5> \n",
"<h5>Minusy modelu PMBOK</h5> \n",
"<ol>\n",
" <li> Mała elastyczność </li>\n",
" <li> Centralizacja władzy </li>\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 @@
"</ol>"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# 3. Metodologia Prince2"
]
},
{
"cell_type": "markdown",
"metadata": {
@ -430,7 +463,7 @@
"source": [
"<div class=\"alert alert-block alert-success\">\n",
" \n",
"<h3> Pryncypia Prince2 </h3>\n",
"<h2> 3.1. Pryncypia w Prince2 </h2>\n",
"\n",
"<b> Pryncypia Prince2 </b> to nakazy wynikające z najlepszych praktyk zarządzania projektami. \n",
" \n",
@ -533,7 +566,7 @@
"source": [
"<div class=\"alert alert-block alert-success\">\n",
"\n",
"<h3> Motywy przewodnie (tematy) Prince2 </h3>\n",
"<h2> 3.2. Motywy przewodnie (tematy) Prince2 </h2>\n",
"\n",
"<b> Motyw przewodni </b> to aspekt zarządzania. \n",
" \n",
@ -613,7 +646,7 @@
"<div class=\"alert alert-block alert-success\">\n",
" \n",
"<h3>Ryzyko</h3> \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",
" <b>Ryzyko</b> to niepewne wydarzenie, które w przypadku zajścia będzie miało wpływ na osiągnięcie założeń projektu.\n",
"<BR>\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": [
"<div class=\"alert alert-block alert-success\">\n",
" \n",
"<h3>Procesy Prince 2</h3> \n",
"<h2>3.3. Procesy Prince2</h2> \n",
" \n",
"<b> Proces </b> 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": [
"<div class=\"alert alert-block alert-success\">\n",
"\n",
"<h3> Role w Prince 2 </h3>\n",
"<h2> 3.5. Role w Prince2 </h2>\n",
" \n",
"<b> Rola </b> to funkcja w projekcie, do której przypisane są obowiązki i odpowiedzialności. \n",
"<BR> 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",
" "
]
}
],

View File

@ -298,8 +298,12 @@
" * Prostej instrukcji do testera\n",
" * Scenariusza przypadku testowego\n",
" \n",
"**Przykład opisu przypadków testowych logowania do systemu:**\n",
"<img src=\"obrazy/przypadki testowe.png\" alt=\"Opis przypadków testowych\" width=900px>"
"**Przykład opisu przypadków testowych z prostą instrukcją:**\n",
"<img src=\"obrazy/przypadki testowe.png\" alt=\"Opis przypadków testowych\" width=900px>\n",
"\n",
" \n",
"**Przykład opisu przypadku testowego ze scenariuszem:**\n",
"<img src=\"obrazy/przypadek testowy ze scenariuszem.png\" alt=\"Opis przypadku testowego ze scenariuszem\" width=900px>"
]
},
{
@ -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",

View File

@ -7,7 +7,7 @@
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
"<h2> 9. <i>Testowanie integracyjne i systemowe</i>[wykład]</h2> \n",
"<h2> 9. <i>Testowanie systemowe i adaptacyjne</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2021)</h3>\n",
"</div>\n",
"\n",
@ -18,37 +18,34 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h3> Błąd </h3> \n",
" \n",
"Błąd to objaw nieoczekiwanego działania programu ujawniony podczas testów.\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h3> Defekt </h3> \n",
" \n",
"Defekt to niedoskonałość w kodzie programu.\n",
"Błąd ujawniony w czasie testów świadczy o defekcie w testowanym kodzie.\n",
"</div>"
"# 1. Testowanie systemowe i adaptacyjne - wyjaśnienie pojęć"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
"<h3>Testowanie systemowe</h3>\n",
" \n",
"<h3> Testowanie </h3> \n",
"Przedmiotem <b>testowania systemowego</b> 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",
"</div>"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
"<h3>Testowanie adaptacyjne</h3>\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 <b>testowania adaptacyjnego </b> 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",
"</div>"
]
},
@ -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",
"<img src=\"obrazy/testy dymne.png\" alt=\"Przykład testów dymnych\" width=400px>"
]
},
{
"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",
"<img src=\"obrazy/sanity test.png\" alt=\"Przykład testów zdroworozsądkowych\" width=900px>"
]
},
{
"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",
"<img src=\"obrazy/testy regresywne.png\" alt=\"Przykład testów regresywnych\" width=900px>"
]
},
{
"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",
"<img src=\"obrazy/raport z testowania.png\" alt=\"Przykład raportu z testowania\" width=900px>\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",
"<img src=\"obrazy/raport z testowania.png\" alt=\"Przykład raportu z testowania\" width=900px>\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",
"<img src=\"obrazy/load test - raport tekstowy.png\" alt=\"Przykład raportu z testowania\" width=800px>\n",
"\n",
"**Przykład raportu graficznego z testu przeciążeń systemu tłumaczenia:**\n",
"<img src=\"obrazy/load test - raport graficzny.png\" alt=\"Przykład raportu z testowania\" width=800px>"
]
},
{
"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": {},

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB