Wie gehe ich mit der Einstellung „Automatisierung ist einfach“ um?


12

Der Titel sagt schon alles. Einige Mitarbeiter unseres Unternehmens sind der Meinung, dass automatisierte Tests "einfach" sind und es "einen Tag dauern sollte", eine Reihe von COM- und UI-Tests zu schreiben. Was kann getan werden, um dem entgegenzuwirken?

Hinweis: Ich frage nicht, wie die Automatisierung gefördert werden soll. Das ist nicht das Problem. Automatisierte Tests und Prozesse werden hier ständig gefördert und angefordert. Das Problem ist, dass einige Personen nicht verstehen, dass Automatisierung weder "einfach" noch "schnell" ist.


25
Wurde eine dieser Personen aufgefordert, ihre Behauptungen zu beweisen?
Blrfl

2
Diese Wahrnehmungen existieren in vielen Branchen und können nicht geändert werden. Während viele auf Ansätze zur Schulung von Mitarbeitern antworten, ist die einzig wahre Antwort, woanders zu arbeiten. Menschen, die einen geringen Stellenwert für eine andere Person haben, sind niemals eine gute Sache.
Reactgular

7
möglicherweise verbunden: Dunning Kruger effect
Simon Bergot

3
Sagen Sie ihm: "Alter, wenn Sie glauben, dass dies auf einmal möglich ist, nehmen Sie Platz und zeigen Sie mir, wie Sie dies umsetzen, damit ich von Ihnen lernen kann, wie man Tests so schnell schreibt, da ich nicht weiß, wie man sie durchführt Dies".
Doc Brown

Antworten:


5

Wenn Sie das nächste Mal eine Anfrage erhalten, versuchen Sie, einen Großteil des Automatisierungsprozesses in Zeitabschnitte aufzuteilen. Ich denke, wenn sie feststellen, dass es pro Textfeld oder Tastendruck 5 Minuten dauert, beginnen sie zu erkennen, wie lange es dauert.

Vielleicht dauert es so lange, bis sie eine wechselseitige Abhängigkeit zwischen den Feldern herstellen: Erlauben Sie ihnen zum Beispiel nur, fortzufahren, wenn dies ausgefüllt ist, aber nicht, wenn dies nicht der Fall ist, außer wenn ...

Versuchen Sie, sie darüber aufzuklären, warum es so lange dauert, aber nicht so sehr, dass Sie sie durch den Lernprozess verlieren.


4

In meinen Rollen bin ich auf viele "x is easy" -Menschen gestoßen, insbesondere in Entwicklungsprojekten. Meiner Meinung nach gibt es dafür drei Gründe:

1) Sie verstehen wirklich nicht, wovon sie sprechen, aber sie hören sich sehr gerne so an, wie sie es tun.

2) Sie haben ein paar Bücher gelesen und denken, sie wissen, wovon sie sprechen

3) Schließlich nehmen die Leute an, dass ein Computer die Tests schnell durchführt, weil Computer schnell sind.

Die einzige sichere Möglichkeit, dem entgegenzuwirken, besteht darin, die Benutzer regelmäßig einzubeziehen. Kommunikationsstrategien für Projekte sind der Schlüssel. Es wird sicherlich zwecklos sein, nicht technischen Benutzern die Vor- und Nachteile des automatisierten Testens zu erläutern, sie jedoch auf die damit verbundenen Prozesse aufmerksam zu machen kann von Vorteil sein. Sie können dies entweder durch Dokumentation, Workshops oder einfach durch ein freundliches Gespräch tun, wenn Sie das nächste Mal vorbeikommen.

Ich habe sogar eine BA-Single gesehen, die am lautesten von diesen "x is easy" -Personen ist und sie einfach für einen Tag in die Abteilung einlädt Komm einfach weg und denke: "Gott, ich weiß wirklich nicht, wovon ich spreche, ich glaube, ich habe mich geirrt."


2

Software ist das Geschäft, Dinge zu automatisieren.

Wir schreiben Software, um uns langweilige, sich wiederholende und arbeitsintensive Aufgaben zu erleichtern. Wir schreiben Software, um das Erstellen von Berichten, das Sammeln von Daten, die Kommunikation mit anderen usw. zu automatisieren. Das Schreiben automatisierter Tests ist eigentlich nur das Schreiben von Software, um sicherzustellen, dass unsere andere Software so funktioniert, wie wir es erwarten.

Wenn Ihre Kollegen verstehen, dass das Schreiben von Software schwierig ist und Zeit in Anspruch nimmt, sollte es ziemlich einfach sein, ihnen zu zeigen, dass das Schreiben von mehr Software schwierig sein und Zeit in Anspruch nehmen sollte. Es wäre schön, alle Vorteile der Automatisierung kostenlos zu nutzen, aber wie immer müssen wir die Arbeit in den Vordergrund stellen, um die Vorteile später nutzen zu können.

Wenn sie das nicht verstehen, müssen Sie entweder daran arbeiten, ihnen das beizubringen, oder Sie müssen daran arbeiten, Ihren Lebenslauf zu verbessern.


2
writing software is hard and takes time. Das Schreiben einer kleinen Befehlszeilen-App geht schnell. Das Schreiben der Skynet IA ist schwierig. Solche allgemeinen Aussagen zu machen, wird niemanden überzeugen.
Simon Bergot

3
@ Simon - Das ist eine faire Aussage. Nicht jede Software, die jemals geschrieben wurde, ist notwendigerweise schwer. Ich habe mehr darüber nachgedacht, dass die meisten Softwareprodukte, für die wir bezahlt werden, für nicht triviale Dinge bestimmt sind. Sogar so etwas wie eine einfache CRUD-App nimmt sich Zeit und Mühe, um sicherzustellen, dass sie eine ordnungsgemäße Validierung, Fehlerbehandlung, möglicherweise Sicherheit, Berichterstellung usw. haben. Während ich dies schreibe, stelle ich auch fest, dass ich meine Antwort so formuliert habe, dass die Mitarbeiter im OP keine Mitarbeiter sind -Tech / Management Menschen. Das ist möglicherweise nicht richtig und beeinflusst, wie "hart", "leicht" und "schnell" interpretiert werden sollten.
Becuzz

Das Programmieren von Computern ist schwierig und zeitaufwändig, das merkt man, weil es teuer ist
Chris McCall

2

Die meisten Mitarbeiter verbringen ihre Zeit entweder im "vorderen" (Kunden-Chef-Stakeholder) Teil des Unternehmens oder im "hinteren" Teil (wo die "echte" Arbeit erledigt wird). Diese beiden Funktionen sind fast gegensätzlich. (Und nur sehr wenige Leute haben in beiden gearbeitet). Infolgedessen kommt es häufig zu Missverständnissen zwischen den beiden Gruppen.

Der beste Weg, um zB "Front" -Personen zu erziehen, besteht darin, einen oder mehrere von ihnen einen Tag im "Rücken" zu verbringen. Wenn sie "Ein Tag im Leben von ..." abgeschlossen hätten, hätten sie eine realistischere Vorstellung davon, was an einem Tag getan werden kann und warum es mehr Zeit und Mühe kostet, automatisierte Tests durchzuführen. Ebenso könnten "rückständige" Leute von ein oder zwei Tagen an der "Front" profitieren.

In "Wie man reich wird" befürwortete John Paul Getty (ein Tycoon seiner Zeit) ein solches "Cross-Training". Seiner Ansicht nach würde ein Verkäufer, der Zeit am Fließband verbrachte, wo das Produkt hergestellt wurde, viel besser verkaufen, und ein Ingenieur, der einen Tag mit Kunden verbrachte, würde besser "debuggen".


2

Das Problem ist, dass einige Personen nicht verstehen, dass Automatisierung weder "einfach" noch "schnell" ist.

Ich stimme Ihrer Prämisse hier nicht zu.

Ich bin ein großer Befürworter des automatisierten Testens, egal ob Unit-Test, Integrationstest oder UI-Test. Es gibt viele großartige Tools, um automatisierte Tests durchzuführen.

Vergleichen wir das automatisierte Testen mit dem manuellen Testen anhand des folgenden Beispiels:

Testen Sie in einer Webanwendung die Funktion "Kennwort ändern" eines vorhandenen Benutzers mithilfe eines Browsers.

Manuelle Prüfung :

  • Starten Sie die Webanwendung
  • Öffnen Sie den Browser
  • Verdammt, da ist ein Fehler. Warum? Oh, ich habe vergessen die Datenbank zu starten!
  • Okay, schalte die Webanwendung aus
  • Starten Sie die Datenbank
  • Starten Sie die Webanwendung
  • Aktualisieren Sie den Browser
  • Hmm, wie war das Passwort unseres Testbenutzers nochmal?
  • Ein Blick in die Datenbank
  • Oh, die Benutzertabelle ist leer! Ich muss einen neuen Benutzer anlegen.
  • Registrieren Sie einen neuen Benutzer in der Webanwendung: Geben Sie Benutzername, Passwort und E-Mail-Adresse ein
  • Warum kann ich mich nicht mit meinem neuen Benutzer anmelden? Oh, ich muss auf den Bestätigungslink in der E-Mail klicken!
  • Nun, ich habe dem Benutzer eine E-Mail wie "test@example.com" gegeben. Gehen wir zur Datenbank und setzen die Spalte "active" auf "Yes".
  • Einloggen. Diesmal funktioniert es!
  • Hmm, was wollte ich nochmal testen ...?

Einfach? Nicht wirklich. Es gibt viele mögliche Fallstricke in diesem Prozess.

Schnell? Nein. Manuelle Arbeit braucht Zeit.

Versuchen wir nun, einen automatisierten Test zu schreiben :

  • Wir müssen Tools für unsere Programmiersprache finden, um die Datenbank und den Webserver automatisch zu starten. Recherche und Umsetzung brauchen Zeit.
  • Die Datenbank muss sich zu Beginn des Tests in einem sauberen Zustand befinden. Das Erstellen der Skripte nimmt Zeit in Anspruch.
  • Wir müssen den Test schreiben. Da wir einen Benutzer benötigen, müssen wir auch einen neuen für unseren Test registrieren. Braucht Zeit.
  • Schließlich können wir schreiben, was wir testen möchten: Ändern des Passworts des Benutzers. Mit unserem Browser-Test-Tool ist dies im Vergleich zu den vorherigen Aufgaben relativ schnell erledigt.

Einfach? Nein! Wir mussten die Tools untersuchen, implementieren und einige Fehler in unseren Tests beheben.

Schnell? Nein! Es dauert sogar länger als ein manueller Test.

Aber hier gibt es einen großen Unterschied: Für zukünftige Tests müssen Sie nur den Test selbst schreiben , den letzten Aufzählungspunkt in der Liste - was vergleichbar schnell erledigt wurde. Alle Recherchen und Init-Skripte müssen nicht für weitere Tests durchgeführt werden.

Und nachdem Sie den Test geschrieben haben, können Sie ihn einfach starten. In wenigen Sekunden (oder vielleicht Minuten, wenn das Starten der Datenbank und der Webanwendung lange dauert) sehen Sie, ob die Routine "Kennwort ändern" funktioniert oder nicht. Wenn ein Fehler vorliegt, beheben Sie ihn und führen Sie den Test erneut aus. Sie werden sofort feststellen, ob der Fehler behoben ist. Schnell und einfach .

Das Schreiben automatisierter Tests ist in erster Linie weder einfach noch schnell, aber das Ausführen von Tests ist es.

Und hier kommt die investierte Zeit zurück.


Toller Beitrag, aber das große Problem: Was passiert nach dem Einloggen? Der größte Teil dieser Logik beginnt wirklich schuppig zu werden.
Joshin4colours

0

Testen im Allgemeinen ist nicht einfach und sollte es auch nicht sein. Wenn Boeing oder Mercedes ihre Produkte nicht so rigoros testen würden wie sie, wären sie entweder aufgrund von Rechtsstreitigkeiten bankrott oder würden ihre Geschäftstätigkeit einstellen, weil sie solche Artikel von schlechter Qualität verkaufen. Würden Sie ein Auto mit 70 Meilen pro Stunde fahren und wissen, dass das Lenkrad möglicherweise in Stücke fällt oder nicht?

Es ist sehr schwierig, Wege vorzuschlagen, um mit der Denkweise umzugehen, ohne zu verstehen, wer diese Menschen sind oder welche Gründe sie haben. Die meisten Manager und Direktoren denken über Kosten nach und richten sich nach dem, was produziert wird. Die Verwendung dieser Kriterien macht es für sie sehr schwierig, den Zeitaufwand für Tests zu rechtfertigen. Wenn dies bei Ihnen der Fall ist, müssen Sie Wege finden, um diese Aufgabe langfristig als nützlich darzustellen, was natürlich auch so ist.

Nur weil Software nicht greifbar ist, heißt das nicht, dass wir davonkommen können, ohne über die Auswirkungen der Systeme nachzudenken, die wir bauen und die nicht funktionieren. Ich wette, Amazon hat automatisierte Tests und ich wette, es gibt Leute, die nur zu gut die Kostenauswirkungen ihrer Websites / Dienste kennen, die nicht funktionieren.


0

2 + 2 = 4 ist einer der einfachsten Codes, die jeder versteht. Und Sie können sehen, wie leicht zu verstehen ist. Dies bedeutet jedoch nicht, dass es sich um eine „einfache“ Gleichung handelt. Die Abstraktionsebene, die benötigt wird, um die einfache Gleichung zu erreichen, ist recht komplex. Gleiches gilt für Software und Softwaretestmethoden. Die Abstraktionsebene, die ein Stück Code erfordert, erfordert viel Arbeit.

Es ist richtig, dass eine gute Praxis dazu führt, Klassen und Objekte wiederzuverwenden . Um diesen Zustand zu erreichen, müssen Sie jedoch Zeit und Mühe investieren .


diese nicht beantwortet die Frage gestellt
gnat

0

Diese Frage hat zwei Seiten.

Auf Ihrer Seite scheinen Sie zu glauben, dass Sie einen guten Job machen und dass die Gruppe "Automatisierung ist einfach" nicht weiß, wovon sie spricht.

Ihrer Meinung nach sehen sie, dass automatisierte Tests (aus ihrer Sicht) viel Zeit in Anspruch nehmen.

Aus dieser Entfernung wissen wir mit dem Wenigen nicht, wer "richtig" ist oder ob jemand "richtig" ist.

Der Umgang mit der Automatisierung ist denkbar einfach

Rede mit ihnen. Fragen Sie ehrlich nach ihren Ideen, wie es besser gemacht werden kann. Engagieren Sie sich und engagieren Sie sich. Nur so können sie herausfinden, ob sie wirklich etwas Positives zu bieten haben. Vielleicht haben sie einige wertvolle Beiträge zu leisten, und Sie können einen Gewinn / Gewinn erzielen.

Wenn sie keine wirkliche Vorstellung davon haben, wie Programmierung und automatisiertes Testen funktionieren, oder wenn sie realistische Ideen zur Verbesserung der Produktivität haben, können Sie nach einem positiven Engagement zeigen, wie es gemacht wird und wo die Zeit hingeht. Sei demütig und positiv und danke ihnen für ihren Input / ihre Ideen. Denken Sie darüber nach, was sie gesagt haben: Vielleicht lösen ihre Vorschläge eine andere Denkweise für Sie aus. Wenn ja, geben Sie ihnen dieses Feedback. Wenn Sie demütig und positiv sind, können Sie auch gewinnen.

Überlegen Sie sich, wie Sie Ihre Tests erstellen, ausführen und verwalten, bevor Sie mit ihnen sprechen. Welche Frameworks verwenden Sie? Gibt es andere, die besser sein könnten? Haben Sie ein "Standard" -Kesselschild, das Sie anpassen? Könnte das Erstellen der Tests automatisierter sein? Was hält dich zurück?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.