Wie werden Softwaretests bei Tech-Startups durchgeführt?

10

Ich habe viele Forschungsartikel und Tech-Blogs gesehen, die die Vorteile von Softwaretests bieten. Davon habe ich überzeugt. Da die gesamte Forschung zu Softwaretests von großen Softwareunternehmen durchgeführt wird, glaube ich nicht, dass sie wirklich für Startups gelten. Da Startups im Vergleich zu großen Softwareunternehmen andere Bedürfnisse und Einschränkungen haben.

Das warf also die Fragen auf. Sollten Tech-Startups automatisierte Tests schreiben? Wenn ja, werden sie auf die gleiche Weise wie die großen Softwareunternehmen durchgeführt? (Rauchtest, Regressionstest usw.) Es ist am besten, wenn Sie einige Forschungsartikel zu diesem Thema lesen können. Da ich selbst keine finden konnte.

(Ich muss zugeben, dass ich zwar noch am Anfang meiner Karriere stehe, aber noch kein Startup sehe, das sich ernsthaft dem Schreiben automatisierter Tests verschrieben hat.)

ming_codes
quelle
5
Ich bin einem 10-jährigen kleinen Start-up beigetreten und habe als erster Tests hinzugefügt, die nachts ausgeführt werden. Nicht weil ich ein Genie war, aber dies war das erste Mal, dass der Manager (auch der Programmierer) erkannte, dass es an der Zeit ist, sie hinzuzufügen, und dass sie endlich die Arbeitskräfte hatten. Strat-ups müssen oft zuerst überleben und später perfekt. Zugegeben, dieses Start-up wurde von Nicht-Technikern gestartet, daher musste diese Funktion "eingebunden" werden.
Job
5
10 Jahre altes Startup ...?
Pap
Dilbert sagte : "Wenn Best Practice von allen in der Branche übernommen wird, wird Best Practice zu Mittelmäßigkeit." Ich denke, das ist irgendwie wahr, heh.
Ming_Codes
10 Jahre altes Start-up ... sie müssen Java verwenden: 3 Jahre Design + 7 Entwicklung :) nur ein Scherz (ich bin übrigens ein Java-Entwickler)
Nuvio

Antworten:

11

Es gibt immer einen Konflikt zwischen dem, was getan werden sollte und dem, wofür wir realistisch Zeit haben. Ja, viele Startups verzichten auf testgetriebene Entwicklung und automatisierte Tests, um sich Zeit zu nehmen und ein Projekt zum Laufen zu bringen.

Die Social-Networking-Sites und Unternehmen für mobile Apps sind jetzt die großen Blasen und sie sind hart umkämpft. Manchmal bedeutet der Unterschied zwischen der Inbetriebnahme in 4 Monaten und 5 Monaten, dass Sie verlieren.

Time-to-Market ist der Schlüssel, und wenn der Erfolg eintritt, ist es Zeit für die Skalierung. Dann bleibt genügend Zeit, um Ihre ungetestete Software in etwas Wertvolles umzugestalten.

maple_shaft
quelle
Time-to-Market ist allerdings ein Mythos. Verspätete Marktteilnehmer können die vorhandenen Spieler umhauen: friendster> myspace> facebook.
Joeri Sebrechts
@JoeriSebrechts Ich habe einen interessanten Artikel über den Fortschritt von Software und deren Beziehung zum Erfolg von Späteinsteigern gelesen. Es spielen Variablen eine Rolle. Die sichere Zeitspanne für einen Späteinsteiger mit einer ähnlichen Lösung entspricht der Zeit, die die Benutzerbasis einer Software benötigt, um von Early Adopters zu General Users zu wechseln. Eine ähnliche Lösung bedeutet natürlich Funktionen, die im Vergleich zum ersten Marktteilnehmer ähnlich und nicht bahnbrechend sind (z. B. war Facebook im Vergleich zu MySpace wegweisend). Sobald eine kritische Masse an Early Adopters erreicht ist, beginnen allgemeine Benutzer mit der Migration.
maple_shaft
12

Softwaretests sind keine Religion. Es ist nur eine sehr gute Idee.

Sie sagen, Sie haben momentan nicht die Arbeitskräfte, um Tests zu schreiben? OK, gut. Haben Sie in 6 Wochen die nötigen Arbeitskräfte, um den Fehler zu finden, der Ihre Anwendung zum Absturz bringt. Dieser wäre sofort gefunden worden, wenn Sie die richtigen Tests durchgeführt hätten?

Zu viele Tests können die Entwicklung verlangsamen. Zu wenig Tests können es auch verlangsamen. Man muss das richtige Gleichgewicht finden, und es ist normalerweise schwer zu sagen, wo das ist. Und nichts davon ist spezifisch für große oder kleine Unternehmen.

Mike Baranczak
quelle
4

Während meiner Arbeit in kleinen Unternehmen und Start-ups hatte ich viele Jahre lang das Missverständnis, dass ich "nicht genug Zeit hatte, Unit-Tests für meinen Code zu schreiben" .

Wenn ich Tests schrieb, waren sie aufgeblähte, schwere Dinge, die mich nur dazu ermutigten zu denken, dass ich Unit-Tests nur dann schreiben sollte, wenn ich wusste, dass sie gebraucht wurden.

Kürzlich wurde ich ermutigt, Test Driven Development zu verwenden, und ich fand, dass dies eine vollständige Offenbarung ist .

Ich bin jetzt fest davon überzeugt, dass ich "nicht die Zeit habe, keine Unit-Tests zu schreiben" .

Nach meiner Erfahrung erhalten Sie durch die Entwicklung mit Blick auf Tests sauberere Schnittstellen, fokussiertere Klassen und Module und im Allgemeinen SOLIDEN , testbaren Code.

Jedes Mal, wenn ich mit Legacy-Code arbeite, der keine Komponententests enthält und etwas manuell testen muss, denke ich immer wieder: "Dies wäre viel schneller, wenn dieser Code bereits Komponententests hätte . " Jedes Mal, wenn ich versuchen muss, Code mit hoher Kopplung um Unit-Test-Funktionen zu erweitern, denke ich immer wieder: "Dies wäre viel einfacher, wenn es entkoppelt geschrieben worden wäre . "

Wenn es eine Sache gibt, die ich im Laufe der Jahre entdeckt habe, wenn Sie bei einem Start-up arbeiten, müssen Sie agil sein , und zwar nicht nur im Sinne der Softwareentwicklungsmethodik . Für mich ist TDD ein wichtiges Werkzeug, das es ermöglicht, agil zu starten und zu bleiben .

Mark Booth
quelle
1

Es geht nicht darum, wer Softwaretests durchführen soll, Softwaretests sind eine Art Softwareentwicklungsphilosophie. Software-Tests bilden die Grundlage für eine gute Softwarequalität, und in einem Startup ist die Softwarequalität ein Bonus, wenn die Übernahme durch ein großes Unternehmen vor der Tür steht;)

Francisco Valdez
quelle
1

Best Practices sind branchenweit, unabhängig davon, ob Sie Oma zu einer Website machen oder das Leitsystem für einen Satelliten erstellen. Ihnen sollten immer diejenigen folgen, die sich als professionell betrachten wollen, deshalb werden sie als BEST-Praktiken bezeichnet.

Ryathal
quelle
Sie werden überrascht sein zu hören, dass Best Practices nicht allzu branchenweit sind. thedailywtf.com
Gary Willoughby
@Gary ist theoretisch eher branchenweit oder Teil dieser utopischen Welt, in der Projekte realistische Zeitpläne haben und HTML eine semantische Bedeutung hat und Manager zugeben, dass ihnen technisches Wissen fehlt, das ihnen hilft, bessere Entscheidungen zu treffen ...
Ryathal
"Best Practices" bedeutet normalerweise, Dinge wie alle anderen zu tun und ein durchschnittliches Ergebnis zu erzielen. Das durchschnittliche etablierte Unternehmen macht sich einigermaßen gut, aber das durchschnittliche Tech-Startup kommt nicht weit genug, um spektakulär zusammenzubrechen.
David Thornley
1
@DavidThornley - Nein, ich glaube , dass „Best Practice“ ist , was die meisten Menschen glauben , sie sollten tun, ob sie haben die Zeit, Energie oder Genehmigung durch das Management , es zu tun. * 8 ')
Mark Booth
@ Mark Booth: Wenn ich den Satz gehört habe, bedeutet das normalerweise, was ich gesagt habe. YMMV natürlich. Ryathal bezieht sich jedoch auf eine Welt, in der Projekte realistische Zeitpläne haben, und das ist im Geschäftsleben nicht unbedingt möglich. Ein Produkt zwei Monate zu spät herauszubringen, kann belanglos oder tödlich sein (insbesondere für ein Startup, bei dem die Gefahr besteht, dass das Geld ausgeht), und ärgerlicherweise gibt es oft ein starkes Geschäftsmodell dafür, etwas zu bekommen, das meistens so schnell wie möglich funktioniert. Es fällt mir schwer, an "Best Practices" zu glauben, die ein Unternehmen zum Scheitern verurteilen können.
David Thornley
1

Ja, Startups schneiden manchmal ab und führen keine ordnungsgemäßen Tests durch. Manchmal ist dies angemessen (für ausreichend kleine Projekte oder wenn Zeit / Geld kritisch sind)

Dies gilt jedoch nicht nur für Startups. Einer unserer Lieferanten, IT-Auftragnehmer, hat sogar eine Testumgebung. Alles wird direkt zum Leben gemacht und dies ist ein großes multinationales Softwareunternehmen (beängstigend!)

Tom Squires
quelle
1

Sollten Sie? Ja. Tun sie dies in der Praxis, nicht so oft wie sie sollten.

Der typischste Grund ist ein Mangel an Ressourcen, einschließlich Entwicklerzeit, Kosten für die Einstellung eines dedizierten oder Teilzeit-Testers, Kosten für die Einrichtung einer Testumgebung usw. Sie können diese Ausreden sogar in großen Unternehmen sowie in kleinen Start-ups finden.

Anders betrachtet ist das Testen eines der einfachsten Dinge, die aus einem Entwicklungsplan herausgeschnitten werden können, insbesondere eines mit sehr engem Zeit- und / oder Kostendruck, um sichtbare Ergebnisse zu erzielen. Zusammen mit detaillierten Designarbeiten wird es von vielen Managern als "Flaum" angesehen, und als erstes sagen sie "Schneiden Sie es, damit wir unseren Zeitplan und unser Budget zum Laufen bringen können", gefolgt von "Warum programmieren Sie nicht?".

In einigen Unternehmen wird es jemanden geben, der Push-Tests durchführt. Normalerweise wird dies der Entwickler sein, und normalerweise handelt es sich um jemanden mit Erfahrung und wahrscheinlich um jemanden, der eine finanzielle Beteiligung an dem Unternehmen hat. Ein Unternehmen, das mit dieser "DNA" beginnt, wird wahrscheinlich von Anfang an Tests durchführen.

jfrankcarr
quelle