Holen Sie sich die neuesten wichtigen Update-Informationen für die Log4j-Sicherheitslücke. Sehen Sie sich an, wie Sie das Problem mithilfe der Parasoft-Anleitung beheben können. Erfahren Sie mehr >>

X
BLOG

Die 7 Gewohnheiten sehr erfolgreicher Programmierer

Die 7 Gewohnheiten sehr erfolgreicher Programmierer Lesezeit: 3 Minuten

Übung ist schwer - nun, eigentlich ist es nicht so schwer, sondern mühsam und leicht zu vermeiden. Die Übung selbst ist unkompliziert, aber regelmäßig durchzuführen ist der schwierige Teil. Wie sich herausstellt, ähneln Softwaretests in vielerlei Hinsicht dem Training - sie sind langwierig, leicht zu überspringen, anfällig für Binge-Verhalten und werden am besten in gleichbleibend kleinen Mengen durchgeführt. Und natürlich ist es sehr wertvoll und äußerst effektiv bei der Herstellung hochwertiger Software.

Wenn wir uns auf das Jahr 2017 einlassen und herausfinden, ob wir unsere Vorsätze für das neue Jahr erfolgreich einhalten werden oder nicht, lassen Sie uns mit unseren Software-Testgewohnheiten proaktiver sein, oder?

Übung funktioniert am besten, wenn sie regelmäßig durchgeführt wird, auch wenn die Menge gering ist. Nur 10 Minuten Training pro Tag sind besser als 2 Stunden einmal pro Woche. Und was wäre, wenn Sie versuchen würden, alles auf einmal zu tun? Stellen Sie sich vor, Ihr Ziel wäre es, zweimal pro Woche 30 Minuten zu trainieren - insgesamt etwa 50 Stunden für das ganze Jahr. Würdest du bis zur letzten Dezemberwoche warten und 10 Tage lang 5 Stunden am Tag ins Fitnessstudio gehen? Es klingt lächerlich, aber seltsamerweise ist dies der Ansatz, den Softwareentwickler und Tester in Organisationen im ganzen Land und auf der ganzen Welt verfolgen.

Testsuiten, die nicht gewartet werden, werden laut und unbrauchbar und werden schließlich noch weniger gut gewartet. Statische Analysen, die als Testwerkzeug falsch eingesetzt werden, liefern ein ziemlich schlechtes Rausch-Wert-Verhältnis und werden schließlich größtenteils ignoriert. Gleiches gilt für andere Kernpraktiken, die Teil Ihrer regulären Code-Übungsgewohnheiten sein sollten. Die Gewohnheiten, die zur Verbesserung unserer Software-Sicherheit, -Qualität und -Sicherheit beitragen, sind wichtig, unabhängig davon, welche Art von Code Sie entwickeln, ob Unternehmens-IT, Embedded, IoT, Medizin, Automobil oder Luft- und Raumfahrt. Diese gewohnheitsmäßig eingesetzten Best Practices haben sich bei erfolgreichen Entwicklern aller Branchen immer wieder bewährt.

1. Peer Review

Wenn Sie einen zweiten oder dritten Satz Augäpfel über Ihren Code schauen, können Sie ernsthafte Probleme effektiv finden, bevor sie den Benutzer erreichen. Stellen Sie sicher, dass Sie es nicht übertreiben, um die Praxis als Teil Ihres Regimes zu verankern. Versuchen Sie nicht, eine gesamte Codebasis zu überprüfen, sondern überprüfen Sie nur die Änderungen, die sich auf eine Funktion oder einen Fix beziehen. Verlassen Sie sich auf statische Analysen, um die mühsame Arbeit von Stil, Best Practices und Compliance-Durchsetzung zu erledigen.

2. Statische Code-Analyse

Holen Sie sich einen guten präventiven Regelsatz, den Sie direkt mit Problemen verknüpfen können, die Sie in der Vergangenheit hatten und die Sie in Zukunft vermeiden möchten. Führen Sie es nicht nur in der Qualitätssicherung aus, sondern stellen Sie sicher, dass es sich auf den Desktops der Entwickler befindet, auf denen sie frühzeitig benachrichtigt werden und Probleme beheben können. Alle Compliance-Probleme wie die funktionale Sicherheit sollten Teil Ihrer statischen Analysekonfiguration sein.

3. Unit-Tests schreiben

Schreiben Sie unterwegs Unit-Tests - einen für jede Datei oder einen für jede Änderung. Das Schreiben beim Codieren ist schneller, da Sie bereits wissen, was der Code tun soll. Machen Sie sie robust, damit sie nicht brechen, wenn sie auf einen anderen Computer verschoben oder an einem anderen Tag ausgeführt werden.

4. Ausführen und Verwalten von Komponententests

Je seltener Sie Tests durchführen, desto lauter werden sie - dies ist der zweite Hauptsatz der Thermodynamik in Aktion. Bemühen Sie sich wirklich, das Geräusch bei jedem Loslassen langsam zu reduzieren. Niemand hat die Zeit, alles auf einmal zu tun. Versuchen Sie also, diese Version ein bisschen besser zu machen als beim letzten Mal.

5. Verbesserung der Codeabdeckung

Stellen Sie neben dem Erstellen neuer Komponententests sicher, dass die Menge des zu testenden Codes zunimmt, indem Sie Ihre Abdeckung messen. Arbeiten Sie daran, die Anzahl schrittweise zu erhöhen - vielleicht 5% besser in dieser Version als in der letzten. Der Weg, um diese Zahl zu erhöhen, besteht darin, fortschrittliche Testtechnologien wie zu nutzen Service-Virtualisierung , damit Sie komplizierte Systeme testen können.

6. Messung

Sie können nicht verwalten, was Sie nicht messen. Woher weißt du, ob es besser oder schlechter wird? Sammeln Sie Daten aus Ihren Entwicklungsaktivitäten, z. B. Einchecken, gefundene Fehler, Verstöße gegen statische Analysen, Abdeckung usw. Sammeln Sie sie im ersten Durchgang einfach. Nach einigen Veröffentlichungen können Sie sehen, ob die Zahlen steigen oder fallen. Weitere Informationen zu bewährten Methoden finden Sie in meiner Präsentation zu Metriken, die wichtig sind.

7. Halten von Obduktionen

Nehmen Sie sich nach einer Veröffentlichung Zeit, um zu überprüfen, wie es gelaufen ist. Nach 90 Tagen haben Sie eine gute Vorstellung von der Anfangsqualität und können eine Bewertung vornehmen. Was schief gelaufen ist? Wie können Sie solche Dinge in Zukunft vermeiden? Verwenden Sie eine statische Analyse, um die Prävention für bestimmte Probleme einzurichten.

Denken Sie bei der Verbesserung Ihrer Softwaretestpraktiken daran, wie schwierig es ist, sich an die Neujahrsvorsätze zu halten. Wir alle müssen uns verbessern, aber beißen Sie nicht mehr ab, als Sie kauen können. Finden Sie heraus, wo Sie anfangen sollen, und beheben Sie jeweils eine Sache. Weniger ist mehr - schaffen Sie kleine, aber konsistente Gewohnheiten für maximale Wirkung.

Geschrieben von

Artur Hicken

Arthur ist seit über 25 Jahren bei Parasoft im Bereich Software-Sicherheit und Testautomatisierung tätig. Er hilft bei der Erforschung neuer Methoden und Techniken (einschließlich 5 Patente) und hilft Kunden dabei, ihre Software-Praktiken zu verbessern.

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