Holen Sie sich die UMFANGREICHSTE Abdeckung für die Einhaltung von MISRA C! Erfahren Sie mehr >>

6 Schritte zur kontinuierlichen Integration für Entwicklungstests

Von Jason Schadewald

30. Mai 2013

3  min lesen

In den kreativsten und fortschrittlichsten Unternehmen geht die kontinuierliche Integration weit über die Build-Automatisierung hinaus und ermöglicht es den Teams, im gesamten SDLC eine größere Skalierbarkeit, Produktivität und Qualität zu erzielen.

Hier sind 6 Schritte, um Ihre Entwicklungstests Aktivitäten (und mehr) von der manuellen Integration bis zur kontinuierlichen Integration - alles in weniger als einem Tag.

1. Identifizieren Sie manuelle Prozesse

Beginnen Sie mit einer Bestandsaufnahme Ihrer regelmäßigen zeitaufwändigen Bemühungen. Ihr Ziel ist es, mühsame „Muss“ -Aufgaben zu identifizieren, die Sie oder Ihr Team immer wieder ausführen. Die Prozesse, die Sie identifizieren, können Folgendes umfassen:

  • Übertragen von Dateien zwischen Computern
  • Befehle in eine Konsole eingeben
  • Kopieren von Daten zwischen verschiedenen Systemen oder in ein anderes Format
  • Visuelle Überprüfung von Informationen, Daten oder Testergebnissen
  • Dokumentation schreiben
  • Mündliche oder schriftliche Genehmigung erhalten
  • Planung und Teilnahme an Besprechungen
  • Klicken Sie auf eine Schaltfläche / ein Symbol, um ein Skript oder Programm auszuführen
  • Berichte erstellen und senden

In dieser Phase müssen Sie sich keine Gedanken über die Automatisierung machen. Konzentrieren Sie sich auf die Ermittlung langwieriger, routinemäßiger manueller Prozesse. Wenn das Erstellen dieser Liste länger als 15 Minuten dauert, halten Sie an, wo Sie sich befinden, und fahren Sie mit Schritt XNUMX fort.

2. Schätzen Sie Häufigkeit und Dauer

Nachdem Sie eine kurze Liste dieser Prozesse erstellt haben, müssen Sie als Nächstes die relativen Vorteile der Automatisierung ermitteln. Der einfachste Weg, dies zu tun, besteht darin, Häufigkeit und Dauer zu schätzen. Beschränken Sie sich bei der Schätzung der Häufigkeit eines Prozesses nicht auf die aktuellen Bedingungen. Konzentrieren Sie sich stattdessen auf den Wert des Prozesses, indem Sie überlegen, wie oft Sie die Ergebnisse verwenden würden oder wie lange es dauert, bis die Ergebnisse veraltet sind:

  • Mehrmals am Tag
  • Ein paar Mal pro Woche
  • Jeder Sprint
  • Zweimal pro Release-Zyklus

Gehen Sie als Nächstes die Liste durch und schätzen Sie, wie lange es dauert, jeden Prozess unter den aktuellen Bedingungen abzuschließen. Die Dauer kann für den üblichen Prozess zwischen Minuten und Tagen liegen. Es ist eine natürliche menschliche Tendenz, die Dauer zu unterschätzen. Sie können also gerne Fudge-Faktoren aufrunden oder hinzufügen.

3. Wählen Sie (Unter-) Prozesse für die Automatisierung

Überprüfen Sie Ihre Liste und wählen Sie einen Punkt aus, der bei automatisierter Automatisierung die Produktivität Ihres Softwareentwicklungsteams spürbar verbessern würde. Zu den gängigen Auswahlmethoden gehören:

  • Wählen Sie den Prozess mit der höchsten Dauer
  • Wählen Sie den Prozess mit der höchsten Frequenz
  • Wählen Sie den Prozess mit der höchsten (Häufigkeit) * (Dauer)

An diesem Punkt machen viele Menschen den Fehler, eine „Alles oder Nichts“ -Ansicht zu vertreten. Konzentrieren Sie sich stattdessen auf die Teile des Prozesses, die automatisiert werden können, und gehen Sie mit dem Verständnis vor, dass Sie sich im Laufe der Zeit verbessern werden.

Machen Sie die Übung, die Aufgabe entweder geistig oder körperlich zu erledigen, und machen Sie sich Notizen für jeden Schritt. Notieren Sie sich die gesammelten Informationen, die eingegebenen Befehle, die erforderlichen Berechtigungen, die beteiligten Personen usw. - genug, um Ihr Gedächtnis später zu verbessern.

Das Endergebnis wird eine Mini-Bedienungsanleitung für einen wiederholbaren menschlichen Prozess sein. Überprüfen Sie Ihre Anweisungen und identifizieren Sie die Schritte, die ein Computer ausführen kann. Befehle, die Sie in eine Konsole oder ein Textfeld eingegeben haben, sowie Informationen, die von einer Website oder Datenbank abgerufen wurden, sind gute Kandidaten. Achten Sie bei mehrpersonen- und mehrstufigen Prozessen auch auf Methoden, um Einzelpersonen über ihre Wendung und Rolle im Prozess zu informieren

4. Erstellen Sie Automatisierungsskripte

Sehen Sie sich dann Ihre Bedienungsanleitung vom letzten Schritt an:

  • Kopieren Sie Ihre Konsolenbefehle in einen Editor und speichern Sie sie als .bat- (Windows) oder .sh- (Unix / Linux) Skripte
  • Verwenden Sie ein Entwicklungstest-Tool mit einer Befehlszeilenschnittstelle zu
    • Analysieren Sie den Code statisch auf Sicherheit und Mängel
    • Unit-Tests automatisch generieren und ausführen
    • Peer-Review-Aufgaben automatisch zuweisen und verfolgen
    • APIs funktional testen
    • Durchsuchen Sie Websites, Dienste und Datenbanken nach Zwischendaten
  • Verwenden Sie Build- und Berichterstellungstools, um nachfolgende Phasen der Automatisierungsinfrastruktur zu informieren
  • Erfassen Sie mehrstufige Prozesse in Form von BPEL oder einer anderen übergeordneten Prozess-Engine

Das Ziel ist es, es einfach zu halten und auf die niedrig hängenden Früchte abzuzielen - Sie können sich später um Optimierung, Verallgemeinerung und Parametrisierung kümmern.

5. Planen und / oder Auslösen der Artefakte

Die formal akzeptierte Definition der kontinuierlichen Integration gibt an, dass Ihr Skript durch ein Commit für Ihr SCM ausgelöst werden muss. Die meisten Menschen kümmern sich jedoch wirklich nur darum, ihre Arbeit zu erledigen. Ob ihre Prozesse mit der einen oder der anderen Definition übereinstimmen, ist unerheblich. Fühlen Sie sich frei, Ihre eigene Interpretation von CI zu entwickeln, die Ihnen den Aufwand mühsamer Aufgaben erspart.

Nachdem Sie über ein Skript oder ein anderes automatisierbares Artefakt verfügen, benötigen Sie ein Tool zum Verwalten der Planung / Auslösung dieser Artefakte. Eine einfache Strategie zum Auffinden von Automatisierungstools besteht darin, nach dem Begriff kontinuierliche Integration zu suchen. Die Ergebnisse liefern Tipps zur Automatisierung nicht nur des Builds, sondern auch zahlreicher anderer Entwicklungs-, Qualitätssicherungs- und IT-Aktivitäten. CI-Tools bieten den einfachen und notwendigen Rahmen, um die regulären Läufe einiger Artefakte zu planen und die ausgelösten Läufe anderer zusammenzufügen.

6. Iterieren, verbessern, wiederholen

Mit der Zeit, die Sie bei der Automatisierung Ihrer Entwicklungstestprozesse gespart haben, können Sie sich jetzt auf die Verbesserung Ihrer grundlegenden Implementierung der kontinuierlichen Integration konzentrieren. Kehren Sie zu Schritt XNUMX zurück und fügen Sie Ihrer Liste einige neue manuelle Aufgaben hinzu. Beispielsweise können Sie bestimmte Skripte manuell ändern oder für etwas ähnliche Zwecke kopieren. Ihr nächstes Automatisierungsprojekt könnte darin bestehen, Ihre Automatisierungsartefakte zu konsolidieren und zu parametrisieren

Sie haben gerade 2-3 CMMI-Level gesprungen (für diejenigen, die Punkte halten). Glückwunsch!

 

 

Von Jason Schadewald

Jason Schadewald ist Produktmanager bei Parasoft.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.