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.)
Antworten:
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.
quelle
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.
quelle
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 .
quelle
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;)
quelle
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.
quelle
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!)
quelle
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.
quelle