Qualitätssicherung umfasst alle Verfahren, die sicherstellen sollen, dass ein Produkt seinen Anforderungen entspricht und einwandfrei funktioniert. Sie beinhaltet die Prozesse, Standards und Aktivitäten, die Qualität erzeugen, und nicht nur die Aktivitäten, die deren Fehlen überprüfen. Die Unterscheidung zur Qualitätskontrolle, also der Prüfung des fertigen Produkts, ist mehr als nur begrifflicher Natur: Qualitätssicherung zielt auf die Vermeidung von Fehlern ab, Kontrolle auf deren Erkennung.
Die traditionelle Vorgehensweise, bei der ein separates Team die fertige Arbeit in einer gesonderten Phase vor der Veröffentlichung testet, weist bekannte Schwächen auf. Fehler werden oft erst lange nach ihrem Auftreten entdeckt, wenn der Kontext in Vergessenheit geraten ist und die Kosten für die Behebung am höchsten sind. Durch die Verzögerung zwischen Entwicklung und Test erhalten die Entwickler kein zeitnahes Feedback zu ihren eigenen Fehlermustern. Und die Verantwortung für die Qualität wird auf eine Gruppe übertragen, die keinen Einfluss darauf hat, wie die Arbeit entstanden ist.
Moderne Vorgehensweisen verteilen die Verantwortung, anstatt sie zu konzentrieren. Entwickler schreiben automatisierte Tests im Rahmen des Build-Prozesses, Code-Reviews decken Probleme auf, bevor sie in die Produktionsumgebung gelangen, Continuous Integration führt bei jeder Änderung eine Verifizierung durch, und Qualitätssicherungsspezialisten konzentrieren sich auf Teststrategie, exploratives Testen und Bereiche, die nicht automatisiert werden können. Die Rolle des Spezialisten wandelt sich von der vollständigen Durchführung der Verifizierung, wodurch diese ermöglicht und konzipiert wird.
Die Testpyramide beschreibt die sinnvolle Verteilung der automatisierten Verifizierung. Eine breite Basis von Unit-Tests läuft schnell und lokalisiert Fehler präzise. Eine kleinere Ebene von Integrationstests überprüft das Zusammenspiel der Komponenten. Eine schmale oberste Ebene von End-to-End-Tests simuliert vollständige Abläufe im realen System. Wird dies umgekehrt, mit einer starken Fokussierung auf langsame und fehleranfällige End-to-End-Tests, entstehen Testsuiten, deren Ausführung Stunden dauert, die unvorhersehbar fehlschlagen und schließlich ignoriert werden.
Exploratives Testen ist nach wie vor unerlässlich und wird in automatisierungsorientierten Unternehmen häufig unterschätzt. Automatisierte Tests überprüfen, ob ein bestimmtes Verhalten weiterhin funktioniert; sie können jedoch nicht erkennen, wenn ein Ablauf verwirrend ist, eine Fehlermeldung nicht hilfreich ist, eine unberücksichtigte Kombination zu unsinnigen Ergebnissen führt oder eine Änderung etwas verschlimmert hat, ohne dass dies durch Tests abgedeckt wird. Sorgfältige manuelle Untersuchungen decken Problemkategorien auf, die von keiner Testsuite erfasst werden.
Qualitätsverpflichtungen gehen weit über die reine Funktionalität hinaus. Barrierefreiheit, Leistung unter realistischen Bedingungen, Sicherheit, Verhalten auf den Geräten und Verbindungen, die die Zielgruppe tatsächlich nutzt, sowie die korrekte Datenverarbeitung sind allesamt Qualitätsmerkmale. Organisationen, die lediglich die Funktionalität überprüfen, liefern zwar Produkte, die korrekt funktionieren, enttäuschen damit aber einen erheblichen Teil ihrer Zielgruppe.
Die Verwaltung von Testdaten ist eine oft unterschätzte Herausforderung, die darüber entscheidet, wie viel davon in der Praxis umsetzbar ist. Realistische Daten sind notwendig, um realistische Fehler zu finden, während Produktionsdaten aufgrund von Datenschutzbestimmungen häufig nicht direkt verwendet werden können und zu saubere synthetische Daten genau die Probleme verschleiern, die es zu finden gilt. Die Bereitstellung repräsentativer, konformer Testdaten ist in der Regel eine Grundvoraussetzung für eine aussagekräftige Verifizierung und kein bloßes Detail.
Die ökonomischen Argumente für Prävention sind gut belegt. Die Kosten für die Behebung eines Fehlers steigen mit dem Zeitpunkt seiner Entdeckung rapide an – von geringfügigen Kosten bei Entdeckung während der Entwicklung bis hin zu erheblichen Kosten bei Feststellung in der Produktion, wo zusätzlich Betriebs- und Reputationskosten entstehen. Investitionen in die Früherkennung sind daher allein aus Kostengründen gerechtfertigt, unabhängig von der Kundenzufriedenheit.
Da Qualität durch den Arbeitsablauf und nicht durch das Endergebnis bestimmt wird, gehören die entsprechenden Praktiken in den Produktionsprozess und nicht in die Nachbereitung. In der Praxis wird dies umgesetzt innerhalb von , als Teil der Definition von „Fertig“, wobei die Kriterien für Zugänglichkeit und Benutzererfahrung aus folgenden Quellen stammen: UX-Audit Standards und die Leistungsschwellenwerte von Webleistung Budgets, so dass das, was überprüft wird, dem entspricht, was das Produkt tatsächlich leisten muss.