INNE EBOOKI AUTORA
Autor:
Wydawca:
Format:
epub, mobi, ibuk
Testowanie oprogramowania, choć kluczowe dla powodzenia projektów IT, wciąż jest niedocenianą dziedziną inżynierii oprogramowania. Jednym z powodów jest brak rzetelnych i wiarygodnych źródeł informacji o tej dyscyplinie. Niniejsza pozycja stanowi nowoczesne, obszerne kompendium wiedzy w zakresie testowania i jakości oprogramowania. Wykorzystanie opisanych w książce metod pozwala na znaczne usprawnienie i profesjonalizację procesu testowego, czyniąc go bardziej efektywnym w znajdowaniu defektów. Podręcznik przeznaczony jest w szczególności dla: • początkujących testerów – aby mogli szybko zapoznać się z podstawami testowania, • zawodowych testerów – aby ugruntowali i poszerzyli swoją wiedzę o zaawansowane techniki testowania, • inżynierów jakości – aby nauczyli się skutecznie wykorzystywać wartościowe modele i narzędzia zapewniania jakości, • kierowników i menedżerów testów – aby poznali techniki sprawnego i efektywnego zarządzania procesem testowym w organizacji oraz metody jego doskonalenia, • osób przygotowujących się do egzaminów ISTQB na wszystkich poziomach (podstawowym, zaawansowanym i eksperckim) – aby otrzymali zwarte źródło materiałów pomocnych w nauce do egzaminu, • pracowników naukowych prowadzących badania lub zajęcia dydaktyczne w obszarze inżynierii jakości. Zaletą książki jest wiele praktycznych przykładów. Ilustrują one zastosowanie wprowadzonych metod i narzędzi m.in. w takich obszarach, jak: projektowanie testów, analiza ryzyka, dokumentowanie procesu testowego, zarządzanie zespołem testerów, automatyzacja testów, doskonalenie procesu testowego, raportowanie, pomiar i zapewnianie jakości oprogramowania. W wielu książkach poświęconych testowaniu fundamentalne pojęcia czy techniki często są wprowadzane w sposób niejasny, niedbały lub wręcz błędny. Autor niniejszej pozycji dołożył szczególnej staranności w precyzyjnym ich definiowaniu. Stają się przez to zrozumiałe dla czytelnika, a dzięki dobrze dobranym przykładom – łatwe do zastosowania w praktyce.
Rok wydania | 2015 |
---|---|
Liczba stron | 1126 |
Kategoria | Programowanie |
Wydawca | Wydawnictwo Naukowe PWN |
ISBN-13 | 978-83-01-18392-9 |
Numer wydania | 1 |
Język publikacji | polski |
Informacja o sprzedawcy | ePWN sp. z o.o. |
INNE EBOOKI AUTORA
POLECAMY
Ciekawe propozycje
Spis treści
Spis ilustracji XXVII | |
Spis tabel XXXIV | |
Spis listingów XXXIX | |
Znaki handlowe XLI | |
Wstęp XLIII | |
CZĘŚĆ I. PODSTAWY TESTOWANIA | 1 |
1. Wprowadzenie do testowania | 3 |
1.1. Dlaczego testowanie jest niezbędne | 3 |
1.2. Definicja testowania | 4 |
1.3. Słynne przykłady awarii oprogramowania | 7 |
1.4. Rys historyczny | 11 |
1.5. Ogólne zasady testowania | 14 |
1.6. Jak dużo testować i kiedy skończyć? | 18 |
1.7. Psychologia testowania | 19 |
1.8. Kodeks etyczny testera | 21 |
1.9. Role związane z testowaniem | 22 |
2. Podstawowe definicje | 25 |
3. Proces testowy | 32 |
3.1. Podstawowy proces testowy | 33 |
3.1.1. Planowanie | 34 |
3.1.2. Monitorowanie i nadzór | 36 |
3.1.3. Analiza testów | 36 |
3.1.4. Projektowanie testów | 39 |
3.1.5. Implementacja testów | 43 |
3.1.6. Wykonanie testów | 46 |
3.1.7. Ocena spełnienia kryteriów wyjścia oraz raportowanie | 49 |
3.1.8. Czynności zamykające testowanie | 50 |
3.2. Proces testowy wg ISO/IEC/IEEE 29119 | 52 |
4. Testowanie w cyklu życia oprogramowania | 55 |
4.1. Modele wytwarzania oprogramowania | 55 |
4.1.1. Model kaskadowy | 56 |
4.1.2. Model V | 57 |
4.1.3. Model W | 58 |
4.1.4. Rational Unified Process (RUP) | 59 |
4.1.5. Rapid Application Development (RAD) | 60 |
4.1.6. Model spiralny Boehma | 61 |
4.1.7. Metodyki zwinne | 62 |
4.1.8. Metodologia Cleanroom | 68 |
4.2. Weryfikacja i walidacja | 70 |
4.3. Poziomy testów | 72 |
4.3.1. Testy jednostkowe | 73 |
4.3.2. Testy integracyjne | 74 |
4.3.3. Testy systemowe | 78 |
4.3.4. Testy akceptacyjne | 79 |
4.3.5. Pozostałe poziomy testów | 80 |
4.4. Typy testów | 82 |
4.4.1. Testy funkcjonalne | 83 |
4.4.2. Testy niefunkcjonalne | 83 |
4.4.3. Testy strukturalne | 84 |
4.4.4. Testy związane ze zmianami | 85 |
4.5. Poziomy a typy testów | 86 |
CZĘŚĆ II. TECHNIKI PROJEKTOWANIA TESTÓW | 87 |
5. Testowanie oparte na modelu | 89 |
5.1. Cechy dobrego modelu | 89 |
5.2. Taksonomia modeli | 91 |
5.3. Przykład wykorzystania modelu | 93 |
5.4. Modele działania oprogramowania | 96 |
5.4.1. Graf przepływu sterowania | 97 |
5.4.2. Ograniczenia w stosowaniu grafu przepływu sterowania | 102 |
5.4.3. Graf przepływu danych | 103 |
5.4.4. Ścieżki, ścieżki testowe i ścieżki nieosiągalne | 105 |
6. Techniki testowania statycznego | 107 |
6.1. Przeglądy | 108 |
6.1.1. Proces dla testowania statycznego | 110 |
6.1.2. Metody sprawdzania oraz możliwe wyniki przeglądu | 111 |
6.1.3. Role | 112 |
6.1.4. Aspekt psychologiczny przeglądów | 113 |
6.1.5. Typy przeglądów | 114 |
6.1.6. Biznesowa wartość przeglądów | 123 |
6.1.7. Wdrażanie przeglądów | 124 |
6.1.8. Kryteria sukcesu przeglądów | 126 |
6.2. Analiza statyczna | 127 |
6.2.1. Analiza przepływu sterowania | 127 |
6.2.2. Poprawność sekwencji operacji | 128 |
6.2.3. Analiza przepływu danych | 130 |
6.2.4. Narzędzia do parsowania kodu | 132 |
6.2.5. Testowanie zgodności ze standardami oprogramowania | 134 |
6.2.6. Metryki złożoności kodu | 134 |
6.2.7. Formalne dowodzenie poprawności | 137 |
6.2.8. Symboliczne wykonywanie kodu | 140 |
6.2.9 Analiza statyczna strony internetowej | 143 |
6.2.10. Grafy wywołań | 144 |
7. Analiza dynamiczna | 149 |
7.1. Wykrywanie wycieków pamięci | 151 |
7.2. Wykrywanie dzikich i wiszących wskaźników | 152 |
7.3. Błędy API | 153 |
7.4. Analiza wydajności (profiling) | 154 |
8. Techniki oparte na specyfikacji (czarnoskrzynkowe) | 158 |
8.1. Podział na klasy równoważności | 159 |
8.1.1. Opis metody | 159 |
8.1.2. Formalna definicja podziału | 161 |
8.1.3. Poprawne i niepoprawne klasy równoważności | 162 |
8.1.4. Procedura tworzenia przypadków testowych | 163 |
8.1.5. Przykład | 165 |
8.1.6. Przykład śledzenia artefaktów procesu testowego | 169 |
8.2. Analiza wartości brzegowych | 171 |
8.2.1. Opis metody | 171 |
8.2.2. Metody dwóch oraz trzech wartości granicznych | 172 |
8.2.3. Które wartości rozważać jako brzegowe? | 175 |
8.2.4. Przypadek zmiennych ciągłych | 178 |
8.2.5. Przykład | 178 |
8.3. Tablice decyzyjne | 181 |
8.3.1. Opis metody | 181 |
8.3.2. Wartości nieistotne i minimalizacja tablicy decyzyjnej | 185 |
8.3.3. Przykład | 189 |
8.4. Grafy przyczynowo-skutkowe | 191 |
8.4.1. Opis metody | 191 |
8.4.2. Przekształcanie między grafami P-S i tablicami decyzyjnymi | 194 |
8.4.3. Metoda śledzenia wstecznego – redukcja liczby testów | 197 |
8.4.4. Przykład | 201 |
8.5. Testowanie przejść między stanami | 202 |
8.5.1. Opis metody | 202 |
8.5.2. Tabelaryczne reprezentacje przejść | 206 |
8.5.3. Kryteria pokrycia dla maszyny stanowej | 208 |
8.5.4. Diagram maszyny stanowej w UML | 212 |
8.5.5. Przykład | 213 |
8.6. Kategoria-podział (Category-Partition) | 216 |
8.6.1. Opis metody | 216 |
8.6.2. Przykład | 217 |
8.7. Drzewa klasyfikacji | 222 |
8.7.1. Opis metody | 222 |
8.7.2. Budowa drzewa klasyfikacji | 222 |
8.7.3. Asortyment produktów programowych i model cech | 224 |
8.7.4. Przykład | 227 |
8.8. Metody kombinacyjne | 229 |
8.8.1. Opis metody | 229 |
8.8.2. Each Choice | 230 |
8.8.3. Base Choice | 231 |
8.8.4. Multiple Base Choice | 232 |
8.8.5. Pair-wise testing | 233 |
8.8.6. Pokrycie n-tupletów (n-wise) | 239 |
8.8.7. Pełne pokrycie kombinatoryczne | 240 |
8.8.8. Subsumpcja kryteriów kombinacyjnych | 240 |
8.9. Testowanie dziedziny | 241 |
8.9.1. Opis metody | 241 |
8.9.2. Hiperpłaszczyzny i podprzestrzenie | 242 |
8.9.3. Wyznaczanie hiperpłaszczyzny przez punkty | 243 |
8.9.4. Punkty IN, OUT, ON i OFF | 244 |
8.9.5. Strategia IN-OUT dla testowania dziedziny | 245 |
8.9.6. Strategia N-ON × M-OFF dla testowania wartości brzegowych | 245 |
8.9.7. Ograniczenia nieliniowe | 247 |
8.9.8. Przykład | 248 |
8.10. Testowanie oparte na przypadkach użycia | 251 |
8.10.1. Opis metody | 251 |
8.10.2. Przykład | 252 |
8.11. Testowanie oparte na scenariuszach | 257 |
8.11.1. Opis metody | 257 |
8.11.2. Przykład | 257 |
8.12. Testowanie oparte na historyjkach użytkownika | 262 |
8.12.1. Opis metody | 262 |
8.12.2. Przykład | 264 |
8.13. Testowanie losowe | 266 |
8.13.1. Opis metody | 266 |
8.13.2. Wady i zalety testowania losowego | 266 |
8.13.3. Automatyzacja i problem wyroczni | 267 |
8.13.4. Adaptive Random Testing (ART) | 268 |
8.13.5. Losowanie danych wejściowych | 269 |
8.13.6. Przykład | 270 |
8.14. Testowanie oparte na składni | 272 |
8.14.1. Opis metody | 272 |
8.14.2. Notacja Backusa–Naura (BNF) | 273 |
8.14.3. Tworzenie przypadków testowych | 274 |
8.14.4. Przykład | 275 |
8.15. Testowanie CRUD | 277 |
8.15.1. Opis metody | 277 |
8.15.2. Rozszerzenie metody | 278 |
8.15.3. Przykład | 280 |
8.16. Wybór i łączenie technik ze sobą | 283 |
9. Techniki oparte na strukturze (białoskrzynkowe) | 284 |
9.1. Testowanie instrukcji | 285 |
9.1.1. Opis metody | 285 |
9.1.2. Przykład | 287 |
9.2. Testowanie gałęzi | 289 |
9.2.1. Opis metody | 289 |
9.2.2. Przykład | 290 |
9.3. Testowanie decyzji | 292 |
9.3.1. Opis metody | 292 |
9.3.2. Testowanie decyzji a testowanie gałęzi | 294 |
9.3.3. Przykład | 295 |
9.4. Testowanie warunków | 298 |
9.4.1. Opis metody | 298 |
9.4.2. Przykład | 300 |
9.5. Testowanie warunków/decyzji | 301 |
9.5.1. Opis metody | 301 |
9.5.2. Przykład | 302 |
9.6. Testowanie wielokrotnych warunków | 303 |
9.6.1. Opis metody | 303 |
9.6.2. Zwarcie (semantyka short-circuit) | 304 |
9.6.3. Nieosiągalne kombinacje warunków | 305 |
9.6.4. Przykład | 306 |
9.7. Testowanie warunków znaczących (MC/DC) | 308 |
9.7.1. Opis metody | 308 |
9.7.2. Dwa warianty kryterium MC/DC | 309 |
9.7.3. Skorelowane a ścisłe pokrycie warunków znaczących | 311 |
9.7.4. Wyznaczanie wartości warunków pobocznych dla warunku znaczącego | 313 |
9.7.5. Przykład | 315 |
9.8. Pokrycie MUMCUT oraz kryteria z nim związane | 317 |
9.8.1. Opis metody | 317 |
9.8.2. Kryteria MUTP, MNFP, CUTPNFP i MUMCUT | 317 |
9.8.3. Przykład | 318 |
9.8.4. Zdolność metody MUMCUT do wykrywania określonych typów błędów | 319 |
9.9. Testowanie pętli | 320 |
9.9.1. Opis metody | 320 |
9.9.2. Pętle zagnieżdżone | 321 |
9.9.3. Testowanie wzorców pętli | 321 |
9.9.4. Przykład | 324 |
9.10. Liniowa sekwencja kodu i skok (LSKiS) | 326 |
9.10.1. Opis metody | 326 |
9.10.2. Przykład | 328 |
9.10.3. LSKiS a DD-ścieżki i bloki podstawowe | 330 |
9.11. Testowanie ścieżek pierwszych | 332 |
9.11.1. Opis metody | 332 |
9.11.2. Algorytm wyznaczania ścieżek pierwszych | 334 |
9.11.3. Przykład | 335 |
9.12. Analiza ścieżek | 338 |
9.12.1. Wstęp | 338 |
9.12.2. Testowanie wszystkich ścieżek | 339 |
9.12.3. Ścieżki liniowo niezależne i testowanie ścieżek bazowych | 339 |
9.12.4. Wyznaczanie ścieżek bazowych | 343 |
9.12.5. Przykład | 345 |
9.12.6. Inne kryteria pokrycia związane z testowaniem ścieżek | 347 |
9.13. Testowanie przepływu danych | 348 |
9.13.1. Wstęp | 348 |
9.13.2. Pokrycie wszystkich definicji (all-defs) | 350 |
9.13.3. Pokrycie wszystkich użyć (all-uses) | 351 |
9.13.4. Pokrycie wszystkich du-ścieżek (all-du-paths) | 351 |
9.13.5. Uwagi o kryteriach pokrycia przepływu danych | 352 |
9.13.6. Przykład | 352 |
9.14. Objazdy i ścieżki poboczne (detours, sidetrips) | 356 |
9.15. Testowanie mutacyjne | 357 |
9.15.1. Wstęp | 357 |
9.15.2. Rodzaje mutantów | 361 |
9.15.3. Proces testowania mutacyjnego | 362 |
9.15.4. Operatory mutacyjne | 363 |
9.16. Subsumpcja kryteriów | 368 |
10. Techniki oparte na defektach i na doświadczeniu | 369 |
10.1. Wstrzykiwanie błędów | 370 |
10.2. Taksonomie | 372 |
10.3. Zgadywanie błędów | 375 |
10.3.1. Opis metody | 375 |
10.3.2. Przykład | 375 |
10.4. Testowanie oparte na liście kontrolnej | 376 |
10.5. Testowanie eksploracyjne | 377 |
10.5.1. Opis metody | 377 |
10.5.2. Przykład sesji testowania eksploracyjnego | 379 |
10.6. Ataki usterkowe | 382 |
10.7. Testowanie ad hoc | 384 |
11. Wybór odpowiednich technik | 385 |
12. Priorytetyzacja przypadków testowych | 388 |
12.1. Wprowadzenie | 388 |
12.2. Ocena priorytetyzacji – miara APFD | 389 |
12.3. Techniki priorytetyzacji | 391 |
CZĘŚĆ III. TESTOWANIE CHARAKTERYSTYK JAKOŚCIOWYCH | 393 |
13. Model jakości według ISO 9126 | 395 |
14. Modele jakości według ISO 25010 | 397 |
15. Testowanie jakości użytkowej | 401 |
15.1. Testowanie efektywności (effectiveness) | 401 |
15.2. Testowanie wydajności (efficiency) | 401 |
15.3. Testowanie satysfakcji (satisfaction) | 402 |
15.3.1. Przydatność (usefulness) | 402 |
15.3.2. Zaufanie (trust) | 402 |
15.3.3. Przyjemność (pleasure) | 403 |
15.3.4. Komfort (comfort) | 403 |
15.4. Testowanie wolności od ryzyka (freedom from risk) | 403 |
15.4.1. Ryzyko ekonomiczne (economic risk) | 403 |
15.4.2. Ryzyko dotyczące zdrowia i bezpieczeństwa (health and safety risk) | 404 |
15.4.3. Ryzyko związane ze środowiskiem (environmental risk) | 404 |
15.5. Testowanie kontekstu użycia (context coverage) | 404 |
15.5.1. Zupełność kontekstu (context completeness) | 404 |
15.5.2. Elastyczność (flexibility) | 405 |
16. Testowanie jakości produktu | 406 |
16.1. Testowanie funkcjonalnej przydatności (functional suitability) | 406 |
16.1.1. Zupełność funkcjonalności (functional completeness) | 407 |
16.1.2. Poprawność funkcjonalności (functional correctness) | 407 |
16.1.3. Stosowność funkcjonalności (functional appropriateness) | 408 |
16.2. Testowanie wydajności w działaniu (performance efficiency) | 408 |
16.2.1. Zachowanie w czasie (time behaviour) | 409 |
16.2.2. Zużycie zasobów (resource utilization) | 409 |
16.2.3. Pojemność (capacity) | 410 |
16.2.4. Techniki testowania wydajności | 410 |
16.3. Testowanie zgodności (compatibility) | 413 |
16.3.1. Współistnienie (co-existence) | 413 |
16.3.2. Współdziałanie (interoperability) | 414 |
16.3.3. Przykład | 414 |
16.4. Testowanie użyteczności (usability) | 415 |
16.4.1. Zrozumiałość (appropriateness recognizability) | 417 |
16.4.2. Łatwość nauki (learnability) | 418 |
16.4.3. Łatwość użycia (operability) | 418 |
16.4.4. Ochrona przed błędami użytkownika (user error protection) | 418 |
16.4.5. Estetyka interfejsu użytkownika (user interface aesthetics) | 419 |
16.4.6. Dostęp (accessibility) | 419 |
16.5. Heurystyki dotyczące użyteczności | 420 |
16.5.1. Heurystyki Nielsena | 420 |
16.5.2. Laboratorium badania użyteczności (usability lab) | 426 |
16.6. Testowanie niezawodności (reliability) | 428 |
16.6.1. Dojrzałość (maturity) | 429 |
16.6.2. Odporność na błędy (fault tolerance, robustness) | 431 |
16.6.3. Odtwarzalność (recoverability) | 431 |
16.6.4. Dostępność (availability) | 432 |
16.7. Testowanie zabezpieczeń (security) | 432 |
16.7.1. Poufność (confidentiality) | 433 |
16.7.2. Integralność (integrity) | 433 |
16.7.3. Niezaprzeczalność (non-repudiation) | 433 |
16.7.4. Odpowiedzialność (accountability) | 433 |
16.7.5. Uwierzytelnianie (authenticity) | 434 |
16.8. Testowanie pielęgnowalności (maintainability) | 434 |
16.8.1. Modularność (modularity) | 434 |
16.8.2. Powtórne użycie (reusability) | 436 |
16.8.3. Analizowalność (analyzability) | 436 |
16.8.4. Modyfikowalność (modifiability) | 437 |
16.8.5. Testowalność (testability) | 437 |
16.9. Testowanie przenaszalności (portability) | 440 |
16.9.1. Adaptowalność (adaptability) | 440 |
16.9.2. Instalowalność (installability) | 441 |
16.9.3. Zastępowalność (replaceability) | 442 |
17. Testowanie jakości danych | 443 |
17.1. Model jakości danych | 443 |
17.2. Charakterystyki inherentne | 444 |
17.2.1. Dokładność (accuracy) | 444 |
17.2.2. Zupełność (completeness) | 445 |
17.2.3. Spójność (consistency) | 446 |
17.2.4. Wiarygodność (credibility) | 446 |
17.2.5. Aktualność (currentness) | 446 |
17.3. Charakterystyki inherentne i zależne od systemu | 447 |
17.3.1. Dostępność (accessibility) | 447 |
17.3.2. Zgodność (compliance) | 447 |
17.3.3. Poufność (confidentiality) | 448 |
17.3.4. Wydajność (efficiency) | 448 |
17.3.5. Precyzja (precision) | 449 |
17.3.6. Identyfikowalność (traceability) | 449 |
17.3.7. Zrozumiałość (understandability) | 450 |
17.4. Charakterystyki zależne od systemu | 450 |
17.4.1. Dostępność (availability) | 450 |
17.4.2. Przenaszalność (portability) | 450 |
17.4.3. Odtwarzalność (recoverability) | 450 |
CZĘŚĆ IV. ZARZĄDZANIE TESTOWANIEM | 453 |
18. Zarządzanie testowaniem w kontekście | 455 |
18.1. Kontekst ograniczeń projektowych | 456 |
18.2. Kontekst interesariuszy procesu testowego | 456 |
18.3. Kontekst produkcji oprogramowania | 458 |
18.4. Kontekst cyklu życia oprogramowania | 460 |
18.5. Kontekst testów | 460 |
18.6. Kontekst czynnika ludzkiego | 461 |
19. Testowanie oparte na ryzyku | 462 |
19.1. Czym jest ryzyko? | 463 |
19.2. Zalety testowania opartego na ryzyku | 466 |
19.3. Rodzaje ryzyka | 468 |
19.4. Zarządzanie ryzykiem w cyklu życia | 469 |
19.5. Identyfikacja ryzyka | 471 |
19.5.1. Analiza interesariuszy (stakeholder analysis) | 471 |
19.5.2. Technika „władza versus zainteresowanie” | 473 |
19.5.3. Techniki identyfikacji ryzyk | 474 |
19.5.4. Przykłady ryzyk produktowych | 476 |
19.6. Analiza ryzyka | 478 |
19.6.1. Klasyfikacja ryzyk | 478 |
19.6.2. Czynniki wpływające na prawdopodobieństwo i wpływ ryzyka | 479 |
19.6.3. Ilościowa i jakościowa ocena ryzyka produktowego | 480 |
19.6.4. Osiąganie konsensusu w procesie decyzyjnym | 481 |
19.6.5. Priorytetyzacja ryzyk | 482 |
19.7. Łagodzenie ryzyka | 484 |
19.7.1. Sposoby łagodzenia ryzyka | 484 |
19.7.2. Łagodzenie ryzyka przez testowanie | 485 |
19.7.3. Estymacja kosztów łagodzenia ryzyka | 487 |
19.8. Monitorowanie ryzyka | 489 |
19.8.1. Macierz identyfikowalności ryzyk | 490 |
19.8.2. Aktualizacja ryzyk oraz ich parametrów | 491 |
19.8.3. Raportowanie | 492 |
19.9. Techniki analizy ryzyka | 493 |
19.9.1. PRAM (Pragmatic Risk Analysis and Management) | 494 |
19.9.2. SST (Systematic Software Testing) | 496 |
19.9.3. Przykład: zastosowanie SST do systemu ELROJ | 499 |
19.9.4. PRisMa (Product Risk Management) | 500 |
19.9.5. Przykład: zastosowanie PRisMa do systemu ELROJ | 508 |
19.9.6. Analiza zagrożeń (hazard analysis) | 511 |
19.9.7. Koszt ekspozycji ryzyka (cost of exposure) | 513 |
19.9.8. FMEA (Failure Mode and Effect Analysis) | 515 |
19.9.9. Przykład: zastosowanie FMEA do systemu ELROJ | 517 |
19.9.10. QFD (Quality Function Deployment) | 518 |
19.9.11. Przykład: zastosowanie QFD do systemu ELROJ | 521 |
19.9.12. FTA (Fault Tree Analysis) | 523 |
19.9.13. Przykład: zastosowanie FTA do systemu ELROJ | 527 |
19.10. TMap (Test Management Approach) | 529 |
19.11. TestGoal – testowanie oparte na wynikach | 530 |
20. Pozostałe strategie testowania | 533 |
20.1. Testowanie oparte na wymaganiach | 533 |
20.1.1. Testowanie wymagań | 534 |
20.1.2. Projektowanie testów opartych na wymaganiach | 537 |
20.1.3. Przykład: obliczanie punktacji w grze w kręgle | 538 |
20.2. Podejście oparte na modelu (profile operacyjne) | 540 |
20.3. Podejście metodyczne (listy kontrolne) | 542 |
20.4. Podejście oparte na standardzie | 543 |
20.5. Inne podejścia | 545 |
20.5.1. Podejście reaktywne | 545 |
20.5.2. Podejście good enough | 546 |
20.5.3. Podejście konsultacyjne | 546 |
21. Dokumentacja w zarządzaniu testowaniem | 547 |
21.1. Dokumenty organizacyjnego procesu testowego | 550 |
21.1.1. Polityka testów | 550 |
21.1.2. Przykład polityki testów | 551 |
21.1.3. Organizacyjna strategia testowania | 553 |
21.1.4. Przykład organizacyjnej strategii testowania | 555 |
21.2. Dokumenty procesu zarządzania testowaniem | 558 |
21.2.1. Plan testów (test plan) | 558 |
21.2.2. Przykład planu testów | 560 |
21.2.3. Jednopoziomowy plan testów (level test plan) | 566 |
21.2.4. Przykład jednopoziomowego planu testów | 568 |
21.2.5. Raport o stanie testów (test status report) | 571 |
21.2.6. Przykład raportu o stanie testów | 571 |
21.2.7. Raport końcowy z testowania (test completion report) | 572 |
21.2.8. Przykład raportu końcowego z testowania | 573 |
21.3. Dokumenty dynamicznych procesów testowych | 574 |
21.3.1. Specyfikacja testów (test design specification) | 574 |
21.3.2. Przykład specyfikacji testów | 575 |
21.3.3. Specyfikacja przypadku testowego (test case specification) | 576 |
21.3.4. Przykład specyfikacji przypadku testowego | 577 |
21.3.5. Specyfikacja procedury testowej (test procedure specification) | 577 |
21.3.6. Przykład specyfikacji procedury testowej | 578 |
21.3.7. Wymagania co do danych testowych (test data requirements) | 579 |
21.3.8. Przykład wymagania co do danych testowych | 580 |
21.3.9. Wymagania co do środowiska testowego (test environment requirements) | 581 |
21.3.10. Przykład wymagań co do środowiska testowego | 582 |
21.3.11. Raport o gotowości danych testowych (test data readiness report) | 583 |
21.3.12. Raport o gotowości środowiska testowego (test environment readiness report) | 583 |
21.3.13. Otrzymane wyniki (actual results) | 583 |
21.3.14. Wynik testu (test result) | 583 |
21.3.15. Dziennik wykonania testów (test execution log) | 584 |
21.3.16. Raport o incydencie (test incident report) | 584 |
21.3.17. Raport z sesji testowania eksploracyjnego (exploratory testing session report) | 585 |
21.3.18. Przykład raportu z sesji testowania eksploracyjnego | 585 |
22. Szacowanie testów | 587 |
22.1. Czynniki wpływające na szacowanie | 588 |
22.2. Techniki szacowania | 590 |
22.2.1. Intuicja, zgadywanie, doświadczenie | 590 |
22.2.2. Estymacja przez analogię | 591 |
22.2.3. Struktura podziału prac (Work Breakdown Structure, WBS) | 591 |
22.2.4. Estymacja grupowa | 592 |
22.2.5. Dane przemysłowe | 593 |
22.2.6. Analiza punktów testowych (Test Point Analysis) | 594 |
22.2.7. Modele matematyczne (parametryczne) | 599 |
22.3. Negocjacje i redukcja zakresu testów | 599 |
23. Nadzór i kontrola postępu testów | 601 |
23.1. Wprowadzenie | 601 |
23.2. Przykłady metryk | 604 |
23.2.1. Metryki ryzyka produktowego | 605 |
23.2.2. Metryki defektów | 605 |
23.2.3. Metryki przypadków testowych | 608 |
23.2.4. Metryki pokrycia | 609 |
23.2.5. Metryki pewności | 610 |
23.3. Zarządzanie testowaniem opartym na sesji | 611 |
24. Biznesowa wartość testowania | 613 |
24.1. Wprowadzenie | 613 |
24.2. Koszt jakości | 614 |
24.3. Wartość ekonomiczna oprogramowania i problemy z nią związane | 617 |
24.4. Dług technologiczny w kontekście testowania | 618 |
25. Testowanie rozproszone, zakontraktowane i zewnętrzne | 620 |
25.1. Zespoły w ramach organizacji | 621 |
25.2. Zespoły w ramach innych oddziałów organizacji | 622 |
25.3. Dostawcy sprzętu i oprogramowania | 623 |
25.4. Dostawcy usług testowych | 623 |
25.5. TaaS (Testing as a Service) | 623 |
26. Zarządzanie wdrażaniem standardów przemysłowych | 626 |
27. Zarządzanie incydentami | 627 |
27.1. Cykl życia defektu | 628 |
27.2. Atrybuty defektu i ODC | 630 |
27.2.1. Atrybuty defektów | 630 |
27.2.2. ODC (Orthogonal Defect Classification) | 630 |
27.2.3. Przykładowe analizy przy użyciu ODC | 631 |
27.3. Metryki zarządzania incydentami | 633 |
27.4. Zawartość raportu o incydencie | 635 |
27.5. Komunikowanie incydentów | 636 |
CZĘŚĆ V. LUDZIE I NARZĘDZIA | 637 |
28. Ludzie i ich kompetencje – tworzenie zespołu | 639 |
28.1. Budowanie zespołu testowego | 640 |
28.1.1. Opis stanowiska | 641 |
28.1.2. Analiza CV | 643 |
28.1.3. Rozmowa kwalifikacyjna | 643 |
28.1.4. Asymilacja nowego członka zespołu | 646 |
28.1.5. Zakończenie zatrudnienia | 646 |
28.2. Rozwój zespołu testowego | 647 |
28.2.1. Indywidualny rozwój poszczególnych członków zespołu | 647 |
28.2.2. Wyznaczanie celów | 648 |
28.2.3. Dynamika zespołu testowego | 649 |
28.2.4. Określanie ról i odpowiedzialności | 651 |
28.2.5. Umiejętności zespołu jako całości: gap analysis | 652 |
28.2.6. Indywidualne osobowości i role w zespole | 654 |
28.2.7. Rozwój umiejętności i szkolenia | 657 |
28.2.8. Mentoring | 658 |
28.2.9. Okresowa ocena członków zespołu | 658 |
28.3. Przywództwo | 659 |
28.3.1. Zarządzanie a przywództwo | 659 |
28.3.2. Model zmiany według Satir | 659 |
28.3.3. Cechy charakteru lidera i zasady przywództwa | 660 |
28.3.4. Informowanie i komunikacja | 661 |
28.3.5. Lojalność, zaufanie i odpowiedzialność | 662 |
28.3.6. Budowanie zespołu | 662 |
28.4. Poziomy niezależności zespołu testowego | 662 |
28.5. Komunikacja | 664 |
29. Techniki pracy grupowej | 665 |
29.1. Proces podejmowania decyzji | 666 |
29.2. Techniki wspomagania kreatywności | 666 |
29.2.1. Burza mózgów | 666 |
29.2.2. NGT (Nominal Group Technique) | 667 |
29.2.3. Metoda analogii | 668 |
29.2.4. JAD (Joint Application Development) | 668 |
29.3. Techniki porządkowania i priorytetyzacji | 668 |
29.3.1. Diagram podobieństwa (affinity diagram) | 668 |
29.3.2. Macierz i graf priorytetyzacji | 669 |
29.3.3. Mapa myśli | 671 |
29.4. Techniki szacowania i oceny | 671 |
29.4.1. Wielokrotne głosowanie | 671 |
29.4.2. Metoda delficka i Wideband Delphi | 672 |
29.4.3. Poker planistyczny (planning poker) | 675 |
29.4.4. Model Saaty’ego (Analytic Hierarchy Process) | 676 |
29.5. Definiowanie problemu, przyczyny źródłowej lub możliwości | 678 |
29.5.1. Analiza pola sił (force field analysis) | 678 |
29.5.2. Immersja | 679 |
29.5.3. Diagram rybiej ości (diagram Ishikawy) | 680 |
30. Testowanie wspierane narzędziami | 682 |
30.1. Podstawowe zagadnienia związane z użyciem narzędzi | 683 |
30.1.1. Wybór odpowiedniego narzędzia | 684 |
30.1.2. Koszty wdrożenia narzędzia | 685 |
30.1.3. Ryzyka związane z wdrożeniem narzędzia | 686 |
30.1.4. Korzyści z wdrożenia narzędzia | 687 |
30.1.5. Strategie wdrażania automatyzacji | 688 |
30.1.6. Integracja i wymiana informacji między narzędziami | 688 |
30.1.7. Klasyfikacja narzędzi testowych | 689 |
30.2. Automatyzacja testów | 691 |
30.2.1. Czynniki sukcesu udanej automatyzacji | 691 |
30.2.2. Metryki dla automatyzacji testów | 692 |
30.3. Generyczna architektura automatyzacji testów | 693 |
30.3.1. Warstwa generowania testów | 695 |
30.3.2. Warstwa definiowania testów | 695 |
30.3.3. Warstwa wykonania testów | 695 |
30.3.4. Warstwa adaptacji testów | 696 |
30.3.5. Zarządzanie konfiguracją | 696 |
30.4. Automatyczna generacja danych testowych | 697 |
30.5. Metody i techniki automatyzacji testów | 699 |
30.5.1. Kroki procesu projektowania architektury | 699 |
30.5.2. Podejścia do automatyzacji przypadków testowych | 703 |
30.5.3. Podejście nagraj i odtwórz | 704 |
30.5.4. Skrypty linearne | 708 |
30.5.5. Skrypty zorganizowane | 711 |
30.5.6. Testowanie oparte na danych | 713 |
30.5.7. Testowanie oparte na słowach kluczowych | 715 |
30.5.8. Testowanie oparte na procesie | 719 |
30.5.9. Testowanie oparte na modelu | 721 |
30.5.10. Języki i notacje dla definicji testów | 722 |
30.6. Katalog narzędzi testowych | 729 |
30.6.1. Narzędzia do zarządzania testami | 730 |
30.6.2. Narzędzia do wykonywania/organizacji testów | 730 |
30.6.3. Narzędzia do testowania mutacyjnego, posiewu usterek i wstrzykiwania błędów | 731 |
30.6.4. Narzędzia do testów bezpieczeństwa | 731 |
30.6.5. Symulatory i emulatory | 731 |
30.6.6. Narzędzia do analizy statycznej i dynamicznej | 732 |
30.6.7. Narzędzia do testów wydajnościowych | 733 |
30.6.8. Narzędzia typu capture & replay | 733 |
30.6.9. Narzędzia do testów jednostkowych | 733 |
30.6.10. Testowanie w metodyce BDD | 734 |
30.6.11. Narzędzia dla testowania opartego na modelu | 735 |
30.6.12. Narzędzia do śledzenia defektów, zarządzania incydentami i raportowania | 735 |
30.7. Wdrażanie narzędzi w organizacji | 736 |
30.7.1. Cykl życia narzędzia | 736 |
30.7.2. Użycie narzędzi open source | 736 |
30.7.3. Przykładowe problemy związane z użyciem narzędzi | 738 |
CZĘŚĆ VI. UDOSKONALANIE PROCESU TESTOWEGO | 739 |
31. Kontekst udoskonalania procesu | 741 |
31.1. Po co udoskonalać? | 741 |
31.2. Co można udoskonalić? | 743 |
31.3. Spojrzenia na jakość | 745 |
31.3.1. Jakość oparta na produkcie | 745 |
31.3.2. Jakość oparta na użytkowniku | 745 |
31.3.3. Jakość oparta na wytwarzaniu | 746 |
31.3.4. Jakość oparta na wartości | 746 |
31.3.5. Jakość transcendentna | 746 |
31.4. Generyczny proces udoskonalania | 747 |
31.4.1. Cykl Deminga–Shewarta (PDCA) | 747 |
31.4.2. IDEAL | 749 |
31.4.3. Podstawowe zasady doskonałości (Fundamental Concepts of Excellence) | 751 |
31.5. Przegląd podejść do udoskonalania | 752 |
31.5.1. Podejścia oparte na modelu | 752 |
31.5.2. Podejścia analityczne | 755 |
31.5.3. Podejścia hybrydowe | 755 |
31.5.4. Inne podejścia do udoskonalania procesu testowego | 755 |
32. Udoskonalanie oparte na modelu | 758 |
32.1. Wprowadzenie | 758 |
32.2. Udoskonalanie procesów organizacyjnych i biznesowych | 759 |
32.2.1. TQM (Total Quality Management) | 760 |
32.2.2. ISO 9000 | 761 |
32.2.3. EFQM Excellence Model | 761 |
32.2.4. Six Sigma | 762 |
32.2.5. Lean | 763 |
32.3. Udoskonalanie procesu produkcji oprogramowania | 764 |
32.3.1. CMMI | 764 |
32.3.2. ISO/IEC 15504 | 766 |
32.3.3. ITIL (Information Technology Infrastructure Library) | 766 |
32.3.4. TSP (Team Software Process) | 767 |
32.3.5. BOOTSTRAP | 767 |
32.4. Udoskonalanie procesu testowego – modele referencyjne procesu | 768 |
32.4.1. TPI Next (Test Process Improvement) | 768 |
32.4.2. TMMi (Test Maturity Model integration) | 776 |
32.4.3. Porównanie TPI Next i TMMi | 786 |
32.5. Udoskonalanie procesu testowego – modele referencyjne zawartości | 786 |
32.5.1. STEP (Systematic Test and Evaluation Process) | 786 |
32.5.2. CTP (Critical Testing Processes) | 790 |
33. Podejście analityczne | 792 |
33.1. Wprowadzenie | 792 |
33.2. Analiza przyczynowa | 792 |
33.2.1. Opis metody | 792 |
33.2.2. Wybór elementów do analizy przyczynowej | 793 |
33.2.3. Zebranie i zorganizowanie informacji | 801 |
33.2.4. Identyfikacja przyczyny źródłowej przez analizę zebranych informacji | 802 |
33.2.5. Wyciągnięcie wniosków | 803 |
33.3. Podejście GQM (Goal–Question–Metric) | 804 |
33.3.1. Opis metody | 804 |
33.3.2. Fazy GQM | 804 |
33.3.3. Dwa paradygmaty metody GQM | 805 |
33.3.4. Wzorzec definiowania celu | 807 |
33.3.5. Siedem pytań | 807 |
33.3.6. Przykład | 808 |
33.4. Miary, metryki i wskaźniki | 809 |
34. Wybór metody usprawniania | 810 |
35. Proces udoskonalania | 812 |
35.1. Wprowadzenie | 812 |
35.2. Rozpoczęcie procesu doskonalenia | 813 |
35.2.1. Określenie powodu doskonalenia (stymulacja do zmiany) | 813 |
35.2.2. Ustanowienie celów dla doskonalenia testowania | 814 |
35.2.3. Określenie kontekstu | 817 |
35.2.4. Pozyskanie wsparcia | 818 |
35.2.5. Stworzenie infrastruktury dla procesu udoskonalania | 818 |
35.3. Diagnozowanie aktualnej sytuacji | 819 |
35.3.1. Scharakteryzowanie obecnego oraz pożądanego stanu procesu | 819 |
35.3.2. Rekomendacje akcji naprawczych | 821 |
35.4. Ustanowienie planu doskonalenia procesu testowego | 821 |
35.4.1. Ustanowienie priorytetów dla wdrażania planu doskonalenia | 821 |
35.4.2. Opracowanie podejścia do wdrożenia | 822 |
35.4.3. Zaplanowanie działań związanych z wdrożeniem | 823 |
35.5. Działanie w celu wdrożenia udoskonaleń | 823 |
35.5.1. Stworzenie rozwiązania | 824 |
35.5.2. Rozwiązania pilotażowe/testowe | 824 |
35.5.3. Doprecyzowanie rozwiązania | 825 |
35.5.4. Zaimplementowanie rozwiązania | 825 |
35.6. Wyciąganie wniosków z projektu doskonalenia testów | 825 |
35.6.1. Analiza i weryfikacja przeprowadzonych działań | 825 |
35.6.2. Propozycje przyszłych rozwiązań | 826 |
36. Organizacja, role i umiejętności | 827 |
36.1. Organizacja | 827 |
36.1.1. Zakres działań GPT | 827 |
36.1.2. Organizacja Grupy procesu testowego | 828 |
36.1.3. Właściwości Grupy procesu testowego | 829 |
36.2. Role i umiejętności | 829 |
36.2.1. Doskonalący proces testowy | 829 |
36.2.2. Główny oceniający | 831 |
36.2.3. Oceniający | 831 |
36.2.4. Umiejętności doskonalącego proces testowy | 832 |
37. Czynniki sukcesu | 835 |
CZĘŚĆ VII. JAKOŚĆ OPROGRAMOWANIA | 837 |
38. Czym jest jakość oprogramowania? | 839 |
38.1. Testowanie oprogramowania a jakość oprogramowania | 839 |
38.2. Model Kano | 840 |
38.3. Dojrzałość procesu i standardy jakości | 841 |
38.3.1. SPR | 842 |
38.3.2. Ocena Malcolma Baldridge’a | 843 |
38.4. Co mierzyć, jak mierzyć i po co mierzyć? | 843 |
39. Podstawy teorii pomiarów | 845 |
39.1. Metryka, miara, wskaźnik, pomiar | 845 |
39.2. Skale pomiarowe | 847 |
39.2.1. Skala nominalna | 847 |
39.2.2. Skala porządkowa | 848 |
39.2.3. Skala interwałowa | 849 |
39.2.4. Skala stosunkowa | 849 |
39.2.5. Podsumowanie rodzajów skal pomiarowych | 849 |
39.3. Typy metryk | 850 |
39.3.1. Metryka bezpośrednia (podstawowa) | 850 |
39.3.2. Suma/różnica | 850 |
39.3.3. Stosunek | 850 |
39.3.4. Proporcja | 851 |
39.3.5. Odsetek | 851 |
39.3.6. Miary iloczynowe | 851 |
39.3.7. Tempo | 852 |
39.4. Spójność i odpowiedniość pomiaru | 852 |
39.5. Błędy pomiarowe | 854 |
39.6. Podstawowe zasady analizy danych | 855 |
39.6.1. Miary tendencji centralnej | 855 |
39.6.2. Miary rozproszenia | 857 |
39.6.3. Korelacja i regresja liniowa | 858 |
39.6.4. Przyczynowość | 863 |
40. Narzędzia kontroli jakości | 865 |
40.1. Klasyfikacja narzędzi | 865 |
40.2. Rodzaje narzędzi oraz obszary ich zastosowań | 866 |
40.3. Statystyczna kontrola procesu | 866 |
40.3.1. Wykres przebiegu | 873 |
40.3.2. Karty kontrolne | 874 |
40.4. Wykres czasu cyklu | 880 |
40.5. Narzędzia analizy i zapobiegania przyczynom źródłowym | 880 |
40.5.1. 5 pytań „dlaczego?” i diagram „why–why” | 881 |
40.5.2. Macierz „jest–nie jest” | 882 |
40.5.3. Kaizen | 883 |
40.5.4. Poka yoke | 883 |
41. Metryki wielkości oprogramowania | 885 |
41.1. Metryki wolumenowe | 885 |
41.1.1. LOC | 886 |
41.1.2. Współczynnik produktywności języka | 888 |
41.1.3. Pomiar specyfikacji i projektu | 889 |
41.2. Metryki funkcjonalności | 890 |
41.2.1. Punkty funkcyjne | 890 |
41.2.2. Punkty obiektowe i rozszerzone punkty obiektowe | 897 |
41.2.3. Punkty cech | 897 |
41.2.4. Punkty przypadków użycia | 898 |
42. Metryki charakterystyk jakościowych | 901 |
42.1. Metryki dla funkcjonalności | 901 |
42.2. Metryki dla niezawodności | 902 |
42.3. Metryki dla użyteczności | 903 |
42.4. Metryki dla wydajności | 904 |
42.5. Metryki dla pielęgnowalności | 905 |
42.6. Metryki dla przenaszalności | 906 |
43. Metryki złożoności oprogramowania | 907 |
43.1. Metryki Halsteada | 907 |
43.2. Złożoność cyklomatyczna McCabe’a | 909 |
43.2.1. Gęstość złożoności cyklomatycznej | 911 |
43.2.2. ECC (Essential Cyclomatic Complexity) | 911 |
43.3. Konstrukcje składniowe | 914 |
43.4. Metryki struktur | 914 |
43.5. Metryki złożoności systemu | 915 |
43.5.1. Indeks utrzymywalności | 915 |
43.5.2. Metryka złożoności systemu Agrestiego–Carda–Glassa | 916 |
43.6. Metryki obiektowe | 918 |
43.6.1. Metryki Lorenza | 918 |
43.6.2. Metryki CK | 918 |
43.7. Metryki złożoności dokumentacji | 922 |
43.8. Metryki złożoności algorytmicznej | 923 |
44. Metryki i modele wysiłku | 924 |
44.1. Modele oparte na zgadywaniu i intuicji | 925 |
44.2. Modele oparte na dekompozycji | 925 |
44.3. Modele oparte na wiedzy eksperckiej | 926 |
44.4. Modele oparte na benchmarkach | 926 |
44.5. Modele oparte na porównaniu | 928 |
44.5.1. Porównanie proste (naiwne) | 928 |
44.5.2. Porównanie z uwzględnieniem różnic | 929 |
44.6. Modele parametryczne | 930 |
44.6.1. Tworzenie własnego modelu | 932 |
44.6.2. Model COCOMO II | 933 |
44.7. Łączenie modeli i uwagi na temat estymacji | 936 |
45. Metryki i modele dla defektów | 938 |
45.1. Natura defektów | 940 |
45.2. Metryki defektów | 941 |
45.3. Modele statyczne defektów | 943 |
45.3.1. Model wprowadzania/usuwania defektów | 943 |
45.3.2. Model fazowy | 945 |
45.3.3. Model dwufazowy | 946 |
45.3.4. Efektywność usuwania defektów i powstrzymanie fazowe | 947 |
45.3.5. Modele zmian w kodzie | 951 |
45.4. Modele dynamiczne defektów | 953 |
45.4.1. Model Rayleigha | 953 |
45.4.2. Model wykładniczy i S-kształtny | 961 |
45.4.3. Model COQUALMO | 962 |
45.5. Analiza mutacyjna | 964 |
45.6. Metryki dynamicznej stylometrii | 965 |
46. Metryki i modele przyrostu niezawodności | 967 |
46.1. Wprowadzenie | 967 |
46.2. Matematyczne podstawy teorii niezawodności | 970 |
46.2.1. Funkcja niezawodności i funkcja awarii | 970 |
46.2.2. Metryka MTTF (średniego czasu do awarii) | 970 |
46.2.3. Rozkłady prawdopodobieństwa modelujące występowanie awarii | 971 |
46.2.4. Rozkład wykładniczy i jego związek z metryką MTTF | 971 |
46.2.5. Funkcja częstości awarii oraz ryzyko (hazard rate) | 972 |
46.2.6. Prawdopodobieństwo awarii do czasu t | 973 |
46.3. Modele przyrostu niezawodności | 974 |
46.3.1. Model Jelinskiego–Morandy | 975 |
46.3.2. Model niedoskonałego debugowania Goela–Okumoto | 979 |
46.3.3. Niejednorodny model procesu Poissona Goela–Okumoto | 979 |
46.3.4. Logarytmiczny model Poissona czasu wykonywania Musy–Okumoto | 980 |
46.3.5. Model S-kształtny | 981 |
46.3.6. Inne modele niezawodności | 981 |
47. Metryki i modele dostępności | 983 |
47.1. Dostępność | 983 |
47.1.1. Dostępność ciągła a dostępność wysoka | 984 |
47.1.2. Metody zwiększające dostępność systemu | 985 |
47.1.3. Ilościowa miara dostępności i jej obliczanie | 986 |
47.2. Odmładzanie oprogramowania | 987 |
47.2.1. Powody degradacji i sposoby odmładzania oprogramowania | 987 |
47.2.2. Wpływ odmładzania na dostępność systemu | 988 |
48. Metryki dla procesu testowego | 990 |
49. Metryki zadowolenia klienta | 994 |
49.1. Proces pomiaru zadowolenia klienta | 994 |
49.1.1. Wybór metody i sposobu przeprowadzenia badania | 994 |
49.1.2. Opracowanie ankiety/kwestionariusza lub innego narzędzia badań | 996 |
49.1.3. Wybór metody próbkowania | 996 |
49.1.4. Wybór rozmiaru próby | 997 |
49.1.5. Zebranie, opracowanie i analiza danych | 999 |
49.2. Dział wsparcia klienta | 1001 |
50. Sposób prezentowania danych | 1003 |
50.1. Prezentowanie danych graficznych | 1003 |
50.2. Prezentowanie metryk | 1006 |
Dodatek A. Specyfikacja programu ELROJ | 1009 |
Dodatek B. Normy i standardy | 1013 |
Dodatek C. Matematyczny i teoretyczno-informatyczny | 1017 |
Dodatek D. Informacja o certyfikacji i egzaminach | 1029 |
Bibliografia | 1031 |
Skorowidz | 1047 |