Top 50 TestNG Pitanja i odgovori za intervju (2026.)

vrh TestNG Intervjuirajte pitanja i odgovore

Priprema za TestNG intervju? Vrijeme je da razmislite o pitanjima koja pokazuju vaลกe snage. ฤŒvrst TestNG Temelj intervjua otkriva dubinu, samopouzdanje i spremnost koje cijene timovi za zapoลกljavanje.

Moguฤ‡nosti u ovom podruฤju obuhvaฤ‡aju rast automatizacije, razvoj okvira i praktiฤne aplikacije za testiranje koje zahtijevaju tehniฤko i profesionalno iskustvo. Rad u ovom podruฤju zahtijeva struฤnost u domeni, analitiฤke vjeลกtine i fleksibilan skup vjeลกtina koji pomaลพe poฤetnicima, srednjim i viลกim struฤnjacima da shvate uobiฤajena pitanja i odgovore na tehniฤka, osnovna i napredna pitanja.
ฤŒitaj viลกeโ€ฆ

๐Ÿ‘‰ Besplatno preuzimanje PDF-a: TestNG Pitanja i odgovori za intervju

vrh TestNG Intervjuirajte pitanja i odgovore

1) ล to je TestNG i zaลกto se koristi u automatiziranom testiranju?

TestNG (Test Next Generation) je okvir za testiranje inspiriran JUnit i NUnit, ali poboljลกan naprednim moguฤ‡nostima kao ลกto je grouping, sekvenciranje, parametrizacija i upravljanje ovisnostima. Primarno se koristi u automatiziranom testiranju za pojednostavljenje izvrลกavanja testova, poboljลกanje organizacije testova i generiranje detaljnih HTML i XML izvjeลกฤ‡a.

Kljuฤne prednosti od TestNG ukljuฤuju:

  • Podrลพava paralelno izvrลกavanje testova, smanjujuฤ‡i ukupno vrijeme izvoฤ‘enja.
  • Pruลพa biljeลกke koji uฤinkovito kontroliraju tijek testiranja.
  • Ponude testiranje temeljeno na podacima kroz @DataProvider komentarima.
  • generira prilagodljiva izvjeลกฤ‡a za bolje otklanjanje pogreลกaka.

Na primjer, TestNG Omoguฤ‡uje vam neovisno izvrลกavanje grupa za testiranje dima, regresije i integracije bez mijenjanja testnog koda, nudeฤ‡i fleksibilnost i skalabilnost u velikim automatizacijskim paketima.


2) Objasnite TestNG ลพivotni ciklus s anotacijama i njihovim redoslijedom izvrลกavanja.

The TestNG ลฝivotni ciklus definira kako se testovi inicijaliziraju, izvrลกavaju i zavrลกavaju. Kontrolira se putem anotacija koje pruลพaju strukturu i jasnoฤ‡u toku testiranja.

pribiljeลกka Description Nalog za izvrลกenje
@BeforeSuite Izvodi se prije svih testova u paketu 1
@BeforeTest Izvrลกava se prije <test> oznaka u XML-u 2
@BeforeClass Izvrลกava se prije prve metode u trenutnoj klasi 3
@BeforeMethod Izvrลกava se prije svake ispitne metode 4
@Test Sadrลพi stvarnu logiku testiranja 5
@AfterMethod Izvodi se nakon svake metode testiranja 6
@AfterClass Izvrลกava se nakon svih metoda u klasi 7
@AfterTest Trฤi nakon <test> oznaka u XML-u 8
@AfterSuite Izvrลกava se nakon svih testova u paketu 9

Ovakav strukturirani redoslijed osigurava predvidljivo postavljanje i rastavljanje testiranja, ลกto je kljuฤno za odrลพavanje neovisnosti testiranja.


3) Kako je TestNG drugaฤiji od JUnit?

Iako se oba okvira koriste za jediniฤno testiranje, TestNG pruลพa robusniju konfiguraciju i moguฤ‡nosti paralelnog izvrลกavanja.

svojstvo JUnit TestNG
Paralelno izvoฤ‘enje Ograniฤena podrลกka Potpuna podrลกka
Biljeลกke Manje (@Before, @After) Bogatiji (@BeforeSuite, @DataProvider)
Upravljanje ovisnostima Nije dostupno Dostupno putem dependsOnMethods
Grouping Nije podrลพano Podrลพano koriลกtenjem groups
Parametriranje Kroz vanjske trkaฤe Ugraฤ‘eno putem XML-a ili @DataProvider

U saลพetku, TestNG je poลพeljna za automatizirano testiranje na razini poduzeฤ‡a i integraciju s alatima poput Selenium, dok JUnit idealan je za jednostavnije jediniฤne testove.


4) ล to su TestNG anotacije i kako su korisne?

Biljeลกke u TestNG definiran struktura i ponaลกanje metoda ispitivanjaEliminiraju potrebu za sloลพenom XML konfiguracijom pruลพajuฤ‡i deklarativnu kontrolu testiranja izravno u kodu.

ฤŒesto koriลกtene napomene ukljuฤuju:

  • @BeforeSuite, @BeforeTest, @BeforeClass, @BeforeMethod
  • @Test
  • @AfterMethod, @AfterClass, @AfterTest, @AfterSuite

Primjer:

@BeforeMethod
public void setup() {
    System.out.println("Initializing browser...");
}

@Test
public void verifyLogin() {
    System.out.println("Executing login test...");
}

To pomaลพe programerima da logiฤki organiziraju izvrลกavanje testova, osiguravajuฤ‡i da se postavljanje, izvrลกavanje testa i rastavljanje odvijaju definiranim redoslijedom.


5) Objasnite koncept grupeping in TestNG.

Grouping in TestNG omoguฤ‡uje logiฤku kategorizaciju testova u manje, upravljive skupove kao ลกto su โ€žDimโ€œ, โ€žRegresijaโ€œ ili โ€žRazumno stanjeโ€œ.

Primjer:

@Test(groups = {"Smoke"})
public void loginTest() { ... }
@Test(groups = {"Regression"})
public void paymentTest() { ... }

Svoj XML paket moลพete konfigurirati za pokretanje odreฤ‘enih grupa:

<groups>
  <run>
    <include name="Smoke"/>
  </run>
</groups>

Prednosti:

  • Olakลกava selektivno izvrลกavanje testnih sluฤajeva.
  • Poveฤ‡ava fleksibilnost u CI/CD cjevovodima.
  • ล tedi vrijeme izvrลกavanja tijekom inkrementalnih izrada.

6) Kako se moลพe postiฤ‡i parametrizacija u TestNG?

Parametrizacija omoguฤ‡uje testiranje voฤ‘eno podacima, ลกto omoguฤ‡uje izvoฤ‘enje testova s โ€‹โ€‹viลกe ulaznih skupova podataka. TestNG podrลพava dvije primarne metode:

  1. Koriลกtenje @Parameters anotacija s XML-om:
  2. <parameter name="browser" value="chrome"/>
    @Test
    @Parameters("browser")
    public void launchBrowser(String browser) { ... }
    
  3. Koriลกtenje @DataProvider:
  4. @DataProvider(name="loginData")
    public Object[][] getData() {
      return new Object[][] {{"user1","pass1"}, {"user2","pass2"}};
    }
    
    @Test(dataProvider="loginData")
    public void loginTest(String user, String pass) { ... }
    

Ova fleksibilnost olakลกava odrลพavanje i izvrลกavanje velikih skupova testova u razliฤitim okruลพenjima ili konfiguracijama.


7) ล to su ovisnosti u TestNG i kako se njima upravlja?

Ovisnosti u TestNG kontrolirati redoslijed izvrลกavanja testova na temelju rezultata drugih testova pomoฤ‡u dependsOnMethods or dependsOnGroups atributa.

Primjer:

@Test
public void loginTest() { ... }

@Test(dependsOnMethods = {"loginTest"})
public void verifyDashboard() { ... }

Ako zavisna metoda ne uspije, sljedeฤ‡i test se automatski preskaฤe.

Ovaj mehanizam sprjeฤava izvrลกavanje neispravnih testova i pomaลพe u odrลพavanju logiฤki test integritetaPosebno je korisno za viลกekoraฤne funkcionalne tokove poput prijave โ†’ izvrลกavanja radnje โ†’ provjere rezultata.


8) Koji su razliฤiti naฤini izvrลกenja TestNG testovi?

TestNG Testovi se mogu izvrลกavati na nekoliko fleksibilnih naฤina ovisno o postavkama testiranja:

  1. Iz IDE-a (Eclipse/IntelliJ): Desnim klikom miลกa na razred ili XML file โ†’ Run as โ†’ TestNG Test.
  2. Iz naredbenog retka: java -cp "path\testng.jar;bin" org.testng.TestNG testng.xml
  3. Koriลกtenje alata za izgradnju:
    • Maven: konfigurirati surefire-plugin in pom.xml.
    • Gradle: Koristiti testng ovisnost i konfiguracija zadatka.
  4. Kroz CI/CD cjevovode: Integrirano sa Jenkins ili GitHub akcije za automatsko izvrลกavanje.

Ova raznolikost osigurava kompatibilnost izmeฤ‘u razvojnih, testnih i produkcijskih okruลพenja.


9) ล to su TestNG sluลกatelji i zaลกto su oni vaลพni?

Sluลกatelji unutra TestNG omoguฤ‡iti kuke za prilagoฤ‘avanje ponaลกanja testa praฤ‡enjem dogaฤ‘aja izvrลกavanja testa kao ลกto su poฤetak, uspjeh, neuspjeh ili preskakanje.

Uobiฤajeni sluลกatelji:

  • ITestListener: Tracdogaฤ‘aji na razini ks metode testiranja.
  • ISuiteListener: Nadgleda dogaฤ‘aje na razini apartmana.
  • IReporter: Generira prilagoฤ‘ena izvjeลกฤ‡a.

Primjer:

public class CustomListener implements ITestListener {
  public void onTestFailure(ITestResult result) {
    System.out.println("Test Failed: " + result.getName());
  }
}

Sluลกaฤi se ฤesto koriste za uzimanje snimke zaslona pri neuspjehu, generiranje prilagoฤ‘eni zapisnici, ili integracija s alatima za izvjeลกtavanje poput Allurea ili ExtentReportsa.


10) Koje su prednosti i nedostaci koriลกtenja TestNG?

Aspekt Prednosti Nedostaci
Fleksibilnost Podrลพava grupuping, ovisnost i paralelno izvrลกavanje Sloลพeno postavljanje XML-a za velike pakete
Izvjeลกtavanje Pruลพa detaljna HTML i XML izvjeลกฤ‡a Ograniฤena prilagodba bez sluลกatelja
Integracija Besprijekorno radi s Selenium i CI/CD alate Neลกto viลกa krivulja uฤenja
Parametriranje Ugraฤ‘ena podrลกka za testiranje temeljeno na podacima Zahtijeva odrลพavanje za velike skupove podataka

Sve u svemu, TestNG je robustan i fleksibilan okvir pogodan za moderna okruลพenja za automatizirano testiranje unatoฤ malim troลกkovima konfiguracije.


11) Kako moลพete odrediti prioritete testnih sluฤajeva u TestNG?

TestNG pruลพa priority atribut u @Test anotacija za definiranje redoslijeda kojim bi se metode testiranja trebale izvrลกavati. Testovi s niลพim vrijednostima prioriteta izvrลกavaju se prvi.

Primjer:

@Test(priority = 1)
public void loginTest() { ... }

@Test(priority = 2)
public void dashboardTest() { ... }

Ako nije naveden prioritet, zadana vrijednost je 0, a metode se izvrลกavaju abecednim redom.

Najbolja vjeลพba: Koristite vrijednosti prioriteta ลกtedljivo. Prekomjerna upotreba moลพe uฤiniti redoslijed testiranja krutim. Za sloลพene tokove, upravljanje ovisnostima (dependsOnMethods) je odrลพivije od stroge prioritizacije.


12) Objasnite koncept i upotrebu paralelnog izvrลกavanja u TestNG.

Paralelno izvrลกavanje u TestNG omoguฤ‡uje istovremeno izvoฤ‘enje viลกe testova, klasa ili metoda, znaฤajno smanjujuฤ‡i ukupno vrijeme izvrลกavanja.

Ovu znaฤajku moลพete omoguฤ‡iti u testng.xml Datoteka:

<suite name="ParallelSuite" parallel="tests" thread-count="3">
  <test name="Test1">...</test>
  <test name="Test2">...</test>
</suite>

Podrลพani paralelni naฤini rada:

  • tests
  • classes
  • methods
  • instances

Prednosti:

  • Brลพi ciklus povratnih informacija.
  • Uฤinkovito koriลกtenje viลกejezgrenih procesora.
  • Skalabilnost za velike automatizacijske pakete.

Meฤ‘utim, osigurajte sigurnost niti pri koriลกtenju dijeljenih resursa poput WebDrivera ili veza s bazom podataka.


13) ล to su pruลพatelji podataka u TestNGPo ฤemu se razlikuju od parametara?

@DataProvider omoguฤ‡uje testiranje temeljeno na podacima pruลพanjem metoda ispitivanja s viลกe skupova podataka.

Primjer:

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

@Test(dataProvider="credentials")
public void login(String username, String password) { ... }

Razlika izmeฤ‘u @Parameters i @DataProvider:

svojstvo @Parameters @DataProvider
Izvor podataka XML datoteka Java naฤin
Tip podataka Jedan skup podataka Viลกe skupova podataka
Fleksibilnost Less visok
Koristite sluฤaj Varijable okoline Ponovljeni testovi temeljeni na podacima

Stoga, @DataProvider je poลพeljnije prilikom izvoฤ‘enja jednog testa s viลกe skupova podataka, kao ลกto je provjera prijave s viลกe vjerodajnica.


14) Kako moลพete onemoguฤ‡iti ili preskoฤiti test u TestNG?

Test moลพete onemoguฤ‡iti u TestNG pomoฤ‡u enabled atributom ili programskim preskakanjemping to.

1. koristeฤ‡i enabled = false:

@Test(enabled = false)
public void skipTest() {
    System.out.println("This test will not run.");
}

2. Preskoฤiping tijekom izvoฤ‘enja koristeฤ‡i SkipException:

@Test
public void conditionalSkip() {
    throw new SkipException("Skipping this test due to condition.");
}

Onemoguฤ‡avanje je korisno za privremeno deaktiviranje nestabilni ili nepotpuni testovi bez brisanja. Preskoฤiping vrijedan je za uvjeti izvoฤ‘enja, kao preskoฤiping testovi za nepodrลพane preglednike.


15) Koja je uloga datoteke testng.xml i koje su njezine glavne komponente?

The testng.xml datoteka je konfiguracijska okosnica TestNGDefinira testne pakete, testne grupe, parametre i postavke paralelnog izvrลกavanja.

Primjer strukture:

<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>

Glavne komponente:

  • <suite> โ€“ Definira cijeli apartman.
  • <test> โ€“ Predstavlja testni blok.
  • <classes> โ€“ Navodi ispitne klase.
  • <methods> โ€“ Filtrira specifiฤne metode ispitivanja.
  • <parameter> โ€“ Pruลพa globalne parametre ili parametre na razini testiranja.

XML datoteka pruลพa centralizirana kontrola prekomjerno izvrลกavanje bez promjene koda.


16) Kako moลพete generirati izvjeลกฤ‡a u TestNG?

TestNG automatski generira dvije vrste izvjeลกฤ‡a:

  1. HTML izvjeลกฤ‡e (test-output/index.html) โ€“ Saลพima poloลพene, neuspjeลกne i preskoฤene testove.
  2. XML izvjeลกฤ‡e โ€“ Koristi se za integraciju s CI/CD alatima.

Za napredno izvjeลกtavanje, TestNG integrira se sa:

  • Izvjeลกฤ‡a o opsegu โ€“ Nudi grafiฤke nadzorne ploฤe i detaljne zapise.
  • Izvjeลกฤ‡a Allurea โ€“ Pruลพa vizualnu analitiku s koracima testiranja, snimkama zaslona i zapisnicima.

Primjer integracije:

ExtentReports extent = new ExtentReports();
ExtentTest test = extent.createTest("Login Test");
test.pass("Test Passed Successfully");
extent.flush();

Ova izvjeลกฤ‡a su neophodna za trackraljevski trendovi i identificiranje slabih podruฤja u pokrivenosti testovima.


17) U ฤemu su tvornice? TestNG, i kako rade?

Tvornice u TestNG koriste se za stvaranje dinamiฤke instance testnih klasaOmoguฤ‡uju parametrizirano instanciranje klasa prije pokretanja testova.

Primjer:

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);
  }
}

Prednosti:

  • omoguฤ‡uje stvaranje parametriziranih objekata.
  • Idealno za testiranje na viลกe preglednika i izvrลกavanje u viลกe okruลพenja.
    Tvornice nadopunjuju DataProvidere kada su vam potrebne razliฤite konfiguracije objekata, a ne samo varijacije podataka na razini metode.

18) Kako moลพete koristiti tvrdnje u TestNG?

Tvrฤ‘enja se koriste za validaciju oฤekivanih naspram stvarnih rezultata unutar metoda ispitivanja.

Vrste tvrdnji:

  1. Teลกke tvrdnje (klasa tvrdnji):
    Zaustavlja izvrลกavanje testa odmah nakon neuspjeha.
  2. Assert.assertEquals(actual, expected);
    Assert.assertTrue(condition);
    
  3. Meke tvrdnje (klasa SoftAssert):
    Nastavlja izvrลกavanje ฤak i nakon neuspjeha, prijavljujuฤ‡i sve probleme na kraju.
  4. SoftAssert soft = new SoftAssert();
        soft.assertEquals(actual, expected);
        soft.assertAll();
    
  5. Kada koristiti:
    • Koristite teลกke tvrdnje za kritiฤka validacija kao uspjeลกna prijava.
    • Koristite meke tvrdnje za viลกestruke provjere unutar jedne metode ispitivanja.

19) Objasnite razliku izmeฤ‘u @BeforeMethod i @BeforeClass u TestNG.

Aspekt @BeforeMethod @BeforeClass
Izvrลกenje Izvodi prije svakog metoda ispitivanja Izvodi jednom prije bilo koja metoda u klasi
Djelokrug Po metodi ispitivanja Po ispitnom razredu
Uobiฤajena upotreba Inicijalizacija preglednika prije svakog testa Jednokratno uฤitavanje konfiguracije ili postavki preglednika

Primjer:

@BeforeClass
public void setupClass() {
    System.out.println("Executed once per class");
}

@BeforeMethod
public void setupMethod() {
    System.out.println("Executed before each method");
}

Koristiti @BeforeMethod kada svaki test zahtijeva ฤisto okruลพenje i @BeforeClass za teลกke zadatke inicijalizacije koji se mogu ponovno koristiti.


20) Kako se TestNG podrลพava injektiranje ovisnosti i koji su njegovi sluฤajevi upotrebe?

TestNG podrลพava injekcija ovisnosti putem ugraฤ‘enog ubrizgavanja konteksta i konfiguracijskih objekata kao ลกto su ITestContext, XmlTest, ili Method.

Primjer:

@Test
public void testContextExample(ITestContext context) {
    System.out.println("Suite Name: " + context.getSuite().getName());
}

Upotrijebite sluฤajeve:

  • Dinamiฤko dohvaฤ‡anje parametara testa.
  • Pristup informacijama o konfiguraciji poput naziva paketa ili postavki paralelnog izvrลกavanja.
  • Poveฤ‡anje fleksibilnosti testiranja bez ovisnosti o tvrdom kodiranju.

Ubrizgavanje ovisnosti omoguฤ‡uje programerima da pisati modularne, kontekstualno svjesne testove koje se dinamiฤki prilagoฤ‘avaju promjenama u okolini.


21) Koja je razlika izmeฤ‘u @Factory i @DataProvider u TestNG?

Oboje @Factory i @DataProvider pomaลพu s parametrizacijom, ali rade na razliฤite razine u testnoj arhitekturi.

svojstvo @Factory @DataProvider
Djelokrug Razina razreda Razina metode
Svrha Stvara viลกe instanci klase s razliฤitim podacima Pruลพa podatke jednoj metodi ispitivanja
Izvrลกenje Izvrลกava cijelu klasu za svaku instancu Izvrลกava jednu metodu viลกe puta
Idealan sluฤaj upotrebe Testiranje u viลกe preglednika ili okruลพenja Funkcionalno testiranje temeljeno na podacima

Primjer:

  • Tvornica: Pokreฤ‡e cijelu klasu po vrsti preglednika.
  • Davatelj podataka: Pokreฤ‡e jednu metodu testiranja s viลกe skupova podataka.

Koristiti @Factory kada se sama instancacija objekta mijenja i @DataProvider za varijaciju funkcionalnog ulaza unutar iste instance objekta.


22) Kako moลพete automatski ponovno pokuลกati neuspjeลกne testne sluฤajeve u TestNG?

TestNG pruลพa mehanizam za ponovno pokretanje neuspjelih testnih sluฤajeva pomoฤ‡u IRetryAnalyzer suฤelje.

Primjer implementacije:

public class RetryAnalyzer implements IRetryAnalyzer {
  int count = 0;
  int maxTry = 2;

  public boolean retry(ITestResult result) {
    if (count < maxTry) {
      count++;
      return true;
    }
    return false;
  }
}

Upotreba:

@Test(retryAnalyzer = RetryAnalyzer.class)
public void testLogin() {
   Assert.fail("Intentional Failure");
}

Prednosti:

  • Smanjuje ljuลกtenje u CI cjevovodima.
  • Rjeลกava privremene probleme s mreลพom ili okruลพenjem.

Najbolja vjeลพba: Kombinirajte logiku ponovnog pokuลกaja s odgovarajuฤ‡im zapisivanjem i snimkama zaslona za otklanjanje pogreลกaka u povremenim greลกkama.


23) ฤŒemu sluลพi ITestContext u TestNG?

ITestContext osigurava kontekstualne informacije o izvoฤ‘enju testa, ukljuฤujuฤ‡i naziv paketa, naziv testa, izlazni direktorij i parametre.

Primjer:

@Test
public void contextExample(ITestContext context) {
    System.out.println("Suite: " + context.getSuite().getName());
}

Kljuฤne metode:

  • getSuite() โ€“ Dohvaฤ‡a informacije na razini paketa.
  • getName() โ€“ Vraฤ‡a naziv testa.
  • setAttribute() / getAttribute() โ€“ Dijeljenje podataka izmeฤ‘u testova.

Omoguฤ‡uje dijeljenje podataka izmeฤ‘u metoda ili klasa testiranja i omoguฤ‡uje dinamiฤko izvjeลกtavanje i evidentiranje.


24) Kako moลพete stvoriti ovisnost izmeฤ‘u testnih grupa u TestNG?

Meฤ‘ugrupne ovisnosti moลพete definirati pomoฤ‡u dependsOnGroups atribut u @Test komentarima.

Primjer:

@Test(groups = "Login")
public void login() { ... }

@Test(dependsOnGroups = "Login")
public void verifyProfile() { ... }

Time se osigurava da verifyProfile grupa se izvodi samo ako su svi testovi u Login uspjeลกno proลกla grupa.

Posebno je korisno u integracijsko testiranje, gdje moduli ovise o uspjeลกnom izvrลกavanju drugih (npr. prijava โ†’ profil โ†’ tok odjave).


25) Kako moลพete zanemariti odreฤ‘ene metode ispitivanja u TestNG XML datoteka?

Moลพete eksplicitno iskljuฤi metode unutar klase u XML datoteci paketa pomoฤ‡u <exclude> oznake.

Primjer:

<class name="com.test.LoginTests">
  <methods>
    <exclude name="verifyLogout"/>
  </methods>
</class>

To omoguฤ‡uje testerima da privremeno onemoguฤ‡ite odreฤ‘ene metode bez mijenjanja Java izvorni kod โ€” koristan u velikim paketima gdje je potrebno dinamiฤko ukljuฤivanje ili iskljuฤivanje na temelju ciklusa izdanja ili prioriteta sprinta.


26) Kako mogu TestNG biti integriran s Selenium WebDriver?

TestNG i Selenium ฤine moฤ‡nu kombinaciju za automatizaciju korisniฤkog suฤelja.

Tipiฤna postavka integracije ukljuฤuje organiziranje testova pomoฤ‡u anotacija, upravljanje postavljanjem/rastavljanjem i pokretanje testova putem XML ili CI alata.

Primjer:

@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();
}

Prednosti integracije:

  • omoguฤ‡uje paralelno testiranje preglednika.
  • Olakลกava testna grupaping i izvjeลกtavanje.
  • Besprijekorno radi s CI/CD cjevovodi poput Jenkins ili GitHub akcije.

27) Koje su neke najbolje prakse pri koriลกtenju TestNG u velikim automatizacijskim okvirima?

Najbolje prakse:

  1. Koristiti DescriptImenovanje: Imenujte testove na temelju ponaลกanja, a ne implementacije.
  2. Grupa polugeping: Stvorite logiฤke testne grupe (Dim, Regresija).
  3. Izbjegavajte tvrdo kodiranje: Za testne podatke koristite parametre ili datoteke svojstava.
  4. Minimizirajte ovisnosti: Kad god je to moguฤ‡e, neka testni sluฤajevi budu neovisni.
  5. Centraliziraj konfiguraciju: Koristiti testng.xml za postavljanje apartmana.
  6. Integrirajte izvjeลกtavanje: Koristite sluลกaฤe ili alate treฤ‡ih strana poput ExtentReportsa.
  7. Oprezno koristite logiku ponovnog pokuลกaja: Izbjegavajte maskiranje stvarnih nedostataka.

Slijeฤ‘enje ovoga osigurava skalabilnost, odrลพivost i ฤitljivost u automatizaciji na razini poduzeฤ‡a.


28) Koja je razlika izmeฤ‘u @BeforeTest i @BeforeSuite u TestNG?

svojstvo @BeforeTest @BeforeSuite
Djelokrug Pokreฤ‡e se prije svakog <test> oznaka u XML-u Pokreฤ‡e se jednom prije cijelog paketa
Frekvencija Viลกe puta (ako je viลกe <test> blokovi) Samo jednom po apartmanu
Uobiฤajena upotreba Inicijaliziraj konfiguraciju na razini testiranja Postavljanje globalnih resursa

Primjer:

@BeforeSuite
public void setupSuite() {
    System.out.println("Global setup for suite.");
}

@BeforeTest
public void setupTest() {
    System.out.println("Setup for each <test> tag.");
}

Koristiti @BeforeSuite za globalne konfiguracije (npr. veza s bazom podataka) i @BeforeTest za inicijalizacije specifiฤne za testiranje.


29) Moลพe TestNG koristiti za testiranje API-ja? Kako?

Da. TestNG moลพe se uฤinkovito koristiti za API testiranje integracijom s HTTP klijentskim bibliotekama kao ลกto su Budite sigurni or HttpClient.

Primjer:

@Test
public void verifyApiResponse() {
    Response response = RestAssured.get("https://api.example.com/users");
    Assert.assertEquals(response.getStatusCode(), 200);
}

Prednosti:

  • omoguฤ‡uje validacija temeljena na tvrdnjama odgovora.
  • Podrลพava parametrizacija i testiranje temeljeno na podacima za viลกe krajnjih toฤaka.
  • generira strukturirana izvjeลกฤ‡a za REST API validacije.

Kombinacijom TestNG i RestAssured, testeri mogu odrลพavati jedinstveni okvir za automatizaciju za testiranje korisniฤkog suฤelja i API-ja.


30) Kako se prosljeฤ‘uju parametri iz naredbenog retka u TestNG?

XML parametre moลพete nadjaฤati tijekom izvoฤ‘enja prosljeฤ‘ivanjem sistemskih svojstava pomoฤ‡u -D zastava.

Primjer naredbe:

mvn test -Dbrowser=chrome -Denv=staging

Code Primjer:

@Parameters("browser")
@Test
public void launch(@Optional("firefox") String browser) {
    System.out.println("Running on: " + browser);
}

Ovo omoguฤ‡uje dinamiฤki odabir okruลพenja u CI/CD cjevovodima bez promjene konfiguracijskih datoteka, ลกto poveฤ‡ava fleksibilnost testiranja.


31) Kako moลพete kontrolirati redoslijed izvrลกavanja testova u TestNG bez koriลกtenja prioriteta?

Umjesto da koristi priority, TestNG omoguฤ‡uje kontrolu putem ovisnosti i Poredak XML metoda.

Metode:

  1. Koriลกtenje dependsOnMethods:
  2. @Test
    public void login() { ... }
    
    @Test(dependsOnMethods = "login")
    public void verifyDashboard() { ... }
    
  3. Koriลกtenje XML sekvence metoda:
  4. <classes>
      <class name="com.test.LoginTests">
        <methods>
          <include name="login"/>
          <include name="verifyDashboard"/>
        </methods>
      </class>
    </classes>
    

Najbolja vjeลพba: Za sloลพene tokove preferirajte logiฤke ovisnosti umjesto statiฤnih prioriteta, osiguravajuฤ‡i robusne i odrลพive testne pakete.


32) Kako moลพete izvrลกiti odreฤ‘ene metode testiranja iz naredbenog retka u TestNG?

TestNG omoguฤ‡uje izvrลกavanje testa na razini metode izravno iz naredbenog retka pomoฤ‡u XML ili Maven Surefire konfiguracija.

Opcija 1: Koriลกtenje XML datoteke

<class name="com.test.LoginTests">
  <methods>
    <include name="verifyLogin"/>
  </methods>
</class>

Opcija 2: Maven naredba

mvn test -Dtest=com.test.LoginTests#verifyLogin

Ovaj pristup omoguฤ‡uje selektivno izvrลกenje, korisno za otklanjanje pogreลกaka u pojedinaฤnim metodama ili validaciju kritiฤnih funkcionalnosti tijekom brzih izrada.


33) Kako parametrizirati testove pomoฤ‡u vanjske Excel datoteke u TestNG?

Parametrizacija voฤ‘ena Excelom uobiฤajena je u okvirima voฤ‘enim podacima gdje se podaci testiranja ฤesto mijenjaju.

Koraci implementacije:

  1. Koristiti Apache POI or JExcel za ฤitanje Excel podataka.
  2. Ubacite ga u @DataProvider metoda.

Primjer:

@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;
}

To omoguฤ‡uje pokretanje iste metode ispitivanja s viลกe skupova podataka iz Excela iz stvarnog svijeta, poveฤ‡avajuฤ‡i fleksibilnost i pokrivenost.


34) Kako moลพeลก trฤati TestNG testovi u Jenkins ili CI/CD cjevovodi?

TestNG besprijekorno se integrira s Jenkins, GitLab CI, ili GitHub radnje putem Mavena ili Gradle gradi.

Ulazi Jenkins:

  1. Instalirati Maven dodatak za integraciju.
  2. Napravite Posao slobodnim stilom ili cjevovodom.
  3. dodati mvn clean test kao korak izgradnje.
  4. Nakon izgradnje, konfigurirajte HTML izvjeลกฤ‡a:
    • Imenik izvjeลกฤ‡a: test-output
    • Indeksna datoteka: index.html

Prednosti:

  • Omoguฤ‡uje automatizirano regresijsko testiranje.
  • Pruลพa zakazane probne voลพnje i trendove trackralj.
  • Osigurava dosljedno izvrลกavanje testova u svim okruลพenjima.

35) Koja je svrha @Parameters i po ฤemu se razlikuje od @Optional?

Obje anotacije se bave parametrizacijom, ali sluลพe razliฤitim svrhama.

svojstvo @Parameters @Optional
Svrha Prosljeฤ‘uje parametre iz XML datoteke Pruลพa zadanu vrijednost ako parametar nedostaje
izjava Koristi se s XML-om <parameter> Koriลกtena unutarnja metoda ispitivanja
Ponaลกanje Izbacuje greลกku ako vrijednost nedostaje Koristi rezervnu vrijednost

Primjer:

@Test
@Parameters("browser")
public void runTest(@Optional("chrome") String browser) {
    System.out.println("Running on: " + browser);
}

Koriลกtenje @Optional osigurava stabilnost testa kada XML konfiguracije nisu potpune.


36) Kako se rjeลกavaju ovisnosti testova izmeฤ‘u razliฤitih klasa u TestNG?

Za stvaranje meฤ‘uklasnih ovisnosti, TestNG omoguฤ‡uje koriลกtenje dependsOnGroups atribut.

Primjer:

@Test(groups = "Login")
public void loginTest() { ... }

@Test(groups = "Dashboard", dependsOnGroups = "Login")
public void dashboardTest() { ... }

Ovaj pristup pomaลพe u upravljanju viลกemodulne ovisnosti gdje svaka klasa predstavlja modul (Prijava, Nadzorna ploฤa, Plaฤ‡anje itd.).

Osigurava da se zavisni moduli izvrลกavaju samo ako su preduvjetni testovi uspjeลกni, odrลพavajuฤ‡i integritet testiranja.


37) ล to su konfiguracijski kvarovi u TestNG, i kako se s njima moลพe postupati?

Do kvarova konfiguracije dolazi kada su metode postavljanja ili rastavljanja oznaฤene s @Before* or @After* iznevjeriti.

Mogu uzrokovati zavisni testovi koje treba preskoฤiti, ฤak i ako su ti testovi toฤni.

Najฤeลกฤ‡i uzroci:

  • Neispravna inicijalizacija WebDrivera.
  • Problemi s postavkama baze podataka ili okruลพenja.
  • Pogreลกna konfiguracija parametara.

Rjeลกenja:

  • Koristiti pokuลกaj uhvatiti blokovi u metodama postavljanja.
  • Korak po korak do prijave alwaysRun = true kako bi se osiguralo da ฤiลกฤ‡enje teฤe unatoฤ kvarovima.

Primjer:

@BeforeMethod(alwaysRun = true)
public void setup() {
    // Setup logic
}

To osigurava da se vaลกe metode rastavljanja i dalje izvrลกavaju, odrลพavajuฤ‡i stabilnost testnog okruลพenja.


38) ฤŒemu sluลพe atributi invocationCount i threadPoolSize u TestNG?

Ovi atributi omoguฤ‡uju ponovljeno i paralelno izvrลกavanje testova iste metode.

Primjer:

@Test(invocationCount = 5, threadPoolSize = 2)
public void loadTest() {
    System.out.println("Running load test...");
}
Atribut Description
invocationCount Broj izvoฤ‘enja metode
threadPoolSize Broj istovremenih niti

Sluฤaj upotrebe: Testiranje performansi, provjera stabilnosti ili reprodukcija nestabilnog ponaลกanja tijekom viลกestrukih pokretanja.


39) Kako pokreฤ‡ete samo neuspjeลกne testne sluฤajeve u TestNG?

Nakon obilaska apartmana, TestNG generira datoteku pod nazivom testng-failed.xml u test-output katalog.

Moลพete ponovno pokrenuti samo neuspjeลกne testove izvrลกavanjem:

java -cp testng.jar org.testng.TestNG test-output/testng-failed.xml

Prednosti:

  • ล tedi vrijeme preskakanjemping uspjeลกni testovi.
  • Olakลกava otklanjanje pogreลกaka u velikim paketima.
  • ฤŒesto se koristi u CI cjevovodima za brza ponovna testiranja.

Takoฤ‘er moลพete ovo integrirati s Jenkins koriลกtenje skripte nakon izgradnje za ponovna pokretanja.


40) Koja su neka ograniฤenja TestNG i kako ih se moลพe ublaลพiti?

Uprkos svojoj robusnosti, TestNG ima nekoliko ograniฤenja.

Ograniฤenje Strategija ublaลพavanja
Sloลพenost XML konfiguracije Koristite konfiguraciju i alate za izradu temeljene na napomenama
Ograniฤeno izvorno izvjeลกtavanje Integrirajte ExtentReports ili Allure
Nema ugraฤ‘ene kontrole ponovnog pokuลกaja Implementirati IRetryAnalyzer
Problemi s nitnom sigurnoลกฤ‡u u paralelnim izvrลกavanjima Koristi instance WebDrivera lokalne za niti
Krivulja uฤenja za poฤetnike Odrลพavanje struktura projekata temeljenih na predloลกcima

Pravilnim dizajnom okvira i najboljim praksama, ta se ograniฤenja mogu svesti na najmanju moguฤ‡u mjeru, osiguravajuฤ‡i stabilna i odrลพiva rjeลกenja za automatizaciju.


41) Kako koristite sluลกaฤe za zapisivanje i snimanje snimaka zaslona u Selenium-TestNG?

Sluลกatelji unutra TestNG pomoฤ‡i u praฤ‡enju izvrลกavanja testova i izvrลกavanju radnji poput zapisivanja, snimanja zaslona ili dinamiฤkog izvjeลกtavanja o rezultatima.

Primjer implementacije:

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"));
  }
}

Upotreba:

@Listeners(ScreenshotListener.class)
public class LoginTests extends BaseTest { ... }

Prednosti:

  • Automatski biljeลพi kvarove.
  • Poboljลกava otklanjanje pogreลกaka putem vizualnih dokaza.
  • Smanjuje ruฤni napor pri odrลพavanju logova.

Ova tehnika je kljuฤna u CI/CD automatizacijskim cjevovodima, posebno pri daljinskoj dijagnostici neuspjelih izrada.


42) Koja je razlika izmeฤ‘u IReportera i ITestListenera u TestNG?

svojstvo IReporter ITestListener
Svrha Generira prilagoฤ‘ena izvjeลกฤ‡a nakon izvrลกenja testa Tracks i reagira na dogaฤ‘aje testiranja tijekom izvoฤ‘enja
prizivanje Nakon ลกto su svi testovi zavrลกeni Tijekom ลพivotnog ciklusa testiranja (poฤetak, uspjeh, neuspjeh)
Izlaz HTML/XML/JSON izvjeลกฤ‡a Datoteke zapisnika, snimke zaslona, โ€‹โ€‹nadzorne ploฤe uลพivo
Uobiฤajena upotreba ExtentReports, integracija Allurea Zapisivanje, rukovanje greลกkama, mehanizmi ponovnog pokuลกaja

Primjer:

  • Koristiti IReporter za izgradnju iscrpna izvjeลกฤ‡a nakon zavrลกetka testa.
  • Koristiti ITestListener za zapisivanje podataka u stvarnom vremenu ili snimke zaslona.

Oni takoฤ‘er mogu biti kombinirana za izgradnju end-to-end sustava za analitiku automatizacije.


43) Kako provodite testiranje viลกe preglednika pomoฤ‡u TestNG XML konfiguracija?

Testiranje u razliฤitim preglednicima osigurava da ista funkcionalnost radi u razliฤitim preglednicima.

Primjer konfiguracije:

<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 Code:

@Parameters("browser")
@BeforeClass
public void setup(String browser) {
    if(browser.equalsIgnoreCase("chrome"))
        driver = new ChromeDriver();
    else if(browser.equalsIgnoreCase("firefox"))
        driver = new FirefoxDriver();
}

Ovaj pristup omoguฤ‡uje paralelno izvrลกavanje u viลกe preglednika, ubrzavajuฤ‡i pokrivenost testiranjem na svim platformama.


44) Kako se integrirate TestNG s Dockerom ili Selenium Mreลพa?

TestNG besprijekorno se integrira s Dockerizirano Selenium reลกetka kako bi se omoguฤ‡ilo distribuirano paralelno testiranje.

Koraci:

  1. Postaviti Selenium Mreลพa u Dockeru koristeฤ‡i sluลพbu Selenium slika:
    docker run -d -p 4444:4444 --name selenium-grid selenium/standalone-chrome
  2. Nadopune TestNG postava:
  3. DesiredCapabilities caps = new DesiredCapabilities();
    caps.setBrowserName("chrome");
    driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), caps);
    
  4. Izvrลกite svoj paket putem Jenkins ili CI cjevovod.

Prednosti:

  • omoguฤ‡uje skalabilno paralelno testiranje.
  • Smanjuje optereฤ‡enje postavljanja okruลพenja.
  • Pruลพa dosljedno izvrลกavanje testova preko distribuiranih kontejnera.

45) Koja je razlika izmeฤ‘u paralelnog izvrลกavanja na razinama paketa, testa i metode u TestNG?

Nivo Paralelni atribut Ponaลกanje pri izvrลกavanju
Apartman parallel="suites" Istovremeno izvrลกava viลกe paketa
test parallel="tests" Izvodi <test> blokovi istovremeno
Klasa parallel="classes" Paralelno pokreฤ‡e testne klase
naฤin parallel="methods" Paralelno izvrลกava pojedinaฤne metode ispitivanja

Primjer:

<suite name="ParallelTests" parallel="methods" thread-count="3">
  <test name="SampleTest">
    <classes><class name="com.test.ParallelExample"/></classes>
  </test>
</suite>

Najbolja vjeลพba:Koristiti parallel="classes" za stabilnost u Selenium testove kako bi se izbjegli sukobi zajedniฤkih upravljaฤkih programa.


46) Kako moลพete dijeliti podatke izmeฤ‘u testova bez koriลกtenja globalnih varijabli u TestNG?

TestNG osigurava ITestContext i injekcija ovisnosti za dinamiฤko dijeljenje podataka.

Primjer:

@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);
}

Time se izbjegavaju statiฤke varijable, odrลพava sigurnost niti i osigurava izolacija podataka u testovima.


47) Kako biljeลพite i zapisujete preskoฤene testove TestNG?

Preskoฤene testove moลพete snimiti pomoฤ‡u onTestSkipped() u ITestListener suฤelje.

Primjer:

@Override
public void onTestSkipped(ITestResult result) {
    System.out.println("Skipped Test: " + result.getName());
}

Razlozi za preskakanjeping:

  • Neuspjeh ovisnog testa.
  • Uvjetno preskakanjeping preko SkipException.
  • Nedostupnost okoline.

Najbolja vjeลพba:
Razloge preskakanja zapisnika i stog traces za tracjednostavnost u CI izvjeลกฤ‡ima ili nadzornim ploฤama.


48) Objasnite kako parametrizirati REST API testove pomoฤ‡u TestNG i budite sigurni.

TestNG'S @DataProvider elegantno se integrira s Budite sigurni za parametrizaciju API-ja.

Primjer:

@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);
}

Prednosti:

  • Izvrลกava isti API poziv za viลกe krajnjih toฤaka ili korisnih tereta.
  • Pojednostavljuje regresijsko testiranje za API-je s razliฤitim ulaznim skupovima.
  • Besprijekorno se integrira s CI alatima i izvjeลกฤ‡ima.

49) Kako stvoriti prilagoฤ‘ene napomene u TestNG za obrasce testiranja za viลกekratnu upotrebu?

Prilagoฤ‘ene anotacije mogu standardizirati konfiguracije ili validacije koje se ponavljaju.

Primjer:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface SmokeTest {
  String description() default "Smoke Test";
}

Upotreba:

@SmokeTest(description="Validating Login Functionality")
@Test
public void loginTest() { ... }

U kombinaciji s refleksijom, moลพete dinamiฤki ฤitati ove napomene za grupiranje testova ili pokretanje uvjetnog izvrลกavanja.

Ova tehnika se ลกiroko koristi u okvirno meta-programiranje za izradu samodokumentirajuฤ‡ih testova.


50) Kako moลพete kombinirati Cucumber i TestNG za hibridne okvire za testiranje?

TestNG moลพe djelovati kao testni trkaฤ za Cucumber BDD scenariji, nudeฤ‡i snaลพno izvjeลกtavanje i paralelizaciju.

Primjer trkaฤa:

@CucumberOptions(
  features = "src/test/resources/features",
  glue = "stepDefinitions",
  plugin = {"pretty", "html:target/cucumber-report.html"}
)
public class RunCucumberTest extends AbstractTestNGCucumberTests { }

Prednosti:

  • utjecati TestNG'S biljeลกke, sluลกatelji i izvjeลกtavanje.
  • Podrลพava paralelno izvrลกavanje znaฤajki.
  • Integrira se s Vabiti i Izvjeลกฤ‡a o opsegu lako.

Ovaj hibridni pristup spaja ฤŒitljivost BDD-a sa TestNG fleksibilnost, idealno za okvire poslovne klase.


๐Ÿ” Vrh TestNG Pitanja za intervju sa stvarnim scenarijima i strateลกkim odgovorima

U nastavku je navedeno 10 realistiฤnih, relevantnih za domenu TestNG pitanja za intervju zajedno s jasnim oฤekivanjima i snaลพnim primjerima odgovora.

1) Moลพete li objasniti kljuฤne prednosti koriลกtenja TestNG u usporedbi sa JUnit?

Oฤekivano od kandidata: Pokazati razumijevanje TestNGpoboljลกane znaฤajke i zaลกto se ฤesto preferira za automatizaciju poduzeฤ‡a.

Primjer odgovora: "TestNG pruลพa nekoliko prednosti kao ลกto su fleksibilna konfiguracija testiranja, podrลกka za paralelno izvrลกavanje, ovisne metode testiranja, testiranje temeljeno na podacima s DataProvidersima i ugraฤ‘eno izvjeลกtavanje. Ove moguฤ‡nosti ฤine TestNG moฤ‡niji za sloลพene okvire automatizacije koji zahtijevaju skalabilnost.โ€


2) Kako koristite TestNG anotacije za kontrolu toka izvrลกavanja testa?

Oฤekivano od kandidata: Poznavanje svrhe i redoslijeda anotacija.

Primjer odgovora: "TestNG nudi napomene kao ลกto su @BeforeSuite, @BeforeClass, @BeforeMethod, @Test i njihove odgovarajuฤ‡e napomene za rastavljanje. One omoguฤ‡uju strukturiranu organizaciju postavljanja i ฤiลกฤ‡enja testa. Na primjer, @BeforeMethod se izvrลกava prije svake metode testiranja, ลกto je korisno za inicijalizaciju stanja preglednika.


3) Opiลกite zahtjevan projekt automatizacije gdje TestNG odigrao kljuฤnu ulogu.

Oฤekivano od kandidata: Pravo iskustvo na projektima i sposobnost artikuliranja rjeลกavanja problema.

Primjer odgovora: โ€žU svojoj prethodnoj ulozi radio sam na projektu koji je zahtijevao opseลพno regresijsko testiranje u viลกe okruลพenja.โ€œ TestNGparalelno izvrลกavanje i grupaping znaฤajke omoguฤ‡ile su timu da istovremeno pokreฤ‡e kritiฤne pakete, znaฤajno smanjujuฤ‡i vrijeme izvrลกavanja uz odrลพavanje pouzdanosti.โ€


4) Kako TestNG Pomaลพu li grupe u uฤinkovitoj organizaciji i provoฤ‘enju testova?

Oฤekivano od kandidata: Razumijevanje grupeping, ukljuฤujuฤ‡i mehanizme ukljuฤivanja/iskljuฤivanja.

Primjer odgovora: โ€žGrupe u TestNG omoguฤ‡uju kategorizaciju testnih sluฤajeva kao ลกto su dim, regresija i integracija. Koriลกtenjem testng.xml datoteke mogu selektivno pokretati grupe, iskljuฤivati โ€‹โ€‹nestabilne testove i upravljati razliฤitim testnim paketima bez mijenjanja samog koda.


5) Opiลกite situaciju u kojoj ste morali otkloniti greลกke TestNG testovi. Kakav je bio vaลก pristup?

Oฤekivano od kandidata: Vjeลกtine kritiฤkog miลกljenja i rjeลกavanja problema.

Primjer odgovora: โ€žNa prethodnoj poziciji susreo sam se s nizom neuspjeha TestNG testovi koji su se ฤinili prolaznima lokalno, ali nisu uspjeli u CI. Omoguฤ‡io sam detaljno zapisivanje, pregledao redoslijed izvrลกavanja i otkrio da se dijeljeni resurs nije resetirao izmeฤ‘u testova. Zatim sam implementirao odgovarajuฤ‡e korake rastavljanja koristeฤ‡i @AfterMethod kako bih osigurao izolaciju testova.


6) Kako implementirate testiranje temeljeno na podacima koristeฤ‡i TestNG?

Oฤekivano od kandidata: Razumijevanje pruลพatelja podataka i sluฤajeva upotrebe.

Primjer odgovora: โ€žKreiram metodu @DataProvider koja vraฤ‡a podatke u nizovima objekata, a zatim je veลพem za metodu @Test pomoฤ‡u atributa dataProvider. To omoguฤ‡uje viลกestruke iteracije istog testa s razliฤitim ulaznim skupovima, ลกto je korisno za validaciju slanja obrazaca ili varijacija API sadrลพaja.โ€œ


7) Kako upravljate ovisnostima testova u TestNG?

Oฤekivano od kandidata: Pravilna upotreba dependsOnMethods ili dependsOnGroups.

Primjer odgovora: "TestNG dopuลกta ovisnosti testova putem atributa dependsOnMethods i dependsOnGroups. Koristim ovisnosti kada se test mora izvrลกiti tek nakon ลกto se drugi uspjeลกno zavrลกi, kao ลกto je provjera narudลพbe tek nakon njenog kreiranja.


8) Opiลกite kako ste koristili TestNG s alatima za kontinuiranu integraciju.

Oฤekivano od kandidata: Iskustvo u radu s automatiziranim procesima u stvarnom svijetu.

Primjer odgovora: โ€žNa prethodnom poslu sam integrirao TestNG sa Jenkins konfiguriranjem Maven verzije za generiranje TestNG HTML i XML izvjeลกฤ‡a. Jenkins zatim arhivirao izvjeลกฤ‡a i prikazivao rezultate nakon svakog ciklusa izrade. Ova integracija pomogla je timu tracbrzo k kvarovima i odrลพava stabilnost izdanja.โ€


9) Recite mi o situaciji kada ste morali raditi u kratkim rokovima dok ste istovremeno upravljali viลกe zadataka automatizacije.

Oฤekivano od kandidata: Upravljanje vremenom i sposobnost odreฤ‘ivanja prioriteta.

Primjer odgovora: โ€žU svojoj posljednjoj ulozi, trebao sam aลพurirati postojeฤ‡e TestNG testne pakete, a istovremeno sam stvarao nove za nadolazeฤ‡e izdanje. Prioritizirao sam zadatke na temelju utjecaja na poslovanje, prvo automatizirao podruฤja s najveฤ‡im rizikom i koristio TestNG grupiratiping izolirati dovrลกene dijelove za rani pregled. To je osiguralo pravovremenu isporuku bez ugroลพavanja kvalitete.โ€


10) Kako biste dizajnirali skalabilni TestNG okvir za veliku aplikaciju?

Oฤekivano od kandidata: Archirazumijevanje teksture, obrasci i najbolje prakse.

Primjer odgovora: โ€žDizajnirao bih modularni okvir koristeฤ‡i model objekta stranice, integrirao TestNG za upravljanje izvrลกavanjem i koristiti DataProviders za scenarije voฤ‘ene podacima. Takoฤ‘er bih konfigurirao paralelno izvrลกavanje, centralizirao usluลพne programe i eksternalizirao postavke konfiguracije kako bi okvir ostao skalabilan i odrลพiv kako aplikacija raste.

Saลพmite ovu objavu uz: