Unterschied zwischen Integrations- und Regressionstests?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Integrationstests umfassen entweder Komponenten einer Applikation oder, im Fall von verteilten Systemen, Subsysteme (z.B. Microservices) einer Applikation.

Regressionstests werden genutzt, um auszuschließen, dass eine Änderung (z.B. ein neues Feature oder ein Bugfix) eine insgesamte Verschlechterung der Funktionalität bewirkt. Konkret werden Regressionstests oft genutzt, um sicherzustellen, dass ein bestimmtes, bereits behobenes Problem durch eine zukünftige Code-Änderung nicht wieder eingeführt wird.

Deine Annahme, dass durch Integrationstests auch Regressionstests ausgeführt werden können, ist nicht falsch. Allerdings wäre es falsch anzunehmen, dass das immer so ist.

Integrationstests stellen oft auf einem sehr hohen Level das Zusammenspiel der Softwarekomponenten sicher. Für diese grobe Überprüfung reichen oft wenige Testfälle mit sehr begrenzt variablen Inputdaten aus.

Es ist aber durchaus möglich und üblich, dass ein Regressionstest durch einen Integrationstest realisiert wird, z.B. wenn in der Vergangenheit ein Fehler im Zusammenspiel der Komponenten aufgetreten ist.

Im Fall von Microservices kann zum Beispiel ein versehentlich aus der API des Services entferntes Feld für Probleme sorgen, was dann durch einen neu geschaffenen Integrationstest zwischen den Services, der gleichzeitig Regressionstest ist, verhindert wird.

Woher ich das weiß:Berufserfahrung – Softwareentwickler seit 2009