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",
- "
"
+ "**Przykład opisu przypadków testowych z prostą instrukcją:**\n",
+ "
\n",
+ "\n",
+ " \n",
+ "**Przykład opisu przypadku testowego ze scenariuszem:**\n",
+ "
"
]
},
{
@@ -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",
+ "
"
+ ]
+ },
+ {
+ "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",
+ "
"
+ ]
+ },
+ {
+ "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",
+ "
"
+ ]
+ },
+ {
+ "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",
+ "
\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",
+ "
\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",
+ "
\n",
+ "\n",
+ "**Przykład raportu graficznego z testu przeciążeń systemu tłumaczenia:**\n",
+ "
"
+ ]
+ },
+ {
+ "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