Software Quality Assurance, to złożony proces, który obejmuje testowanie oprogramowania, tak aby spełniało określone wymagania i specyfikacje.
Proces zapewniania jakości oprogramowania jest procesem ciągłym, który testuje oprogramowanie w całym jego cyklu życia. Proces ten jest rutynowy i pomaga inżynierom upewnić się, że produkt jest dobrze zbudowany i nie posiada błędów. Testowanie zapewnia, że oprogramowanie zostało opracowane w sposób prawidłowy. Testowanie jest niezbędne na każdym etapie rozwoju oprogramowania aż do jego ostatecznego wydania. Bez ciągłych testów proces tworzenia oprogramowania byłby kontynuowany do końca, ignorując błędy, które mogły wystąpić w jednej z tych faz. Testy zapewnienia jakości są konieczne, aby upewnić się, że produkt spełnia normy i jest w pełni sprawny, nie zawiera błędów, usterek czy też nie powoduje nieprawidłowego działania innych programów. Jeśli błędy zostaną wyłapane we wcześniejszym procesie, można je naprawić na czas, a ryzyko awarii na kolejnych etapach pracy jest znacznie mniejsze. Przy naprawianiu błędów na wczesnym etapie procesu oszczędzane są dodatkowe wydatki i wiele straconych godzin.
Warto sprawdzać różne czynniki związane z oprogramowaniem, z pewnością warto wyłapać wszystkie błędy widoczne i niewidoczne.
Problemy z interfejsem użytkownika muszą zostać naprawione wcześniej, aby użytkownicy nie mogli ich zobaczyć. Warto zbadać oprogramowanie na różnych urządzeniach, aby upewnić się że wszystkie przyciski, czy też struktura menu jest widoczna dobrze zarówno na laptopie co i na urządzeniu przenośnym. Z pewnością testy oprogramowania powinny dotyczyć także poprawnego przyjmowania danych. Aby użytkownik nie podał nieprawidłowych danych dla różnych komórek określa się możliwe dane jakie mogą zostać wprowadzone. Może to dotyczyć także ilości znaków, w ten sposób można określić że kod pocztowy w Polsce powinien składać się z 5 cyfr. Warto przetestować zatem formularze czy wyłapują błędy i podają właściwą formę podania danych.