what is sdet know difference between tester
In diesem Tutorial werden alle Aspekte eines SDET (Software Development Engineer in Test) erläutert, einschließlich Fähigkeiten, Rollen und Verantwortlichkeiten, Gehalt und Karriereweg:
Wir werden die Rolle des SDET eingehend erörtern, die Erwartungen und Verantwortlichkeiten, die die Unternehmen von dieser Rolle erwarten, die Fähigkeiten, über die ein SDET verfügen muss, die Tools und Technologien, mit denen der Kandidat arbeiten sollte, sowie die Gehälter im Allgemeinen angeboten.
Was du lernen wirst:
Grundlegendes zur SDET-Rolle
Die erweiterte Form von SDET ist - Softwareentwicklungsingenieur im Test
In sehr einfachen Worten ist diese Rolle eine Kombination aus einem Zwischenprodukt zwischen einer reinen Entwicklerrolle und einer reinen Testerrolle. SDETs sind qualifizierte Fachleute sowohl im Bereich Quality Engineering als auch in der Softwareentwicklung.
Der Begriff SDET wurde zuerst von Microsoft erfunden, der dann von den meisten großen Produktnamen wie Google, Amazon, Adobe, Expedia usw. verwendet wurde. Die Haupterwartungen bestanden darin, manuelle sich wiederholende Aufgaben durch eine gewisse Automatisierung zu ersetzen, um die Effizienz zu steigern Zuverlässigkeit für die zu testenden Anwendungen.
Vergleich zwischen SDET und manueller Qualitätssicherung
Manuelle QS-Tester konzentrieren sich hauptsächlich auf Black-Box- oder Anwendungstests. Für einen QS-Tester bedeutet dies, dass festgelegt wird, wie sich eine App bei einer bestimmten Eingabe verhalten soll.
Fragen und Antworten zu Unix-Interviews pdf
QA-Tester würden die zu testende Anwendung / das zu testende System nur so verwenden, wie es jeder normale Benutzer / Kunde verwenden würde, jedoch mit Fokus auf kleinere Details sowie Kanten-Szenarien, indem verschiedene Eingabekombinationen usw. ausprobiert werden.
SDET konzentriert sich auf die Anwendung sowohl von White Box- als auch von Black Box-Tests. Mit anderen Worten, sie wären sich auch der inneren Funktionsweise der App bewusst, die es ihnen ermöglicht, Automatisierungstests sowohl mit White-Box- als auch mit Black-Box-Testtechniken zu schreiben.
Im Wesentlichen muss ein Software Development Engineer in Test alle Black Box-Testtechniken sowie praktische Entwicklungs- / Codierungskenntnisse kennen, um die innere Funktionsweise der App zu verstehen, die bessere Qualitätsstandards sowie ein weniger fehlerhaftes Softwareprodukt gewährleistet.
Im Wesentlichen sollte ein SDET auf irgendeine Weise als Wegbereiter für eine effektive Qualitätssicherung dienen. Dies bedeutet auch, dass der Einzelne seine Fähigkeiten einsetzen würde, um sicherzustellen, dass alle Teile der zu testenden Software bestmöglich validiert werden, einschließlich des Testens sowohl funktionaler als auch nicht funktionaler Bereiche.
Sehen wir uns den Vergleich von SDET und manuellem Tester mit verschiedenen Parametern an
Parameter | SDET | Manueller Tester |
---|---|---|
Testumfang | Konzentriert sich auf eine Vielzahl von Testtechniken und -typen. Beispiel: Funktional, Nicht funktional, Sicherheit, Leistung usw. | Konzentrieren Sie sich im Allgemeinen auf die Funktionsperspektive der zu testenden Anwendung. Ein manueller Tester verhält sich wie ein Benutzer / Kunde der zu testenden App und validiert sie aus dieser Perspektive. |
Automatisierung | SDETs konzentrieren sich hauptsächlich auf die Automatisierung sich wiederholender Szenarien, um sicherzustellen, dass sich manuelle Tester auf komplexere und randvollere Szenarien konzentrieren und ihre Bandbreite und Fähigkeiten effizienter nutzen können. | Manuelle Tester verfügen über einige oder keine Fähigkeiten zur Automatisierung. Es ist jedoch erforderlich, dass manuelle Tester sich der Verwendung von Tools bewusst sind, die beim manuellen Testen helfen Beispiel: Verwenden von Postman zum Ausführen von API-Endpunkten, Verwenden von Cloud-Anbietern wie Saucenlabors zum Ausführen von Tests auf verschiedenen Plattformversionen usw. |
Primäre Fähigkeiten | SDETs sind in erster Linie für die Automatisierung von Testfällen sowie für das Schreiben wiederverwendbarer Skripte / Tools verantwortlich, mit denen das Team den Wiederholungsaufwand reduzieren kann. Ein hochrangiges Mitglied des SDET-Teams ist auch dafür verantwortlich, Automatisierungsframeworks zu erstellen und anderen SDETs das Schreiben von Tests mithilfe des Frameworks zu ermöglichen. | Manuelle Tester konzentrieren sich hauptsächlich auf App-Funktionen, Edge-Case-Szenarien und komplexe Testfälle. Zum Beispiel: Ein manueller Tester, der eine mobile App testet, würde zusätzlich zu allen Funktionsszenarien an Szenarien wie denken - Was passiert, wenn ich die App schließe, während ein Backend-Vorgang / Netzwerkanruf ausgeführt wird? - Was passiert, wenn das Handy plötzlich ausgeschaltet wird, wenn sich der Kunde auf einer bestimmten Seite der App befindet? - Was passiert, wenn das Internet während des Hochladens eines Dokuments in eine App usw. ausfällt? |
Gehälter | SDETs werden im Allgemeinen höhere Gehälter angeboten (~ 40-50% höher als manuelle Tester), aufgrund ihrer Fähigkeiten und Erfahrungen. | Reine manuelle Testrollen haben im Vergleich zu einer Hybridrolle, bei der ein manueller Tester auch neue Werkzeuge erlernen und dem gelieferten Produkt einen Mehrwert verleihen möchte, ein niedrigeres Gehalt. |
Softwareentwicklungsingenieur im Test Skillset
Nachfolgend sind die Fähigkeiten aufgeführt, die ein SDET besitzen muss:
# 1) Öffnen Sie Mindset
Die erste und wichtigste Fähigkeit besteht darin, dass jeder Software Development Engineer in Test offen sein sollte, um alle Skriptsprachen / Tools zu erlernen, die erforderlich sind, damit er die getestete App gründlich testen kann.
Es ist sehr wahrscheinlich, dass Sie als SDET in einem Unternehmen möglicherweise mit Microsoft / .NET Tech Stack arbeiten. In einem anderen Unternehmen ist die Entwicklungssprache jedoch hauptsächlich Java. Daher wird von SDET eine offene Denkweise erwartet, um neue Inhalte / Technologien zu erlernen und bei Bedarf.
# 2) Adaptiv
Ein Software Development Engineer in Test muss sich an die Anforderungen des Projekts, der Tools und Technologien, Datenbanken usw. anpassen. Zum Beispiel - Als SDET haben Sie möglicherweise Erfahrung mit API-Tests, aber für eine andere Rolle müssen Sie die Benutzeroberfläche oder das Frontend testen. Daher müssen Sie sich für die Rolle an die Anforderungen des Projekts anpassen, um ein qualitativ hochwertiges Standardprodukt zu liefern.
# 3) Multitasker
Bei den meisten Produktunternehmen wird das DEV- und QS-Verhältnis häufig stark verzerrt. Dies bedeutet, dass Teams häufig ein DEV: QA-Verhältnis von 4: 1 oder sogar 5: 1 haben. Daher ist es unerlässlich, dass von einem SDET erwartet wird, dass es an mehreren Dingen beteiligt ist und diese liefert.
Dies sind einige Aufgaben, an denen ein SDET voraussichtlich arbeiten wird:
- Teilnahme an Stakeholder-Meetings: Ein SDET muss eng mit Entwicklern und Produktleuten zusammenarbeiten, um das Produkt sowohl vom Entwickler als auch vom Produktstandpunkt aus zu verstehen und dann eine Automatisierungsstrategie zu entwickeln / vorzuschlagen.
- Framework / Tools erstellen
- Strategische Testplanung
- Mängel melden / untersuchen
- Es kann manchmal erforderlich sein, zusammen mit Entwicklern zum Unit-Test beizutragen.
# 4) Erkundungsphilosophie
Jeder SDET sollte sich jederzeit an diese Zeilen erinnern - “ Wenn Sie dieselben Aktionen ständig wiederholen, sollten Sie sie automatisieren ''
Die Person hätte die Einstellung, den Aufwand für alles, was ihnen in den Weg kommt, mithilfe von Tools zu reduzieren, um die Produktivität zu steigern und qualitativ hochwertige Softwareprodukte sicherzustellen.
Zusätzlich zu allen Automatisierungsarbeiten besteht die Hauptaufgabe von SDET darin, qualitativ hochwertige Produkte mit allem zu liefern, was erforderlich ist. Daher müsste er sich auch darauf konzentrieren, Produkte auf explorative Weise zu testen, um immer mehr versteckte Fehler und Defekte aufzudecken.
# 5) Zusammenarbeiten, Beiträge leisten und kommunizieren
Die Rolle von SDET erfordert die Verbindung zwischen verschiedenen Interessengruppen wie Entwicklern, Produkten, manuellen Testern usw.
Es ist wichtig, dass SDETs mit allen erforderlichen Stakeholdern zusammenarbeiten und gegebenenfalls alle erforderlichen Details kommunizieren.
SDETs und das QA-Team halten die Qualitätstore für ein Produkt bereit, bevor es der Öffentlichkeit zugänglich gemacht wird, und spielen daher eine wichtige Rolle, wenn es darum geht, ein Produkt für Kunden geeignet zu halten oder nicht.
Rollen und Verantwortlichkeiten
Versuchen wir also zu verstehen, was SDETs tägliche Aufgaben und Verantwortlichkeiten sind und welche unterschiedlichen Aufgaben von ihnen erwartet werden.
- Arbeiten Sie mit Entwicklern und Geschäftsinteressenten zusammen und bemühen Sie sich, die Akzeptanzkriterien zu automatisieren. Dies bedeutet in einfachen Worten: Ein SDET versteht zuerst die Anforderungen aus Akzeptanz- / Kundensicht und muss auch die Art und Weise verstehen, wie das Produkt in Bezug auf Codierungssprache, Datenbanken usw. entwickelt wird, und plant dann eine Strategie, um maximale Szenarien so weit wie möglich zu automatisieren .
- Verantwortlich für die Erstellung robuster und qualitativ hochwertiger Testautomatisierungslösungen für Funktions-, Regressions- und Leistungstests.
- Erstellen Sie nach Bedarf wiederverwendbare Skripte / Tools.
- Tragen Sie zu funktionalen und nicht funktionalen Testbereichen bei. Funktionstests umfassen Tests aus Sicht der Funktionalität / Anforderungen und werden weitgehend von Akzeptanzkriterien oder User Stories bestimmt.
Ebenso wichtig sind jedoch auch nichtfunktionale Tests. Beispielsweise, Wie leistungsfähig die Anwendung ist, ist die Anwendung sicher genug, stellen Sie sicher, dass keine Hacks mehr in der App vorhanden sind, die die Sicherheit der App beeinträchtigen und sowohl für Kunden als auch für das Unternehmen einen großen Verlust verursachen können. - Sie nehmen auch an den Diskussionen über Design und Architektur teil und geben effektives Feedback bei Codeüberprüfungen.
Werden Sie ein großartiger SDET
Um ein großartiger SDET zu werden, sehen wir uns einige Tipps / grundlegende Tools und technische Fähigkeiten an, die gelernt werden müssen, um in ihren Rollen besser abschneiden zu können.
Im vorherigen Abschnitt haben wir die Eigenschaften kennengelernt, die ein Software Development Engineer in Test besitzen muss, um in seinen Rollen großartig zu werden. Sie müssen eine offene Denkweise haben, anpassungsfähig sein und in der Lage sein, auf die vom Produkt oder Team vorgeschriebene Weise zu kommunizieren, zusammenzuarbeiten und Beiträge zu leisten.
Sehen wir uns eine Liste einiger gängiger Tools und Technologien an, die SDETs lernen müssen:
- Sollte ein solides Verständnis der Testprinzipien, Testtypen und -methoden haben.
- Sehr kompetent im Debuggen von Problemen - lernen Sie Debug-Tools wie - Chrome Web Debugger Diese sind äußerst hilfreich beim Debuggen von Webanwendungen sowie beim Untersuchen von Netzwerkprotokollen für eine getestete App.
- Sie sollten in der Lage sein, wiederverwendbaren Code / Skripte zu schreiben, und daher sollten sie mindestens eine Skriptsprache beherrschen. Am einfachsten zu erlernen ist Python, das auf eine Vielzahl von Aufgaben, Automatisierungs-Frameworks usw. angewendet werden kann.
- Machen Sie sich mit API-Testclients wie vertraut POSTBOTE
- Sollte sich der White-Box-Testwerkzeuge und -Techniken bewusst sein - wie Mocking-Frameworks ( Mockito ) usw., da von ihnen erwartet werden kann, dass sie bei Bedarf auch Schreibeinheitentests beisteuern.
- Sie sollten sich der Versionierungstools wie bewusst sein Gehen . Sie sollten auch mit den Konzepten von vertraut sein Anfragen ziehen , Codeüberprüfungen usw.
- Verständnis der Architektur von Webanwendungen und des allgemeinen Client-Server-Modells.
- Sollte sich der grundlegenden objektorientierten Programmierkonzepte und des Verständnisses bewusst sein SOLIDE Modell ( S. ingle Verantwortung, ODER Stift / Geschlossenes Prinzip, L. iskov Substitution, ich Schnittstellentrennung, D. Ependenz Inversion)
- Grundlegendes Verständnis von Kontinuierliche Integration /. Kontinuierliche Lieferung Konzepte (CI / CD) und sollten auch CI-Tools wie Jenkins / Bamboo usw. kennen.
Von SDETs wird im Allgemeinen erwartet, dass sie sich auch um Bereitstellungsprobleme kümmern. Daher ist das Verständnis dieser Tools unerlässlich. - Sie sollten mit mindestens einem Front-End-Automatisierungsframework vertraut sein. Am einfachsten und am weitesten verbreitet in Selen . Es ist der heilige Gral der Front-End-Tests für Webanwendungen, und fast alle Unternehmen verwenden das Selenium-Framework zur Automatisierung von UI-Tests.
- Erlernen der Grundlagen des Leistungstests sowie Schreiben einfacher Skripte mit Open Source-Leistungstest-Tools wie JMeter ist sehr hilfreich und Sie können darauf verweisen Jmeter Tutorial . Dies ist hilfreich, da von SDETs auch erwartet wird, dass sie nicht funktionale Anforderungen wie Leistungstests erfüllen.
- Sie sollten sich auch der grundlegenden Konzepte von Sicherheitstests bewusst sein. Dazu gehört auch die Kenntnis grundlegender Codierungsstandards, die sicherstellen, dass keine grundlegenden Sicherheitslücken in der App unberücksichtigt bleiben. OWASP ist eine großartige Referenz für all diese grundlegenden Konzepte.
- Von SDETs wird erwartet, dass sie agile Entwicklungsmethoden kennen, verstehen und implementieren. Sie sollten mit Teams, die die Sprint / Scrum-Methode von agile verwenden, vertraut sein.
- Sollte jemandem bekannt sein, der Cloud-Technologie-Plattformen wie - Amazon AWS , Google GCP , oder Microsoft Azure .
Da die meisten Unternehmen jetzt auf eine Cloud-basierte Infrastruktur umsteigen, ist ein grundlegendes Verständnis der Cloud-Tools und -Technologien im Allgemeinen hilfreich, um damit zu beginnen.
Zertifizierung für SDETs
Im Allgemeinen gibt es keine spezifischen Zertifizierungen für SDETs
Wenn jemand seine Software Development Engineer in Test-Reise starten möchte, kann er sich nur auf die Punkte konzentrieren, die im Abschnitt „Wie man ein großartiger SDET wird“ dieses Tutorials erwähnt werden, und dann sollten SDETs mit ihrer offenen Einstellung ihre Lernreise fortsetzen bei der Arbeit.
Für das Testen von Terminologie und Grundlagen ist es gut, dass jeder, der im Software-Testberuf tätig ist, mit dem zertifiziert wird ISTQB Foundation-Testzertifikat .
Diese Zertifizierung umfasst alle grundlegenden Software-Testkonzepte wie:
- Testarten - funktional / nicht funktionsfähig
- Black Box / White Box / Gray Box Test
- Testplanung / Fehlermanagement
- Testtechniken - Äquivalenzpartitionierung, Rückverfolgbarkeitsmatrix usw.
Es gibt auch andere internationale Zertifizierungen für Softwaretests, aber die meisten davon sind keine sehr wichtigen Auswahlkriterien für Unternehmen, die SDETs mieten möchten.
Eine Liste aller dieser Zertifizierungen ist verfügbar Hier.
wie man sort in java benutzt
Interviews
Bei den meisten größeren Produktunternehmen ist das Interview mit dem Software Development Engineer in Test viel besser als bei den Interviews mit Entwicklern, da von ihnen erwartet wird, dass sie den größten Teil der Entwicklung von Methoden und verwandten Konzepten kennen.
Die Interviews sind jedoch im Vergleich zu Entwicklern etwas nachsichtig. Hier wird betont, wie der Kandidat sich einem Problem nähert und wie umfassend eine Person über das Problem nachdenken kann.
Im Allgemeinen bestehen SDET-Interviews aus folgenden Runden / Fragetypen bei fast allen großen Produktorganisationen wie Amazon, Microsoft, Adobe, Expedia usw.
- Schriftliche Runde: Schreiben von Testfällen für ein bestimmtes Produkt. Hier soll eine Vorstellung davon bekommen, wie alle Facetten des Testens die Person über den Kandidaten denken kann, wenn sie alle Funktionsszenarien, Randfall-Szenarien denkt / auflistet, sich auf Sicherheitstests, Leistungstests usw. konzentriert.
- Codierungsrunde: Es wird eine kleine Codierungsübung durchgeführt, und der Kandidat muss alle Szenarien für Komponententests und Funktionstests aufschreiben. Hier werden folgende Bereiche oder Fähigkeiten getestet: Grundlegende Codierungskenntnisse / -konstrukte, Schreiben von testbarem Code und Kenntnisse über White-Box-Testtechniken wie Unit-Tests, Mocking usw.
- Designrunde: Eine Frage zum Systemdesign wird gestellt: Beispiel , Wie würdest du YouTube gestalten?
Diese Art von Fragen ist im Allgemeinen für Entwickler relevanter, aber für SDETs sucht der Interviewer, wie weit die Person denken kann, ob der Kandidat über OOPs-Konzepte Bescheid weiß, ob der Kandidat in der Lage ist, über Skalierbarkeit, Robustheit, Lastausgleich usw. nachzudenken Kann der Kandidat die richtigen Datenbanken für die zu verwendende Anwendung verwenden? - HR / Manager-Runde: Hier werden Dinge wie Teamfitness, Kulturfitness usw. über den Kandidaten sowie Gehaltsdiskussionen beobachtet und auch Verhandlungen geführt.
Empfohlene Lektüre => Fragen zum SDET-Interview
SDET-Gehalt
Wie wir in unseren vorherigen Abschnitten besprochen haben, verfügen SDETs über höhere Gehälter als die meisten manuellen Testrollen. In vielen Fällen sind die Gehälter mit denen von Entwicklern vergleichbar, die über ein ähnliches Erfahrungsniveau verfügen.
Sie können verweisen Hier Informieren Sie sich über die Gehaltsspanne bei verschiedenen SDET-Profilen in verschiedenen Organisationen. Im Allgemeinen unterscheidet sich das SDET-Gehalt je nach Erfahrungsbereich und Organisation.
Nachfolgend finden Sie einen Vergleich der SDET-Gehälter für Top-Unternehmen wie Microsoft und Expedia.
Niveau | Microsoft ($) | Expedia ($) |
---|---|---|
SDET - ich | 65000 - 80000 | 60000 - 70000 |
SDET - II | 75000 - 11000 | 70000 - 100000 |
Herr SDET | 100.000 - 150.000 | 90000 - 130.000 |
Karriereweg
Im Allgemeinen beginnt und wächst die SDET-Karriereleiter folgendermaßen:
- SDET-1 - Junior Level SDET, das Automatisierungsskripte schreiben kann.
- SDET-2 - Erfahrenes SDET, das wiederverwendbare Tools und Automatisierungsframeworks schreiben kann.
- Herr SDET - Senior Level SDET, das in der Lage ist, einen individuellen Beitrag zu leisten, wie SDET 1 und SDET 2, aber auch in der Lage ist
- Codeüberprüfungen durchführen.
- Nehmen Sie an Designdiskussionen teil und machen Sie Vorschläge für entsprechende Designänderungen.
- Nehmen Sie an der Gesamtteststrategie des Produkts teil.
- Nehmen Sie an CI / CD-Bereitstellungsmodellen teil, erstellen Sie Ausführungspipelines usw.
- SDET Manager - Nach SDET2 können Sie entweder Sr SDET oder SDET Manager Path auswählen. Ein SDET-Manager hat neben der Kernarbeit von SDET auch Management- / Führungsaufgaben.
- Testarchitekt / Lösungsingenieur - Test Architect oder Solutions Engineer ist jemand, der hauptsächlich ein Gesamtrahmen für mehrere Projekte entwirft / entwirft, Testspezifikationen festlegt und auch als Bereitstellungsmanager fungieren kann. Diese Leute sind Einzelpersonen und helfen mehreren Projekten, ihre Testergebnisse zu erzielen und ein umfassend gut getestetes und fehlerfreies Produkt zu liefern.
Hier ist eine Darstellung des SDET-Karrierepfads auf Blockebene:
Fazit
In diesem Tutorial haben wir ausführlich gelernt, was ein SDET in Bezug auf die Rollen und Verantwortlichkeiten ist, welche Fähigkeiten erforderlich sind, was der Unterschied zwischen SDETs und manuellen Testern ist und was es braucht, um ein großartiger Softwareentwicklungsingenieur im Test zu werden.
Im Allgemeinen ist SDET eine sehr gefragte Rolle, und fast alle guten Produktunternehmen haben diese Rolle in ihren Teams und werden hoch geschätzt.
Literatur-Empfehlungen
- Fragen und Antworten zum SDET-Interview (vollständiger Leitfaden)
- 10 BEST Custom Software Development Unternehmen und Dienstleistungen im Jahr 2021
- 20 BESTE Softwareentwicklungstools (2021 Rankings)
- Maßnahmen für SSDLC (Secure Software Development Life Cycle)
- SDLC-Phasen (Software Development Life Cycle), Methoden, Prozesse und Modelle
- Softwareentwicklungs- und Testmethoden (mit Vor- und Nachteilen)
- 5 Dinge, die ein Anfänger (und Tester) über Softwaretests wissen sollte
- 5 Möglichkeiten, ein mutiger und selbstbewusster Software-Tester zu sein