Die Entwicklung von Computersoftware erfordert einen Prozess zum Entwerfen, Codieren und Testen von Softwarecode. Der Softwaretestprozess besteht aus Einheiten-, Integrations-, System- und Leistungstestphasen. Integriertes Testen ist der Prozess, bei dem Module innerhalb eines Anwendungsprojekts kombiniert und als Gesamtpaket getestet werden.
Eine Testumgebung ist eine gemeinsam genutzte Umgebung zum Testen. Diese Umgebung wird am besten für Systemtests und Leistungstests verwendet. Normalerweise ist eine Testumgebung von einer Entwicklungs- und Produktionsumgebung getrennt.
Eine Softwareanwendung enthält mehrere unabhängige Module. Jedes Modul ist für einen bestimmten Zweck konzipiert und somit autark. Unit-Tests ist der Prozess der Validierung eines Moduls innerhalb einer Anwendung. Dieser Komponententest findet normalerweise vor dem Integrationstest statt.
Softwaremodule sind wie Puzzleteile, die eine Integration in das größere Softwareanwendungs-Framework erfordern. Beim Zusammenführen der Module in das Anwendungsframework wird ein integriertes Testen durchgeführt. Dieser Testprozess validiert, dass die Module mit anderen Objekten in der Anwendung kommunizieren können.
Das Testmodell ist ein serieller Prozess, der mit einem Komponententest beginnt, gefolgt von Integrationstests und dann Systemtests. In der Systemtestphase kann die komplette Anwendung getestet werden. Bevor der Systemtest durchgeführt werden kann, müssen alle Module die integrierte Testphase durchlaufen. Diese Phase tritt normalerweise während eines automatisierten Systemerstellungsprozesses auf.
Die meisten Softwareentwicklungsprojekte umfassen mehrere Entwickler. Jedem Entwickler werden bestimmte Module zugewiesen, die er erstellen und in das Softwareanwendungsframework integrieren muss. Wenn ein Entwickler Code schreibt, checkt er sein Modul aus einer freigegebenen Umgebung in eine private Entwicklungsumgebung aus. Diese private Umgebung befindet sich normalerweise auf einem eigenständigen Computer oder Laptop.
Bevor Software in einer gemeinsamen Entwicklungsumgebung bereitgestellt werden kann, muss sie in binären Maschinencode kompiliert werden. Dieser Kompilierungsprozess wird normalerweise als Buildprozess bezeichnet. Continuous Integration Testing ist der Prozess, bei dem Softwareentwickler während des Buildprozesses eines Entwicklungsvorhabens integrierte Tests durchführen müssen.
Der automatisierte Build-Prozess umfasst die Dokumentationserstellung, die Komponententestvalidierung und die integrierte Testvalidierung. Diese Sequenz wird für jede Aktualisierung des Softwarecodes wiederholt. Tritt während des Buildprozesses ein Fehler auf, verbleibt der Code in einer privaten Umgebung. Dieser Integrationsprozess reduziert Fehler in der Umgebung mit gemeinsam genutztem Code. Automatisierte Buildprozesse gelten als Best Practice für die Softwareentwicklung.
In der Softwareentwicklung ist ein Projekt ein Ordner, der mehrere Module, Objekte und Klassen enthält, die ein Softwarepaket bilden. Projekttesten ist das Testen eines gesamten Softwareprojekts. Dieser Projekttest wird während der Integrationstestphase abgeschlossen.