Kiedy mówimy o jakości oprogramowania, tak naprawdę mówimy o ocenie oprogramowania na podstawie określonych atrybutów. Jakość oprogramowania jest określana na podstawie badania zewnętrznych i wewnętrznych jego funkcji.
Jakość zewnętrzna jest definiowana na podstawie tego, jak oprogramowanie działa w czasie rzeczywistym w trybie operacyjnym i na ile jest użyteczne dla użytkowników. Z drugiej strony, wewnętrzna jakość koncentruje się na wewnętrznych aspektach, które zależą od jakości napisanego kodu. Użytkownik koncentruje się bardziej na tym, jak oprogramowanie działa na poziomie zewnętrznym, ale jakość na poziomie zewnętrznym można utrzymać tylko wtedy, gdy programista napisał znaczący kod dobrej jakości. Wszystko, co nie jest zgodne z wymaganiami klienta, można uznać za wadę oprogramowania. Czasem programiści mogą niem zrozumieć wytycznych, co ostatecznie prowadzi do błędu projektowego. Poza tym błąd może być spowodowany złą logiką funkcjonalną, niewłaściwym kodowaniem lub niewłaściwą obsługą danych. Aby śledzić defekty, można zastosować podejście do zarządzania defektami.
W zarządzaniu defektami kategorie defektów są definiowane na podstawie ważności. Liczona jest liczba defektów i podejmowane są działania zgodnie ze zdefiniowanym stopniem ważności.
Można tworzyć wykresy kontrolne w celu zmierzenia możliwości procesu programowania. Z pewnością rozwiązania IT dla biznesu muszą charakteryzować się niezawodnością. Aby to osiągnąć trzeba odpowiednio testować powstające oprogramowanie na różnych etapach. Testowanie oprogramowania ma na celu identyfikację lub wykrycie wad i błędów w oprogramowaniu. Polega ona na faktycznym rygorystycznym testowaniu oprogramowania w celu sprawdzenia, czy istnieją jakieś wady lub odchylenia od wymagań klienta, które należy poprawić. Testowanie oprogramowania jest częścią procesu kontroli jakości i koncentruje się wyłącznie na działaniach zorientowanych na produkt. Testowanie oprogramowania jest przeprowadzane na etapie testowania, w tym procesie identyfikowane są tylko usterki, które nie są poprawiane. Naprawa wad nie jest częścią testowania oprogramowania.