2.1 Testowanie w cyklu wytwarzania oprogramowania Flashcards

1
Q

W jaki sposób wybór modelu cyklu życia oprogramowania (SDLC) wpływa na testowanie?

A
  • Determinuje zakres i kolejność czynności testowych.
  • Określa poziom szczegółowości dokumentacji testowej.
  • Wpływa na dobór technik i podejścia do testowania.
  • Może decydować o zakresie automatyzacji testów.
  • Definiuje rolę i odpowiedzialności testera w zespole.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Jak modele sekwencyjne (np. Waterfall) wpływają na testowanie?

A
  • We wczesnych fazach testerzy uczestniczą w przeglądach wymagań, analizie testowej i projektowaniu testów.
  • Testy dynamiczne (z uruchamianiem kodu) mogą rozpocząć się dopiero później w cyklu, gdy dostępny jest już działający kod.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Jak modele iteracyjne (np. Agile) wpływają na testowanie?

A
  • Każda iteracja dostarcza działający prototyp lub przyrost produktu, więc testowanie statyczne i dynamiczne może być przeprowadzane na wszystkich poziomach testów w każdej iteracji.
  • Częste wydania oznaczają konieczność szybkiej informacji zwrotnej oraz intensywnych testów regresji.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Jak model Agile w SDLC wpływa na testowanie?

A

Zakładamy, że zmiany mogą następować przez cały projekt, stąd preferuje się:

  • lekką dokumentację,
  • szeroką automatyzację testów regresji,
  • testy manualne oparte na technikach opartych na doświadczeniu.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Jakie dobre praktyki testowe są zalecane niezależnie od wybranego modelu SDLC?

A
  • Dla każdej aktywności deweloperskiej powinna istnieć odpowiadająca jej aktywność testowa.
  • Różne poziomy testów mają odrębne cele i powinny się uzupełniać (a nie dublować).
  • Analiza i projektowanie testów na danym poziomie powinny zaczynać się już w fazie deweloperskiej odpowiadającej temu poziomowi.
  • Testerzy biorą udział w przeglądach produktów pracy (shift-left) tak wcześnie, jak to możliwe (np. gdy dostępne są wstępne wersje specyfikacji).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Na czym polega podejście Test-Driven Development (TDD)?

A
  • Kodowanie jest kierowane przez przypadki testowe (zamiast rozległego projektowania z góry).
  • Najpierw pisze się testy, a dopiero potem implementuje się kod, by te testy przechodziły. Oba elementy są następnie refaktoryzowane w miarę potrzeb.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Opisz podejście Acceptance-Test Driven Development (ATDD).

A
  • Tworzy się testy w oparciu o kryteria akceptacji, jako część procesu projektowania systemu.
  • Poza tym jest bardzo zbliżone do TDD (najpierw testy, potem implementacja).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Opisz podejście Behavior-Driven Development (BDD).

A
  • Określa pożądane zachowanie aplikacji w postaci przypadków testowych pisanych w prostej, zrozumiałej dla interesariuszy formie (najczęściej w formacie Given / When / Then).
  • Testy te są następnie (zwykle automatycznie) tłumaczone na testy wykonywalne.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Czym jest DevOps?

A
  • To podejście organizacyjne, które tworzy synergię pomiędzy zespołami deweloperskimi i operacyjnymi w celu osiągania wspólnych celów.
  • Testowanie jest w tym ujęciu częścią strony deweloperskiej, choć często współpracuje z operacjami.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Jakie korzyści z DevOps można wymienić z perspektywy testowania?

A
  • Szybka informacja zwrotna dotycząca jakości kodu.
  • Zachęcanie deweloperów do tworzenia wysokiej jakości kodu, wraz z testami komponentów (jednostkowych) i analizą statyczną.
  • Promowanie zautomatyzowanych procesów (np. CI/CD).
  • Lepszy wgląd w aspekty niefunkcjonalne, takie jak wydajność czy niezawodność.
  • Zmniejszenie potrzeby powtarzania testów manualnych dzięki automatyzacji w pipeline’ie ciągłego dostarczania.
  • Mniejsze ryzyko regresji dzięki szerokiemu zakresowi zautomatyzowanych testów regresyjnych.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Jakie trzy ryzyka lub wyzwania wiążą się z DevOps?

A
  • Trzeba zdefiniować i utrzymać pipeline DevOps (proces ciągłego dostarczania).
  • Narzędzia CI/CD muszą zostać wprowadzone i stale aktualizowane.
  • Automatyzacja testów wymaga dodatkowych zasobów i bywa trudna do utrzymania, zwłaszcza na dłuższą metę.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Co oznacza podejście shift-left?

A

Testowanie należy rozpocząć wcześniej w cyklu wytwarzania oprogramowania (SDLC), zamiast czekać, aż kod zostanie w pełni zaimplementowany lub zintegrowany.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Opisz dobre praktyki przy podejściu shift-left.

A
  • Przeglądanie specyfikacji z perspektywy testów (wcześnie wykryte nieścisłości).
  • Pisanie przypadków testowych zanim powstanie kod i testowanie na bieżąco wraz z implementacją.
  • Wykorzystywanie ciągłej integracji (CI) i ciągłego dostarczania (CD) do szybkiej informacji zwrotnej.
  • Wykonywanie analizy statycznej przed testami dynamicznymi (często z użyciem narzędzi automatycznych).
  • Rozpoczynanie testów niefunkcjonalnych już na poziomie komponentów, a nie odkładanie ich na później.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Jak podejście shift-left wpływa na wysiłek i koszty?

A

Wymaga dodatkowego wysiłku i kosztów na początku projektu, ale pozwala zaoszczędzić czas i pieniądze w dalszej perspektywie (mniej poprawek w późnych fazach).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

O czym rozmawia się podczas Retrospektywy?

A
  • Co się udało i warto to zachować?
  • Co poszło źle lub mogłoby być lepsze?
  • Co robić inaczej w przyszłych iteracjach czy projektach?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

W jakim raporcie są zapisywane wyniki Retrospektywy?

A

Zwykle w raporcie z retrospektywy (Retrospective Report) lub w innym dokumencie podsumowującym ustalenia dla zespołu (np. w backlogu usprawnień, notatkach z retrospektywy itp.).

17
Q

Jakie są korzyści z Retrospektyw?

A
  • Zwiększenie efektywności i wydajności testów.
  • Wyższa jakość relacji w zespole (lepsza komunikacja).
  • Uczenie się na błędach (lepsze podejście w kolejnych iteracjach).
  • Poprawa jakości samego procesu testowego.
  • Wzmocnienie współpracy między deweloperami a testerami.