60 nejčastějších otázek a odpovědí na pohovor SDET (2026)

Otázky a odpovědi na pohovoru SDET

Příprava na zkušební pohovor znamená předvídat výzvy a očekávání. Otázky v pohovoru SDET odhalují, jak kandidáti myslí, ověřují kvalitu, spolupracují a konzistentně převádějí znalosti automatizace do spolehlivých inženýrských výsledků.

Tyto pozice otevírají silné kariérní cesty, jelikož se kvalita softwaru neustále vyvíjí. Zaměstnavatelé si cení technických zkušeností, odborných znalostí v dané oblasti a analýz získaných prací v oboru.ping Absolventi prvního ročníku, inženýři střední úrovně a vedoucí odborníci uplatňují své dovednosti, odpovídají na běžné otázky a odpovědi, podporují týmy a řeší složité technické výzvy pro manažery na vyšších pozicích.
Přečtěte si více ...

👉 Stažení PDF zdarma: Otázky a odpovědi k pohovoru SDET

Nejčastější otázky a odpovědi na pohovoru SDET

1) Jaká je role SDET a jak se liší od manuálního testeru?

Softwarový vývojář v testování (SDET) je zodpovědný za zajištění kvality softwaru integrací obou dovednosti v oblasti vývoje softwaru a odborné znalosti v oblasti testováníNa rozdíl od tradičního manuálního testera SDET píše automatizované testovací skripty, vytváří a udržuje testovací frameworky a často se účastní diskusí o návrhu a vývoji v rané fázi životního cyklu. Od SDET se očekává, že budou automatizovat opakované testy, vytvářet nástroje a pomáhat zlepšovat testovací infrastrukturu, zatímco manuální testeři provádějí testy primárně ručně a zaměřují se na průzkumné nebo ad-hoc testování.

Klíčové rozdíly:

Vzhled SDET Ruční tester
Zapojení do kódování Vysoký Nízká nebo Žádná
Automatizace testů Primární zaměření Minimální
Zapojení do životního cyklu V celém SDLC Post-vývoj
Znalost nástrojů/frameworků Požadovaný volitelný

2) Vysvětlete životní cyklus testování softwaru (STLC).

Životní cyklus testování softwaru (STLC) je série definovaných fází, které určují, jak se software testuje. Začíná pochopením Požadavky, pak se přesune plánování, návrh, provedení, trackrál defektů a uzavření testuKaždá fáze má specifické výstupy, cíle a vstupní/výstupní kritéria. STLC zajišťuje, aby testovací aktivity byly systematické, měřitelné a v souladu s harmonogramem vydávání softwaru.

Typické fáze STLC:

  1. Analýza požadavků
  2. Plánování zkoušek
  3. Vývoj testovacího případu
  4. Nastavení prostředí
  5. Provedení testu
  6. Hlášení závad
  7. Uzavření testu

3) Jaký je rozdíl mezi prioritou a závažností vady?

Přísnost popisuje dopad vady na aplikaci – jak silně ovlivňuje funkčnost systému. Priorita udává, jak rychle by měla být vada opravena, často na základě obchodních potřeb. Chyba s vysokou závažností může narušit základní funkci, zatímco chyba s vysokou prioritou může vyžadovat okamžitou pozornost kvůli dopadu na zákazníka nebo časovém harmonogramu vydání.

Příklad: Překlep v uživatelském rozhraní má nízkou závažnost, ale může mít vysokou prioritu, pokud se objeví na marketingové stránce.


4) Popište prvky dobrého hlášení chyby.

Mělo by být k dispozici silné hlášení o chybě jasné, stručné a praktickéMezi základní komponenty patří:

  • PředmětStručné shrnutí závady
  • DescriptionCo se očekávalo vs. co se stalo
  • Kroky k reprodukciJasné očíslované kroky
  • životní prostředíOS, prohlížeč, verze
  • Snímky obrazovky/LokyDůkazy pro ladění
  • Závažnost a priorita

Dobré hlášení chyb pomáhá vývojářům rychle pochopit a opravit problémy.


5) Co je automatizace testování a proč je důležitá?

Testovací automatizace využívá nástroje a skripty k provádění opakujících se testovacích případů bez lidského zásahu. Zlepšuje konzistence, rychlost, pokrytí testy, a účinnost zdrojů — zejména pro regresní testování a procesy kontinuálního dodávání. Automatizace je klíčová pro rozsáhlé aplikace, kde samotné manuální testování nestačí.


6) Vysvětlete rozdíl mezi testováním černé skříňky a testováním bílé skříňky.

Testování černé skříňky ověřuje, zda se aplikace chová očekávaným způsobem bez znalosti interního kódu, se zaměřením na vstupy a výstupy. Testování v bílé krabici Zahrnuje testování vnitřních struktur (jako jsou cesty kódu, smyčky a větve), což vyžaduje znalosti programování. Testovací sada často kombinuje obojí, aby zajistila komplexní pokrytí.


7) Co je to kontinuální integrace (CI) a jaký je její význam v testování?

Kontinuální integrace (CI) je praxe, při které jsou změny kódu často integrovány do sdíleného repozitáře (často i několikrát denně). Každá změna spouští automatizované sestavení a testy – což umožňuje včasnou detekci problémů, udržuje vysokou kvalitu kódu a podporuje rychlé zpětné vazby ve vývoji. Kontinuální integrace (CI) je klíčem ke spolehlivému automatizovanému testování a pracovním postupům DevOps.


8) Jak byste řešili nespolehlivé automatizované testy ve vaší sadě?

Nespolehlivé testy – testy, které někdy projdou a někdy selžou bez změn kódu – podkopávají důvěru. Mezi řešení patří:

  • Stabilizace závislostí prostředí
  • Vyhýbání se pevně zakódovaným čekáním
  • Použití explicitních čekání/asercí
  • Izolace testů od externích systémů

Nespolehlivé testy by měly být buď opraveny, umístěny do karantény nebo označeny, aby se snížil šum ve výsledcích.


9) Vysvětlete objektový model stránky (POM) v automatizaci testování.

Objektový model stránky (POM) je návrhový vzor, ​​který zapouzdřuje prvky webové stránky jako objektové třídy s metodami popisujícími chování. POM vylepšuje údržba a čitelnost oddělením testovací logiky od struktury stránky, což zjednodušuje aktualizace při změnách uživatelského rozhraní.


10) Jaké jsou základní vrstvy automatizačního frameworku?

Efektivní automatizační rámec obvykle obsahuje vrstvy pro:

  • Testovací skripty
  • Objekty stránek / modely uživatelského rozhraní
  • Utility (pomocné funkce, obslužné rutiny čekání)
  • Správa konfigurace
  • Hlášení
  • Integrace s nástroji CI/CD

Tato modularizace umožňuje jasné rozdělení odpovědností a snadnější vylepšení.


11) Jaký je váš přístup k testování API?

Testování API ověřuje komunikaci mezi službami. Měli byste ověřit:

  • Kódy stavu odpovědi
  • Správnost těla odpovědi
  • Validace schématu
  • Ověřování/autorizace
  • Metriky výkonu

Mezi běžné nástroje patří Postman, Ujišťuji vás, a Karate.


12) Co je životní cyklus vývoje softwaru (SDLC) a jak do něj zapadá testování?

SDLC (Security Law Concept - Proces plánování, vytváření, testování, nasazení a údržby softwaru) je kompletní proces plánování, tvorby, testování, nasazení a údržby softwaru. Testování je integrováno do několika fází SDLC – od analýzy požadavků až po vydání – a pomáhá zajistit kvalitu softwaru před jeho dodáním uživateli. Automatizační frameworky a CI/CD podporují dřívější provádění testů.


13) Jak byste navrhli škálovatelný automatizační framework od nuly?

Mezi klíčové faktory při navrhování škálovatelného rámce patří:

  • Modularita: opakovaně použitelné komponenty
  • Udržitelnostsnadno aktualizovatelné testy
  • Integrace CI/CD
  • Podpora paralelního spouštění
  • Komplexní hlášení
  • Podpora pro více prohlížečů/zařízení

Dobře navržený framework urychluje provádění testů a přizpůsobuje se růstu projektu.


14) Vysvětlete rozdíl mezi jednotkovým testováním, integračním testováním a systémovým testováním.

Typ testování Účel Rozsah
Testování jednotek Otestujte jednotlivé komponenty Úroveň vývojáře
Testování integrace Ověření rozhraní mezi moduly Více modulů
Testování systému Ověřte celý systém podle požadavků End-to-end

Každý typ hraje jedinečnou roli při zajišťování celkové kvality softwaru.


15) Jaké programovací jazyky běžně používají SDET?

SDETy často používají jazyky jako Java, Python, a JavaScénář díky svému bohatému testovacímu ekosystému a frameworkům. Tyto jazyky podporují populární nástroje jako Selenium, JUnit/TestNG (Java), otázka (Python), A Dramatik/Cypress (JavaSkript).


16) Jak zajišťujete kvalitu kódu ve skriptech pro automatizaci testování?

Zajištění kvality kódu v automatizačních skriptech je klíčové pro dlouhodobou udržovatelnost a škálovatelnost. Vysoce kvalitní skripty snižují počet falešně pozitivních výsledků, zjednodušují ladění a zvyšují spolehlivost.

Pro zachování kvality kódu:

  1. Dodržujte konzistentní standardy kódování (konvence pojmenování, odsazení, komentáře).
  2. Implementace revizí kódu před sloučením skriptů.
  3. Aplikujte návrhové vzory jako je objektový model stránky nebo tovární vzor.
  4. Používejte nástroje pro statickou analýzu kódu (SonarQube, ESLint).
  5. Pište opakovaně použitelné a modulární funkce.
  6. Zahrňte linting a hooky pro správu verzí vynucovat disciplínu.

Příklad: V Selenium V projektu zajistěte, aby lokátory a akce byly uloženy v opakovaně použitelných třídách stránek, a nikoli přímo v testovacích případech.


17) Jaké jsou různé typy frameworků pro automatizaci testování?

Automatizační frameworky jsou struktury, které definují, jak jsou testy organizovány a prováděny. Níže jsou uvedeny hlavní typy a jejich výhody:

Typ rámce Description Výhody
Lineární (záznam a přehrávání) Jednoduché skripty nahrané postupně Rychlé spuštění, minimální nastavení
Modulární rámec Testovací skripty rozdělené do modulů Snadnější údržba
Data-Driven Testovací data uložená externě (Excel, DB) Flexibilita testu
Řízeno klíčovými slovy Používá klíčová slova pro operace Mohou se zúčastnit i neprogramátoři
Hybridní Kombinuje data řízená a klíčová slova řízená Vysoká opakovaná použitelnost
Řízeno chováním (BDD) Používá syntaxi přirozeného jazyka (Cucumber, Chovat se) Scénáře srozumitelné pro firmy

Moderní projekty SDET často používají hybrid or BDD frameworky pro lepší údržbu a komunikaci mezi QA a vývojáři.


18) Vysvětlete životní cyklus defektu.

Jedno Životní cyklus defektu (také nazývaný životní cyklus chyby) definuje fáze, kterými defekt prochází od identifikace až po uzavření.

Fáze zahrnují:

  1. Nový – Tester zaznamená chybu.
  2. přidělen – Vývojář kontroluje vlastnictví.
  3. Otevřeno / Rozpracováno – Vývojář pracuje na opravě.
  4. Opravena – Problém vyřešen.
  5. Opakujte test – Tester ověří opravu.
  6. Ověřeno / Znovu otevřeno – Potvrzeno nebo znovu nahlášeno, pokud přetrvává.
  7. Zavřeno – Problém byl úspěšně vyřešen.

Udržování správného stavu závad pomáhá týmům stanovovat priority a track přesnému postupu v nástrojích jako JIRA nebo Bugzilla.


19) Jaké jsou hlavní rozdíly mezi Selenium a Cypress?

Vzhled Selenium Cypress
Podpora jazyků Java, Python, C#, JavaSkript atd. JavaPouze skript
Prostředí provádění Funguje mimo prohlížeč přes WebDriver Běží uvnitř prohlížeče
Rychlost Trochu pomaleji Rychlejší provedení
Podpora napříč prohlížeči vynikající Omezené (hlavně na bázi chromu)
Architecture Klient-server Přímá manipulace s DOM
nejlepší Komplexní, rozsáhlé rámce Moderní webové aplikace zaměřené na front-end

Závěr: Selenium zůstává nejlepší pro flexibilitu mezi jazyky, zatímco Cypress nabízí rychlejší a vývojářům přívětivé testování moderních JavaSkriptovací aplikace.


20) Jak integrujete automatizované testy do CI/CD pipeline?

Integrace automatizace s CI/CD zajišťuje, že každé sestavení projde automatickým testováním. Mezi kroky patří:

  1. Odeslat kód do repozitáře (např. GitHub).
  2. CI server (Jenkins, GitLab CI, Azure DevOps) spouštěče se stavět.
  3. Spustit sadu testů pomocí skriptů (Maven, npm, pytest).
  4. Publikovat zprávy (HTML, Allure, zprávy o rozsahu).
  5. Označit sestavení jako vyhovující/nevyhovující na základě výsledků testů.

Tento proces umožňuje včasná detekce chyb, průběžná zpětná vazba, a rychlejší vydání — v souladu s principy DevOps.


21) Co je TestNGa proč je oblíbený pro automatizované testování?

TestNG (Test nové generace) je Java testovací rámec inspirovaný JUnit ale navrženo pro větší flexibilitu.

Klíčové vlastnosti:

  • Podporuje paralelní provádění testů
  • Poskytuje anotace (@BeforeClass, @Test, @DataProvider)
  • Umožňuje parametrizace
  • Nabídky silné reportáže
  • umožňuje grouping a řízení závislostí

Příklad:

@Test(groups={"smoke"})
public void verifyLogin() {
      // test steps
}

Jeho škálovatelnost a čistá struktura ho činí ideálním pro testovací projekty na podnikové úrovni.


22) Jak byste navrhli framework pro testování řízené daty s využitím Selenium a Excel?

A datově řízený rámec odděluje testovací logiku od testovacích dat, což umožňuje spuštění stejného testu s více vstupními sadami.

Přístup:

  1. Ukládání vstupních/výstupních dat do Excelu nebo CSV.
  2. Použijte Apache POI or OpenCSV číst data.
  3. Předávejte data testům prostřednictvím smyčky.
  4. Generovat reporty pro každou iteraci dat.

Výhody:

  • Opakované použití a flexibilita.
  • Efektivní provádění regrese.
  • Zjednodušená údržba.

Příklad použití: Ověření přihlášení s různými kombinacemi uživatelského jména a hesla uloženými v Excelu.


23) Jaký je účel dokumentu testovací strategie?

Jedno Testovací strategie je dokument na obecné úrovni popisující celkový přístup k testování projektu. Zahrnuje:

  • Rozsah a cíle
  • Úrovně testování (jednotkové, integrační, systémové, UAT)
  • Nastavení testovacího prostředí
  • Nástroje, metriky a rozsah automatizace
  • Strategie zmírňování rizik
  • Vstupní a výstupní kritéria

Zajišťuje to sladění mezi zúčastněnými stranami a definuje jasnou vizi testování.


24) Vysvětlete, jak funguje validace REST API v automatizovaných testech.

Ověřování API zahrnuje ověřování chování požadavků a odpovědí. Použití nástrojů jako Ujišťujeme vás, můžete efektivně testovat koncové body REST.

Klíčová ověření:

  • Status Code: 200 OK, 404 Nenalezeno, Etc.
  • Tělo odpovědi: Struktura obsahu a hodnoty.
  • Záhlaví: Autentizační tokeny, CORS atd.
  • Schéma: Ověření schématu JSON/XML.

Příklad:

given().get("/users")
.then().statusCode(200)
.body("data[0].id", equalTo(1));

Tento přístup zajišťuje, že backend se bude chovat správně a bezpečně před integrací uživatelského rozhraní.


25) Jaký je rozdíl mezi testováním kouře a testováním příčetnosti?

Kritéria Testování kouře Testování příčetnosti
Účel Ověřte základní stabilitu konstrukce Ověřte konkrétní opravy chyb
Hloubka Mělké a široké Úzké a hluboké
Provádí QA inženýři QA inženýři
Vhodnost automatizace Vysoký Často manuální
Kdy probíhá Po novostavbě Po drobných změnách

Shrnutí: Kouřové testy potvrzují, že sestavení je testovatelné; testy bezpečnosti potvrzují, že nedávné opravy nenarušily funkčnost.


26) Jak byste navrhli framework pro automatizaci testování pro architekturu mikroslužeb?

Mikroslužby zavádějí více nezávislých služeb, které komunikují prostřednictvím API. Proto by se automatizační frameworky měly zaměřit na… Ověření na úrovni API, contract-testování, a integrační testování.

Přístup:

  1. Použijte Ujišťuji vás, Postmannebo Karate pro automatizaci API.
  2. Udržovat izolace testovacích dat a prostředí pomocí Docker kontejnerů.
  3. Nářadí virtualizace služeb (např, WireMock) pro nedostupné služby.
  4. Integrace s CI/CD potrubí pro ověřování průběžného nasazení.
  5. Zahrnout stract-testování nástroje (např. Pact) pro zajištění kompatibility s API.

Příklad: V případě e-commerce aplikace ověřte každou službu – ověřování, katalog, objednávku a platbu – nezávisle pomocí automatizačních sad API.


27) Vysvětlete, jak můžete dosáhnout paralelního provádění v Selenium.

Paralelní provádění zkracuje celkovou dobu provádění spuštěním více testovacích případů současně.

Metody:

  • TestNG Paralelní provedení: Definujte paralelní testy v testng.xml.
  • Selenium Mřížka: Spouštějte testy napříč více prohlížeči/uzly.
  • Platformy pro cloudové testování: Pro distribuované běhy používejte služby jako BrowserStack nebo Sauce Labs.
  • Přístavní dělník-Selenium Setup: Vytvořte kontejnerizované uzly pro škálovatelné spuštění.

Příklad XML:

<suite name="ParallelTests" parallel="tests" thread-count="3">

Paralelní provádění zajišťuje rychlejší zpětnovazební smyčky v CI pipelinech a urychluje regresní cykly.


28) Jaké jsou výhody a nevýhody automatizovaného testování?

Vzhled Výhody Nevýhody
Rychlost Rychle provádí testy Počáteční čas nastavení
Přesnost Eliminuje lidské chyby Omezeno na průzkumné testování
Opakovatelnost Skripty opakovaně použité napříč sestaveními Režijní náklady na údržbu
Krytí Široké a hluboké pokrytí Nastavení komplexních testovacích dat
Integrace Snadná kompatibilita CI/CD Vyžaduje kvalifikované zdroje

Shrnutí: Zatímco automatizace zvyšuje efektivitu, údržba velkých budov vyžaduje silný návrh rámce a průběžnou údržbu.


29) Jak zvládáte dynamické prvky v Selenium?

Dynamické prvky často mění své atributy (jako je ID nebo třída).

strategie:

  1. Použijte Funkce XPath: obsahuje(), začíná-na()nebo text().
  2. Preferujte Selektory CSS přes křehké XPathy.
  3. Přihláška explicitní čekání (WebDriverWait) místo statických zpoždění.
  4. Použijte relativní lokátory in Selenium 4 (nad(), blízko(), a tak dále).

Příklad:

driver.findElement(By.xpath("//button[contains(text(),'Submit')]")).click();

To zajišťuje stabilitu testu i přes změny v DOMu.


30) Jaké jsou různé způsoby parametrizace dat v TestNG?

Parametrizace dat pomáhá znovu použít testy pro více datových sad.

Přístupy:

  1. @DataProvider anotace: Dodává data programově.
  2. @Parametry v XML: Předává běhové parametry.
  3. Externí soubory: Excel (přes Apache POI), CSV nebo JSON.
  4. Zdroj databáze: Načíst dynamická testovací data z databáze.

Příklad:

@DataProvider(name="loginData")
public Object[][] data(){
return new Object[][]{{"user1","pass1"},{"user2","pass2"}};
}

31) Jak měříte a zlepšujete výkon automatizace testování?

Pro optimalizaci výkonu automatizační sady zvažte následující faktory:

  • Paralelní provádění testů
  • Selektivní regresní běhy
  • Zesměšňování externích služeb
  • Efektivní správa testovacích dat
  • Omezte zbytečné čekání a spánek
  • Profil pomalých testů pomocí nástrojů jako Allure, JUnit Zprávy

Metriky k Track:

  • Doba provedení pro každou sadu
  • Poměr úspěšný/neúspěšný test
  • Nestálá testovací rychlost
  • Střední čas do detekce (MTTD)

Zlepšování vyžaduje neustálou optimalizaci a analýzu reportů z dashboardů CI/CD.


32) Co jsou to falešné objekty a proč jsou důležité při testování?

Falešné předměty simulují skutečné komponenty, které jsou během testování nedostupné nebo pomalé. Jsou nezbytné pro jednotkové a integrační testování.

Případy užití:

  • Napodobování externích API (platby, e-mail atd.)
  • Testování závislých modulů před plnou integrací
  • Snížení dopadu latence sítě

Příklad: Použití Mockito in Java:

UserService mockService = mock(UserService.class);
when(mockService.getUser("123")).thenReturn(new User("John"));

Simulace zvyšují spolehlivost a rychlost eliminací externích závislostí.


33) Jaký je rozdíl mezi zátěžovým testováním a stresovým testováním?

Typ Účel Příklad scénáře
Testování zatížení Kontroluje výkon při očekávaném zatížení Souběžných uživatelů 1000
Stresové testování Vyhodnocuje stabilitu za extrémních podmínek 5000+ souběžných uživatelů nebo selhání databáze
Výsledek Měří škálovatelnost systému Určuje bod zlomu

Použité nástroje: JMeter, Gatling, kobylka.

Obojí pomáhá identifikovat úzká hrdla a optimalizovat využití zdrojů.


34) Jak můžete zajistit spolehlivost testů a snížit počet selhání nestabilních testů?

Ujistit se spolehlivost testu, postupujte podle těchto strategií:

  • Použijte explicitní čekání místo pevných zpoždění.
  • Vyhněte se závislosti mezi testy.
  • Izolujte testy od dat z prostředí.
  • Použijte falešné servery pro stabilní koncové body.
  • Zaměstnat mechanismy opakování a testovací tagování pro sledování trendů šupinatosti.

Nespolehlivé testy musí být zaznamenány, umístěny do karantény a analyzovány, aby se zachovala důvěryhodnost výsledků testů CI.


35) Napište jednoduchý úryvek kódu, který pomocí funkce zkontroluje, zda je řetězec palindrom. Java.

Toto je běžná otázka v testu SDET, která slouží k posouzení logiky a jazykových znalostí.

public class PalindromeCheck {
public static void main(String[] args) {
    String str = "madam";
    String rev = new StringBuilder(str).reverse().toString();
    if(str.equalsIgnoreCase(rev))
       System.out.println("Palindrome");
    else
       System.out.println("Not Palindrome");
   }
}

Vysvětlení: Řetězec se obrací pomocí StringBuilderPokud se obrácený řetězec rovná původnímu (bez ohledu na velká a malá písmena), jedná se o palindrom.


36) Jak se ladí neúspěšný automatizovaný test?

Ladění je jednou z nejdůležitějších dovedností pro SDET. Pokud test selže, je nezbytné zjistit, zda problém spočívá v aplikace, testovací skriptnebo životní prostředí.

Systematický přístup k ladění:

  1. Hrát si problém lokálně.
  2. Analyzovat protokoly (aplikační protokoly, testovací zprávy, protokoly CI).
  3. Zachycujte snímky obrazovky a výstupy z konzole.
  4. Ověření selektorů nebo lokátory pomocí nástrojů pro vývojáře prohlížečů.
  5. Zkontrolujte odpovědi sítě/API (zejména pro selhání testů uživatelského rozhraní).
  6. Revzobrazit nedávné změny kódu ve správě verzí.
  7. Znovu spustit s povoleným laděním (např, TestNG -ladit režim).

Tip: Vždy se ujistěte, že testy jsou idempotentní – opakované spuštění by mělo vést ke stejnému výsledku.


37) Jak řešíte problémy se synchronizací v Selenium?

SyncProblémy s chronizací nastávají, když se skripty spouští rychleji, než se aplikace načítá.

Řešení:

  • Implicitní čekání: Platí globálně (nedoporučuje se pro složité testy).
  • Explicitní čekání: Čekejte na specifické prvky nebo podmínky pomocí WebDriverPočkejte.
  • Plynulé čekání: Umožňuje frekvenci dotazování a ignorování výjimek.

Příklad:

WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("loginBtn")));

Explicitní čekání nabízí detailní kontrolu a zajišťuje stabilitu napříč dynamickými webovými aplikacemi.


38) Jak efektivně provádět automatizované testy s kontrolou verzí?

Týmy SDET spravují testovací kód stejně jako aplikační kód.

Osvědčené postupy:

  • Použijte Git pro správu verzí.
  • Udržovat větvící strategie (funkce, vydání, hlavní).
  • Nářadí žádosti o změnu (PR) s vzájemnými posudky.
  • Testovací běhy značek s hashem commitu pro tracsnadnost.
  • Obchod testovací protokoly a artefakty v úložišti CI/CD nebo v úložištích S3.

Příklad: Automatizační repozitáře často zrcadlí aplikační repozitáře – jedna větev na cyklus vydání, aby se zajistila shoda.


39) Vysvětlete, jak byste otestovali koncový bod REST API pomocí Postman a automatizace.

Testování REST API zahrnuje ověření funkčnosti, výkonu a integrity dat.

Použití Postman:

  • Vytvořte nový požadavek s koncovým bodem a metodou HTTP.
  • Přidejte záhlaví (Autorizace, Typ obsahu).
  • Přidat datovou část pro POST/PUT.
  • Ověřte stav a tělo odpovědi pomocí skriptů (pm.očekávat).

Použití automatizace (příklad RestAssured):

given().header("Content-Type","application/json")
.when().get("https://api/users/1")
.then().statusCode(200)
.body("data.id", equalTo(1));

Tip: Vždy zahrnout negativní testování (např. neplatné tokeny nebo chybějící parametry) pro zajištění robustnosti.


40) Jak spravujete testovací prostředí ve velké automatizaci?

Správa prostředí zajišťuje, že automatizace běží konzistentně napříč vývojovými, testovacími a produkčními replikami.

Osvědčené postupy:

  • Ukládat konfigurace prostředí (URL adresy, přihlašovací údaje) do externí soubory (YAML, JSON).
  • Nářadí selektory prostředí pomocí profilů Maven nebo proměnných prostředí.
  • Použijte Docker kontejnery konzistentně replikovat prostředí.
  • Udržovat izolace dat (např. vyhrazené testovací účty).

Příklad: Použití config.properties soubor pro dynamické načítání dat prostředí.


41) Jaký je rozdíl mezi stubem a mockem?

Vzhled Pahýl Falešný
Účel Poskytuje předdefinované odpovědi Ověřuje chování/interakce
Používání Používá se pro nastavení dat Používá se k prosazení volání metod
Ověření Žádné ověření Má ověření očekávání
Příklad nástroje Vlastní figurína třída Mockito rámec

Příklad:

// Mock
verify(mockObject, times(1)).processData();

Simulace ověřují, zda jsou závislé metody volány správně – stuby vracejí pouze falešná data.


42) Jak zajišťujete škálovatelnost vaší architektury automatizace testování?

Škálovatelnost zajišťuje, že vaše automatizace může růst s růstem aplikace.

Základní principy:

  1. Modulární design: Samostatné záležitosti (testy, utility, reporty).
  2. Paralelizace: Používejte poskytovatele gridových nebo cloudových služeb.
  3. Volné spojení: Framework by se měl snadno přizpůsobit novým modulům.
  4. Integrace CI/CD: Nepřetržité provádění v kanálech.
  5. Kompatibilita verzí: Zajistěte podporu napříč nástroji a knihovnami.

Příklad: Vrstvy návrhu rámce jako BaseTest, PageObject, Utility, a Zkoušky balíčky umožňující snadné rozšíření.


43) Napište a Java program pro odstranění duplicit z pole.

import java.util.*;
public class RemoveDuplicates {
    public static void main(String[] args) {
        int[] nums = {1, 2, 2, 3, 4, 4, 5};
        Set<Integer> unique = new LinkedHashSet<>();
        for(int n : nums) unique.add(n);
        System.out.println(unique);
    }
}

Vysvětlení: Jedno LinkedHashSet automaticky odstraňuje duplikáty a zároveň zachovává pořadí – běžná otázka v kódování SDET, která testuje základní znalosti datových struktur.


44) Co je to průběžné testování a jak souvisí s DevOps?

Průběžné testování (CT) znamená testování v celém životním cyklu dodávek softwaru – od potvrzení kódu až po nasazení.

Vztah k DevOps:

  • CT zajišťuje automatické ověření každé fáze potrubí.
  • Nástroje CI/CD, jako například Jenkins spouštět testy po každém potvrzení (commitu).
  • Zrychluje se zpětnovazební smyčky a zajišťuje uvolnit sebevědomí.

Výhody:

  • Včasná detekce závady
  • Snížené ruční zásahy
  • Zvýšená rychlost uvolňování

Příklad: Automatizované regresní a kouřové testy spouštěné po každém sloučení sestavení před nasazením.


45) Jak identifikujete úzká hrdla výkonu ve webových aplikacích?

Úzká místa výkonu jsou pomalé body, které zhoršují uživatelský zážitek.

Kroky:

  1. Používejte nástroje jako JMeterGatlingnebo Maják pro profilování.
  2. Analyzovat doba odezvy, propustnost, a Využití CPU/paměti.
  3. Použijte Nástroje APM (Nová relikvie, Dynatrace) pro úroveň kódu tracIng.
  4. Identifikovat pomalé dotazy do databáze or Latence API.
  5. Nářadí ukládání do mezipaměti a sdružování připojení optimalizace.

Příklad tabulky metrik:

metrický Ideální hodnota Akce v případě porušení
Doba Odezvy <2 sekundy Optimalizace API nebo dotazu do databáze
Využití procesoru <80% Optimalizace kódu nebo zvýšení počtu zdrojů
Využití paměti <70% Oprava netěsností nebo ladění plynového chromatografu

46) Jaké návrhové vzory se používají v frameworkech pro automatizaci testování?

Návrhové vzory pomáhají vytvářet frameworky pro automatizaci testování modulární, snadno udržovatelný, a škálovatelné.

Mezi běžné vzorce patří:

Vzor Účel Příklad
Model objektu stránky (POM) Zapouzdřuje prvky stránky Selenium rámců
Singleton Zajišťuje instanci jednoho ovladače Třída nastavení WebDriveru
Tovární vzor Spravuje vytváření objektů DriverFactory pro prohlížeče
Vzor strategie Dynamicky podporuje více strategií Zpracování přihlášení pro různé role
Vzor pozorovatele Tractestovací akce ks Protokolování posluchačů pro sestavy

Příklad: Použití Singleton Pattern pro WebDriver zabraňuje konfliktům více instancí během paralelních testů.


47) Jak byste řešili správu testovacích dat v automatizaci?

Správa testovacích dat (TDM) zajišťuje spolehlivé, opakovatelné a konzistentní provádění testů.

Přístupy:

  1. Statická data: Uloženo v souborech JSON, XML nebo Excel.
  2. Dynamická data: Generováno za běhu (UUID, časové razítko).
  3. Řízeno databází: Načíst reálná data pomocí dotazů.
  4. Generováno API: Použijte volání API před testováním k vytvoření falešných dat.
  5. Maskování dat: Chrání citlivé informace v testovacích prostředích.

Nejlepší praxe: Uchovávejte data v externích zdrojích, ne pevně naprogramovaná uvnitř skriptů. Pro škálovatelnost používejte továrny k dynamickému generování vstupu.


48) Jaké jsou některé klíčové výzvy při údržbě velkých automatizačních systémů?

Běžné výzvy:

  • častý UI se mění lokátory přerušení.
  • Šupinové testy kvůli nestabilitě prostředí.
  • Pomalé provedení kvůli nadbytečným testům.
  • Špatně modulární skripty rostoucí náklady na údržbu.
  • Datové závislosti což vede k neopakovatelným testům.

Řešení:

  • Přijmout modulární konstrukce rámu.
  • umožnit paralelní běhy v CI/CD.
  • Průběžně kontrolovat a vyřazovat zastaralé testy.
  • Nářadí robustní protokolování a monitorování.

49) Jak byste automatizovali testování webové aplikace v Reactu nebo Angularu?

Moderní front-endové frameworky (React, Angular) se silně spoléhají na asynchronní renderování.

Osvědčené postupy:

  1. Použijte explicitní čekání pro zpracování asynchronního načítání.
  2. Preferujte ID testovaných dat atributy pro stabilní lokátory.
  3. Využijte nástroje jako Cypress, Dramatiknebo testovací kavárna.
  4. potvrdit stavy komponent a Snímky DOM pro regresi.

Příklad:

cy.get('[data-testid="submitBtn"]').click()
cy.url().should('include', '/dashboard')

Proč: CypressDíky automatickému čekání a ladění v čase je vynikající pro moderní aplikace založené na JS.


50) Jak řešíte validaci schémat API v automatizovaném testování?

Ověření schématu zajišťuje, že odpovědi API odpovídají očekávaným datovým strukturám.

Používání služby RestAssured:

given().get("/users/1")
.then().assertThat()
.body(matchesJsonSchemaInClasspath("user-schema.json"));

Výhody:

  • Včas detekuje chybějící nebo špatně pojmenovaná pole.
  • Zaručuje zpětnou kompatibilitu.
  • Zabraňuje problémům serializace za běhu.

Tip: Udržujte schémata verzovaná v Gitu spolu s testy pro validaci CI.


51) Jak řešíte nekonzistentní prostředí v rámci vývoje a QA?

Přístupy:

  • Použijte přístavní dělník or Kubernetes kontejnerizovat prostředí.
  • Uložit konfigurace do proměnné prostředí.
  • Použijte funkce vlajky pro přepnutí neúplné funkcionality.
  • Automatizujte zřizování prostředí pomocí Terraform or Možná.
  • Nářadí falešné servery pro nedostupná API.

Cíl: Dosáhnout parita prostředí mezi vývojem, QA a stagingem – eliminuje problémy s funkcí „funguje na mém počítači“.


52) Vysvětlete, jak můžete Docker použít v automatizovaném testování.

Docker zajišťuje konzistentní a izolovaná testovací prostředí.

Případy užití:

  • Běh Selenium Mřížkové kontejnery pro paralelní testování.
  • Lokální hostování webových aplikací a API pro integrační testy.
  • Zabalení celé automatizační sady do kontejneru.

Příklad příkazu:

docker run -d -p 4444:4444 
selenium/standalone-chrome

To umožňuje okamžité nastavení bez ruční konfigurace prohlížeče.


53) Co je to průběžné monitorování a jak se používá v QA?

Nepřetržité monitorování (CM) zahrnuje reálný čas trackrál stavu aplikací v produkčním a testovacím prostředí.

Nástroje: Prometheus, Grafana, ELK Stack, Datadog.

Použití v oblasti kontroly kvality:

  • Identifikujte chyby po nasazení.
  • Sledujte doby odezvy API a dostupnost systému.
  • Detekce regresí pomocí syntetických testů.

Kombinováním CI, CD a CM, organizace dosahují úplné transparentnosti a spolehlivosti v celém životním cyklu softwaru.


54) Jak testujete událostmi řízené architektury (Kafka, RabbitMQ atd.)?

Testování systémů řízených událostmi vyžaduje validaci tok zpráv, objednávání a záruky doručení.

Přístup:

  1. Falešní producenti/spotřebitelé.
  2. Ověřte schéma zprávy pomocí Schéma Avro nebo JSON.
  3. Ověřte sémantiku doručení alespoň jednou nebo přesně jednou.
  4. Simulujte selhání pro testování odolnosti.

Příklady nástrojů:

  • Testovací nástroje Kafka Streams
  • Testovací kontejnery pro Kafku
  • WireMock pro datové části zpráv

55) Jaké metriky používáte k měření efektivity automatizace?

Kvantitativní metriky:

  • Míra provedení testovacích případů
  • Procento úspěšnosti v testu
  • Míra detekce vad
  • Pokrytí automatizace (%)
  • Průměrná doba do detekce (MTTD) a vyřešení problému (MTTR)
  • Poměr vločkovitosti

Kvalitativní metriky:

  • Udržitelnost
  • Opakovatelnost
  • Spolehlivost integrace CI

Cíl: Ukažte, že automatizace zajišťuje návratnost investic prostřednictvím měřitelného dopadu.


56) Jak se prioritizují testovací případy pro automatizaci?

Faktory prioritizace:

Faktor zdůvodnění
Vysoký dopad na podnikání Kritické moduly (např. platba)
Vysoká regresní frekvence Často upravované funkce
Opakovatelnost Ideální pro automatizaci
Stabilní funkčnost Snižuje údržbu
Technická proveditelnost API před dynamickými uživatelskými rozhraními

Příklad: Automatizujte přihlašování, platby a kontroly stavu API před zřídka používanými funkcemi.


57) Jak bezpečně spravujete tajné údaje (tokeny, přihlašovací údaje) v automatizaci testování?

Nikdy nezakódujte tajné kódy do skriptů.

Osvědčené postupy:

  • Použijte proměnné prostředí or Tajné trezory CI/CD.
  • Vliv Společnost Hashi Corp Vault, Správce tajemství AWSnebo Azure Klíč Vault.
  • Maskování citlivých dat v reportech a protokolech.
  • Tajné položky pravidelně střídejte.

Příklad: System.getenv("API_TOKEN") bezpečně načítá token během běhu.


58) Popište reálný scénář, ve kterém jste optimalizovali nespolehlivou automatizační sadu.

Příklad scénáře: Testovací sada pro elektronické obchodování vykazovala ~20% nestabilitu kvůli pomalým odezvám API a dynamickému vykreslování uživatelského rozhraní.

Přijatá opatření:

  • Nahrazeno tvrdé čekání za explicitní čekání.
  • Realizováno logika opakování kvůli přechodným problémům se sítí.
  • Přidáno falešné servery pro externí závislosti.
  • Konfigurováno Kanál CI izolovat neúspěšné testy pro kontrolu.

Výsledek: Odlupování se snížilo z 20 % na <3 %, což zlepšilo spolehlivost potrubí a důvěru vývojářů.


59) Jaký je rozdíl mezi testováním shift-left a shift-right?

Přístup Definice Oblast ostření
Shift-Levé testování Testování v rané fázi SDLC Jednotka, integrace, automatizace CI
Shift-Správné testování Testování po nasazení Monitorování produkce, A/B testy
Cíl Včasná prevence vad Sledujte chování uživatelů v reálném čase

Příklad: Shift-left = integrace jednotkových testů v CI.

Shift-right = monitorování latence API v produkčním prostředí.


60) Behaviorální otázka – Jak řešíte situaci, kdy vaše automatizační sada selže před termínem vydání?

Rámec odpovědí (metoda STAR):

  • Situace: Vaše regresní sada selže s 30% červenými testy před nasazením.
  • Úkol: Zjistěte, zda je problém v kódu nebo prostředí.
  • Akce:

    • Analyzujte protokoly CI.
    • Nejprve spusťte kritickou kouřovou sadu.
    • Spolupracujte s vývojáři na opravě blokujících vad.
    • Zaznamenávejte nespolehlivé testy pro účely kontroly po vydání.
  • Výsledek: Včasné vydání s ověřenými kritickými toky a zároveň stabilizace automatizace v dalším sprintu.

Prokázané klíčové vlastnosti: Zodpovědnost, analytické myšlení, spolupráce a řízení rizik.

🔍 Nejčastější otázky na pohovoru pro SDET s reálnými scénáři a strategickými odpověďmi

1) Jak rozlišujete mezi rolí SDET a tradičního QA inženýra?

Očekává se od kandidáta: Tazatel chce posoudit vaše chápání role SDET a toho, jak se její rozsah blíží manuálnímu testování a zahrnuje i inženýrské a automatizační úkoly.

Příklad odpovědi: SDET se od tradičního QA inženýra liší silnějším zaměřením na dovednosti v oblasti vývoje softwaru. SDET je zodpovědný za návrh automatizačních frameworků, psaní testovacího kódu na produkční úrovni a integraci testování do životního cyklu vývoje. V mé předchozí roli jsem úzce spolupracoval s vývojáři, abych zajistil, že testovatelnost a kvalita jsou do aplikace zabudovány od samého začátku.


2) Jaké frameworky pro automatizaci testování jste navrhli nebo s nimiž jste pracovali a proč jste si je vybrali?

Očekává se od kandidáta: Tazatel hodnotí vaše praktické zkušenosti s automatizačními frameworky a vaši schopnost činit informovaná technická rozhodnutí.

Příklad odpovědi: Pracoval jsem s automatizačními frameworky řízenými daty i chováním. Na předchozí pozici jsem zvolil modulární framework, protože zlepšoval údržbu a umožňoval paralelní provádění testů. Volba byla dána rozsahem projektu, dovednostmi týmu a potřebou snadné integrace s kontinuálními integračními kanály.


3) Jak zajišťujete, aby automatizace testování zůstala v průběhu času stabilní a udržovatelná?

Očekává se od kandidáta: Chtějí pochopit váš přístup k dlouhodobému stavu automatizace a správě technického dluhu.

Příklad odpovědi: Stabilitu zajišťuji dodržováním principů čistého kódu, implementací správného ošetření chyb a pravidelným refaktorováním testovacích skriptů. V mém předchozím zaměstnání jsem zavedl kontroly kódu pro automatizaci a přidal podrobné protokolování, což výrazně snížilo počet nespolehlivých testů a zlepšilo efektivitu ladění.


4) Popište situaci, kdy jste objevili kritickou chybu v závěru vydavatelského cyklu. Jak jste ji vyřešili?

Očekává se od kandidáta: Tato otázka testuje vaše dovednosti v řešení problémů, komunikaci a schopnost zvládat stresující situace.

Příklad odpovědi: V mé poslední roli jsem těsně před vydáním identifikoval kritický problém s výkonem. Riziko jsem okamžitě informoval zainteresované strany, poskytl jasné kroky pro reprodukci a spolupracoval s vývojáři na ověření opravy. Upřednostněním transparentnosti a spolupráce jsme se vyhnuli vydání chybné funkce.


5) Jak se rozhoduje, které testovací případy by měly být automatizované a které ručně testované?

Očekává se od kandidáta: Tazatel chce vidět vaše strategické myšlení a pochopení optimalizace testů.

Příklad odpovědi: Automatizaci upřednostňuji pro repetitivní, vysoce rizikové a regresní testovací případy. Manuální testování je vhodnější pro průzkumné a použitelné scénáře. Tento vyvážený přístup zajišťuje efektivní pokrytí a zároveň maximalizuje hodnotu automatizačních úsilí.


6) Jak integrujete testování do procesu kontinuální integrace a kontinuálního dodávání?

Očekává se od kandidáta: Posuzují vaše zkušenosti s postupy DevOps a vyspělostí automatizace.

Příklad odpovědi: Do pipeline integruji automatizované testy, aby běžely při každém potvrzení kódu a nasazení. Kouřové testy se spouštějí brzy, v pozdějších fázích následují regresní sady. To zajišťuje rychlou zpětnou vazbu a pomáhá odhalit defekty co nejdříve.


7) Řekněte mi o situaci, kdy jste museli vydání odložit kvůli obavám o kvalitu.

Očekává se od kandidáta: Toto hodnotí váš úsudek, komunikační dovednosti a závazek ke kvalitě.

Příklad odpovědi: Jednou jsem si všiml nevyřešených závažných vad, které představovaly riziko pro uživatele. Vedení jsem prezentoval jasná data a výsledky testů a vysvětlil potenciální dopad. Zaměřením se na fakta spíše než na názory jsem dokázal ovlivnit rozhodnutí o odložení vydání.


8) Jak zvládáte krátké termíny, když automatizační úkoly nejsou dokončeny?

Očekává se od kandidáta: Tazatel chce pochopit vaše priority a přizpůsobivost pod tlakem.

Příklad odpovědi: Zaměřuji se nejprve na automatizaci nejkritičtějších cest a sděluji realistická očekávání. V případě potřeby automatizaci doplňuji cíleným manuálním testováním. Tento přístup zajišťuje pokrytí bez kompromisů v dodacích lhůtách.


9) Jaké metriky používáte k měření efektivity testování?

Očekává se od kandidáta: Chtějí vědět, jak kvantifikujete kvalitu a traczlepšení K.

Příklad odpovědi: Používám metriky, jako je únik defektů, pokrytí automatizací, doba provádění testů a trendy selhání. Tyto metriky pomáhají identifikovat mezery v testování a vést iniciativy pro neustálé zlepšování.


10) Jak si jako SDET udržujete aktuální dovednosti?

Očekává se od kandidáta: Tazatel hodnotí váš závazek k neustálému vzdělávání v rychle se rozvíjejícím oboru.

Příklad odpovědi: Pravidelně studuji nové testovací nástroje, programátorské postupy a trendy v oboru prostřednictvím technických blogů, online kurzů a praktického experimentování. Udržování aktuálního stavu mi umožňuje přinášet do mého týmu moderní a efektivní testovací postupy.

Shrňte tento příspěvek takto: