Ruszyły zapisy na szkolenia stacjonarne: "Testowanie manualne i automatyczne w praktyce". Ustalamy lokalizacje i terminy.

Jak mierzyć jakość oprogramowania?

Lip 7, 2021

Istnieją różne cele testowania oprogramowania. Jednym z głównych celów testowania jest mierzenie jakości oprogramowania. Czym zatem jest ta tajemnicza „jakość”?

Jakość oprogramowania to zestaw istotnych cech, które wyróżniają dane oprogramowanie – negatywnie lub pozytywnie.

Jak mierzyć jakość oprogramowania? – miary jakości

Pomyślmy zatem jakie mogą być miary jakości? Od razu pewnie na myśl przychodzi nam – opisowa miara jakości, czyli po prostu opis słowny. Jednak taka miara bywa bardzo zwodnicza – w końcu takowa miara zależeć będzie od podmiotu, który stworzył opis, w szczególności od jego subiektywnych odczuć i interpretacji. Należy zatem wystrzegać się tak sporządzonej opisowo miary jakości. Powinniśmy za to przede wszystkim stosować miary liczbowe, metryki  w kontekście mierzenia jakości oprogramowania. W końcu: „liczby nie kłamią!”. Należy wykorzystać przede wszystkim fakty liczbowe, aby stworzyć końcowa analizę jakościową.

Jak wspomniałem wcześniej podstawowym parametrem miary jakości oprogramowania powinno być kryterium ilościowe. Według takiego kryterium opisujemy proporcję błędów wykrytych w fazie produkcji oprogramowania do liczby błędów, wykrytych już w fazie odbiorczej przez klienta końcowego . Możemy takie kryterium ilościowe przedstawić na grafie – może on wyglądać np. tak:

Jak mierzyć jakość oprogramowania?

Jakość oprogramowania – wagi błędów

Stosując tego typu kryterium ilościowe powinniśmy przyjąć jakąś wartość graniczną, która stanie się dla nas pewnym wyznacznikiem, a w momencie przekroczenia będzie dla nas jasnym ostrzeżeniem, alertem, który wymusza na nas podjęcie działań zaradczych. Podkreślam raz jeszcze, że jest to parametr ilościowy, a więc nie rozróżnia on wagi błędów (np. krytyczny, wysoki, średni, niski itp.) a jedynie bierze pod uwagę ich ilość. Oznacza to, że dla kryterium ilościowego – błędy krytyczne są na równi z błędami niskimi, mało znaczącymi incydentami, czy nawet zwykłymi literówkami. Zatem w tym momencie powinna zapalić nam się w głowie czerwona lampka ostrzegawcza, która sygnalizuje nam, że sam parametr ilościowy może nie wystarczyć do poprawnej miary jakości oprogramowania. Parametr ilościowy powinniśmy zatem uzupełnić o parametr „wagi błędu – w końcu jeden błąd krytyczny nie równa się jednemu błędowi o niskiej wadze.

Jakość oprogramowania

Jakość oprogramowania – feedback

Oczywiście wyżej przedstawione kryterium ilościowe nie powinno być jedynym miernikiem jakości oprogramowania. Kolejnym ważnym aspektem miary jakości powinien być feedback od użytkowników końcowych, klientów. Opinie użytkowników powinniśmy skonfrontować z wyżej opisanymi parametrami i ich statystykami. Feedback możemy zbierać np. za pomocą ankiet. Takie zestawienie powinno dać nam informacje potwierdzające lub zaprzeczające trafności pomiarów liczbowych, przyjętych granic. Na tej podstawie możemy nieco skorygować przyjęte wcześniej progi tak, aby jeszcze lepiej oddawały faktyczny stan oprogramowania. Sam proces testowania oprogramowania, czy mierzenia jego jakości zwykle jest złożony i skomplikowany – gdyż istnieją różne rodzaje błędów, usterek, a także ich okoliczności występowania. Wysoka liczba błahych do wykrycia błędów  znalezionych przez klientów– zawsze źle świadczy o jakości danego produktu. Natomiast istnienie błędów, które pojawiają się tylko w rzadkich, specyficznych sytuacjach (które ciężko jest wykryć podczas standardowej pracy z oprogramowaniem) – zwykle dobierana jest dużo bardziej wyrozumiale. Dlatego kolejnym ważnym parametrem w przeprowadzaniu miary jakości oprogramowania jest parametr określający stosunek wagi błędu do poziomu skomplikowania sytuacji jego wystąpienia.

W dużym skrócie omówiliśmy sobie parametry, które mogą pomóc zmierzyć jakość oprogramowania. Teraz zobaczymy jakie konkretnie atrybuty aplikacji powinniśmy poddać testowaniu i weryfikacji, aby uzyskać wystarczającą pewność co do jakości oprogramowania. Poniższe atrybuty oprogramowania będą zatem naszymi punktami kontrolnymi:

  • Funkcjonalność
  • Niezawodność
  • Przenośność
  • Wydajność
  • Pielęgnowalność
  • Użyteczność
  • Bezpieczeństwo
  • Przydatność dokumentacji

Oczywiście każdy powyższy punkt kontrolny odnosi się do innej właściwości oprogramowania, dlatego powinniśmy wykonywać osobne testy właściwe dla każdego ze wskazanych atrybutów oprogramowania. Dobrze jest, aby klient zamawiający oprogramowanie – wskazał, które atrybuty oprogramowania są dla niego najważniejsze, a które mają mniejsze znaczenie. Np. klient może wskazać, że aplikacja bezdyskusyjnie musi działać w trybie ciągłym – musi być niezawodna (gdyż np. każda jej niedostępność niesie za sobą duże straty finansowe) a np. może przymknąć oko na niedoskonałości dokumentacji. Takie informacje powinniśmy uzyskać na samym początku  – podczas fazy planowania i powinny być zapisane w dokumencie Planu Testów. Na podstawie takich informacji będziemy wiedzieć na czym powinniśmy skupić największą uwagę i swoją pracochłonność, a co możemy zostawić do testów na koniec, czy nawet w skrajnych przypadkach pominąć.

Na koniec chciałbym zwrócić uwagę na jeszcze jeden bardzo ważny aspekt, który bywa często niewłaściwie rozumiany.

Pamiętajmy:

Jakość oprogramowania podnosi się wraz z naprawianiem błędów, a nie ich znajdywaniem!

Proces mierzenia jakości oprogramowania powinien odbywać się przez cały czas w fazie developmentu. Oczywiście każdy projekt ma swój koniec i termin oddania  więc przychodzi również czas na generalną miarę jakości oprogramowania, w której biorą udział również klienci. Pamiętajmy o tym, że najważniejszą miarą, która powinna mieć dla nas (zespół developerski, testerski) znaczenie jest realne zadowolenie klienta z otrzymanego oprogramowania. W końcu celem każdej wytworzonej aplikacji, jest spełnianie biznesowych zadań naszych klientów. To klient końcowy wystawia nam ostateczną ocenę i rozlicza nas za wyprodukowane oprogramowanie. Pamiętajmy również o tym, że nie ma oprogramowania wolnego od błędów – są tylko nieznalezione defekty! Dlatego pamiętajmy, aby wyciągać wnioski z każdego procesu testowego (nawet tego niezupełnie udanego czy dobrze ocenionego) i w ten sposób podnosić swoje umiejętności, a w konsekwencji jakość kolejnych projektów.

Autor: Tomasz Stelmach

Pozostałe:

Środowisko testowe – słów kilka

W tym materiale postaram się Wam przybliżyć nieco temat środowisk, a w szczególności skupić się na środowiskach testowych. Na samym początku musimy sobie zadać podstawowe pytanie: „Czym w ogóle jest środowisko w kontekście pracy dowolnej aplikacji?” Środowisko – to...

Poziomy wykonywania testów

Wytwarzanie oprogramowania to zwykle długi, czasochłonny, skomplikowany proces. Aby przebiegał on poprawnie i dało się nim efektywnie zarządzać - proces developmentu dzielony jest na różne etapy, fazy. Każda faza charakteryzuje się swoimi unikalnymi czynnościami i...

Best Practices testowania aplikacji mobilnych

Testowanie aplikacji mobilnych jest niezbędne, aby upewnić się, że każda aplikacja spełnia postawione przed nią wymagania techniczne oraz biznesowe. Ważne jest, aby każdy tester aplikacji mobilnych stosował sprawdzone i przede wszystkim skuteczne metody testowania. Z...

Przydatne narzędzia wspomagające testowanie oprogramowania

Efektywne testowanie oprogramowania zarówno manualne jak i automatyczne wymaga wykorzystania przeróżnych narzędzi i rozwiązań softwarowych. Na rynku znajdziemy ogromną liczbę narzędzi usprawniających proces testowania oprogramowania, a przy ogromnym wyborze trudno...

Najczęściej popełniane błędy podczas testowania aplikacji mobilnych

W dzisiejszym materiale przedstawię 7 najpopularniejszych błędów, jakie popełniają testerzy oprogramowania podczas testów aplikacji mobilnych. Znając szczegóły tych błędów, będziesz mógł poprawić swój warsztat testowania aplikacji mobilnych i będziesz wiedział jak...