Auf der Suche nach einem Jobtester? Machen Sie sich bereit, um Entwicklerfähigkeiten zu demonstrieren

Hallo nochmal. Vor dem Start des Java QA Engineer- Kurses haben wir ein kleines Material vorbereitet, das für diejenigen nützlich sein wird, die gerade eine Karriere in dieser Richtung aufbauen wollen.




Tester - wer ist das?


Der Software Quality Assurance (QA) Engineer tritt für die Interessen der Endbenutzer ein. Er entwickelt einen Software-Testprozess, der Qualität garantiert - damit das Produkt die Erwartungen der Kunden nicht nur erfüllt, sondern auch übertrifft.

Folgende Testarten werden unterschieden:

  1. Handbuch Es beinhaltet das Kennenlernen des Produkts mit den Werkzeugen, die der Verbraucher verwenden wird: Tastatur, Maus, Finger auf dem Touchscreen.
  2. Regression. Nach dem Hinzufügen neuer Funktionen muss der Tester aus Sicht des Endbenutzers prüfen, ob die Anwendung ihre Betriebseigenschaften beibehalten hat.
  3. Automatisiert Ermöglicht das Schreiben von Code, um zu überprüfen, ob das erwartete und das tatsächliche Verhalten der Anwendung übereinstimmen.

Automatisiertes Testen ist kein neues Konzept für die Softwareindustrie. Die kostenlose Bereitstellung automatisierter Testtools zur Erstellung besserer Software ist ebenfalls kein neues Konzept. Neu ist, dass dank des von ThoughtWorks entwickelten und von Google unterstützten Selenium WebDriver Open Source-Lösungen auch für Unternehmen akzeptabel geworden sind, die es gewohnt sind, nur mit zertifizierter Standardsoftware zu arbeiten.

Selenium WebDriver in Kombination mit CI / CD sorgte für eine derart hohe Nachfrage nach Encodern, dass die Formulierung „manuelles Testen“ größtenteils aus der Liste der Anforderungen für Antragsteller verschwand. Was hat ihren Platz eingenommen? Entwicklung von Automatisierungswerkzeugen.

Tatsächlich schreibt der Tester diese Tests und erstellt eine automatisierte Umgebung, um die Ausführung von Tests und deren Analyse zu unterstützen. Dabei versucht er folgende Fragen zu beantworten:

  • Welche Arten von Tests führen wir durch? Werden wir uns auf die Automatisierung der Browser-Regressionstestsuite durch Selenium WebDriver konzentrieren? Oder automatisieren wir auch neue Funktionen?
  • Wenn wir Selenium WebDriver verwenden, um Browsertests zu automatisieren, binden wir es dann beispielsweise an Java, Python, C #, JavaScript oder Ruby?
  • Können wir in der Pyramide des Testens von Mike Cohen eine Ebene weiter gehen und die Webdienste testen, die der Browser-Anwendung grundlegende Funktionen bieten?
  • Welche Testlösungen passen am besten zur Programmiersprache der Anwendung?

Wie werden heute Tester-Vorstellungsgespräche geführt?


Als ich nach einer zweijährigen Pause zum ersten Interview kam, lief alles gut ... bis zu dem Moment, als ich gebeten wurde, an die Tafel zu kommen.

"Schreiben Sie mit Ihrer bevorzugten Programmiersprache eine Methode, um zu testen, ob ein bestimmtes Wort ein Palindrom ist."

Wenn sie mir diese Hausaufgaben gegeben hätten, hätte ich es herausfinden können. Als ich mich jedoch vor dem Board befand und zwei Entwickler mit Steingesichtern mich bewerteten, verwandelten sich meine Gedanken in eine leere Leinwand.

Nachdem ich mich mit der Hälfte der Aufgabe befasst hatte, begann ich zu scherzen:

  • Wenn ich nur einen Laptop mit IntelliJ hätte!
  • Wenn ich Code für einen automatisierten Test geschrieben hätte, hätte ich es viel besser gemacht.

Die Antwort lautete: "Von allen Mitarbeitern wird erwartet, dass sie ein bestimmtes Mindestmaß an Programmierkenntnissen haben - auch für Qualitätskontrollstellen."

Danach musste ich mich auf ein Vorstellungsgespräch für einen anderen Job vorbereiten ...



Code Writing Interview: Nicht nur für Software-Ingenieure


Als ich vor drei Jahren befragt wurde, bin ich nur einmal auf das Schreiben von Code gestoßen. Und diesmal waren es 5 von 7 für mich passenden Stellen. Warum werden Kandidaten für die Position des Testers der gleichen Prüfung unterzogen wie die Entwickler selbst? Die Antwort kam mir seltsam vor:

Weil Tester heute Entwickler sind.

In den letzten Jahren hat sich die Automatisierungsfunktion von Testern, die Code schreiben können, zu Entwicklern entwickelt, die testen können.

Die Entwickler finden die Fragen der Tester im Interview nicht schwierig. Sie fordern die Kandidaten nicht auf, den Tower of Hanoi zu lösen oder mathematische Gleichungen des zweiten Jahrgangs einer guten technischen Universität zu lösen.

Die meisten Codebeispiele, die geschrieben werden sollen, beziehen sich auf Schleifen, grundlegende mathematische Operationen, Zeichenfolgen und symbolische Manipulationen.

Warum sind Interviews zum Schreiben von Code so kompliziert?


Aktivitätsthemen liegen möglicherweise außerhalb Ihres Fachgebiets.

  • Normalerweise arbeite ich mit der Programmiersprache Java. Ich muss nur gelegentlich eine komplexere Datenstruktur als eine Hash-Tabelle verwenden.
  • Der Code, den ich schreibe, dreht sich um Selenium WebDriver. Ich öffne den Browser, gehe zur Seite, gebe die Daten in die Textfelder ein, wähle die Optionsfelder aus und es funktioniert!
  • Ich vergleiche ständig die Zeichenfolgen und überprüfe, ob der Warnungstext auf dem Bildschirm mit dem erwarteten übereinstimmt. In meiner täglichen Arbeit verwende ich jedoch nur geringfügig Hilfsmethoden für die String-Objektmethode.

Kein IntelliSense für ein Interview

  • Wenn ich Hilfsmethoden in einem String-, Zeichen- oder Ganzzahlobjekt verwenden muss, muss ich nur einen Punkt nach dem Wort einfügen, und die Methoden werden angezeigt.

Solche Tests erlauben keine Verwendung externer Informationsquellen.

  • Sie können das Fachforum oder StackOverflow.com nicht verwenden.

Während der Interviews kann ein Gefühl der Isolation auftreten.

  • Wenn ich anfange, einen Test für eine Funktion zu schreiben, mit der ich nicht vertraut bin, tausche ich normalerweise Ideen mit Kollegen aus. Aber während des Interviews kann ich mich nicht mit den Interviewern austauschen. Oder kann ich noch? Es schien mir, dass ich nicht konnte - manchmal sind sie nicht sehr freundlich.



Wie kann man sich auf solche Aufgaben vorbereiten?


Aktualisieren Sie Ihr Wissen

Eine gute Option ist die Teilnahme an kostenlosen Online-Programmierkursen.

RTFM


Verwenden Sie die Java-Lernressourcen von Oracle: „Das Java-Handbuch enthält praktische Anweisungen für Programmierer, die Java zum Erstellen von Anwendungen verwenden möchten. Das Handbuch enthält Dutzende von Lektionen und Hunderte von Beispielen.

Lesen Sie die API-Dokumentation


Um mit einer Programmiersprache arbeiten zu können, müssen Sie die in der API-Dokumentation aufgeführten Grundbegriffe verstehen.

Wenn Ihre Hauptprogrammiersprache Java ist, lesen Sie https://docs.oracle.com/javase/8/docs/api/java , und konzentrieren Sie sich dabei auf die Themen Integer , String und Character , insbesondere:

String-Funktionen

Müssen Sie das erste Zeichen in einer Zeichenfolge finden? Verwenden Sie charAt(0) . Finden Sie heraus, ob ein Zeichen oder ein Wort in einer Zeichenfolge enthalten ist? Verwendung contains . Benötigen Sie ein Suffix? Versuchen Sie es mit endsWith . Sie können mit equals und equalsIgnoreCase prüfen, ob die beiden Zeilen übereinstimmen.

Charakterfunktionen

Die Booleschen Funktionen isLetter , isLetterOrDigit , isLowerCase , isUpperCase , isLowerCase und isWhitespace helfen, sich mit der Natur von Zeichen vertraut zu machen. Zum Beispiel: Character.isLetter('A') ist wahr. char newCharacter = 'a' neue Zeichen in einfache Anführungszeichen ein, zum Beispiel: char newCharacter = 'a' .

Ganzzahlige Funktionen

Möchten Sie eine Ganzzahl konvertieren? Geben Sie eine Ganzzahl in Integer.toBinaryString(int i) , Integer.toHexString(int i) oder Integer.toOctalString(int i) , um sie in das gewünschte Format zu konvertieren.

Übe auf Papier

Fragen Sie sich beispielsweise, wie Sie mit der Schleifenschleife Folgendes aufdecken können:

  • alle ganzen Zahlen von 1 bis 100;
  • alle geraden Zahlen (i% 2 == 0) im Bereich von 1 bis 100 {1 ... 100}
  • alle Zahlen durch 3 teilbar (i% 3 == 0).

Oder hier sind die Schnurübungen:

  • Schreiben Sie eine Methode, die den String s verwendet und die Länge als Ganzzahl an Länge s.length .
  • Schreiben Sie eine Methode, die den String s verwendet und das erste Zeichen s.charAt(0) .

Wichtig:

  • Versuchen Sie, alles in lesbarer Handschrift zu schreiben.
  • Vergessen Sie nicht, die Halterungen richtig zu öffnen und zu schließen.
  • Überlegen Sie sich Validierungstests für Ihren Code. Funktioniert es, wenn die Zeichenfolge nur aus einem Zeichen besteht? Und wenn aus 100 heraus? Und wenn 0?

Achten Sie auf den Fehler der nicht abgerechneten Einheit in Zyklen:

  • Wenn Sie Zeichen in einer Zeichenfolge oder den ersten Index in einem Array zählen, wird die Zahl n im Bereich von 0 bis n-1 berücksichtigt. Das heißt, das erste Zeichen ist (0) und das letzte ist (Länge - 1).
  • Die for (for i = 0; i < 5; i++) Schleife for (for i = 0; i < 5; i++) endet mit der Zahl 5. Wenn Sie dies anzeigen, wird dort 0, 1, 2, 3, 4. Um weitere 5 anzuzeigen, geben Sie i <= 5 ein .

Im zweiten Teil des Artikels werden wir darüber sprechen, warum das Schreiben von Code-Interviews so kompliziert ist. Und das ist alles für heute. Weitere interessante Informationen erhalten Sie im kostenlosen Webinar , das am 19. Dezember stattfindet.

Source: https://habr.com/ru/post/de480800/


All Articles