Simple Metriken, automatisierte Tests

7 Tipps für bessere Software

24.09.2010 von Andreas Schaffry
Fehler bei der Software-Entwicklung vermeidet nur, wer die Anforderungen vorab genau definiert. Forrester nennt sechs weitere Regeln für Entwicklungs-Projekte.
Forrester zeigt anhand sieben pragmatischer Regeln, wie sich die Qualität über den gesamten Software-Entwicklungsprozess erhöhen lässt.

Anwendungsentwickler tun ihr Bestes, um Fehler und Bugs in Software-Programmen zu vermeiden beziehungswese schnell durch einen Bugfix zu beheben. Doch die Entwicklung von Software in hoher Qualität, die Geschäftsanforderungen erfüllt, anwenderfreundlich ist und kaum Defekte hat, ist ein hartes Brot. Warum? Das Business gibt immer engere Zeitfenster für die Entwicklung und Anpassung von Applikationen vor. Das hindert Entwickler daran, voll ausgereifte und qualitätsgesicherte Programme zu schreiben.

Die Qualitätsfrage ist jedoch ein integraler Bestandteil des gesamten Software-Entwicklungszyklus, vom ersten Entwurf bis zur Implementierung. Die Marktforscher von Forrester zeigen Entwicklern in dem Bericht "Seven Pragmatic Practices To Improve Software Quality" sieben Methoden auf, um die Qualität ihrer Anwendungs-Programme zu erhöhen.

1. Qualität richtig definieren

Applikationen müssen nicht perfekt sein, aber sie müssen Geschäftsprozesse bestmöglich und ohne Risiko unterstützen. Deswegen kann die Definition der Qualität von Anwendungen zu Anwendung unterschiedlich sein. Vor Projektbeginn müssen alle Beteiligten ins Boot geholt werden, um die Anforderungen exakt zu definieren. Auch Restriktionen in Bezug auf die Projektlaufzeit, das Budget und personelle Ressourcen sind hier zu klären. Das schiebt einer unrealistischen und perfektionistischen Erwartungshaltung den Riegel vor.

2. Qualitätsmetriken einfach halten

Die Kriterien, an denen die Qualität gemessen wird, müssen so komplex wie nötig und so einfach wie möglich sein, um Fortschritte und Verbesserungen im Entwicklungsprozess jederzeit nachvollziehen zu können. Einfache Metriken sind zum Beispiel die Gesamtzahl defekter Software-Bausteine oder defekte Bausteine und Schwere der Defekte pro Entwicklungsphase. Auf diese Weise wird für alle Beteiligten die Qualität zu einem bestimmten Entwicklungszeitpunkt transparent. Das verringert die Anzahl der Defekte.

3. Entwicklerteams richtig zusammenstellen

Entwicklerteams müssen umsichtig zusammengestellt werden. Nötig ist auch eine für alle Beteiligten verbindliche Zielvereinbarung im Hinblick auf die zu erreichende Software-Qualität. Zugleich sollten Fortschritte einfach messbar und transparent darzustellen sein. So wissen alle Team-Mitglieder, wann der Ball im Netz ist und wann nicht.

4. Anforderungen genau bestimmen

Schon in der Requirements-Phase sollten Anforderungen möglichst exakt erhoben und analysiert werden. Dadurch lässt sich vermeiden, dass das Business während der Entwicklung ständig die Anforderungen ändert. Die Anwender profitieren so von einer klaren Anwendungs-Architektur mit stabilem Code. Darüber hinaus ist weniger Software-Testing erforderlich.

5. Schlau testen, Zeit sparen

Die Testfälle sollen sich daran orientieren, wie kritisch eine Anwendung für das Business ist. So lassen sich die meisten Bugs erwischen und die Zahl der Defekte verringern. In der Praxis jedoch testen Unternehmen häufig ziel- und planlos und verschwenden unnötig Ressourcen. Dadurch werden die richtigen und wirklich wichtigen Testfälle nicht gefunden und durchgeführt.

6. Das Design muss stimmen

Schon das Design einer Anwendung muss stimmen, sonst gibt es im späteren Entwicklungsprozess Probleme mit der Architektur. Außerdem können sich mehr Defekte einschleichen. Wichtig sind möglichst einfache und klare Designprinzipien. Das führt zu einfacheren und klaren Codezeilen, verringert den Testaufwand und reduziert Defekte.

7. Tests optimieren und automatisieren

Durch die Automatisierung von Testfällen lassen sich manuelle und zeitaufwendige Tests vermeiden und die Entwicklungskosten verringern. Zugleich steigt die Genauigkeit der Tests, und Risiken werden minimiert. Durch die Automatisierung lassen sich auch Testzyklen effizienter planen und Testanforderungen priorisieren. Nicht zuletzt kann im Rahmen des Test-Managements festgelegt werden, was automatisch getestet werden kann oder muss.