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
- Wie hoch sind Ihre prozentualen Schätzungen zu diesem Problem?
- 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.
Antworten:
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.
quelle
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.
quelle
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.
quelle
In den letzten 9 Jahren habe ich grundsätzlich nur Akzeptanz- / Regressionstests bestanden. Es gab nur wenige Unit-Tests.
quelle
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.
quelle
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 ...
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
Kurze Antwort: Ja
Lange Antwort:
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.
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.
quelle