5 Tipps für eine fehlerfreie Softwareentwicklung
Veröffentlicht: 2017-10-24Hat Ihre Softwareanwendung Fehler? Natürlich tut es das, da jedes verfügbare Softwareprogramm Probleme hat und die Geschichte von fehlerfreier Software ein Mythos ist. Es ist jedoch immer noch möglich, Bugs, Fehler und Sicherheitsprobleme erheblich zu minimieren, indem man ein paar buchstäbliche, aber praktische Einschränkungstechniken befolgt.
Bei der Fehlerverfolgung ist viel Disziplin erforderlich, da es erforderlich ist, jeden zu ermutigen, sich an die Regeln zu halten. Besonders in Startups und kreativ geprägten Branchen kann es ziemlich schwierig sein, jegliche informelle Kommunikation zu unterbinden. Tatsächlich nennen die Leute in vielen Fällen „Fehlerverfolgung“ nicht als ihren wichtigsten Teil eines Projekts.
Worum geht es beim Bug-Tracking wirklich?
Laut Technopedia: „ Fehlerverfolgung ist ein Prozess, der von Qualitätssicherungspersonal und Programmierern verwendet wird, um Softwareprobleme und -lösungen zu verfolgen. „
Ein Fehlerverfolgungssystem verwaltet daher alle Informationen über gemeldete Fehler und verfolgt den Status jedes Fehlers. Sie sehen auf jeden Fall den Bedarf an umfangreichen Informationen bei der Verfolgung von Problemen. Die Bereitstellung ausreichender Daten erfordert nicht nur einen enormen Zeitaufwand, sondern auch reichlich Know-how im Bereich der Softwareentwicklung.
Die Fehlerklassifizierung
Es gibt drei Arten von Softwarefehlern:
- Falsche Angaben
- Implementierungsmängel
- Fehlende Spezifikation
Jeder dieser Fehlertypen kann leicht als kritisches Problem (oder als Verbesserung neu klassifiziert) eingestuft werden. Im Folgenden werden einige der Umklassifizierungsrichtlinien erwähnt, die von Sam Hatoum, dem Gründer von Xolv.io, verwendet werden.
- Verursacht uns die falsche Spezifikation einen Schaden? Beispielsweise gibt die Spezifikation an, wie viele Klicks nachverfolgt werden, obwohl es sich um Ausgaben nachverfolgen sollte. Reclassify Bug.
- Kann der Implementierungsfehler vernachlässigt werden? Beispielsweise werden Webfonts installiert, wenn sie in die Software eingebettet werden sollen.
- Bedeutet die fehlende Spezifikation neue Funktionen? Beispielsweise können Benutzer ihre Profildetails nicht in sozialen Netzwerken teilen und bearbeiten.
Der Einsatz für die Produktmanager wird erhöht, um Bugs effizient zu klassifizieren, da das Entwicklungsteam angewiesen wird, Bugs gegenüber allen anderen Arbeiten zu priorisieren. Die Entwickler werden nicht arbeiten oder irgendetwas anderes, bis alle Fehler entfernt sind.
Qualitätsstandards für Teams bilden
Wenn ein Design- und Entwicklungsteam entscheidet, ob ein App-Virus als Verbesserung eingestuft werden kann oder nicht, legt dieser Entscheidungsprozess implizit die Qualitätsstandards des Teams fest. Beispielsweise kann ein Markeninhaber, der Wert auf hochwertige visuelle Elemente legt, eine geringe Toleranz gegenüber Designabweichungen haben. Sie würden diese Probleme stattdessen als Fehler neu klassifizieren.
Ein konsistentes Neuklassifizierungssystem ermöglicht es Ihnen, Erwartung und Realität kontinuierlich anzupassen und gleichzeitig einen strukturierten Bereitstellungsansatz beizubehalten, der die Qualitätsstandards Ihres Teams an erste Stelle setzt.
Die Fehlerfehler
Jüngste Studien behaupten, dass fast 40 Prozent der Systemausfälle durch Softwarefehler verursacht werden, während andere Sicherheitsprobleme und Programmschwachstellen 60 Prozent ausmachen, die durch Probleme mit gemeinsamem Speicher und Parallelität verursacht werden. Das Reduzieren von Softwarefehlern in Ihrer Anwendung ist der beste Weg, um die Sicherheit, Stabilität und Zuverlässigkeit Ihrer Software zu erhöhen.
Tipps zur Gewährleistung einer fehlerfreien Softwareentwicklung
Bei der Entwicklung des Logging-Tools SmartInspect haben die Entwickler viele Methoden angewandt, um die Qualität ihres Systems hoch zu halten. Die oben erwähnte Liste enthält einige der Techniken, die sie verwendeten.
1. Raum für Kommunikation schaffen
Das Erkennen und Melden von Fehlern erfordert die Fähigkeit, relevante Informationen zu identifizieren, die dann jedem Problembericht hinzugefügt werden. Es gibt viele Tools zur Fehlerverfolgung und Qualitätssicherung wie Usersnap, die die Möglichkeit bieten, die erforderlichen Informationen automatisch anzuhängen. Nichtsdestotrotz wird es immer Platz für fehlende oder missverstandene Informationen geben, was zu einem Bedarf an angemessener Kommunikation führt.
In bestimmten Testszenarien ist für diese Art der Offenlegung zwischen Entwicklern und Testern kein Platz. Fragen wie: „Wie kann ich mit den zuständigen Experten in Kontakt treten?“ oder 'Ist es in Ordnung, per Telefon oder E-Mail um Feedback zu bitten?' müssen zu Beginn des Bug-Tracking-Prozesses beantwortet werden.
Um Missverständnisse seitens der Tester und Entwickler zu vermeiden, versuchen Sie, alle auf dieselbe Seite zu bringen und eine Feedback-orientierte Kultur zu schaffen, in der die Arbeit beider Parteien gleichermaßen respektiert wird.
2. Halten Sie es eins zu eins
Vermeiden Sie es, Fehler in einem Projektmeeting zu besprechen. Versteh mich jetzt nicht falsch. Es ist nichts Schlechtes daran, als Team zu arbeiten, Fehler zu reproduzieren und zu beheben. Aber besprechen Sie Probleme nicht in langen Sitzungen mit dem gesamten Kabinett. Laut Thomas Peham, einem Tech-Blogger bei Usersnap.com, ist das Melden von Fehlern und das anschließende Diskutieren in der nächsten „Retest“-Phase der Entwicklung ein ziemlich langsamer Ansatz.
Es ist in der Tat viel effizienter, es eins zu eins zu halten. Wie Yegor in seinem Artikel über die 5 Prinzipien der Fehlerverfolgung schrieb, ist jeder Fehlerbericht zwischen zwei Personen verknüpft – dem Spezifizierer und dem Problemlöser. Unabhängig davon, wie viele Personen an dem Prozess beteiligt sind, gibt es nur zwei Hauptverantwortlichkeiten (mit zwei unterschiedlichen Rollen) für die Lösung eines gemeldeten Problems.
3. Stellen Sie sicher, dass sich Ihr Team dafür einsetzt
Wenn Ihr gesamtes Team sie nicht verwendet, wäre eine gute Bug-Tracking-Datenbank wirkungslos. Beginnen Sie am besten damit, alle Ihre Stakeholder (Kundenservice, Qualitätssicherung, Projektmanager und Entwickler) dazu zu bringen, Tools zu bewerten und zu versuchen, gemeinsam eine Entscheidung zu treffen. Protokollieren und Beheben von Fehlern auf konsistente Weise unter Verwendung desselben Systems.
Wenn Sie Schwierigkeiten haben, Leute an Bord zu holen, können Sie Folgendes tun:
Legen Sie für Entwickler das Gesetz fest, Fehlerberichte über individuelle Datenbanken und nicht über andere Methoden zu akzeptieren. Wenn Tester Ihnen E-Mails mit Feedback senden, bitten Sie sie einfach, die Berichte stattdessen in das Informationssystem zu werfen. Dies sorgt nicht nur für Ordnung, sondern hilft auch beim Reporting, indem alle erforderlichen Informationen bereitgestellt und die erforderlichen Felder definiert werden.
Eine andere Möglichkeit, einen effizienteren Prozess zu schaffen, besteht darin, Fehler von Kunden durch QA oder Support überprüfen zu lassen und die genauen Schritte in die Datenbank aufzunehmen, bevor die Entwickler überhaupt benachrichtigt werden. Die effektive Verfolgung Ihrer Softwareprobleme ist einer der wichtigsten Aspekte eines zuverlässigen und konsistenten Projektmanagement-Frameworks.
- Ein guter Debugger
Wenn Sie Systeme wie Visual Studio oder Delphi verwenden, haben Sie bereits Zugriff auf einen äußerst leistungsfähigen Debugger, den Sie verwenden sollten. Im Falle einer Scripting-Umgebung, in der Entwickler häufig versuchen, Fehler durch Trial-and-Error zu beseitigen, wird der Prozess nicht nur zu einer umständlichen Art, Probleme zu identifizieren und zu lösen, sondern ist auch sehr gefährlich, wenn Sie Ihren Code nicht vollständig verstehen und nicht können Schritt durch es mit einem Debugger. Tun Sie sich selbst einen Gefallen, indem Sie Ihrem Team eine gute Debugging-Plattform besorgen – es gibt Debugger für fast alles.
4. Wissen, was ein „geschlossener“ Fehler bedeutet
Warst du jemals an einer Diskussion über das Schließen eines Fehlers beteiligt? Nun, herzlichen Glückwunsch, Sie befanden sich in der schlimmstmöglichen Bug-Tracking-Situation, die jemals stattfinden konnte.
Wenn Sie sich in einer Diskussion über den „Bug-Status“ wiederfinden, ziehen Sie in Betracht, einen Schritt zurückzutreten und sich die folgenden Fragen zu stellen:
- Wessen Verantwortung ist es, Ergebnisse zu akzeptieren?
- Was sind die Aufnahmekriterien?
- Wer ist für die Auftragserteilung zuständig?
Werfen Sie einen Blick auf die Bedeutung von „geschlossen“. In den meisten Entwicklungsteams wird ein Fehler von der Person geschlossen, die den Fehler behoben hat. Peham empfiehlt, den Fehlerbericht von der Person zu schließen, die das Problem gemeldet hat. Sobald der Entwickler die Lösung für einen bestimmten Fehler vorgeschlagen hat, sollte der Melder gebeten werden, den Bericht zu schließen. Dies würde sicherstellen, dass das Feedback eine ausreichende Lösung für die Software-Durcheinander ist.
5. Virtuelle Maschinen
Um Ihre Software auf möglichst vielen verschiedenen Betriebssystemen und Umgebungen auf Fehler zu testen, sollten Sie virtuelle Maschinen mit Tools wie Virtual PC oder anderer verfügbarer Virtualisierungssoftware verwenden. Sie können durch diese Methode viel Zeit sparen, da Sie die virtuellen Maschinen einfach kopieren, freigeben und zurücksetzen können, sodass Sie Ihre Software mit allen Arten von Konfigurationen testen können.
Es ist immer besser, verschiedene Standard-Images für alle Betriebssysteme, die Sie regelmäßig testen, zu erstellen und auf einem Dateiserver abzulegen. Wenn Sie eine sehr spezifische Konfiguration benötigen, um etwas zu testen, können Sie mit einem der Basisimages beginnen, ohne das Betriebssystem, die erforderliche Software und Treiber usw. zu installieren.
Es ist kein neues Konzept
Als Hatoum dieses Konzept entwickelte, stellte er fest, dass die Idee der Zero-Bug-Software nicht neu ist. Es gibt sie tatsächlich seit den 1960er Jahren, wie viele der vergessenen Philosophien der alten Schule.
Der legendäre Qualitätsexperte Phillip Crosby erfand den Begriff „Zero-Defect“ während seiner Arbeit bei der Martin Company oder wie derzeit bekannt als „Lockheed Martin“, wo berichtet wurde, dass sie „eine 54-prozentige Fehlerreduzierung bei Hardwaredefekten unter staatlicher Prüfung“ erreichten.
Ursprünglich wurde die Null-Fehler-Technik in den 60er Jahren in der Luft- und Raumfahrtindustrie eingesetzt und dann in den 1990er Jahren im Automobilbau angewendet. Es gibt viele Gemeinsamkeiten zwischen der Fertigungsindustrie und der Softwarebereitstellung.
Die beliebte Methode des agilen Managements Kanban stammt beispielsweise aus dem Toyota-Produktionssystem. Was uns das im Grunde sagt, ist, dass wir diese Herstellungsprozesse leicht nach technischer Inspiration in der Software- oder App-Entwicklung durchsuchen können, und Zero-Bug ist eine dieser Inspirationen.
Die extremen Kosten für die Erfüllung des Standards sind jedoch einer der Hauptkritikpunkte am Null-Fehler-Ansatz. Und bei falscher Implementierung kann das tatsächlich stimmen. Im Zero-Bug-Ansatz hat Hatoum dieses Problem durch die Neuklassifizierung von Fehlern in Funktionen und signifikante Verbesserungen direkt angegangen, wodurch die Kosten durch die Qualitätsstandards des Teams kontrolliert werden können.
Heute anfangen
Als Tech-Anwender und Entwickler können Sie beginnen, alle vorhandenen Störungen durchzugehen und sie zu klassifizieren, indem Sie das oben genannte System verwenden. Wenn Sie denken, dass Sie Hunderttausende von Problemen haben, ist dies möglicherweise ein guter Zeitpunkt, um sie zurückzuloggen und neu zu beginnen. Keine Sorge, Sie können Bugs jederzeit nach Bedarf aus den Archiven in die aktuelle Domain verschieben.
Das Entwicklungsteam muss nicht unbedingt warten, bis die gesamte Klassifizierungsübung abgeschlossen ist, bevor es mit dem Ausmerzen von Fehlern beginnt; sie können loslegen, sobald ein paar Bugs klassifiziert sind. Das Team darf nicht mit der Arbeit an anderen Elementen im Backlog beginnen, bis alle Elemente „von Fehlern befreit“ oder neu klassifiziert sind. Genau diese Regel zwingt Produktmanager dazu, neue Aufgaben richtig zu priorisieren.
Zusammenfassend
Jeder gemeldete Fehler in einem Projekt erfordert zusätzliche Zeit, um behoben zu werden. Die Fehlerverfolgung erfordert daher große Kommunikationsfähigkeiten von Personen, die die Fehler verfolgen, sowie Sensibilität von denen, die sie beheben. Mit den oben genannten Tracking-Hacks kann Ihr Team versuchen, produktiver zu sein und gleichzeitig jede Art von technischen oder Sicherheitshürden zu melden.