Co to jest zapewnienie jakości oprogramowania?
Zapewnienie jakości oprogramowania obejmuje przetestowanie projektu i wdrożenia oprogramowania komputerowego oraz upewnienie się, że spełnia ono minimalny standard jakości. Podstawą procesu zapewnienia jakości jest testowanie, czyli metoda, za pomocą której analizuje się każdy etap cyklu rozwoju w celu znalezienia wad, takich jak awarie lub problemy bezpieczeństwa. Najbardziej znaną częścią procesu zapewniania jakości oprogramowania jest testowanie oprogramowania i kodu; obejmuje jednak także inne aspekty cyklu inżynierskiego. Inne aspekty inżynierii oprogramowania, które podlegają analizie jakości, obejmują etapy projektowania i wdrażania.
Ogólna koncepcja zapewnienia jakości oprogramowania wymaga, aby zaczęła się ona na etapie planowania oprogramowania. Źle zaplanowane oprogramowanie może być trudne lub niemożliwe do napisania w sposób spełniający oczekiwania organizacji, która go przewidziała. Zarządzanie jakością na etapie projektowania obejmuje badanie konsekwencji specyfikacji lub celów projektu, a także planów organizacji dotyczących osiągnięcia ich celów. Zaletą analizy jakości na etapie projektowania jest to, że wykrywa i eliminuje błędy wcześnie, a nie w późniejszym etapie cyklu projektowania, gdy problemy z projektowaniem są znacznie droższe do rozwiązania.
Inżynier testów oprogramowania, znany również jako analityk jakości oprogramowania, jest główną osobą odpowiedzialną za przeprowadzenie procesu testowania. Osoba ta projektuje i wykonuje plany testów, które pomogą organizacji w poprawie jakości ich oprogramowania. Idealnie byłoby, gdyby programista nigdy nie testował własnego produktu, co oznacza, że w projekcie programista i inżynier testowy to dwie różne osoby.
Plany testowe są kluczową częścią systemu zapewnienia jakości, szczególnie fazy testowania oprogramowania. Celem planów testów jest określenie warunków, które oznaczają sukces lub awarię oprogramowania. Typowy plan testów będzie obejmował kompleksową listę programów i podprogramów lub procedur, które należy przetestować, a także techniki związane z testowaniem. Inną krytyczną funkcją planu testów jest ustalenie, które wady są niedopuszczalne. Plany testowe są zwykle projektowane przed opracowaniem faktycznego kodu oprogramowania projektu.
Kiedy inżynierowie testowi piszą programy do wdrażania planów testów, są to tak zwane skrypty testowe. Skrypty testowe są istotną częścią procesu zapewniania jakości oprogramowania. Ich celem jest zautomatyzowanie testowania istniejącego kodu programu w celu wykrycia defektów. Ponadto inżynierowie testowi zwykle używają komercyjnych narzędzi testowych do wyszukiwania potencjalnych problemów. Plany testowe są wdrażane na etapie programowania oprogramowania.
Istnieje szereg ważnych kroków związanych z faktycznym etapem testowania procesu zapewniania jakości oprogramowania. Obejmują one testy jednostkowe, które oceniają integralność różnych sekcji kodu oprogramowania, a także wstrzykiwanie błędów, które mają na celu zbadanie, w jaki sposób programy reagują na błędne dane. Dodatkowe kroki obejmują testowanie obciążenia lub test warunków skrajnych, które pokazują, jak program działa przy dużym obciążeniu, oraz testy włamania lub bezpieczeństwa w celu przetestowania odporności programu na nieautoryzowany dostęp. Projekt oprogramowania jest również zwykle poddawany testom użyteczności, aby sprawdzić, czy wynikowy program jest łatwy w użyciu dla innych.
Specjaliści zajmujący się testowaniem kodu oprogramowania są ogólnie podzieleni na dwie grupy, jedną zwaną testerami czarnej skrzynki, a drugą znaną jako testery białej skrzynki lub szklanej skrzynki. Testowanie czarnej skrzynki jest bardziej powierzchownym procesem, który rozpoczyna się na etapie kodowania oprogramowania i nie bada żadnego bazowego kodu komputerowego. Bada użyteczność oprogramowania, spójność kosmetyczną oraz występowanie błędów i usterek.
Testowanie białych skrzynek to proces, który rozpoczyna się na samym początku procesu zapewniania jakości oprogramowania, na etapie projektowania. Obejmuje prognozowanie potencjalnych problemów przed napisaniem kodu, a także pisanie planów testów i zaawansowanych skryptów testowych. W przeciwieństwie do testów czarnych skrzynek, testy białych skrzynek obejmują również badanie podstawowego kodu komputerowego.
Zapewnienie jakości dotyczy również fazy wdrażania oprogramowania, czyli kiedy oprogramowanie jest bliskie ukończenia i jest instalowane w systemach komputerowych w celu oceny. Faza ta jest często nazywana testowaniem alfa i ma miejsce, gdy prawie gotowy produkt jest instalowany i testowany przez personel programisty. Oprogramowanie prezentowane potencjalnym klientom spoza firmy nazywa się testowaniem wersji beta. Jeśli po wydaniu oprogramowania pojawią się defekty i konieczne będzie opracowanie poprawki, przeprowadzane są testy regresji, aby upewnić się, że aktualizacje nie tworzą nowych błędów.