Zarządzanie jakością oprogramowania

Zarządzanie jakością oprogramowania (ang. software quality assurance/management) – proces mający na celu zapewnienie jakości tworzonego oprogramowania poprzez właściwą realizację procesu testowania oprogramowania[1].

Informacje ogólne edytuj

Zarządzanie jakością oprogramowania może być realizowane w różny sposób w zależności od organizacji i rodzaju realizowanego projektu, ale powinno wspierać cały proces rozwoju oprogramowania, tj.:

  • Zbieranie wymagań i definiowanie zakresu projektu – głównie pod kątem weryfikacji czy zdefiniowane wymagania będą możliwe do weryfikacji, tj. przetestowania. Jednym z produktów może być w tym przypadku strategia testów.
  • Projektowanie rozwiązania – głównie pod kątem zaplanowania procesu testowego, tj. rodzaju planowanych testów, sposobu realizacji tych testów, np. poprzez zdefiniowanie środowisk testowych oraz sposobu pozyskania danych testowych. Jednym z produktów może być w tym przypadku plan testów zawierający harmonogram testów.
  • Kodowanie rozwiązania – poprzez bieżące tworzenie i realizacje scenariuszy i przypadków testowych oraz rejestrację defektów i ich sukcesywne rozwiązywanie. Oprogramowanie w trakcie poszczególnych iteracji może np. otrzymywać status alfa, beta, release candidate, silver i golden release. Jednym z produktów mogą być w tym przypadku scenariusze i przypadki testowe oraz raporty z realizacji iteracji testów.
  • Zarządzanie zmianami – poprzez weryfikację w jaki sposób planowane zmiany mogą wpłynąć na jakość tworzonego rozwiązania i zaplanowanie środków i sposobu zapewnienia jakości po realizacji zmiany. Jednym z produktów mogą być w tym przypadku zmiany planu testów oraz zmiany scenariuszy i przypadków testowych.
  • Zamknięcie projektu – poprzez realizację szeregu dedykowanych rodzajów testów mających na celu kompleksową weryfikację jakości tworzonego rozwiązania. Mogą to być przykładowo testy integracyjne (ang. system integration tests), testy akceptacyjne (ang. user acceptance tests) oraz testy operacyjne (ang. operational acceptance tests). Jednym z produktów może być w tym przypadku rekomendacja dotycząca produkcyjnego uruchomienia systemu.

W 2018 roku, na podstawie doświadczeń wielu specjalistów z zakresu testowania oraz oparciu o doświadczenia specjalistów i przede wszystkim praktyków testowania oprogramowania, ISTQB zaktualizował sylabusa poziomu podstawowego do nowej wersji. Obowiązujący sylabus ISTQB był z 2011 roku i nie do końca odpowiadał stanowi współczesnego testowania. Nowy sylabus ISTQB uwzględnia współczesne techniki wytwarzania oprogramowania i terminy jak np. agile, devops, continuous integration oraz continuous development[2].

Powiązanie z metodykami IT edytuj

 
Obraz pokazujący przykładową implementację Zarządzania jakością oprogramowania zgodnie z modelem V i metodyką RUP

Zarządzanie jakością oprogramowania jest tematyką powiązaną z różnymi metodykami zarządzania projektami, wytwórczymi i operacyjnymi m.in.

  • Metodyka zarządzania projektami PRINCE2 definiuje:
    • komponent „Jakość w środowisku projektowym”, który opisuje konieczność zastosowania podwójnej, obiektywnej kontroli wytwarzanych produktów oraz proponuje zastosowanie 4 składników – Systemu Zarządzania Jakością, Funkcji zapewnienia jakości, Planowaniu jakości i Kontroli jakości,
    • technikę „Przeglądy jakości” mają na celu weryfikację czy wytwarzane produkty spełniają przyjęte w projekcie kryteria jakości.

Cykl życia projektu zgodnie z PRINCE2 składa się z 4 faz[3]:

  • Przygotowanie projektu – analiza celu w jakim jest tworzony projekt oraz pozyskanie wszystkich danych, które są niezbędne do podjęcia decyzji dotyczącej obecności potrzeby realizacji projektu.
  • Inicjowanie projektu – stanowi pierwszą właściwą fazę projektową, w której jednak nie są wykonywane żadne czynności techniczne.
  • Realizacja projektu – właściwa faza, w której wytwarzane są produkty specjalistyczne, przy wykorzystaniu rzeczywistej pracy zespołu projektowego.
  • Zamykanie projektu – ocena projektu, ale także produktów które powstały przy jego realizacji i zaplanowanych celów. Zaplanowany zostaje przegląd poprojektowy, utworzone zalecenia następcze, ale również administracyjne zamknięcie projektu.
  • Metodyka zarządzania projektami PMBOK definiuje obszar wiedzy Zarządzania Jakością oraz następujące procesy:
  • Metodyka wytwórcza RUP definiuje dyscyplinę testowania, która jest zaangażowana we wszystkich etapach wytwarzania od Fazy rozpoczęcia do Fazy przekazania systemu
  • Metodyka wytwórcza MSF definiuje role testera i fazę stabilizacji, której głównym przedmiotem jest testowanie rozwiązania.
  • Metodyki adaptacyjne (ang. agile) nie definiują precyzyjnie roli testera ani mechanizmów zarządzania jakością. Wskazują jedynie na konieczność zastosowania ciągłej integracji tworzonych rozwiązań (ang. continuous integration) i sugerują stosowanie techniki programowania kierowanego testami (ang. test-driven development). Niemniej jednak w ostatnim okresie[kiedy?] pojawia się coraz więcej informacji na temat praktyki adaptacyjnego testowania (ang. agile testing).
  • Metodyka operacyjna CMMI definiuje między innymi obszar procesowy „Procesowe i produktowe zapewnienie jakości PPQA, które jest wymagane już w przypadku poziomu 2 w CMMI.
  • Metodyka operacyjna COBIT definiuje między innym P08 Zarządzanie jakością (ang. P08 Manage Quality).
  • Biblioteka Dobrych Praktyk ITIL jest definiowana poprzez zarządzanie jakością usług np. usług IT i opiera się na zasadzie tzw. cyklu PDCA, inaczej zwanego kołem Deminga. Podstawą zarządzania jakością usług zgodnie z ITIL jest proces ciągłego doskonalenia jakości usług (ang. continual service improvement),
  • Model V – model definiujący cykl życia oprogramowania i rolę procesu testowego w ramach tego modelu.
  • ISO 9000 – standard związany z systemami zarządzania jakością i stworzony w celu wsparcia organizacji w realizacji zaplanowanych potrzeb zgodnie z wymaganiami statutowymi i regulacyjnymi związanymi z wytwarzanymi produktami.

Stowarzyszenia i organizacje edytuj

  • ISTQB (International Software Testing Qualifications Board) to stowarzyszenie non-profit zarejestrowane prawnie w Belgii i działające na całym świecie, które zarządza procesem certyfikacji testerów oprogramowania[4]. Organizacja ta wydała już ponad 200 000 certyfikatów ISTQB® (data: marzec 2012).
  • ASQ (ang. American Society for Quality) to globalna społeczność profesjonalistów do spraw jakości, zrzeszająca prawie 80 000 członków. Stowarzyszenie ma na celu promocję i rozwój jakości narzędzi, zasad i praktyk w miejscu pracy.

Zobacz też edytuj

Przypisy edytuj

  1. Tian J., Software quality engineering. Testing, Quality Assourance, and Quantifiable Improvement, 2005, John Wiley & Sons, Inc., ISBN 0-471-71345-7.
  2. Nowy sylabus ISTQB® 2018. Co nowego? – wersja 2011 i 2018 – QA szkolenia – ISTQB poziom podstawowy i zaawansowany. QA szkolenia – ISTQB poziom podstawowy i zaawansowany, 2019-04-15. [dostęp 2019-04-15].
  3. Rynkiewicz K., 2015, Podstawowe założenia metodyki PRINCE2 w projektach badawczo-rozwojowych. Wydawnictwo Akademii Sztuki Wojennej, OBRONNOŚĆ. Zeszyty Naukowe 4(16)/2015, ISSN 2299-2316.
  4. Roman A., A Study Guide to the ISTQB® Foundation Level 2018 Syllabus: Test Techniques and Sample Mock Exams, Springer, 2018, ISBN 978-3-319-98739-2.

Linki zewnętrzne edytuj