Top 50 TestNG Interjúkérdések és válaszok (2026)

Felkészülés a TestNG interjú? Ideje átgondolni azokat a kérdéseket, amelyek az erősségeidet mutatják. Egy szilárd TestNG Az interjú alapjai feltárják a mélységet, a magabiztosságot és a felkészültséget, amelyet a toborzó csapatok értékelnek.
A lehetőségek ezen a területen kiterjednek az automatizálás növekedésére, a fejlődő keretrendszerekre és a gyakorlati tesztelési alkalmazásokra, amelyek technikai és szakmai tapasztalatot igényelnek. A terepen végzett munka szakértelmet, elemzőkészséget és rugalmas készségeket igényel, amelyek segítenek a pályakezdőknek, a középszintű és a tapasztalt szakembereknek megválaszolni a leggyakoribb kérdéseket és válaszokat technikai, alap- és haladó szinten. Olvass tovább…
👉 Ingyenes PDF letöltés: TestNG Interjú kérdések és válaszok
Csúcs TestNG Interjú kérdések és válaszok
1) Mi az TestNG és miért használják az automatizált tesztelésben?
TestNG (Test Next Generation) egy tesztelési keretrendszer, amelyet a JUnit és az NUnit, de olyan fejlett képességekkel bővítve, mint a csoportosítás, a szekvenálás, a paraméterezés és a függőségkezelés. Elsősorban automatizált tesztelésben használják a tesztek végrehajtásának egyszerűsítésére, a tesztek szervezésének javítására, valamint részletes HTML és XML jelentések generálására.
Legfontosabb előnyei TestNG következők:
- Támogatja párhuzamos tesztfuttatás, csökkentve a teljes futási időt.
- Biztosítja annotációk amelyek hatékonyan szabályozzák a tesztfolyamatot.
- Ajánlatok adatvezérelt tesztelés keresztül a
@DataProviderkommentár. - generál személyre szabható jelentések a jobb hibakeresés érdekében.
Például, TestNG lehetővé teszi a füst-, regressziós és integrációs tesztcsoportok független végrehajtását a tesztkód módosítása nélkül, rugalmasságot és skálázhatóságot biztosítva nagy automatizálási csomagokban.
2) Magyarázza el a TestNG életciklus annotációkkal és azok végrehajtási sorrendjével.
A TestNG Az életciklus meghatározza a tesztek inicializálásának, végrehajtásának és leállításának módját. Ezt a tesztfolyamat struktúráját és átláthatóságát biztosító annotációk szabályozzák.
| Jegyzet | Leírás | Végrehajtási parancs |
|---|---|---|
@BeforeSuite |
A csomag összes tesztje előtt lefut | 1 |
@BeforeTest |
Végrehajtás előtt <test> címke XML-ben |
2 |
@BeforeClass |
Az aktuális osztály első metódusa előtt fut. | 3 |
@BeforeMethod |
Minden vizsgálati módszer előtt végrehajtódik | 4 |
@Test |
Valódi tesztlogikát tartalmaz | 5 |
@AfterMethod |
Minden tesztmetódus után lefut | 6 |
@AfterClass |
Az osztály összes metódusa után lefut | 7 |
@AfterTest |
Fut utána <test> címke XML-ben |
8 |
@AfterSuite |
A programcsomag összes tesztje után végrehajtódik | 9 |
Ez a strukturált sorrend biztosítja a tesztek kiszámítható beállítását és lebontását, ami kulcsfontosságú a tesztek függetlenségének megőrzése érdekében.
3) Hogy van TestNG eltér JUnit?
Bár mindkét keretrendszert egységtesztelésre használják, TestNG robusztusabb konfigurációs és párhuzamos végrehajtási képességeket biztosít.
| Funkció | JUnit | TestNG |
|---|---|---|
| Párhuzamos végrehajtás | Korlátozott támogatás | Teljes támogatás |
| Magyarázatok | Kevesebb (@Before, @After) |
Gazdagabb (@BeforeSuite, @DataProvider) |
| Függőségkezelés | Nem érhető el | Elérhető a következő használatával: dependsOnMethods |
| Csoportosítás | Nem támogatott | Támogatott használat groups |
| Paraméterezés | Külső futókon keresztül | Beépített XML-en keresztül vagy @DataProvider |
Összefoglalva, TestNG a vállalati szintű automatizálási tesztelés és integráció olyan eszközökkel, mint Selenium, miközben JUnit ideális az egyszerűbb egységtesztekhez.
4) Mik azok TestNG annotációk és miért hasznosak?
Megjegyzések be TestNG meghatározott a tesztmódszerek szerkezete és viselkedéseKiküszöbölik a komplex XML konfiguráció szükségességét azáltal, hogy közvetlenül a kódban biztosítanak deklaratív tesztvezérlést.
A gyakran használt annotációk a következők:
@BeforeSuite,@BeforeTest,@BeforeClass,@BeforeMethod@Test@AfterMethod,@AfterClass,@AfterTest,@AfterSuite
Példa:
@BeforeMethod
public void setup() {
System.out.println("Initializing browser...");
}
@Test
public void verifyLogin() {
System.out.println("Executing login test...");
}
Ez segít a fejlesztőknek logikusan megszervezni a tesztek végrehajtását, biztosítva, hogy a beállítás, a teszt végrehajtása és a lebontása meghatározott sorrendben történjen.
5) Magyarázd el a csoportosítás fogalmát a TestNG.
Csoportosítás TestNG lehetővé teszi a tesztek logikus kategorizálását kisebb, kezelhetőbb halmazokba, például „Füst”, „Regresszió” vagy „Észszerűség”.
Példa:
@Test(groups = {"Smoke"})
public void loginTest() { ... }
@Test(groups = {"Regression"})
public void paymentTest() { ... }
Az XML csomagot úgy is beállíthatja, hogy meghatározott csoportokat futtasson:
<groups>
<run>
<include name="Smoke"/>
</run>
</groups>
Előnyök:
- Lehetővé teszi a tesztesetek szelektív végrehajtását.
- Növeli a rugalmasságot a CI/CD folyamatokban.
- Végrehajtási időt takarít meg az inkrementális buildek során.
6) Hogyan érhető el a paraméterezés a TestNG?
A paraméterezés lehetővé teszi az adatvezérelt tesztelést, így a tesztek több bemeneti adathalmazzal futtathatók. TestNG két fő módszert támogat:
- <p></p>
@ParametersXML-lel ellátott annotáció: - <p></p>
@DataProvider:
<parameter name="browser" value="chrome"/>
@Test
@Parameters("browser")
public void launchBrowser(String browser) { ... }
@DataProvider(name="loginData")
public Object[][] getData() {
return new Object[][] {{"user1","pass1"}, {"user2","pass2"}};
}
@Test(dataProvider="loginData")
public void loginTest(String user, String pass) { ... }
Ez a rugalmasság megkönnyíti a nagyméretű tesztkészletek karbantartását és végrehajtását különböző környezetekben vagy konfigurációkban.
7) Mik a függőségek a TestNG és hogyan menedzselik őket?
Függőségek be TestNG a teszt végrehajtásának sorrendjét más teszteredmények alapján szabályozza a dependsOnMethods or dependsOnGroups attribútumok.
Példa:
@Test
public void loginTest() { ... }
@Test(dependsOnMethods = {"loginTest"})
public void verifyDashboard() { ... }
Ha a függő metódus sikertelen, a következő teszt automatikusan kimarad.
Ez a mechanizmus megakadályozza az érvénytelen tesztfuttatást és segít fenntartani logikai teszt integritásaKülönösen hasznos többlépéses funkcionális folyamatoknál, mint például a bejelentkezés → művelet végrehajtása → eredmény ellenőrzése.
8) Milyen végrehajtási módok léteznek? TestNG tesztek?
TestNG A tesztek többféleképpen is végrehajthatók a tesztelési beállításoktól függően:
- IDE-ből (Eclipse/IntelliJ): Kattintson jobb gombbal az osztályra, vagy
XML file→Run as→TestNG Test. - Parancssorból:
java -cp "path\testng.jar;bin" org.testng.TestNG testng.xml - Építőeszközök használata:
- Maven: konfigurálása
surefire-plugininpom.xml. - Gradle: Felhasználás
testngfüggőség és feladatkonfiguráció.
- Maven: konfigurálása
- CI/CD csővezetékeken keresztül: Jenkins vagy GitHub Actions funkciókkal integrálva az automatizált végrehajtáshoz.
Ez a változatosság biztosítja a kompatibilitást a fejlesztési, tesztelési és termelési környezetek között.
9) Mik azok TestNG hallgatók és miért fontosak?
Hallgatók be TestNG hookokat biztosítanak a tesztviselkedés testreszabásához a tesztvégrehajtási események, például az indítás, a siker, a hiba vagy a kihagyás monitorozásával.
Gyakori hallgatók:
ITestListener: Tesztmetódus szintű eseményeket követ nyomon.ISuiteListener: Lakosztályszintű eseményeket figyel meg.IReporter: Egyéni jelentéseket generál.
Példa:
public class CustomListener implements ITestListener {
public void onTestFailure(ITestResult result) {
System.out.println("Test Failed: " + result.getName());
}
}
A hallgatókat gyakran használják a felvételre képernyőképek a kudarcról, generáló egyéni naplókvagy jelentéskészítő eszközökkel való integráció mint az Allure vagy az ExtentReports.
10) Milyen előnyei és hátrányai vannak a használatának? TestNG?
| Aspect | Előnyök | Hátrányok |
|---|---|---|
| Rugalmas | Támogatja a csoportosítást, a függőségeket és a párhuzamos végrehajtást | Komplex XML beállítás nagyméretű csomagokhoz |
| Beépített reporting | Részletes HTML és XML jelentéseket biztosít | Korlátozott testreszabás figyelők nélkül |
| Integráció | Zökkenőmentesen működik együtt Selenium és CI/CD eszközök | Kicsit magasabb tanulási görbe |
| Paraméterezés | Beépített támogatás az adatvezérelt teszteléshez | Nagy adathalmazok karbantartást igényelnek |
Összességében, TestNG egy robusztus és rugalmas keretrendszer, amely a modern automatizált tesztelési környezetekhez alkalmas, a csekély konfigurációs terhelés ellenére is.
11) Hogyan lehet rangsorolni a teszteseteket a TestNG?
TestNG biztosítja a priority attribútum a @Test annotáció a tesztmetódusok végrehajtási sorrendjének meghatározásához. Az alacsonyabb prioritású tesztek futnak először.
Példa:
@Test(priority = 1)
public void loginTest() { ... }
@Test(priority = 2)
public void dashboardTest() { ... }
Ha nincs megadva prioritás, az alapértelmezett érték a 0, és a metódusok ábécé sorrendben futnak.
Legjobb gyakorlat: A prioritási értékeket takarékosan használja. A túlzott használatuk merevvé teheti a tesztek sorrendjét. Összetett folyamatok esetén a függőségkezelés (dependsOnMethods) könnyebben karbantartható, mint a szigorú priorizálás.
12) Magyarázza el a párhuzamos végrehajtás fogalmát és használatát a TestNG.
Párhuzamos végrehajtás TestNG lehetővé teszi több teszt, osztály vagy metódus egyidejű futtatását, jelentősen csökkentve ezzel a teljes végrehajtási időt.
Ezt a funkciót engedélyezheti a testng.xml file:
<suite name="ParallelSuite" parallel="tests" thread-count="3"> <test name="Test1">...</test> <test name="Test2">...</test> </suite>
Támogatott párhuzamos módok:
testsclassesmethodsinstances
Előnyök:
- Gyorsabb visszacsatolási ciklus.
- A többmagos processzorok hatékony kihasználása.
- Skálázhatóság nagy automatizálási csomagokhoz.
Azonban biztosítsa menetbiztonság megosztott erőforrások, például WebDriver vagy adatbázis-kapcsolatok használatakor.
13) Mik az adatszolgáltatók a TestNGMiben különböznek a paraméterektől?
@DataProvider lehetővé teszi adatvezérelt tesztelés a tesztmódszerek több adatkészlettel történő ellátásával.
Példa:
@DataProvider(name="credentials")
public Object[][] data() {
return new Object[][] {{"user1", "pass1"}, {"user2", "pass2"}};
}
@Test(dataProvider="credentials")
public void login(String username, String password) { ... }
A @Parameters és a @DataProvider közötti különbség:
| Funkció | @Parameters |
@DataProvider |
|---|---|---|
| Adatforrás | XML fájl | Java módszer |
| Adattípus | Egyetlen adathalmaz | Több adathalmaz |
| Rugalmas | Less | Magas |
| Használja az ügyet | Környezeti változók | Ismételt adatvezérelt tesztek |
Ennélfogva, @DataProvider akkor ajánlott, ha egyetlen tesztet futtat több adathalmazzal, például több hitelesítő adattal történő bejelentkezés ellenőrzésekor.
14) Hogyan lehet letiltani vagy kihagyni egy tesztet a TestNG?
Letilthatja a tesztet a TestNG használatával enabled attribútum, vagy programozottan kihagyva azt.
1. használata enabled = false:
@Test(enabled = false)
public void skipTest() {
System.out.println("This test will not run.");
}
2. Kihagyás futásidőben a következő használatával: SkipException:
@Test
public void conditionalSkip() {
throw new SkipException("Skipping this test due to condition.");
}
A letiltás hasznos a következőkhöz ideiglenes deaktiválás instabil vagy hiányos teszteket törölni kell. A kihagyás hasznos lehet futásidejű feltételek, például a nem támogatott böngészők tesztjeinek kihagyása.
15) Mi a testng.xml fájl szerepe és melyek a fő összetevői?
A testng.xml a fájl a konfigurációs gerince TestNGMeghatározza a tesztkészleteket, tesztcsoportokat, paramétereket és a párhuzamos végrehajtási beállításokat.
Szerkezeti példa:
<suite name="AutomationSuite">
<parameter name="browser" value="chrome"/>
<test name="RegressionTests">
<classes>
<class name="com.test.LoginTest"/>
<class name="com.test.PaymentTest"/>
</classes>
</test>
</suite>
Fő összetevők:
<suite>– Meghatározza a teljes lakosztályt.<test>– Egy tesztblokkot jelöl.<classes>– Felsorolja a tesztosztályokat.<methods>– Szűri a specifikus vizsgálati módszereket.<parameter>– Globális vagy teszt szintű paramétereket biztosít.
Az XML fájl biztosítja központosított vezérlés túlfuttatás a kód megváltoztatása nélkül.
16) Hogyan lehet jelentéseket generálni a TestNG?
TestNG automatikusan generál kétféle jelentés:
- HTML-jelentés (
test-output/index.html) – Összefoglalja a sikeres, sikertelen és kihagyott teszteket. - XML-jelentés – CI/CD eszközökkel való integrációhoz használatos.
Speciális jelentéskészítéshez TestNG integrálható:
- ExtentReports – Grafikus műszerfalakat és részletes naplókat kínál.
- Allure jelentések – Vizuális elemzéseket biztosít tesztlépésekkel, képernyőképekkel és naplókkal.
Példa integráció:
ExtentReports extent = new ExtentReports();
ExtentTest test = extent.createTest("Login Test");
test.pass("Test Passed Successfully");
extent.flush();
Ezek a jelentések elengedhetetlenek a trendek nyomon követéséhez és a tesztek lefedettségének gyenge pontjainak azonosításához.
17) Melyek a gyárak? TestNG, és hogyan működnek?
Gyárak itt: TestNG létrehozására szolgálnak tesztosztályok dinamikus példányaiLehetővé teszik az osztályok paraméteres példányosítását a tesztek futtatása előtt.
Példa:
public class FactoryExample {
private String browser;
public FactoryExample(String browser) {
this.browser = browser;
}
@Factory
public static Object[] factoryMethod() {
return new Object[] { new FactoryExample("Chrome"), new FactoryExample("Firefox") };
}
@Test
public void testBrowser() {
System.out.println("Running test on: " + browser);
}
}
Előnyök:
- lehetővé teszi a paraméterezett objektum létrehozása.
- Ideális böngészők közötti tesztelés és a több környezetű végrehajtás.
A gyárak kiegészítik az adatszolgáltatókat, amikor különböző objektumkonfigurációkra van szükség, nem csak metódus szintű adatvariációkra.
18) Hogyan használhatsz állításokat a TestNG?
Az állításokat a tesztmódszereken belüli várt és tényleges eredmények validálására használják.
Az állítások típusai:
- Kemény állítások (Assert osztály):
Hiba esetén azonnal leállítja a teszt végrehajtását. - Lágy állítások (SoftAssert osztály):
A végrehajtást hiba után is folytatja, és a végén jelenti az összes problémát. - Mikor kell használni:
- Használjon kemény állításokat a következőkhöz: kritikus validáció mint a sikeres bejelentkezés.
- Használjon lágy állításokat a következőkhöz: többszörös ellenőrzések egyetlen vizsgálati módszeren belül.
Assert.assertEquals(actual, expected); Assert.assertTrue(condition);
SoftAssert soft = new SoftAssert();
soft.assertEquals(actual, expected);
soft.assertAll();
19) Magyarázd el a különbséget a @BeforeMethod és a @BeforeClass között a következőben: TestNG.
| Aspect | @BeforeMethod |
@BeforeClass |
|---|---|---|
| Végrehajtás | Runs minden előtt teszt módszer | Runs egyszer korábban bármelyik metódus az osztályban |
| Kör | Vizsgálati módszer szerint | Tesztosztályonként |
| Közös használatú | A böngésző inicializálása minden teszt előtt | Konfiguráció vagy böngészőbeállítás betöltése egyszer |
Példa:
@BeforeClass
public void setupClass() {
System.out.println("Executed once per class");
}
@BeforeMethod
public void setupMethod() {
System.out.println("Executed before each method");
}
Felhasználás @BeforeMethod amikor minden teszthez tiszta környezetre van szükség, és @BeforeClass újrafelhasználható, nehéz inicializálási feladatokhoz.
20) Hogyan TestNG támogatja a függőségbefecskendezést és milyen felhasználási esetei vannak?
TestNG támogatja függőségi injekció beépített kontextus- és konfigurációs objektumok befecskendezésével, például ITestContext, XmlTestvagy Method.
Példa:
@Test
public void testContextExample(ITestContext context) {
System.out.println("Suite Name: " + context.getSuite().getName());
}
Használási esetek:
- Tesztparaméterek dinamikus lekérése.
- Konfigurációs információk elérése, például csomagnevek vagy párhuzamos végrehajtási beállítások.
- A tesztek rugalmasságának növelése fix kódolású függőségek nélkül.
A függőségbefecskendezés lehetővé teszi a fejlesztők számára, hogy moduláris, kontextus-érzékeny tesztek írása amelyek dinamikusan alkalmazkodnak a környezeti változásokhoz.
21) Mi a különbség a @Factory és a @DataProvider között a következőben: TestNG?
Mindkét @Factory és a @DataProvider segítenek a paraméterezésben, de ezek a következő helyen működnek: különböző szinteken a tesztarchitektúrában.
| Funkció | @Factory |
@DataProvider |
|---|---|---|
| Kör | Osztály szinten | Módszerszint |
| Cél | Több példányt hoz létre egy osztályból különböző adatokkal | Egyetlen tesztmódszerhez szolgáltat adatokat |
| Végrehajtás | Végrehajtja a teljes osztályt minden egyes példánynál | Egy metódust többször végrehajt |
| Ideális használati tok | Böngészőközi vagy környezeti tesztelés | Adatvezérelt funkcionális tesztelés |
Példa:
- Gyár: A teljes osztályt böngészőtípusonként futtatja.
- Adatszolgáltató: Egy tesztmetódust futtat több adathalmazzal.
Felhasználás @Factory amikor maga az objektum példányosítása változik, és @DataProvider funkcionális bemeneti variációhoz ugyanazon objektumpéldányon belül.
22) Hogyan lehet automatikusan újrapróbálkozni a sikertelen tesztesetekkel? TestNG?
TestNG mechanizmust biztosít sikertelen tesztesetek újrafuttatását használatával IRetryAnalyzer felület.
Példa megvalósítás:
public class RetryAnalyzer implements IRetryAnalyzer {
int count = 0;
int maxTry = 2;
public boolean retry(ITestResult result) {
if (count < maxTry) {
count++;
return true;
}
return false;
}
}
Használat:
@Test(retryAnalyzer = RetryAnalyzer.class)
public void testLogin() {
Assert.fail("Intentional Failure");
}
Előnyök:
- Csökkenti a CI csővezetékek peremeződését.
- Kezeli az átmeneti hálózati vagy környezeti problémákat.
Legjobb gyakorlat: Az újrapróbálkozási logikát megfelelő naplózással és képernyőképekkel kombinálva hibakeresheti az időszakos hibákat.
23) Mire jó az ITestContext a következőben? TestNG?
ITestContext biztosít kontextuális információk a teszt futtatásáról, beleértve a csomag nevét, a teszt nevét, a kimeneti könyvtárat és a paramétereket.
Példa:
@Test
public void contextExample(ITestContext context) {
System.out.println("Suite: " + context.getSuite().getName());
}
Főbb módszerek:
getSuite()– Lakosztályszintű információkat kér le.getName()– Visszaadja a teszt nevét.setAttribute()/getAttribute()– Adatok megosztása a tesztek között.
Lehetővé teszi adatmegosztás tesztmetódusok vagy osztályok között és lehetővé teszi a dinamikus jelentéskészítést és naplózást.
24) Hogyan lehet függőséget létrehozni a tesztcsoportok között? TestNG?
Csoportok közötti függőségeket definiálhatsz a következő segítségével: dependsOnGroups attribútum a @Test kommentár.
Példa:
@Test(groups = "Login")
public void login() { ... }
@Test(dependsOnGroups = "Login")
public void verifyProfile() { ... }
Ez biztosítja, hogy a verifyProfile a csoport csak akkor fut le, ha az összes teszt benne van Login csoportos átmenés sikeresen.
Különösen hasznos a integrációs tesztelés, ahol a modulok mások sikeres végrehajtásától függenek (pl. bejelentkezés → profil → kijelentkezési folyamat).
25) Hogyan lehet bizonyos tesztmódszereket figyelmen kívül hagyni egy TestNG XML fájl?
Kifejezetten megteheted kizárási metódusok egy osztályon belül az XML csomagfájlban a következő használatával: <exclude> címkéket.
Példa:
<class name="com.test.LoginTests">
<methods>
<exclude name="verifyLogout"/>
</methods>
</class>
Ez lehetővé teszi a tesztelők számára, hogy bizonyos metódusok ideiglenes letiltása módosítása nélkül Java forráskód – hasznos nagyméretű csomagokban, ahol dinamikus beillesztésre vagy kizárásra van szükség a kiadási ciklusok vagy a sprint prioritásai alapján.
26) Hogyan lehet TestNG integrálható legyen Selenium WebDriver?
TestNG és a Selenium hatékony kombinációt alkotnak a felhasználói felület automatizálásához.
Egy tipikus integrációs beállítás magában foglalja a tesztek annotációk segítségével történő rendszerezését, a beállítás/lebontás kezelését, valamint a tesztek futtatását XML vagy CI eszközök segítségével.
Példa:
@BeforeMethod
public void setup() {
driver = new ChromeDriver();
}
@Test
public void verifyTitle() {
driver.get("https://example.com");
Assert.assertEquals(driver.getTitle(), "Example Domain");
}
@AfterMethod
public void teardown() {
driver.quit();
}
Az integráció előnyei:
- lehetővé teszi a párhuzamos böngészőtesztelés.
- Egyszerűsíti tesztcsoportosítás és jelentéskészítés.
- Zökkenőmentesen működik együtt CI/CD csővezetékek mint például a Jenkins vagy a GitHub Actions.
27) Melyek a legjobb gyakorlatok a használat során? TestNG nagy automatizálási keretrendszerekben?
Legjobb Gyakorlatok:
- Felhasználás Descriptive elnevezés: A teszteket viselkedés, ne implementáció alapján nevezd el.
- Tőkeáttételi csoportosítás: Logikai tesztcsoportok létrehozása (Füst, Regresszió).
- Kerüld a fix kódolást: Használjon paramétereket vagy tulajdonságfájlokat a tesztadatokhoz.
- Függőségek minimalizálása: Ahol csak lehetséges, tartsuk a teszteseteket függetlenekként.
- Központosított konfiguráció: Felhasználás
testng.xmla lakosztály beállításához. - Jelentéskészítés integrálása: Használjon figyelőket vagy harmadik féltől származó eszközöket, például az ExtentReports-ot.
- Óvatosan használja az újrapróbálkozási logikát: Kerüld a valódi hibák elfedését.
Ezek betartása biztosítja skálázhatóság, karbantarthatóság és olvashatóság vállalati szintű automatizálásban.
28) Mi a különbség a @BeforeTest és a @BeforeSuite között a következőben: TestNG?
| Funkció | @BeforeTest |
@BeforeSuite |
|---|---|---|
| Kör | Minden egyes előtt lefut <test> címke XML-ben |
Egyszer fut le a teljes csomag előtt |
| Frekvencia | Többször is (ha többször is <test> blokkok) |
Lakosztályonként csak egyszer |
| Közös használatú | Tesztszintű konfiguráció inicializálása | Globális erőforrások beállítása |
Példa:
@BeforeSuite
public void setupSuite() {
System.out.println("Global setup for suite.");
}
@BeforeTest
public void setupTest() {
System.out.println("Setup for each <test> tag.");
}
Felhasználás @BeforeSuite mert globális konfigurációk (pl. adatbázis-kapcsolat) és @BeforeTest mert teszt-specifikus inicializálások.
29) Lehet TestNG API tesztelésre használható? Hogyan?
Igen. TestNG hatékonyan használható API tesztelés HTTP klienskönyvtárakkal való integrációval, mint például Biztosított pihenés or HttpClient.
Példa:
@Test
public void verifyApiResponse() {
Response response = RestAssured.get("https://api.example.com/users");
Assert.assertEquals(response.getStatusCode(), 200);
}
Előnyök:
- lehetővé teszi a állításalapú validáció a válaszok közül.
- Támogatja paraméterezés és a adatvezérelt tesztelés több végpont esetén.
- generál strukturált jelentések REST API-érvényesítésekhez.
Kombinálásával TestNG és a RestAssured segítségével a tesztelők egységes automatizálási keretrendszert tarthatnak fenn mind a felhasználói felület, mind az API teszteléshez.
30) Hogyan adhatsz át paramétereket a parancssorból? TestNG?
Futásidőben felülírhatja az XML paramétereket rendszertulajdonságok átadásával a következő használatával: -D zászló.
Parancs példa:
mvn test -Dbrowser=chrome -Denv=staging
Példa a kódra:
@Parameters("browser")
@Test
public void launch(@Optional("firefox") String browser) {
System.out.println("Running on: " + browser);
}
Ez lehetővé teszi dinamikus környezetválasztás CI/CD folyamatokban a konfigurációs fájlok módosítása nélkül, növelve a tesztelés rugalmasságát.
31) Hogyan szabályozhatod a tesztek végrehajtási sorrendjét a TestNG prioritások használata nélkül?
Használat helyett priority, TestNG lehetővé teszi az irányítást függőségek és a XML metódusok sorrendje.
Módszerek:
- <p></p>
dependsOnMethods: - XML metódussorozat használata:
@Test
public void login() { ... }
@Test(dependsOnMethods = "login")
public void verifyDashboard() { ... }
<classes>
<class name="com.test.LoginTests">
<methods>
<include name="login"/>
<include name="verifyDashboard"/>
</methods>
</class>
</classes>
Legjobb gyakorlat: Komplex folyamatok esetén a logikai függőségeket részesítsük előnyben a statikus prioritások helyett, biztosítva a robusztus és karbantartható tesztkészleteket.
32) Hogyan lehet parancssorból futtatni bizonyos tesztmetódusokat a ...-ban/-ben? TestNG?
TestNG lehetővé teszi, hogy metódus szintű teszt végrehajtása közvetlenül a parancssorból XML vagy Maven Surefire konfigurációk használatával.
1. lehetőség: XML fájl használata
<class name="com.test.LoginTests">
<methods>
<include name="verifyLogin"/>
</methods>
</class>
2. lehetőség: Maven parancs
mvn test -Dtest=com.test.LoginTests#verifyLogin
Ez a megközelítés lehetővé teszi szelektív végrehajtás, hasznos az egyes metódusok hibakereséséhez vagy a kritikus funkciók validálásához gyors buildek során.
33) Hogyan paraméterezhetők a tesztek egy külső Excel fájl használatával? TestNG?
Az Excel-vezérelt paraméterezés gyakori az adatvezérelt keretrendszerekben, ahol a tesztadatok gyakran változnak.
A megvalósítás lépései:
- Felhasználás Apache POI or JExcel Excel adatok beolvasásához.
- Tápláld bele egy
@DataProvidermódszer.
Példa:
@DataProvider(name = "excelData")
public Object[][] readExcel() throws Exception {
FileInputStream fis = new FileInputStream("data.xlsx");
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet sheet = wb.getSheetAt(0);
Object[][] data = new Object[sheet.getLastRowNum()][2];
for (int i = 0; i < sheet.getLastRowNum(); i++) {
data[i][0] = sheet.getRow(i + 1).getCell(0).getStringCellValue();
data[i][1] = sheet.getRow(i + 1).getCell(1).getStringCellValue();
}
return data;
}
Ez lehetővé teszi ugyanazon tesztmódszer futtatását több, Excelből származó valós adathalmazzal, növelve a rugalmasságot és a lefedettséget.
34) Hogyan tudsz futni? TestNG tesztek Jenkins vagy CI/CD folyamatokban?
TestNG zökkenőmentesen integrálható Jenkins, GitLab CIvagy GitHub-műveletek Maven-en keresztül vagy Gradle épít.
Lépések Jenkinsben:
- Telepítés Maven integrációs bővítmény.
- Hozzon létre egy Freestyle vagy Pipeline munka.
- hozzáad
mvn clean testépítési lépésként. - HTML-jelentések konfigurálása a build után:
- Jelentéskönyvtár:
test-output - Indexfájl:
index.html
- Jelentéskönyvtár:
Előnyök:
- Lehetővé teszi az automatizált regressziós tesztelést.
- Ütemezett teszteket és trendkövetést biztosít.
- Biztosítja a tesztek következetes végrehajtását a különböző környezetekben.
35) Mi a @Parameters célja, és miben különbözik az @Optional-tól?
Mindkét annotáció paraméterezéssel foglalkozik, de eltérő célokat szolgál.
| Funkció | @Parameters |
@Optional |
|---|---|---|
| Cél | Paramétereket ad át XML fájlból | Alapértelmezett értéket ad meg, ha a paraméter hiányzik |
| Nyilatkozat | XML-lel együtt használva <parameter> |
Belső vizsgálati módszerrel használható |
| Viselkedés | Hibát dob, ha hiányzik az érték | Tartalék értéket használ |
Példa:
@Test
@Parameters("browser")
public void runTest(@Optional("chrome") String browser) {
System.out.println("Running on: " + browser);
}
<p></p>
@Optional biztosítja tesztelje a stabilitást amikor az XML konfigurációk hiányosak.
36) Hogyan kezeled a tesztfüggőségeket a különböző osztályok között a? TestNG?
Osztályok közötti függőségek létrehozásához TestNG lehetővé teszi a használatát dependsOnGroups tulajdonság.
Példa:
@Test(groups = "Login")
public void loginTest() { ... }
@Test(groups = "Dashboard", dependsOnGroups = "Login")
public void dashboardTest() { ... }
Ez a megközelítés segít kezelni többmodulos függőségek ahol minden osztály egy modult jelöl (Bejelentkezés, Irányítópult, Fizetés stb.).
Biztosítja, hogy a függő modulok csak akkor futnak le, ha az előfeltételként szolgáló tesztek sikeresek, megőrizve a teszt integritását.
37) Mik a konfigurációs hibák a TestNG, és hogyan lehet őket kezelni?
Konfigurációs hibák akkor fordulnak elő, ha a beállítási vagy lebontási metódusok a következővel vannak feljegyezve: @Before* or @After* nem.
Ezek okozhatnak kihagyandó függő tesztekmég akkor is, ha ezek a tesztek helyesek.
Közös okok:
- Helytelen WebDriver inicializálás.
- Adatbázis- vagy környezetbeállítási problémák.
- Paraméterhiba.
Megoldások:
- Felhasználás próbáld elkapni blokkok a beállítási metódusokban.
- Jelentkezem
alwaysRun = truehogy a tisztítás a hibák ellenére is működjön.
Példa:
@BeforeMethod(alwaysRun = true)
public void setup() {
// Setup logic
}
Ez biztosítja, hogy a szétszerelési metódusok továbbra is futnak, megőrizve a tesztkörnyezet stabilitását.
38) Mire jók az invocationCount és threadPoolSize attribútumok a következőben: TestNG?
Ezek a tulajdonságok lehetővé teszik ismételt és párhuzamos tesztfuttatás ugyanazon módszerrel.
Példa:
@Test(invocationCount = 5, threadPoolSize = 2)
public void loadTest() {
System.out.println("Running load test...");
}
| Attribútum | Leírás |
|---|---|
invocationCount |
Egy metódus futtatásainak száma |
threadPoolSize |
Egyidejű szálak száma |
Felhasználási eset: Teljesítménytesztelés, stabilitás-ellenőrzés vagy egyenetlen viselkedés reprodukálása több futtatás során.
39) Hogyan lehet csak sikertelen teszteseteket futtatni? TestNG?
Egy lakosztályos kirándulás után, TestNG létrehoz egy nevű fájlt testng-failed.xml a test-output könyvtárban.
Csak a sikertelen teszteket futtathatod újra a következő paranccsal:
java -cp testng.jar org.testng.TestNG test-output/testng-failed.xml
Előnyök:
- Időt takarít meg a sikeres tesztek kihagyásával.
- Megkönnyíti a hibakeresést nagyméretű csomagokban.
- Gyakran használják CI csővezetékekben gyors újrateszteléshez.
Ezt a Jenkins-szel is integrálhatod egy utólagos felépítésű szkript segítségével az újrafuttatásokhoz.
40) Milyen korlátai vannak a TestNG és hogyan lehetne ezeket enyhíteni?
Robusztussága ellenére, TestNG van néhány korlátozása.
| Korlátozás | Mérséklési stratégia |
|---|---|
| XML konfiguráció bonyolultsága | Használjon annotációalapú konfigurációt és építőket |
| Korlátozott natív jelentéskészítés | ExtentReports vagy Allure integrálása |
| Nincs beépített újrapróbálkozási vezérlés | végrehajtja IRetryAnalyzer |
| Szálbiztonsági aggályok párhuzamos futtatások során | Szál-lokális WebDriver példányok használata |
| Tanulási görbe kezdőknek | Sablon alapú projektstruktúrák fenntartása |
Megfelelő keretrendszer-tervezéssel és a legjobb gyakorlatok betartásával ezek a korlátozások minimalizálhatók, biztosítva a stabil és karbantartható automatizálási megoldásokat.
41) Hogyan használod a figyelőket naplózáshoz és képernyőképek rögzítéséhez? Selenium-TestNG?
Hallgatók be TestNG segítenek a tesztek végrehajtásának monitorozásában és olyan műveletek végrehajtásában, mint a naplózás, képernyőképek készítése vagy az eredmények dinamikus jelentése.
Példa megvalósítás:
public class ScreenshotListener implements ITestListener {
@Override
public void onTestFailure(ITestResult result) {
WebDriver driver = ((BaseTest) result.getInstance()).getDriver();
File src = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(src, new File("screenshots/" + result.getName() + ".png"));
}
}
Használat:
@Listeners(ScreenshotListener.class)
public class LoginTests extends BaseTest { ... }
Előnyök:
- Automatikusan rögzíti a hibákat.
- Javítja a hibakeresést vizuális bizonyítékokon keresztül.
- Csökkenti a naplók karbantartásával járó manuális erőfeszítést.
Ez a technika kulcsfontosságú a CI/CD automatizálási folyamatokban, különösen a sikertelen buildek távoli diagnosztizálásakor.
42) Mi a különbség az IReporter és az ITestListener között a? TestNG?
| Funkció | IReporter |
ITestListener |
|---|---|---|
| Cél | Egyéni jelentéseket generál a teszt végrehajtása után | Követi és reagál a futásidejű teszteseményekre |
| könyörgés | Miután minden teszt elvégezve | A teszt életciklusa alatt (kezdés, siker, kudarc) |
| teljesítmény | HTML/XML/JSON jelentések | Naplófájlok, képernyőképek, élő dashboardok |
| Közös használatú | ExtentReports, Allure integráció | Naplózás, hibakezelés, újrapróbálkozási mechanizmusok |
Példa:
- Felhasználás
IReporterépítéshez átfogó jelentések a teszt befejezése után. - Felhasználás
ITestListenermert valós idejű naplózás vagy képernyőképek.
Azok is lehetnek kombinált végponttól végpontig terjedő automatizálási elemzőrendszerek kiépítéséhez.
43) Hogyan végez böngészőfüggetlen tesztelést a következő használatával: TestNG XML konfiguráció?
A böngészők közötti tesztelés biztosítja, hogy ugyanaz a funkció működjön a különböző böngészőkben.
Példa konfigurációra:
<suite name="CrossBrowserSuite" parallel="tests">
<test name="ChromeTest">
<parameter name="browser" value="chrome"/>
<classes><class name="com.test.LoginTest"/></classes>
</test>
<test name="FirefoxTest">
<parameter name="browser" value="firefox"/>
<classes><class name="com.test.LoginTest"/></classes>
</test>
</suite>
Java Kód:
@Parameters("browser")
@BeforeClass
public void setup(String browser) {
if(browser.equalsIgnoreCase("chrome"))
driver = new ChromeDriver();
else if(browser.equalsIgnoreCase("firefox"))
driver = new FirefoxDriver();
}
Ez a megközelítés lehetővé teszi párhuzamos, több böngészős végrehajtás, felgyorsítva a tesztelés lefedettségét a platformok között.
44) Hogyan integrálsz? TestNG Dockerrel vagy Selenium Rács?
TestNG zökkenőmentesen integrálható Dockerizált Selenium Rács elosztott párhuzamos tesztelés lehetővé tétele érdekében.
Lépések:
- Beállítása Selenium Rács a Dockerben a tisztviselőt használva Selenium kép:
docker run -d -p 4444:4444 --name selenium-grid selenium/standalone-chrome
- Frissítések TestNG beállítás:
- Hajtsa végre a csomagját Jenkins vagy CI pipeline segítségével.
DesiredCapabilities caps = new DesiredCapabilities();
caps.setBrowserName("chrome");
driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), caps);
Előnyök:
- lehetővé teszi a skálázható párhuzamos tesztelés.
- Csökkenti a környezet beállításának többletköltségeit.
- Biztosítja következetes tesztvégrehajtás elosztott konténerek között.
45) Mi a különbség a párhuzamos végrehajtás között csomag-, teszt- és metódusszinten a TestNG?
| Szintek | Párhuzamos attribútum | Végrehajtási viselkedés |
|---|---|---|
| Suite | parallel="suites" |
Több csomagot hajt végre egyszerre |
| Tesztelés | parallel="tests" |
Runs <test> blokkolja egyszerre |
| Osztály | parallel="classes" |
Párhuzamosan futtatja a tesztosztályokat |
| Módszer | parallel="methods" |
Párhuzamosan hajtja végre az egyes tesztmetódusokat |
Példa:
<suite name="ParallelTests" parallel="methods" thread-count="3">
<test name="SampleTest">
<classes><class name="com.test.ParallelExample"/></classes>
</test>
</suite>
Legjobb gyakorlat:Felhasználás parallel="classes" a stabilitás érdekében Selenium tesztek a megosztott illesztőprogram-ütközések elkerülésére.
46) Hogyan lehet adatokat megosztani tesztek között globális változók használata nélkül? TestNG?
TestNG biztosít ITestContext és a függőségi injekció dinamikusan megosztani az adatokat.
Példa:
@Test
public void storeData(ITestContext context) {
context.setAttribute("token", "abc123");
}
@Test(dependsOnMethods = "storeData")
public void useData(ITestContext context) {
String token = (String) context.getAttribute("token");
System.out.println("Using token: " + token);
}
Ez elkerüli a statikus változókat, fenntartja a szálbiztonságot, és biztosítja a adatelkülönítés a tesztek között.
47) Hogyan rögzíti és naplózza a kihagyott teszteket? TestNG?
A kihagyott teszteket a következővel rögzítheti: onTestSkipped() a ITestListener felület.
Példa:
@Override
public void onTestSkipped(ITestResult result) {
System.out.println("Skipped Test: " + result.getName());
}
A kihagyás okai:
- Függő teszthiba.
- Feltételes kihagyás keresztül
SkipException. - Környezet elérhetetlensége.
Legjobb gyakorlat:
Naplózza a kihagyás okait és a veremkövetéseket a nyomon követhetőség érdekében a CI-jelentésekben vagy irányítópultokban.
48) Magyarázza el, hogyan paraméterezhetők a REST API tesztek a következő használatával: TestNG és a RestAssured.
TestNG'S @DataProvider elegánsan integrálható a Biztosított pihenés API paraméterezéshez.
Példa:
@DataProvider(name = "apiData")
public Object[][] apiData() {
return new Object[][] {
{"https://api.example.com/users/1"},
{"https://api.example.com/users/2"}
};
}
@Test(dataProvider = "apiData")
public void testApi(String url) {
Response response = RestAssured.get(url);
Assert.assertEquals(response.getStatusCode(), 200);
}
Előnyök:
- Ugyanazt az API-hívást hajtja végre több végpont vagy hasznos adat esetén.
- Leegyszerűsíti a változó bemeneti készletekkel rendelkező API-k regressziós tesztelését.
- Zökkenőmentesen integrálható a CI eszközökkel és jelentésekkel.
49) Hogyan hozhatsz létre egyéni megjegyzéseket a TestNG újrafelhasználható tesztelési mintákhoz?
Az egyéni annotációk szabványosíthatják az ismétlődő tesztkonfigurációkat vagy validációkat.
Példa:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface SmokeTest {
String description() default "Smoke Test";
}
Használat:
@SmokeTest(description="Validating Login Functionality")
@Test
public void loginTest() { ... }
A reflexióval kombinálva dinamikusan beolvashatja ezeket az annotációkat a tesztek csoportosításához vagy feltételes végrehajtáshoz.
Ezt a technikát széles körben alkalmazzák keretrendszer metaprogramozás öndokumentáló tesztek készítéséhez.
50) Hogyan kombinálhatod Cucumber és a TestNG hibrid tesztelési keretrendszerekhez?
TestNG úgy működhet, mint a tesztfutó mert Cucumber BDD-forgatókönyvek, amelyek hatékony jelentéskészítést és párhuzamosítást kínálnak.
Példa futó:
@CucumberOptions(
features = "src/test/resources/features",
glue = "stepDefinitions",
plugin = {"pretty", "html:target/cucumber-report.html"}
)
public class RunCucumberTest extends AbstractTestNGCucumberTests { }
Előnyök:
- Kihasználja TestNG'S annotációk, figyelők és jelentéskészítés.
- Támogatja párhuzamos funkcióvégrehajtás.
- Integrálódik a Csábít és a ExtentReports könnyen.
Ez a hibrid megközelítés egyesül BDD olvashatóság ahol TestNG rugalmasság, ideális vállalati szintű keretrendszerekhez.
🔍 Csúcs TestNG Interjúkérdések valós forgatókönyvekkel és stratégiai válaszokkal
Az alábbiakban 10 reális, a domainhez kapcsolódó TestNG interjúkérdések világos elvárásokkal és erős példaválaszokkal.
1) El tudná magyarázni a használat főbb előnyeit? TestNG összehasonlítva JUnit?
Elvárások a jelölttől: Mutassa be a megértését TestNGtovábbfejlesztett funkciói, és hogy miért részesítik előnyben gyakran a vállalati automatizálásban.
Példa válaszra: "TestNG számos előnnyel jár, mint például a rugalmas tesztkonfiguráció, a párhuzamos végrehajtás támogatása, a függő tesztmódszerek, az adatvezérelt tesztelés DataProviders segítségével és a beépített jelentéskészítés. Ezek a képességek teszik lehetővé, hogy TestNG erősebb a skálázhatóságot igénylő komplex automatizálási keretrendszerekhez.”
2) Hogyan használod? TestNG annotációk a teszt végrehajtási folyamatának szabályozására?
Elvárások a jelölttől: A jegyzetek céljának és sorrendjének ismerete.
Példa válaszra: "TestNG olyan annotációkat kínál, mint a @BeforeSuite, @BeforeClass, @BeforeMethod, @Test, és a hozzájuk tartozó lebontási annotációkat. Ezek lehetővé teszik a tesztbeállítás és -tisztítás strukturált megszervezését. Például a @BeforeMethod minden tesztmetódus előtt lefut, ami hasznos a böngésző állapotának inicializálásához.”
3) Írjon le egy kihívást jelentő automatizálási projektet, ahol TestNG kulcsszerepet játszott.
Elvárások a jelölttől: Valódi projekttapasztalat és a problémamegoldó képesség artikulálása.
Példa válaszra: „Előző munkakörömben egy olyan projekten dolgoztam, amely kiterjedt regressziós tesztelést igényelt több környezetben.” TestNGA párhuzamos végrehajtási és csoportosítási funkciói lehetővé tették a csapat számára, hogy a kritikus csomagokat egyszerre futtassa, jelentősen csökkentve a végrehajtási időt, miközben megőrizte a megbízhatóságot.”
4) Hogyan TestNG csoportok segítenek a tesztek hatékony megszervezésében és végrehajtásában?
Elvárások a jelölttől: A csoportosítás megértése, beleértve a beillesztési/kizárási mechanizmusokat.
Példa válaszra: „Csoportok a TestNG „Lehetővé teszik a tesztesetek kategorizálását, például füst, regresszió és integráció. A testng.xml használatával szelektíven futtathatok csoportokat, kizárhatok instabil teszteket, és kezelhetek különböző tesztcsomagokat anélkül, hogy magát a kódot módosítanám.”
5) Írj le egy olyan helyzetet, ahol hibakereséssel kellett meghiúsulnod. TestNG tesztek. Mi volt a megközelítésed?
Elvárások a jelölttől: Kritikus gondolkodás és hibaelhárítási készségek.
Példa válaszra: „Egy korábbi pozíciómban számos kudarccal találkoztam” TestNG „Tesztek, amelyek látszólag helyben sikeresek voltak, de a konfigurációfelügyeletben (CI) meghiúsultak. Engedélyeztem a részletes naplózást, áttekintettem a végrehajtási sorrendet, és felfedeztem, hogy egy megosztott erőforrás nem áll vissza a tesztek között. Ezután az @AfterMethod használatával megvalósítottam a megfelelő lebontási lépéseket a tesztek elkülönítésének biztosítása érdekében.”
6) Hogyan valósít meg adatvezérelt tesztelést a következő használatával: TestNG?
Elvárások a jelölttől: Az adatszolgáltatók és használati esetek megértése.
Példa válaszra: „Létrehozok egy @DataProvider metódust, amely Object tömbökben lévő adatokat ad vissza, majd a dataProvider attribútum használatával egy @Test metódushoz kötöm. Ez lehetővé teszi ugyanazon teszt többszöri iterációját különböző bemeneti készletekkel, ami hasznos az űrlapbeküldések vagy az API hasznos adatainak variációinak validálásához.”
7) Hogyan kezeled a tesztfüggőségeket a TestNG?
Elvárások a jelölttől: A dependsOnMethods vagy a dependsOnGroups megfelelő használata.
Példa válaszra: "TestNG engedélyezi a tesztfüggőségeket a dependsOnMethods és dependsOnGroups attribútumokon keresztül. Függőségeket akkor használok, ha egy tesztnek csak egy másik sikeres befejezése után kell végrehajtódnia, például egy rendelés ellenőrzéséhez csak a létrehozása után.”
8) Írd le, hogyan használtad TestNG folyamatos integrációs eszközökkel.
Elvárások a jelölttől: Valós automatizálási folyamatokkal kapcsolatos tapasztalat.
Példa válaszra: „Az előző munkahelyemen integráltam TestNG a Jenkins segítségével a Maven build konfigurálásával generálásra TestNG HTML és XML jelentések. A Jenkins ezután archiválta a jelentéseket, és minden egyes build ciklus után megjelenítette az eredményeket. Ez az integráció segített a csapatnak gyorsan nyomon követni a hibákat és fenntartani a kiadás stabilitását.”
9) Meséljen egy olyan alkalomról, amikor szoros határidők mellett kellett dolgoznia, miközben több automatizálási feladatot is kezelnie kellett.
Elvárások a jelölttől: Időgazdálkodás és priorizálási képesség.
Példa válaszra: „Az előző munkakörömben frissítenem kellett a meglévőket” TestNG tesztcsomagokat, miközben újakat is készítettem egy közelgő kiadáshoz. A feladatokat az üzleti hatásuk alapján rangsoroltam, először a legnagyobb kockázatú területeket automatizáltam, és TestNG csoportosítással elkülönítették a kész részeket a korai ellenőrzéshez. Ez biztosította az időben történő szállítást a minőség feláldozása nélkül.”
10) Hogyan terveznél egy skálázható TestNG keretrendszer egy nagyméretű alkalmazáshoz?
Elvárások a jelölttől: Archistruktúra megértése, minták és legjobb gyakorlatok.
Példa válaszra: „Egy moduláris keretrendszert terveznék a Page Object Model segítségével, integrálnám…” TestNG „végrehajtáskezeléshez, és DataProviders-t használnék adatvezérelt forgatókönyvekhez. Emellett párhuzamos végrehajtást konfigurálnék, központosítanám a segédprogramokat és kiszervezném a konfigurációs beállításokat, hogy a keretrendszer skálázható és karbantartható maradjon az alkalmazás növekedésével.”
