Werden Softwaretests tatsächlich für professionelle Projekte durchgeführt?

25

Ich war an vielen Projekten in mehreren Unternehmen beteiligt, weil ich lange Zeit Entwickler und Auftragnehmer war.

Ich schätze, dass weniger als 20% der Projekte methodisch getestet werden. Mit methodisch getestet meine ich jede Prüfung, die über die Ad-hoc-Prüfung hinausgeht.

Ich schätze auch, dass weniger als 10% der Projekte gründlich methodisch getestet werden, wenn sie engagierte Tester als Teil des Teams haben, Testplandokumente, in denen Entwickler automatisierte Tests schreiben und dann auch die Testabdeckung verfolgen und die Ergebnisse messen.

Zwei Fragen

  1. Wie hoch sind Ihre prozentualen Schätzungen zu diesem Problem?
  2. Welche beruflichen Erfahrungen haben Sie beim Testen von Software gesammelt?

Zusätzliche Anmerkung

Da methodische Testfragen sehr voreingenommene Antworten erhalten können (die Leute mögen es zu prahlen, anderen überlegen zu sein), ermutige ich andere Entwickler (diejenigen, die keinen methodischen Tests ausgesetzt sind), ihre Antwort ebenfalls zu geben, da es ansonsten so aussieht, als ob Tests es sind überall erledigt werden ... außer in Ihrer Firma.

Robert Koritnik
quelle
Gute Frage, vielen Dank, dass Sie sich die Zeit für die Neuformulierung genommen haben!
@ Mark Trapp: Danke. Ich denke, es ist ziemlich einfach, aber ich kann noch ein paar Fragen stellen (basierend auf den vorherigen Fragen)
Robert Koritnik

Antworten:

8

Das Muster, das ich im Laufe meiner Karriere beim Testen gesehen habe, zeigt eine starke Übereinstimmung mit dem Risiko eines Scheiterns in einem Projekt. Große Projekte werden mit größerer Wahrscheinlichkeit getestet als kleine, geschäftskritische Anwendungen werden mit größerer Wahrscheinlichkeit getestet als einzelne Marketingwebsites und interne Systeme werden mit geringerer Wahrscheinlichkeit getestet als öffentlich zugängliche.

Das heißt, es gibt immer noch Projekte, die übermäßig getestet wurden und solche, die nicht genug getestet wurden, aber dies sind die Minderheiten.

Martin Brown
quelle
Ich habe meine Frage leicht bearbeitet. Können Sie uns auch Ihre Schätzungen mitteilen?
Robert Koritnik
Fast alle Projekte (über 80%), an denen ich beteiligt war, wurden methodisch getestet, aber dann habe ich fast ausschließlich unternehmenskritische Anwendungen durchgeführt.
Martin Brown
Ich arbeite für ein Pharmaunternehmen. Ich würde sagen, dass 80% der Anwendungen von professionellen Testern und Entwicklern getestet werden. Bei diesen 20% handelt es sich um risikoarme Anwendungen wie Werbepräsentationen auf dem iPad. aber selbst dieser wird von jemandem ad-hoc überprüft.
Yoosiba
5

Alles was wir produzieren wird komplett getestet. Wenn unser internes QA-Team überlastet ist, haben wir ein Offshore-Team, das die Projekte testet. Sie sind nicht so gut wie unser internes Team, aber das ist ein anderes Thema.

Ali
quelle
Ich habe meine Frage leicht bearbeitet. Können Sie uns Ihre Einschätzungen zum professionellen Entwicklungsmarkt geben? Weil Ihre Projekte hinterfragt werden. Und sind Ihre Tests automatisiert oder nicht?
Robert Koritnik
Wer ist dieses Offshore-Team? Würden Sie ihnen eine Empfehlung geben?
Martin Brown
Normalerweise haben große Unternehmen F & E-Zentren in anderen Ländern (hauptsächlich in Asien). Wo die Offshore-Entwicklung durchgeführt wird. Ziel der Offshore-Entwicklung ist es, die Entwicklungskosten (teilweise) zu senken.
Nipuna
2

Die drei Unternehmen, für die ich in den letzten 15 Jahren gearbeitet habe, hatten alle Komponententests, die automatisch durchgeführt wurden.

Bei zwei dieser Unternehmen habe ich mich dafür eingesetzt, sie vorzustellen.

sbi
quelle
Ich habe meine Frage leicht bearbeitet. Können Sie uns auch Ihre Einschätzungen zu Softwaretests auf dem professionellen Markt geben?
Robert Koritnik
@Robert: Ich habe nicht genug Jobs gesammelt, um eine allgemeine Schätzung abzugeben. Nach dem Wenigen, das ich weiß, werden die Dinge besser. Aber dann war ich es, der in zwei der drei Fälle, von denen ich Ihnen erzählte, auf automatische
Komponententests drängte
Aber Sie sprechen mit anderen Entwicklern in anderen Unternehmen, nicht wahr?
Robert Koritnik,
2

In den letzten 9 Jahren habe ich grundsätzlich nur Akzeptanz- / Regressionstests bestanden. Es gab nur wenige Unit-Tests.

LennyProgrammierer
quelle
Ich habe meine Frage leicht bearbeitet. Können Sie Ihre Schätzungen zu Softwaretests auch auf dem professionellen Markt abgeben?
Robert Koritnik
2

Ja.

Der Umfang der Tests ist proportional zur Zuverlässigkeit, die für die App erforderlich ist, sowie zur Reife der Programmiererkultur.

Auf Websites laufen häufig Fehlerlöcher (defekte Links sind ein Defekt).

Videospiele sind oft fehlerhaft.

Windows ist (endlich) ziemlich zuverlässig.

Router sind sehr zuverlässig

Krankenhausmonitore "brechen nicht"

Beachten Sie, dass die fiskalischen Ausfallkosten auch mit der Zuverlässigkeit korrelieren.

Paul Nathan
quelle
2
Ich stimme Ihnen überhaupt nicht zu - Sie haben noch nie gesehen, dass ein Router ausfällt? Sind Xbox-, Playstation- und Wii-Spiele gesperrt? Hatten Sie jemals einen Bluescreen oder "Anwendung reagiert nicht" in Windows?
JBRWilkinson
@JBRWilkinson Ich denke, Sie vermissen seine Modifikatoren für den Schweregrad sowie möglicherweise die große Mehrheit der PC-Spiele, die, wie Paul sagt, oft fehlerhaft sind. Auf jeden Fall könnte die Liste möglicherweise verbessert werden, aber die Stimmung ist korrekt: Zuverlässigkeit korreliert häufig mit den fiskalischen Verlusten, die mit dem Scheitern einhergehen.
Jay Carr
1

In 10 Jahren habe ich nie an einem Projekt mit formalen Code-Tests gearbeitet.

In meinem jetzigen Job haben wir nur Funktionstests.

Das Problem ist, dass niemand im Management überhaupt etwas über Codetests weiß. Die Testabteilung kennt sich nicht einmal mit Code-Tests aus. Sie befolgt lediglich die Spezifikationen auf hoher Ebene und überprüft, ob wir diese vom Verhaltens- / Funktionsstandpunkt aus einhalten.

Wir haben keinen qualifizierten Software-Führer, der uns zwingt, gut zu programmieren. Das Ergebnis ist Spaghetti-Code, viele Regressionen, verpasste Termine und so weiter ...

Wizard79
quelle
Danke für deine ehrliche Antwort. Was sind Ihre Schätzungen (überprüfen Sie meine bearbeitete Frage)?
Robert Koritnik
Meine Schätzung für Italien liegt unter 10% der formalen Code-Tests. Möglicherweise fast nur geschäftskritischer Code.
Wizard79
Ich habe in Irland, England, Schottland und Slowenien gearbeitet und wie es scheint, sieht Italien nicht anders aus.
Robert Koritnik
1

Wir sind ein mittelständisches Offshore-Unternehmen in Südasien. Wir führen jedoch immer Projekte in den USA durch und arbeiten direkt mit Anforderungen, die von einem US-amerikanischen Unternehmen gesendet wurden.

Bei jeder von uns erstellten Anwendung wenden wir methodische Tests an. Vielleicht entspricht die Qualität der Tests nicht dem Standard, aber wir setzen sie ein.

Shamim Hafiz
quelle
Wären diese Tests automatisiert oder hauptsächlich manuell? Ich habe meine Frage leicht bearbeitet. Können Sie Ihre Schätzungen zu Softwaretests auch auf dem professionellen Markt abgeben?
Robert Koritnik
Die meisten Tests werden manuell durchgeführt.
Shamim Hafiz
1

So sehr der Purist in mir nicht akzeptieren will, dass in die Entscheidung, wie streng Sie testen oder ob Sie formalisierte Tests durchführen, ein gewisses Risikomanagement eingebaut sein muss. Bei internen Apps, von denen ich vermute, dass sie einen Großteil der Programmierprojekte ausmachen, können die Kosten für die Freigabe eines Fehlers und die schnelle Korrektur, nachdem er bemerkt wurde, manchmal durch die Kosten eines vollständigen Testteams aufgewogen werden. Das hängt natürlich von der App und den möglichen Ausfallkosten ab.

Trotzdem glaube ich nicht, dass die Risikomanagementplanung der Grund für den Mangel an formalisierten Tests ist. Ich denke, es ist eher ein Ergebnis von nicht-technischen Managern, die den Wert, den es bietet, nicht verstehen und nur die Kosten sehen.

JohnFx
quelle
2
Ich höre, was Sie sagen, aber es ist schwer zu rechtfertigen. Studien haben gezeigt, dass ein Fehler umso teurer ist, je länger er unbemerkt bleibt . Die Kosten für Fehler, die es zum Kunden schaffen, sind enorm, und das Patchen führt häufig zu neuen Fehlern, wenn kein Unit-Testing-Framework vorhanden ist (ein wahrscheinliches Szenario, wenn diese Art von "Patch and Fix" -Mentalität vorliegt). Folglich kann gezeigt werden, dass der umsichtige Einsatz von Testwerkzeugen und -methoden weitaus kostengünstiger ist als Patch und Fix.
Robert Harvey
3
Ich werde immer skeptischer gegenüber diesem Dogma, besonders wie es allgemein angewendet wird. Ich bin mir sicher, dass dies manchmal zutrifft, aber nicht alle Bugs und Apps sind gleich. Ich finde es sehr schwer zu schlucken, dass ein Fehler in einer internen App, die von 10 Personen verwendet wird, bedeutend teurer zu beheben ist, wenn er beim Komponententest im Vergleich zu einer Patch-Version gefunden wird. Es mag exponentiell peinlicher sein, aber nicht teurer, es sei denn, Sie ignorieren die tatsächlichen Kosten der Zeit, die ein Tester damit verbringt, den Fehler zu finden.
JohnFx
2
Ich frage mich auch, ob diese Statistiken für die umfangreichen Projekte (z. B. Betriebssysteme), aus denen sie erstellt wurden, nicht zutreffender waren und sich nicht für die CRUD-Apps eignen, die die meisten von uns für ihren Lebensunterhalt erstellen.
JohnFx
Ich stimme euch beiden zu und habe beide Fälle gesehen. Aber ich habe den Anschein, als würde ich meinen Anteil an den exponentiellen Kosten haben, die Robert beschreibt, insbesondere wenn ein Fehler in der Software so lange vorhanden war, dass andere Funktionen anfingen zu brechen, wenn er behoben würde. 1 + 1 ist nicht 2. Es ist 7. Und wenn es nicht 7 ist, fällt alles auseinander.
1

Meine Stichprobe ist sehr klein, um Prozentsätze abzuleiten, aber hier geht es trotzdem.

Eine war eine Firma ohne Fabless-Chip und Firmware, die fanatische Tests durchführte. Automatisierte Tests rund um die Uhr an Dutzenden von Installationen, wobei jede Dutzende von Einheiten parallel testet. Software-Teams, die sich mit der Entwicklung von Testsoftware befassen. Hardware-Teams für den Bau von Prüfständen. Kompatibilitätstests gegen Dutzende von Wettbewerbern. Heck, sie kauften sogar eine Multi-Millionen-Dollar-Chip-Tester-Installation, um einige der Tests zu entwickeln und zu debuggen, die die Fabriken ausführen, wenn die Chips die Gießerei verlassen.

Ein anderer war eine Bank. Dies ist eine völlig andere Umgebung: Keine Produktversionen, sondern jede Menge firmeninterne Software, die kontinuierlich läuft. Diese Jungs haben das Cr * P aus jeder einzelnen Änderung getestet, die sie vorgenommen haben. Sie hatten eine sehr strikte Trennung von DEV / QA / PROD-Umgebungen, automatisierten Regressionstests, obligatorischen QA-Tests, die von den Endbenutzern vor der Freigabe in die Produktion unterzeichnet wurden usw.

Also ja, Leute machen methodische Tests. Aber wie Sie sehen, habe ich noch nie an einem Ort gearbeitet, der Ihre typische GUI-Software für den typischen Computerbenutzer enthält.

Roman Starkov
quelle
1

Derzeit schreibe ich Embedded-Firmware für ein kleines Startup-Unternehmen, das drahtlose medizinische Geräte herstellt. Wir müssen strenge Tests durchführen und haben eine völlig separate Qualitätsabteilung, die von jemandem geleitet wird, der direkt an den CEO berichtet. Ich habe meinen Code noch nie zuvor so gründlich von verschiedenen Testern testen lassen (das einzige Mal, dass dies verglichen wird, war die Arbeit an Satellitenfernsehsystemen vor ungefähr 15 Jahren).

Unsere Testergebnisse werden an die FDA weitergeleitet (bisher haben wir zwei FDA-Zulassungen erhalten - jede Einreichung war etwa 500 Seiten lang). Sowohl unsere Entwicklungs- als auch unsere Testmethoden werden regelmäßig überprüft.

Es sind also nicht nur die großen Unternehmen, die viele formelle Tests durchführen.

Hinweis: In meinen mehr als 25 Jahren als Programmierer / Berater für Verträge habe ich auch für viele Unternehmen gearbeitet, die praktisch keine formalen Tests durchgeführt haben. Die meisten von ihnen sind nicht mehr da.

Tcrosley
quelle
Ich bin auch bei einem Medizinproduktehersteller und die Einführung in GMP (Good Manufacturing Practices, FDA-Sprache für einen kontrollierten Design- / Testprozess) war für mich sehr aufschlussreich. Es hat mich zu einem besseren Ingenieur gemacht (und leider zu einem Docbook-Experten)
Bill Gribble
0

Fast jede Firma, die ich besucht habe, hat methodische Tests durchgeführt. In meiner derzeitigen Firma gibt es einige grundlegende Tests zum Gerätestil, die jedoch nicht ausreichen. Aufgrund dessen hatten wir einige Qualitätsprobleme. Ich empfehle dringend, unabhängige gründliche Tests an jedem Projekt durchzuführen, das von niemand anderem als Ihnen selbst verwendet wird. Das ausgegebene Geld wird es wert sein. Anwendungen, die nicht funktionieren, werden nicht verwendet. Das gilt sowohl für die Innen- als auch für die Außenansicht.

Bill Leeper
quelle
Ich habe meine Frage leicht bearbeitet. Können Sie Ihre Schätzungen zu Softwaretests auch auf dem professionellen Markt abgeben?
Robert Koritnik
@Robert: Ich verstehe deine Frage "Schätzungen von Softwaretests" nicht. Fragen Sie mich, wie viele Unternehmen testen? Meine Schätzung wäre vielleicht 90% oder mehr, basierend auf dem, was ich mit meinen eigenen Augen gesehen habe. Testen ist ein häufiger Bestandteil der beruflichen Entwicklung.
Bryan Oakley
0

In den letzten zwanzig Jahren meiner Karriere in acht oder mehr Unternehmen habe ich noch nie an einem Projekt gearbeitet, bei dem keine Tests durchgeführt wurden. Die Anzahl der Tests war in jedem Unternehmen unterschiedlich, aber bei jedem beruflichen Entwicklungsprojekt, an dem ich jemals gearbeitet habe, wurden formale Tests durchgeführt. Dies gilt gleichermaßen für kleine und mittlere Unternehmen (wobei "klein" weniger als 10 Mitarbeiter und "mittel" weniger als ein paar tausend Mitarbeiter bedeutet).

Einige Unternehmen hatten nicht viel automatisiertes Testen, andere hatten nicht viel manuelles Testen, aber sie hatten mindestens das eine oder andere.

Bryan Oakley
quelle
0

Es kommt auf die Bedürfnisse des Kunden an. In einer Vertragssituation gibt es wahrscheinlich Abnahmetests. Inhouse ist in der Regel ein Slapjob mit wenig Test. Konsumgüter sind in der Regel stark funktionalisiert, jedoch rau an den Rändern.

anon
quelle
0

Kurze Antwort: Ja

Lange Antwort:

  1. Ich habe keine gute Schätzung für die erste Kategorie (es ist wahrscheinlich ein gewisser Abstand von Null, aber wie viel?), Aber meine Erfahrung bestätigt tatsächlich Ihre zweite Schätzung. Es ist schwierig, aussagekräftige Prozentsätze anzugeben, da die Menge und Art der Tests von der Art der zu entwickelnden Anwendung, dem verfügbaren Zeitrahmen und den Fähigkeiten der Entwickler und der Ausführung des Projekts abhängt. In der Praxis wäre der Abnahmetest die wichtigste Hürde für die Entwickler, da dies ein wichtiger Meilenstein für die Abrechnung ist. Aber es ist auch die Zeit, in der das Unerwartete eintreten kann (mehr Anforderungen) und die Entwickler unter Druck gesetzt werden, alle möglichen und zeitnahen Ad-hoc-Tests (zu diesem Zeitpunkt) durchzuführen, zusätzlich zu der Zeit, die für die Fehlerbehebung und Überwindung benötigt wird das Unerwartete.

  2. Ich habe eine Vielzahl von Projekten mit verschiedenen Kombinationen der oben genannten Faktoren durchlaufen:

    • Keine formalen Unit-Tests, nur Integrationstests und meistens Ad-hoc-Tests

    • Sehr formal, angefangen von Unit-Tests bis hin zu detaillierten Testplänen mit dedizierten QA-Ressourcen, automatisierten Tests (wie von den Testern mit ihren eigenen Tools durchgeführt) und Berichten zur Codeabdeckung. Diese sind jedoch für die Entwickler nicht immer so wichtig wie für die Manager

Auf individueller Ebene versuche ich, meine Optionen zu verstehen, wenn es darum geht, geeignete Tests für die Technologie zu schreiben, mit der ich mich befasse, und sie nach eigenem Ermessen auszuführen. Im Grunde genommen die Dinge, die für meine Arbeit tatsächlich von Bedeutung und von Nutzen sind und nicht so sehr Zahlen auslösen.

prusswan
quelle