دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Adam Roman
سری:
ناشر: PWN
سال نشر: 2015
تعداد صفحات: 1545
زبان: Polish
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 19 مگابایت
در صورت تبدیل فایل کتاب Testowanie i jakość oprogramowania به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب تست نرم افزار و کیفیت نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
Spis ilustracji Spis tabel Spis listingów Znaki handlowe Wstęp CZĘŚĆ I. PODSTAWY TESTOWANIA 1. Wprowadzenie do testowania 1.1. Dlaczego testowanie jest niezbędne 1.2. Definicja testowania 1.3. Słynne przykłady awarii oprogramowania 1.4. Rys historyczny 1.5. Ogólne zasady testowania 1.6. Jak dużo testować i kiedy skończyć? 1.7. Psychologia testowania 1.8. Kodeks etyczny testera 1.9. Role związane z testowaniem 2. Podstawowe definicje3. Proces testowy 3.1. Podstawowy proces testowy 3.1.1. Planowanie 3.1.2. Monitorowanie i nadzór 3.1.3. Analiza testów 3.1.4. Projektowanie testów 3.1.5. Implementacja testów 3.1.6. Wykonanie testów 3.1.7. Ocena spełnienia kryteriów wyjścia oraz raportowanie 3.1.8. Czynności zamykające testowanie 3.2. Proces testowy wg ISO/IEC/IEEE 29119 4. Testowanie w cyklu życia oprogramowania 4.1. Modele wytwarzania oprogramowania 4.1.1. Model kaskadowy 4.1.2. Model V 4.1.3. Model W 4.1.4. Rational Unified Process (RUP) 4.1.5. Rapid Application Development (RAD) 4.1.6. Model spiralny Boehma 4.1.7. Metodyki zwinne 4.1.8. Metodologia Cleanroom 4.2. Weryfikacja i walidacja 4.3. Poziomy testów 4.3.1. Testy jednostkowe 4.3.2. Testy integracyjne 4.3.3. Testy systemowe 4.3.4. Testy akceptacyjne 4.3.5. Pozostałe poziomy testów 4.4. Typy testów 4.4.1. Testy funkcjonalne 4.4.2. Testy niefunkcjonalne 4.4.3. Testy strukturalne 4.4.4. Testy związane ze zmianami 4.5. Poziomy a typy testówCZĘŚĆ II. TECHNIKI PROJEKTOWANIA TESTÓW 5. Testowanie oparte na modelu 5.1. Cechy dobrego modelu 5.2. Taksonomia modeli 5.3. Przykład wykorzystania modelu 5.4. Modele działania oprogramowania 5.4.1. Graf przepływu sterowania 5.4.2. Ograniczenia w stosowaniu grafu przepływu sterowania 5.4.3. Graf przepływu danych 5.4.4. Ścieżki, ścieżki testowe i ścieżki nieosiągalne 6. Techniki testowania statycznego 6.1. Przeglądy 6.1.1. Proces dla testowania statycznego 6.1.2. Metody sprawdzania oraz możliwe wyniki przeglądu 6.1.3. Role 6.1.4. Aspekt psychologiczny przeglądów 6.1.5. Typy przeglądów 6.1.6. Biznesowa wartość przeglądów 6.1.7. Wdrażanie przeglądów 6.1.8. Kryteria sukcesu przeglądów 6.2. Analiza statyczna 6.2.1. Analiza przepływu sterowania 6.2.2. Poprawność sekwencji operacji 6.2.3. Analiza przepływu danych 6.2.4. Narzędzia do parsowania kodu 6.2.5. Testowanie zgodności ze standardami oprogramowania 6.2.6. Metryki złożoności kodu 6.2.7. Formalne dowodzenie poprawności 6.2.8. Symboliczne wykonywanie kodu 6.2.9. Analiza statyczna strony internetowej 6.2.10. Grafy wywołań 7. Analiza dynamiczna 7.1. Wykrywanie wycieków pamięci7.2. Wykrywanie dzikich i wiszących wskaźników 7.3. Błędy API 7.4. Analiza wydajności (profiling) 8. Techniki oparte na specyfikacji (czarnoskrzynkowe) 8.1. Podział na klasy równoważności 8.1.1. Opis metody 8.1.2. Formalna definicja podziału 8.1.3. Poprawne i niepoprawne klasy równoważności 8.1.4. Procedura tworzenia przypadków testowych 8.1.5. Przykład 8.1.6. Przykład śledzenia artefaktów procesu testowego 8.2. Analiza wartości brzegowych 8.2.1. Opis metody 8.2.2. Metody dwóch oraz trzech wartości granicznych 8.2.3. Które wartości rozważać jako brzegowe? 8.2.4. Przypadek zmiennych ciągłych 8.2.5. Przykład 8.3. Tablice decyzyjne 8.3.1. Opis metody 8.3.2. Wartości nieistotne i minimalizacja tablicy decyzyjnej 8.3.3. Przykład 8.4. Grafy przyczynowo-skutkowe 8.4.1. Opis metody 8.4.2. Przekształcanie między grafami P-S i tablicami decyzyjnymi 8.4.3. Metoda śledzenia wstecznego – redukcja liczby testów 8.4.4. Przykład 8.5. Testowanie przejść między stanami 8.5.1. Opis metody 8.5.2. Tabelaryczne reprezentacje przejść 8.5.3. Kryteria pokrycia dla maszyny stanowej 8.5.4. Diagram maszyny stanowej w UML 8.5.5. Przykład 8.6. Kategoria-podział (Category-Partition) 8.6.1. Opis metody 8.6.2. Przykład8.7. Drzewa klasyfikacji 8.7.1. Opis metody 8.7.2. Budowa drzewa klasyfikacji 8.7.3. Asortyment produktów programowych i model cech 8.7.4. Przykład 8.8. Metody kombinacyjne 8.8.1. Opis metody 8.8.2. Each Choice 8.8.3. Base Choice 8.8.4. Multiple Base Choice 8.8.5. Pair-wise testing 8.8.6. Pokrycie n-tupletów (n-wise}) 8.8.7. Pełne pokrycie kombinatoryczne 8.8.8. Subsumpcja kryteriów kombinacyjnych 8.9. Testowanie dziedziny 8.9.1. Opis metody 8.9.2. Hiperpłaszczyzny i podprzestrzenie 8.9.3. Wyznaczanie hiperpłaszczyzny przez punkty 8.9.4. Punkty IN, OUT, ON i OFF 8.9.5. Strategia IN-OUT dla testowania dziedziny 8.9.6. Strategia N-ON × M-OFF dla testowania wartości brzegowych 8.9.7. Ograniczenia nieliniowe 8.9.8. Przykład 8.10. Testowanie oparte na przypadkach użycia 8.10.1. Opis metody 8.10.2. Przykład 8.11. Testowanie oparte na scenariuszach 8.11.1. Opis metody 8.11.2. Przykład 8.12. Testowanie oparte na historyjkach użytkownika 8.12.1. Opis metody 8.12.2. Przykład 8.13. Testowanie losowe 8.13.1. Opis metody 8.13.2. Wady i zalety testowania losowego8.13.3. Automatyzacja i problem wyroczni 8.13.4. Adaptive Random Testing (ART) 8.13.5. Losowanie danych wejściowych 8.13.6. Przykład 8.14. Testowanie oparte na składni 8.14.1. Opis metody 8.14.2. Notacja Backusa–Naura (BNF) 8.14.3. Tworzenie przypadków testowych 8.14.4. Przykład 8.15. Testowanie CRUD 8.15.1. Opis metody 8.15.2. Rozszerzenie metody 8.15.3. Przykład 8.16. Wybór i łączenie technik ze sobą 9. Techniki oparte na strukturze (białoskrzynkowe) 9.1. Testowanie instrukcji 9.1.1. Opis metody 9.1.2. Przykład 9.2. Testowanie gałęzi 9.2.1. Opis metody 9.2.2. Przykład 9.3. Testowanie decyzji 9.3.1. Opis metody 9.3.2. Testowanie decyzji a testowanie gałęzi 9.3.3. Przykład 9.4. Testowanie warunków 9.4.1. Opis metody 9.4.2. Przykład 9.5. Testowanie warunków/decyzji 9.5.1. Opis metody 9.5.2. Przykład 9.6. Testowanie wielokrotnych warunków 9.6.1. Opis metody 9.6.2. Zwarcie (semantyka short-circuit) 9.6.3. Nieosiągalne kombinacje warunków9.6.4. Przykład 9.7. Testowanie warunków znaczących (MC/DC) 9.7.1. Opis metody 9.7.2. Dwa warianty kryterium MC/DC 9.7.3. Skorelowane a ścisłe pokrycie warunków znaczących 9.7.4. Wyznaczanie wartości warunków pobocznych dla warunku znaczącego 9.7.5. Przykład 9.8. Pokrycie MUMCUT oraz kryteria z nim związane 9.8.1. Opis metody 9.8.2. Kryteria MUTP, MNFP, CUTPNFP i MUMCUT 9.8.3. Przykład 9.8.4. Zdolność metody MUMCUT do wykrywania określonych typów błędów 9.9. Testowanie pętli 9.9.1. Opis metody 9.9.2. Pętle zagnieżdżone 9.9.3. Testowanie wzorców pętli 9.9.4. Przykład 9.10. Liniowa sekwencja kodu i skok (LSKiS) 9.10.1. Opis metody 9.10.2. Przykład 9.10.3. LSKiS a DD-ścieżki i bloki podstawowe 9.11. Testowanie ścieżek pierwszych 9.11.1. Opis metody 9.11.2. Algorytm wyznaczania ścieżek pierwszych 9.11.3. Przykład 9.12. Analiza ścieżek 9.12.1. Wstęp 9.12.2. Testowanie wszystkich ścieżek 9.12.3. Ścieżki liniowo niezależne i testowanie ścieżek bazowych 9.12.4. Wyznaczanie ścieżek bazowych 9.12.5. Przykład 9.12.6. Inne kryteria pokrycia związane z testowaniem ścieżek 9.13. Testowanie przepływu danych9.13.1. Wstęp 9.13.2. Pokrycie wszystkich definicji (all-defs) 9.13.3. Pokrycie wszystkich użyć (all-uses) 9.13.4. Pokrycie wszystkich du-ścieżek (all-du-paths) 9.13.5. Uwagi o kryteriach pokrycia przepływu danych 9.13.6. Przykład 9.14. Objazdy i ścieżki poboczne (detours, sidetrips) 9.15. Testowanie mutacyjne 9.15.1. Wstęp 9.15.2. Rodzaje mutantów 9.15.3. Proces testowania mutacyjnego 9.15.4. Operatory mutacyjne 9.16. Subsumpcja kryteriów 10. Techniki oparte na defektach i na doświadczeniu 10.1. Wstrzykiwanie błędów 10.2. Taksonomie 10.3. Zgadywanie błędów 10.3.1. Opis metody 10.3.2. Przykład 10.4. Testowanie oparte na liście kontrolnej 10.5. Testowanie eksploracyjne 10.5.1. Opis metody 10.5.2. Przykład sesji testowania eksploracyjnego 10.6. Ataki usterkowe 10.7. Testowanie ad hoc 11. Wybór odpowiednich technik 12. Priorytetyzacja przypadków testowych 12.1. Wprowadzenie 12.2. Ocena priorytetyzacji – miara APFD 12.3. Techniki priorytetyzacji CZĘŚĆ III. TESTOWANIE CHARAKTERYSTYK JAKOŚCIOWYCH 13. Model jakości według ISO 912614. Modele jakości według ISO 25010 15. Testowanie jakości użytkowej 15.1. Testowanie efektywności (effectiveness) 15.2. Testowanie wydajności (efficiency) 15.3. Testowanie satysfakcji (satisfaction) 15.3.1. Przydatność (usefulness) 15.3.2. Zaufanie (trust) 15.3.3. Przyjemność (pleasure) 15.3.4. Komfort (comfort) 15.4. Testowanie wolności od ryzyka (freedom from risk) 15.4.1. Ryzyko ekonomiczne (economic risk) 15.4.2. Ryzyko dotyczące zdrowia i bezpieczeństwa (health and safety risk) 15.4.3. Ryzyko związane ze środowiskiem (environmental risk) 15.5. Testowanie kontekstu użycia (context coverage) 15.5.1. Zupełność kontekstu (context completeness) 15.5.2. Elastyczność (flexibility) 16. Testowanie jakości produktu 16.1. Testowanie funkcjonalnej przydatności (functional suitability) 16.1.1. Zupełność funkcjonalności (functional completeness) 16.1.2. Poprawność funkcjonalności (functional correctness) 16.1.3. Stosowność funkcjonalności (functional appropriateness) 16.2. Testowanie wydajności w działaniu (performance efficiency) 16.2.1. Zachowanie w czasie (time behaviour) 16.2.2. Zużycie zasobów (resource utilization) 16.2.3. Pojemność (capacity) 16.2.4. Techniki testowania wydajności 16.3. Testowanie zgodności (compatibility) 16.3.1. Współistnienie (co-existence) 16.3.2. Współdziałanie (interoperability) 16.3.3. Przykład 16.4. Testowanie użyteczności (usability) 16.4.1. Zrozumiałość (appropriateness recognizability) 16.4.2. Łatwość nauki (learnability)16.4.3. Łatwość użycia (operability) 16.4.4. Ochrona przed błędami użytkownika (user error protection) 16.4.5. Estetyka interfejsu użytkownika (user interface aesthetics) 16.4.6. Dostęp (accessibility) 16.5. Heurystyki dotyczące użyteczności 16.5.1. Heurystyki Nielsena 16.5.2. Laboratorium badania użyteczności (usability lab) 16.6. Testowanie niezawodności (reliability) 16.6.1. Dojrzałość (maturity) 16.6.2. Odporność na błędy (fault tolerance, robustness) 16.6.3. Odtwarzalność (recoverability) 16.6.4. Dostępność (availability) 16.7. Testowanie zabezpieczeń (security) 16.7.1. Poufność (confidentiality) 16.7.2. Integralność (integrity) 16.7.3. Niezaprzeczalność (non-repudiation) 16.7.4. Odpowiedzialność (accountability) 16.7.5. Uwierzytelnianie (authenticity) 16.8. Testowanie pielęgnowalności (maintainability) 16.8.1. Modularność (modularity) 16.8.2. Powtórne użycie (reusability) 16.8.3. Analizowalność (analyzability) 16.8.4. Modyfikowalność (modifiability) 16.8.5. Testowalność (testability) 16.9. Testowanie przenaszalności (portability) 16.9.1. Adaptowalność (adaptability) 16.9.2. Instalowalność (installability) 16.9.3. Zastępowalność (replaceability) 17. Testowanie jakości danych 17.1. Model jakości danych 17.2. Charakterystyki inherentne 17.2.1. Dokładność (accuracy) 17.2.2. Zupełność (completeness) 17.2.3. Spójność (consistency) 17.2.4. Wiarygodność (credibility)17.2.5. Aktualność (currentness) 17.3. Charakterystyki inherentne i zależne od systemu 17.3.1. Dostępność (accessibility) 17.3.2. Zgodność (compliance) 17.3.3. Poufność (confidentiality) 17.3.4. Wydajność (efficiency) 17.3.5. Precyzja (precision) 17.3.6. Identyfikowalność (traceability) 17.3.7. Zrozumiałość (understandability) 17.4. Charakterystyki zależne od systemu 17.4.1. Dostępność (availability) 17.4.2. Przenaszalność (portability) 17.4.3. Odtwarzalność (recoverability) CZĘŚĆ IV. ZARZĄDZANIE TESTOWANIEM 18. Zarządzanie testowaniem w kontekście 18.1. Kontekst ograniczeń projektowych 18.2. Kontekst interesariuszy procesu testowego 18.3. Kontekst produkcji oprogramowania 18.4. Kontekst cyklu życia oprogramowania 18.5. Kontekst testów 18.6. Kontekst czynnika ludzkiego 19. Testowanie oparte na ryzyku 19.1. Czym jest ryzyko? 19.2. Zalety testowania opartego na ryzyku 19.3. Rodzaje ryzyka 19.4. Zarządzanie ryzykiem w cyklu życia 19.5. Identyfikacja ryzyka 19.5.1. Analiza interesariuszy (stakeholder analysis) 19.5.2. Technika „władza versus zainteresowanie” 19.5.3. Techniki identyfikacji ryzyk 19.5.4. Przykłady ryzyk produktowych 19.6. Analiza ryzyka 19.6.1. Klasyfikacja ryzyk19.6.2. Czynniki wpływające na prawdopodobieństwo i wpływ ryzyka 19.6.3. Ilościowa i jakościowa ocena ryzyka produktowego 19.6.4. Osiąganie konsensusu w procesie decyzyjnym 19.6.5. Priorytetyzacja ryzyk 19.7. Łagodzenie ryzyka 19.7.1. Sposoby łagodzenia ryzyka 19.7.2. Łagodzenie ryzyka przez testowanie 19.7.3. Estymacja kosztów łagodzenia ryzyka 19.8. Monitorowanie ryzyka 19.8.1. Macierz identyfikowalności ryzyk 19.8.2. Aktualizacja ryzyk oraz ich parametrów 19.8.3. Raportowanie 19.9. Techniki analizy ryzyka 19.9.1. PRAM (Pragmatic Risk Analysis and Management) 19.9.2. SST (Systematic Software Testing) 19.9.3. Przykład: zastosowanie SST do systemu ELROJ 19.9.4. PRisMa (Product Risk Management) 19.9.5. Przykład: zastosowanie PRisMa do systemu ELROJ 19.9.6. Analiza zagrożeń (hazard analysis) 19.9.7. Koszt ekspozycji ryzyka (cost of exposure) 19.9.8. FMEA (Failure Mode and Effect Analysis) 19.9.9. Przykład: zastosowanie FMEA do systemu ELROJ 19.9.10. QFD (Quality Function Deployment) 19.9.11. Przykład: zastosowanie QFD do systemu ELROJ 19.9.12. FTA (Fault Tree Analysis) 19.9.13. Przykład: zastosowanie FTA do systemu ELROJ 19.10. TMap (Test Management Approach) 19.11. TestGoal – testowanie oparte na wynikach 20. Pozostałe strategie testowania 20.1. Testowanie oparte na wymaganiach 20.1.1. Testowanie wymagań 20.1.2. Projektowanie testów opartych na wymaganiach 20.1.3. Przykład: obliczanie punktacji w grze w kręgle 20.2. Podejście oparte na modelu (profile operacyjne) 20.3. Podejście metodyczne (listy kontrolne)20.4. Podejście oparte na standardzie 20.5. Inne podejścia 20.5.1. Podejście reaktywne 20.5.2. Podejście good enough 20.5.3. Podejście konsultacyjne 21. Dokumentacja w zarządzaniu testowaniem 21.1. Dokumenty organizacyjnego procesu testowego 21.1.1. Polityka testów 21.1.2. Przykład polityki testów 21.1.3. Organizacyjna strategia testowania 21.1.4. Przykład organizacyjnej strategii testowania 21.2. Dokumenty procesu zarządzania testowaniem 21.2.1. Plan testów (test plan) 21.2.2. Przykład planu testów 21.2.3. Jednopoziomowy plan testów (level test plan) 21.2.4. Przykład jednopoziomowego planu testów 21.2.5. Raport o stanie testów (test status report) 21.2.6. Przykład raportu o stanie testów 21.2.7. Raport końcowy z testowania (test completion report) 21.2.8. Przykład raportu końcowego z testowania 21.3. Dokumenty dynamicznych procesów testowych 21.3.1. Specyfikacja testów (test design specification) 21.3.2. Przykład specyfikacji testów 21.3.3. Specyfikacja przypadku testowego (test case specification) 21.3.4. Przykład specyfikacji przypadku testowego 21.3.5. Specyfikacja procedury testowej (test procedure specification) 21.3.6. Przykład specyfikacji procedury testowej 21.3.7. Wymagania co do danych testowych (test data requirements) 21.3.8. Przykład wymagania co do danych testowych 21.3.9. Wymagania co do środowiska testowego (test environment requirements) 21.3.10. Przykład wymagań co do środowiska testowego 21.3.11. Raport o gotowości danych testowych (test data readiness report) 21.3.12. Raport o gotowości środowiska testowego (test environment readiness report)21.3.13. Otrzymane wyniki (actual results) 21.3.14. Wynik testu (test result) 21.3.15. Dziennik wykonania testów (test execution log) 21.3.16. Raport o incydencie (test incident report) 21.3.17. Raport z sesji testowania eksploracyjnego (exploratory testing session report) 21.3.18. Przykład raportu z sesji testowania eksploracyjnego 22. Szacowanie testów 22.1. Czynniki wpływające na szacowanie 22.2. Techniki szacowania 22.2.1. Intuicja, zgadywanie, doświadczenie 22.2.2. Estymacja przez analogię 22.2.3. Struktura podziału prac (Work Breakdown Structure, WBS) 22.2.4. Estymacja grupowa 22.2.5. Dane przemysłowe 22.2.6. Analiza punktów testowych (Test Point Analysis) 22.2.7. Modele matematyczne (parametryczne) 22.3. Negocjacje i redukcja zakresu testów 23. Nadzór i kontrola postępu testów 23.1. Wprowadzenie 23.2. Przykłady metryk 23.2.1. Metryki ryzyka produktowego 23.2.2. Metryki defektów 23.2.3. Metryki przypadków testowych 23.2.4. Metryki pokrycia 23.2.5. Metryki pewności 23.3. Zarządzanie testowaniem opartym na sesji 24. Biznesowa wartość testowania 24.1. Wprowadzenie 24.2. Koszt jakości 24.3. Wartość ekonomiczna oprogramowania i problemy z nią związane 24.4. Dług technologiczny w kontekście testowania 25. Testowanie rozproszone, zakontraktowane i zewnętrzne25.1. Zespoły w ramach organizacji 25.2. Zespoły w ramach innych oddziałów organizacji 25.3. Dostawcy sprzętu i oprogramowania 25.4. Dostawcy usług testowych 25.5. TaaS (Testing as a Service) 26. Zarządzanie wdrażaniem standardów przemysłowych 27. Zarządzanie incydentami 27.1. Cykl życia defektu 27.2. Atrybuty defektu i ODC 27.2.1. Atrybuty defektów 27.2.2. ODC (Orthogonal Defect Classification) 27.2.3. Przykładowe analizy przy użyciu ODC 27.3. Metryki zarządzania incydentami 27.4. Zawartość raportu o incydencie 27.5. Komunikowanie incydentów CZĘŚĆ V. LUDZIE I NARZĘDZIA 28. Ludzie i ich kompetencje – tworzenie zespołu 28.1. Budowanie zespołu testowego 28.1.1. Opis stanowiska 28.1.2. Analiza CV 28.1.3. Rozmowa kwalifikacyjna 28.1.4. Asymilacja nowego członka zespołu 28.1.5. Zakończenie zatrudnienia 28.2. Rozwój zespołu testowego 28.2.1. Indywidualny rozwój poszczególnych członków zespołu 28.2.2. Wyznaczanie celów 28.2.3. Dynamika zespołu testowego 28.2.4. Określanie ról i odpowiedzialności 28.2.5. Umiejętności zespołu jako całości: gap analysis 28.2.6. Indywidualne osobowości i role w zespole 28.2.7. Rozwój umiejętności i szkolenia 28.2.8. Mentoring28.2.9. Okresowa ocena członków zespołu 28.3. Przywództwo 28.3.1. Zarządzanie a przywództwo 28.3.2. Model zmiany według Satir 28.3.3. Cechy charakteru lidera i zasady przywództwa 28.3.4. Informowanie i komunikacja 28.3.5. Lojalność, zaufanie i odpowiedzialność 28.3.6. Budowanie zespołu 28.4. Poziomy niezależności zespołu testowego 28.5. Komunikacja 29. Techniki pracy grupowej 29.1. Proces podejmowania decyzji 29.2. Techniki wspomagania kreatywności 29.2.1. Burza mózgów 29.2.2. NGT (Nominal Group Technique) 29.2.3. Metoda analogii 29.2.4. JAD (Joint Application Development) 29.3. Techniki porządkowania i priorytetyzacji 29.3.1. Diagram podobieństwa (affinity diagram) 29.3.2. Macierz i graf priorytetyzacji 29.3.3. Mapa myśli 29.4. Techniki szacowania i oceny 29.4.1. Wielokrotne głosowanie 29.4.2. Metoda delficka i Wideband Delphi 29.4.3. Poker planistyczny (planning poker) 29.4.4. Model Saaty’ego (Analytic Hierarchy Process) 29.5. Definiowanie problemu, przyczyny źródłowej lub możliwości 29.5.1. Analiza pola sił (force field analysis) 29.5.2. Immersja 29.5.3. Diagram rybiej ości (diagram Ishikawy) 30. Testowanie wspierane narzędziami 30.1. Podstawowe zagadnienia związane z użyciem narzędzi 30.1.1. Wybór odpowiedniego narzędzia 30.1.2. Koszty wdrożenia narzędzia30.1.3. Ryzyka związane z wdrożeniem narzędzia 30.1.4. Korzyści z wdrożenia narzędzia 30.1.5. Strategie wdrażania automatyzacji 30.1.6. Integracja i wymiana informacji między narzędziami 30.1.7. Klasyfikacja narzędzi testowych 30.2. Automatyzacja testów 30.2.1. Czynniki sukcesu udanej automatyzacji 30.2.2. Metryki dla automatyzacji testów 30.3. Generyczna architektura automatyzacji testów 30.3.1. Warstwa generowania testów 30.3.2. Warstwa definiowania testów 30.3.3. Warstwa wykonania testów 30.3.4. Warstwa adaptacji testów 30.3.5. Zarządzanie konfiguracją 30.4. Automatyczna generacja danych testowych 30.5. Metody i techniki automatyzacji testów 30.5.1. Kroki procesu projektowania architektury 30.5.2. Podejścia do automatyzacji przypadków testowych 30.5.3. Podejście nagraj i odtwórz 30.5.4. Skrypty linearne 30.5.5. Skrypty zorganizowane 30.5.6. Testowanie oparte na danych 30.5.7. Testowanie oparte na słowach kluczowych 30.5.8. Testowanie oparte na procesie 30.5.9. Testowanie oparte na modelu 30.5.10. Języki i notacje dla definicji testów 30.6. Katalog narzędzi testowych 30.6.1. Narzędzia do zarządzania testami 30.6.2. Narzędzia do wykonywania/organizacji testów 30.6.3. Narzędzia do testowania mutacyjnego, posiewu usterek i wstrzykiwania błędów 30.6.4. Narzędzia do testów bezpieczeństwa 30.6.5. Symulatory i emulatory 30.6.6. Narzędzia do analizy statycznej i dynamicznej 30.6.7. Narzędzia do testów wydajnościowych30.6.8. Narzędzia typu capture and replay 30.6.9. Narzędzia do testów jednostkowych 30.6.10. Testowanie w metodyce BDD 30.6.11. Narzędzia do testowania opartego na modelu 30.6.12. Narzędzia do śledzenia defektów, zarządzania incydentami i raportowania 30.7. Wdrażanie narzędzi w organizacji 30.7.1. Cykl życia narzędzia 30.7.2. Użycie narzędzi open source 30.7.3. Przykładowe problemy związane z użyciem narzędzi CZĘŚĆ VI. UDOSKONALANIE PROCESU TESTOWEGO 31. Kontekst udoskonalania procesu 31.1. Po co udoskonalać? 31.2. Co można udoskonalić? 31.3. Spojrzenia na jakość 31.3.1. Jakość oparta na produkcie 31.3.2. Jakość oparta na użytkowniku 31.3.3. Jakość oparta na wytwarzaniu 31.3.4. Jakość oparta na wartości 31.3.5. Jakość transcendentna 31.4. Generyczny proces udoskonalania 31.4.1. Cykl Deminga–Shewarta (PDCA) 31.4.2. IDEAL 31.4.3. Podstawowe zasady doskonałości (Fundamental Concepts of Excellence) 31.5. Przegląd podejść do udoskonalania 31.5.1. Podejścia oparte na modelu 31.5.2. Podejścia analityczne 31.5.3. Podejścia hybrydowe 31.5.4. Inne podejścia do udoskonalania procesu testowego 32. Udoskonalanie oparte na modelu 32.1. Wprowadzenie 32.2. Udoskonalanie procesów organizacyjnych i biznesowych32.2.1. TQM (Total Quality Management) 32.2.2. ISO 9000 32.2.3. EFQM Excellence Model 32.2.4. Six Sigma 32.2.5. Lean 32.3. Udoskonalanie procesu produkcji oprogramowania 32.3.1. CMMI 32.3.2. ISO/IEC 15504 32.3.3. ITIL (Information Technology Infrastructure Library) 32.3.4. TSP (Team Software Process) 32.3.5. BOOTSTRAP 32.4. Udoskonalanie procesu testowego – modele referencyjne procesu 32.4.1. TPI Next (Test Process Improvement) 32.4.2. TMMi (Test Maturity Model integration) 32.4.3. Porównanie TPI Next i TMMi 32.5. Udoskonalanie procesu testowego – modele referencyjne zawartości 32.5.1. STEP (Systematic Test and Evaluation Process) 32.5.2. CTP (Critical Testing Processes) 33. Podejście analityczne 33.1. Wprowadzenie 33.2. Analiza przyczynowa 33.2.1. Opis metody 33.2.2. Wybór elementów do analizy przyczynowej 33.2.3. Zebranie i zorganizowanie informacji 33.2.4. Identyfikacja przyczyny źródłowej przez analizę zebranych informacji 33.2.5. Wyciągnięcie wniosków 33.3. Podejście GQM (Goal–Question–Metric) 33.3.1. Opis metody 33.3.2. Fazy GQM 33.3.3. Dwa paradygmaty metody GQM 33.3.4. Wzorzec definiowania celu 33.3.5. Siedem pytań 33.3.6. Przykład 33.4. Miary, metryki i wskaźniki34. Wybór metody usprawniania 35. Proces udoskonalania 35.1. Wprowadzenie 35.2. Rozpoczęcie procesu doskonalenia 35.2.1. Określenie powodu doskonalenia (stymulacja do zmiany) 35.2.2. Ustanowienie celów dla doskonalenia testowania 35.2.3. Określenie kontekstu 35.2.4. Pozyskanie wsparcia 35.2.5. Stworzenie infrastruktury dla procesu udoskonalania 35.3. Diagnozowanie aktualnej sytuacji 35.3.1. Scharakteryzowanie obecnego oraz pożądanego stanu procesu 35.3.2. Rekomendacje akcji naprawczych 35.4. Ustanowienie planu doskonalenia procesu testowego 35.4.1. Ustanowienie priorytetów dla wdrażania planu doskonalenia 35.4.2. Opracowanie podejścia do wdrożenia 35.4.3. Zaplanowanie działań związanych z wdrożeniem 35.5. Działanie w celu wdrożenia udoskonaleń 35.5.1. Stworzenie rozwiązania 35.5.2. Rozwiązania pilotażowe/testowe 35.5.3. Doprecyzowanie rozwiązania 35.5.4. Zaimplementowanie rozwiązania 35.6. Wyciąganie wniosków z projektu doskonalenia testów 35.6.1. Analiza i weryfikacja przeprowadzonych działań 35.6.2. Propozycje przyszłych rozwiązań 36. Organizacja, role i umiejętności 36.1. Organizacja 36.1.1. Zakres działań GPT 36.1.2. Organizacja Grupy procesu testowego 36.1.3. Właściwości Grupy procesu testowego 36.2. Role i umiejętności 36.2.1. Doskonalący proces testowy 36.2.2. Główny oceniający 36.2.3. Oceniający 36.2.4. Umiejętności doskonalącego proces testowy37. Czynniki sukcesu CZĘŚĆ VII. JAKOŚĆ OPROGRAMOWANIA 38. Czym jest jakość oprogramowania? 38.1. Testowanie oprogramowania a jakość oprogramowania 38.2. Model Kano 38.3. Dojrzałość procesu i standardy jakości 38.3.1. SPR 38.3.2. Ocena Malcolma Baldridge’a 38.4. Co mierzyć, jak mierzyć i po co mierzyć? 39. Podstawy teorii pomiarów 39.1. Metryka, miara, wskaźnik, pomiar 39.2. Skale pomiarowe 39.2.1. Skala nominalna 39.2.2. Skala porządkowa 39.2.3. Skala interwałowa 39.2.4. Skala stosunkowa 39.2.5. Podsumowanie rodzajów skal pomiarowych 39.3. Typy metryk 39.3.1. Metryka bezpośrednia (podstawowa) 39.3.2. Suma/różnica 39.3.3. Stosunek 39.3.4. Proporcja 39.3.5. Odsetek 39.3.6. Miary iloczynowe 39.3.7. Tempo 39.4. Spójność i odpowiedniość pomiaru 39.5. Błędy pomiarowe 39.6. Podstawowe zasady analizy danych 39.6.1. Miary tendencji centralnej 39.6.2. Miary rozproszenia 39.6.3. Korelacja i regresja liniowa 39.6.4. Przyczynowość40. Narzędzia kontroli jakości 40.1. Klasyfikacja narzędzi 40.2. Rodzaje narzędzi oraz obszary ich zastosowań 40.3. Statystyczna kontrola procesu 40.3.1. Wykres przebiegu 40.3.2. Karty kontrolne 40.4. Wykres czasu cyklu 40.5. Narzędzia analizy i zapobiegania przyczynom źródłowym 40.5.1. 5 pytań „dlaczego?” i diagram „why–why” 40.5.2. Macierz „jest–nie jest” 40.5.3. Kaizen 40.5.4. Poka yoke 41. Metryki wielkości oprogramowania 41.1. Metryki wolumenowe 41.1.1. LOC 41.1.2. Współczynnik produktywności języka 41.1.3. Pomiar specyfikacji i projektu 41.2. Metryki funkcjonalności 41.2.1. Punkty funkcyjne 41.2.2. Punkty obiektowe i rozszerzone punkty obiektowe 41.2.3. Punkty cech 41.2.4. Punkty przypadków użycia 42. Metryki charakterystyk jakościowych 42.1. Metryki dla funkcjonalności 42.2. Metryki dla niezawodności 42.3. Metryki dla użyteczności 42.4. Metryki dla wydajności 42.5. Metryki dla pielęgnowalności 42.6. Metryki dla przenaszalności 43. Metryki złożoności oprogramowania 43.1. Metryki Halsteada 43.2. Złożoność cyklomatyczna McCabe’a 43.2.1. Gęstość złożoności cyklomatycznej43.2.2. ECC (Essential Cyclomatic Complexity) 43.3. Konstrukcje składniowe 43.4. Metryki struktur 43.5. Metryki złożoności systemu 43.5.1. Indeks utrzymywalności 43.5.2. Metryka złożoności systemu Agrestiego–Carda–Glassa 43.6. Metryki obiektowe 43.6.1. Metryki Lorenza 43.6.2. Metryki CK 43.7. Metryki złożoności dokumentacji 43.8. Metryki złożoności algorytmicznej 44. Metryki i modele wysiłku 44.1. Modele oparte na zgadywaniu i intuicji 44.2. Modele oparte na dekompozycji 44.3. Modele oparte na wiedzy eksperckiej 44.4. Modele oparte na benchmarkach 44.5. Modele oparte na porównaniu 44.5.1. Porównanie proste (naiwne) 44.5.2. Porównanie z uwzględnieniem różnic 44.6. Modele parametryczne 44.6.1. Tworzenie własnego modelu 44.6.2. Model COCOMO II 44.7. Łączenie modeli i uwagi na temat estymacji 45. Metryki i modele dla defektów 45.1. Natura defektów 45.2. Metryki defektów 45.3. Modele statyczne defektów 45.3.1. Model wprowadzania/usuwania defektów 45.3.2. Model fazowy 45.3.3. Model dwufazowy 45.3.4. Efektywność usuwania defektów i powstrzymanie fazowe 45.3.5. Modele zmian w kodzie 45.4. Modele dynamiczne defektów 45.4.1. Model Rayleigha45.4.2. Model wykładniczy i S-kształtny 45.4.3. Model COQUALMO 45.5. Analiza mutacyjna 45.6. Metryki dynamicznej stylometrii 46. Metryki i modele przyrostu niezawodności 46.1. Wprowadzenie 46.2. Matematyczne podstawy teorii niezawodności 46.2.1. Funkcja niezawodności i funkcja awarii 46.2.2. Metryka MTTF (średniego czasu do awarii) 46.2.3. Rozkłady prawdopodobieństwa modelujące występowanie awarii 46.2.4. Rozkład wykładniczy i jego związek z metryką MTTF 46.2.5. Funkcja częstości awarii oraz ryzyko (hazard rate) 46.2.6. Prawdopodobieństwo awarii do czasu t 46.3. Modele przyrostu niezawodności 46.3.1. Model Jelinskiego–Morandy 46.3.2. Model niedoskonałego debugowania Goela–Okumoto 46.3.3. Niejednorodny model procesu Poissona Goela–Okumoto 46.3.4. Logarytmiczny model Poissona czasu wykonywania Musy– Okumoto 46.3.5. Model S-kształtny 46.3.6. Inne modele niezawodności 47. Metryki i modele dostępności 47.1. Dostępność 47.1.1. Dostępność ciągła a dostępność wysoka 47.1.2. Metody zwiększające dostępność systemu 47.1.3. Ilościowa miara dostępności i jej obliczanie 47.2. Odmładzanie oprogramowania 47.2.1. Powody degradacji i sposoby odmładzania oprogramowania 47.2.2. Wpływ odmładzania na dostępność systemu 48. Metryki dla procesu testowego 49. Metryki zadowolenia klienta 49.1. Proces pomiaru zadowolenia klienta 49.1.1. Wybór metody i sposobu przeprowadzenia badania49.1.2. Opracowanie ankiety/kwestionariusza lub innego narzędzia badań 49.1.3. Wybór metody próbkowania 49.1.4. Wybór rozmiaru próby 49.1.5. Zebranie, opracowanie i analiza danych 49.2. Dział wsparcia klienta 50. Sposób prezentowania danych 50.1. Prezentowanie danych graficznych 50.2. Prezentowanie metryk Dodatek A Dodatek B Dodatek C Dodatek D Bibliografia O autorze