Metodyki, standardy i certyfikaty a jakość wdraŝanych rozwiązań informatycznych Jak teoria pomaga w codziennej praktyce zapewniania i kontroli jakości Piotr Ślęzak Stowarzyszenie Jakości Systemów Informatycznych CORRSE
Agenda O SJSI Wstęp do jakości Źródła i rodzaje standardów Ocena dojrzałości procesów Certyfikacje Praktyczne zastosowania Korzyści z wdroŝenia standardów i certyfikacji Podsumowanie
O SJSI Stowarzyszenie Jakości Systemów Informatycznych Działa od 2003 roku Propagowanie wiedzy na temat jakości i testowania Ujednolicanie słownictwa Organizacja konferencji i seminariów poświęconych jakości oprogramowania Akredytowanie i certyfikowanie ISTQB
Agenda O SJSI Wstęp do jakości Źródła i rodzaje standardów Ocena dojrzałości procesów Certyfikacje Praktyczne zastosowania Korzyści z wdroŝenia standardów i certyfikacji Podsumowanie
Dlaczego jakość jest trudna Definicje jakości: Definicja bazująca na produkcie Wielkości atrybutów charakteryzujących produkt ISO 9126: poprawność, uŝyteczność, efektywność, przenaszalność, utrzymywalność, niezawodność Definicja z punktu widzenia uŝytkownika: Łatwość uŝytkowania Zgodność z oczekiwaniami Definicja bazująca na wartości Jakość marki produkującej dany produkt w powiązaniu z ceną tego produktu Definicja produkcyjna Zgodność ze specyfikacją
Definicje jakości oprogramowania Zestaw cech i charakterystyk oprogramowania mający wpływ na zdolność produktu do zaspokajania określonych potrzeb (np. zgodność ze specyfikacją). Stopień w jakim procesy budowy oprogramowania osiągają załoŝone atrybuty procesowe Stopień w jakim wymagania klientów lub uŝytkowników są spełnione Zestaw charakterystyk oprogramowania określających poziom spełnienia oczekiwań klienta przez to oprogramowanie. [IEEE 729-1983]
Postrzeganie jakości w zespole projektowym Analitycy Projektanci Marketing Dział testów wewnętrznych Dział szkoleń WdroŜeniowcy Project Manager Programiści Testerzy akceptacyjni Dokumentaliści Obsługa klienta Każdy członek zespołu projektowego będzie miał inne postrzeganie jakości oprogramowania
Jakość a standardy Jednym z podstawowych elementów zarządzania jakością są standardy Standardy pomagają we wszystkich aspektach jakości: Planowaniu jakości Zapewnianiu jakości Kontroli jakości Dobrym uzupełnieniem standardów są certyfikacje
Agenda O SJSI Wstęp do jakości Źródła i rodzaje standardów Ocena dojrzałości procesów Certyfikacje Praktyczne zastosowania Korzyści z wdroŝenia standardów i certyfikacji Podsumowanie
Źródła standardów Standardy międzynarodowe IEEE ISO Standardy narodowe Standardy dziedzinowe Standardy producentów Standardy wewnętrzne - organizacyjne Standardy ciągle są aktualizowane i usprawniane Są sytuacje gdy obowiązują dwie wersje tego samego standardu 10
Rodzaje standardów Jakościowe ISO 9000 ISO 9126 Procesowe ISO 12207 Grupa standardów IEEE Standardy dostawców Testowe British Standards International Software Testing Qualifications Board Information Systems Examinations Board
Standardy jakościowe ISO: International Standards Organization (International Organization for Standardization) ISO 9000 Międzynarodowy zestaw standardów zarządzania jakością MoŜliwy do zastosowania w szerokiej gamie organizacji Podzielony na kilka standardów zaleŝnie od profilu działalności organizacji Np.ISO 9001 stosowany w organizacjach projektujących i utrzymujących produkty
Standardy jakościowe ISO 9126: 1991 Information technology Software product evaluation Quality characteristics Funkcjonalność Niezawodność UŜyteczność Efektywność (wydajność) Utrzymywalność Przenaszalność
Standardy jakościowe Nowa wersja ISO 9126 ISO/IEC 9126-1:2001 Software engineering -- Product quality -- Part 1: Quality model ISO/IEC TR 9126-2:2003 Software engineering -- Product quality -- Part 2: External metrics ISO/IEC TR 9126-3:2003 Software engineering -- Product quality -- Part 3: Internal metrics ISO/IEC TR 9126-4:2004 Software engineering -- Product quality -- Part 4: Quality in use metrics
Standardy procesowe ISO 12207 IEEE 610 1028 830 829 1044 Standardy dostawców
ISO 12207 Systems and software engineering Software life cycle processes Acquisition Supply Development Operation Maintenance Destruction 43 procesy, 95 aktywności, 325 zadań oraz 224 produkty
IEEE Institute of Electrical and Electronics Engineer IEEE 610 słownik terminów komputerowych IEEE 1028 rodzaje i zasady prowadzenia przeglądów IEEE 830 standard dokumentacji wymagań IEEE 829 standard dokumentacji testowej IEEE 1044 klasyfikowanie i zarządzanie anomaliami oprogramowania
Test Management Documentation IEEE829:1998 TP: Test Plan TD: Test Design TC: Test Case TPr: Test Procedure ITR: Item Transmittal Report TL: Test Log IR: Incident Report TSR: Test Summary Report Project Doc TD Level TC Level TL Level TD TPr Level Test execution TSR TP TD ITR IR 18
Standardy dostawców HP Aplication Lifecycle Management Microsoft Solution Framework Open Aplication Lifecycle Management IBM Rational Unified Process
HP Application Lifecycle Management Application Lifecycle Management Project Planning & Tracking Requirements Management Development Management Enterprise Release Management Quality Management Requirements Definition * Requirements Management Development Integrations Defect Secure Management Development Functional Performance Security Foundation Traceability Process Standardization (i.e. Waterfall, Agile) Reporting Extensibility (Open APIs)
HP Application Lifecycle Management A single platform for managing the application lifecycle Dashboard HP Application Lifecycle Management Project Planning & Tracking Release Management Requirements Management Business Models Test Plan Test Lab Defect Management HP Unified Functional Testing Performance Optimization Application Security Testing Business Application Validation Services HP QuickTest Professional HP Service Test HP Performance Center HP LoadRunner HP QAInspect HP Business Process Testing Service Test Management Test Data Management ALM Platform Process Standardization Single Data Repository Asset Sharing & Reuse Reporting Open APIs (REST) (i.e. Waterfall, Agile)
Opis procesu w organizacji 22
Standardy Testowe British Standards International Software Testing Qualifications Board Information Systems Examinations Board
British Standards BS 7925-1 słownik terminów testowych BS 7925-2 - Software testing. Software component testing Klasy równowaŝności Analiza wartości brzegowych Testowanie przejść między stanami Grafy przyczynowo-skutkowe / testowanie w oparciu o tablice decyzyjne Testowanie poleceń Testowanie decyzji Testowanie warunków Testowanie losowe BS-7925-2 jedyny standard opisujący proces testowania modułów oprogramowania
ISTQB/ISEB Certyfikaty dla pracowników Wspólny międzynarodowy słownik pojęć tłumaczony na język narodowy Wspólny sylabus dla szkoleń Egzamin oparty o sylabus przetłumaczony na język narodowy Akredytacja oparta o związek narodowy w Polsce SJSI
Agenda O SJSI Wstęp do jakości Źródła i rodzaje standardów Ocena dojrzałości procesów Certyfikacje Praktyczne zastosowania Korzyści z wdroŝenia standardów i certyfikacji Podsumowanie
Oceny dojrzałości procesów ISO 15504 Software Process Improvement Capability determination CMMI TMMI Test Proces Improvement
SPICE ocena organizacji Obszary Atrybuty Poziomy spektrum dojrzałości organizacji
CMMI Powstał w celu porównywania dostawców oprogramowania Jest modelem oceny i porównania organizacji Pozwala ujednolicić proces wytwórczy w organizacji
TMMI/TPI Modele dedykowane dla procesu testów Pozwalają na ocenę poziomu dojrzałości procesu i metod Wiele poziomów i szczegółowych aspektów TPI: 13 poziomów dojrzałości, 20 kluczowych obszarów, od 1 do 4 poziomów dla kluczowego obszaru TMMI: 5 poziomów dojrzałości
Agenda O SJSI Wstęp do jakości Źródła i rodzaje standardów Ocena dojrzałości procesów Certyfikacje Praktyczne zastosowania Korzyści z wdroŝenia standardów i certyfikacji Podsumowanie
Certyfikaty Certyfikaty dla produktów SASO Stowarzyszenie na rzecz Atestacji i Standaryzacji Oprogramowania certyfikaty zgodności z systemem operacyjnym / sprzętem certyfikaty dla pracowników
SASO Stowarzyszenie opracowało Polski System Oceny Zgodności Oprogramowania Znak jakości określający spełnienie wymagań ergonomii i wydajności oprogramowania. Znak jakości określający spełnienie standardów bezpieczeństwa oprogramowania (rozumianego jako bezpieczeństwo zewnętrzne i wewnętrzne systemu). Znak jakości oznaczający zgodność z przepisami prawa regulującymi obszar funkcjonowania oprogramowania.
Certyfikaty dla pracowników Dostawcy certyfikatów IBAQB REQB ISTQB/ISEB PMI PRINCE2 Dostawcy narzędzi CSDP Poziomy certyfikacji Podstawowy Zaawansowany Ekspert
Agenda O SJSI Wstęp do jakości Źródła i rodzaje standardów Ocena dojrzałości procesów Certyfikacje Praktyczne zastosowania Korzyści z wdroŝenia standardów i certyfikacji Podsumowanie
Praktyka wdroŝenia Audyty i oceny Przegląd menedŝerski Przeglądy formalne np. SPICE, CMMI, TPI Przeglądy nieformalne wg ustalonych procedur postępowania
Wynik audytu Rekomendacje usprawnień Usprawnienia wynikające z braku procesów i procedur Usprawnienia wynikające z braku wiedzy Usprawnienia wynikające z braku narzędzi Usprawnienia posługiwania się narzędziami Ustalenie priorytetów dla wprowadzanych usprawnień Metryki dla sprawdzenia sukcesu usprawnienia Zdefiniowane projekty dla poszczególnych usprawnień
Rekomendowana kolejność Procesy Standardy dokumentowania Narzędzia wspierające Procedury / instrukcje stanowiskowe
Realizacja usprawnień Projekt wdroŝenia procesów Szkolenia Projekty wdroŝenia narzędzi Mentoring przy realizacji projektów Wykonanie pomiaru dla wprowadzonych usprawnień
Ocena wyników Ocena skutków usprawnień Realizacja projektów w środowisku testowym Ocena wyników według uzgodnionych metryk Propagacja na inne projekty Ciągłe usprawnianie: Planuj->Wykonaj->Sprawdź->Wprowadź
Koło jakości Deming/Shewhart 4. WPROWADŹ Wdróż usprawnienia w środowisku produkcyjnym 3. SPRAWDŹ Oceń wykonanie planu czy przyniosło rezultat 1. PLANUJ Zidentyfikuj miejsca poprawy i przygotuj plan 2. WYKONAJ Wykonaj zaplanowane czynności w środowisku testowym www.corrse.com 41 www.sqam.org
UŜyteczność standardów WdroŜenie standardu musi dać korzyść dla organizacji lub projektu Nie zawsze warto wdraŝać standard as is Standardy poprawiają jakość produktu model odniesienia dla produktu Listy kontrolne do weryfikacji produktu Podstawę do oceny procesów produkcji 42
UŜyteczność standardów - zagroŝenia Nie wszystkie standardy pasują do danego projektu lub organizacji Ze względu na róŝnorodność standardy mogą wzajemnie do siebie nie pasować wzajemnie się wykluczać sobie zaprzeczać 43
Agenda O SJSI Wstęp do jakości Źródła i rodzaje standardów Ocena dojrzałości procesów Certyfikacje Praktyczne zastosowania Korzyści z wdroŝenia standardów i certyfikacji Podsumowanie
Korzyści z wykorzystania standardów Poprawa wizerunku organizacji Ustandaryzowany proces Jednolity sposób postępowania Poprawa jakości wdraŝanych rozwiązań Zebranie najlepszych praktyk Uniknięcie powtarzania poprzednich błędów Ciągłość działania nowi pracownicy wiedzą jak działa organizacja przez zrozumienie standardów Plan dla procesów zapewniania jakości
Korzyści z wykorzystania certyfikacji PrestiŜ dla certyfikowanego produktu Wykorzystanie istniejącej wiedzy opracowanej przez innych Jednolity język oraz słownictwo w organizacji i na zewnątrz Ustalona ścieŝka kariery Łatwiejsze wprowadzanie nowych osób do organizacji lub projektu Zagwarantowany poziom wiedzy (i doświadczenia) od zewnętrznych dostawców/konsultantów
Agenda O SJSI Wstęp do jakości Źródła i rodzaje standardów Ocena dojrzałości procesów Certyfikacje Praktyczne zastosowania Korzyści z wdroŝenia standardów i certyfikacji Podsumowanie
Podsumowanie WdroŜenie standardów to krok w celu poprawy jakości wdraŝanych rozwiązań Najpierw wybierzmy co chcemy usprawniać/poprawiać standardami Standardy są ciągle aktualizowane usprawnianie to proces ciągły Standardów jest wiele i ich zastosowanie wymaga przemyślanych decyzji
Forum dyskusyjne http://www.sjsi.org/forum/viewforum.php? f=15
Kontakt PSlezak@corrse.com P.Slezak@sjsi.org