Top 50 TestNG Haastattelukysymykset ja vastaukset (2026)

ylin TestNG Haastattelukysymykset ja vastaukset

Valmistautuminen a TestNG haastattelu? On aika miettiรค kysymyksiรค, jotka korostavat vahvuuksiasi. Vankka TestNG Haastattelun perusta paljastaa rekrytointitiimien arvostaman syvyyden, itsevarmuuden ja valmiuden.

Tรคmรคn toimialan mahdollisuudet kattavat automaation kasvun, kehittyvรคt viitekehykset ja kรคytรคnnรถn testaussovellukset, jotka vaativat teknistรค ja ammatillista kokemusta. Kentรคllรค tyรถskentely vaatii toimialaosaamista, analyysitaitoja ja joustavaa osaamista, joka auttaa vasta-alkajia, keskitason ja kokeneita ammattilaisia โ€‹โ€‹ratkaisemaan yleisiรค kysymyksiรค ja vastauksia teknisillรค, perustason ja edistyneillรค tasoilla.
Lue lisรครค ...

๐Ÿ‘‰ Ilmainen PDF-lataus: TestNG Haastattelukysymykset ja vastaukset

ylin TestNG Haastattelukysymykset ja vastaukset

1) Mikรค on TestNG ja miksi sitรค kรคytetรครคn automaatiotestauksessa?

TestNG (Test Next Generation) on testauskehys, joka on saanut inspiraationsa JUnit ja NUnit, mutta parannettu edistyneillรค ominaisuuksilla, kuten ryhmรคllรคping, sekvensointi, parametrisointi ja riippuvuuksien hallinta. Sitรค kรคytetรครคn ensisijaisesti automaatiotestauksessa testien suorituksen virtaviivaistamiseen, testien organisoinnin parantamiseen ja yksityiskohtaisten HTML- ja XML-raporttien luomiseen.

Tรคrkeimmรคt edut TestNG sisรคltรครค:

  • Tukee rinnakkaisten testien suorittaminen, mikรค lyhentรครค kokonaiskรคyttรถaikaa.
  • Tarjoaa merkinnรคt jotka ohjaavat testivirtaa tehokkaasti.
  • Tarjoukset tietopohjainen testaus kautta @DataProvider merkintรค.
  • synnyttรครค muokattavissa olevat raportit parempaa virheenkorjausta varten.

Esimerkiksi TestNG mahdollistaa savu-, regressio- ja integrointitestiryhmien suorittamisen itsenรคisesti ilman testikoodin muokkaamista, mikรค tarjoaa joustavuutta ja skaalautuvuutta suurissa automaatiokokonaisuuksissa.


2) Selitรค TestNG elinkaari merkintรถineen ja niiden suoritusjรคrjestyksineen.

TestNG Elinkaari mรครคrittelee, miten testit alustetaan, suoritetaan ja lopetetaan. Sitรค hallitaan annotaatioilla, jotka antavat testikululle rakenteen ja selkeyden.

huomautus Tuotetiedot Suoritusmรครคrรคys
@BeforeSuite Suoritetaan ennen kaikkia sarjan testejรค 1
@BeforeTest Suoritetaan ennen <test> tagi XML:ssรค 2
@BeforeClass Suoritetaan ennen nykyisen luokan ensimmรคistรค metodia 3
@BeforeMethod Suoritetaan ennen jokaista testimenetelmรครค 4
@Test Sisรคltรครค varsinaista testilogiikkaa 5
@AfterMethod Suoritetaan jokaisen testimenetelmรคn jรคlkeen 6
@AfterClass Suoritetaan kaikkien luokan metodien jรคlkeen 7
@AfterTest Juoksee perรคssรค <test> tagi XML:ssรค 8
@AfterSuite Suorittaa kaikkien sarjassa olevien testien jรคlkeen 9

Tรคmรค jรคsennelty jรคrjestys varmistaa ennustettavan testiasennuksen ja -purkamisen, mikรค on ratkaisevan tรคrkeรครค testien riippumattomuuden sรคilyttรคmiseksi.


3) Miten on TestNG erilainen kuin JUnit?

Vaikka molempia kehyksiรค kรคytetรครคn yksikkรถtestaukseen, TestNG tarjoaa vankemmat konfigurointi- ja rinnakkaissuoritusominaisuudet.

Ominaisuus JUnit TestNG
Rinnakkainen toteutus Rajoitettu tuki Tรคysi tuki
Merkinnรคt Vรคhemmรคn (@Before, @After) Rikkaampi (@BeforeSuite, @DataProvider)
Riippuvuuden hallinta Ei saatavilla Saatavilla kรคyttรคmรคllรค dependsOnMethods
Grouping Ei tuettu Tuettu kรคyttรคmรคllรค groups
Parametrisointi Ulkoisten jakajan kautta Sisรครคnrakennettu XML:n kautta tai @DataProvider

Yhteenvetona, TestNG on edullinen yritystason automaatiotestaus ja integrointi tyรถkaluihin, kuten Selenium, kun taas JUnit sopii erinomaisesti yksinkertaisempiin yksikkรถtesteihin.


4) Mitkรค ovat TestNG merkinnรคt ja miten ne ovat hyรถdyllisiรค?

Huomautukset sisรครคn TestNG mรครคritellรค testimenetelmien rakenne ja kรคyttรคytyminenNe poistavat monimutkaisen XML-konfiguraation tarpeen tarjoamalla deklaratiivisen testiohjauksen suoraan koodissa.

Yleisesti kรคytettyihin merkintรถihin kuuluvat:

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

Esimerkiksi:

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

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

Tรคmรค auttaa kehittรคjiรค jรคrjestรคmรครคn testien suorituksen loogisesti varmistaen, ettรค asennus, testien suoritus ja purkaminen tapahtuvat mรครคritellyssรค jรคrjestyksessรค.


5) Selitรค ryhmรคn kรคsiteping in TestNG.

Grouping in TestNG mahdollistaa testien loogisen luokittelun pienempiin, hallittaviin ryhmiin, kuten โ€Savuโ€, โ€Regressioโ€ tai โ€Jรคrkevรคisyysโ€.

Esimerkiksi:

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

Voit mรครคrittรครค XML-pakettisi suorittamaan tiettyjรค ryhmiรค:

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

Hyรถdyt:

  • Helpottaa testitapausten valikoivaa suorittamista.
  • Parantaa CI/CD-putkien joustavuutta.
  • Sรครคstรครค suoritusaikaa inkrementaalisten koontien aikana.

6) Miten parametrisointi voidaan saavuttaa TestNG?

Parametrisointi mahdollistaa datalรคhtรถisen testauksen, jolloin testejรค voidaan suorittaa useilla syรถttรถtietojoukoilla. TestNG tukee kahta ensisijaista menetelmรครค:

  1. Kรคyttรคminen @Parameters XML-merkintรค:
  2. <parameter name="browser" value="chrome"/>
    @Test
    @Parameters("browser")
    public void launchBrowser(String browser) { ... }
    
  3. Kรคyttรคminen @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) { ... }
    

Tรคmรค joustavuus helpottaa suurten testijoukkojen yllรคpitoa ja suorittamista eri ympรคristรถissรค tai kokoonpanoissa.


7) Mitรค riippuvuudet ovat TestNG ja miten niitรค hallitaan?

Riippuvuudet sisรครคn TestNG hallita testien suoritusjรคrjestystรค muiden testitulosten perusteella kรคyttรคmรคllรค dependsOnMethods or dependsOnGroups attribuutteja.

Esimerkiksi:

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

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

Jos riippuvainen menetelmรค epรคonnistuu, seuraava testi ohitetaan automaattisesti.

Tรคmรค mekanismi estรครค virheellisen testisuorituksen ja auttaa yllรคpitรคmรครคn loogisen testin eheysSe on erityisen hyรถdyllinen monivaiheisille toiminnallisille tyรถnkuluille, kuten kirjautuminen โ†’ toiminnon suorittaminen โ†’ tuloksen tarkistaminen.


8) Mitรค erilaisia โ€‹โ€‹toteutustapoja on olemassa? TestNG testit?

TestNG Testejรค voidaan suorittaa useilla joustavilla tavoilla testausasetuksista riippuen:

  1. IDE:stรค (Eclipse/IntelliJ): Napsauta hiiren kakkospainikkeella luokkaa tai XML file โ†’ Run as โ†’ TestNG Test.
  2. Komentoriviltรค: java -cp "path\testng.jar;bin" org.testng.TestNG testng.xml
  3. Rakennustyรถkalujen kรคyttรถ:
    • Maven: Configure surefire-plugin in pom.xml.
    • Gradle: Kรคyttรครค testng riippuvuus ja tehtรคvien konfigurointi.
  4. CI/CD-putkistojen kautta: Integroitu Jenkins tai GitHub Actions automaattista suoritusta varten.

Tรคmรค monipuolisuus varmistaa yhteensopivuuden kehitys-, testaus- ja tuotantoympรคristรถissรค.


9) Mitkรค ovat TestNG kuuntelijat ja miksi he ovat tรคrkeitรค?

Kuuntelijat sisรครคn TestNG tarjota koukkuja testikรคyttรคytymisen mukauttamiseen seuraamalla testien suoritustapahtumia, kuten aloitusta, onnistumista, epรคonnistumista tai ohittamista.

Yleisiรค kuuntelijoita:

  • ITestListener: Tracks-testimenetelmรคtason tapahtumat.
  • ISuiteListenerTarkkailee sviittitason tapahtumia.
  • IReporter: Luo mukautettuja raportteja.

Esimerkiksi:

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

Kuuntelijoita kรคytetรครคn usein ottamaan kuvakaappauksia epรคonnistumisesta, tuottaa mukautetut lokittai integrointi raportointityรถkaluihin kuten Allure tai ExtentReports.


10) Mitkรค ovat kรคytรถn edut ja haitat TestNG?

Aspect edut Haitat
Joustavuus Tukee maataping, riippuvuus ja rinnakkainen suoritus Monimutkainen XML-asetus suurille paketeille
Raportointi Tarjoaa yksityiskohtaisia โ€‹โ€‹HTML- ja XML-raportteja Rajoitettu mukauttaminen ilman kuuntelijoita
Integraatio Toimii saumattomasti kanssa Selenium ja CI/CD-tyรถkalut Hieman korkeampi oppimiskรคyrรค
Parametrisointi Sisรครคnrakennettu tuki datalรคhtรถiselle testaukselle Vaatii yllรคpitoa suurille tietojoukoille

Kaiken TestNG on vankka ja joustava kehys, joka sopii nykyaikaisiin automaatiotestausympรคristรถihin vรคhรคisestรค konfigurointitarpeestaan โ€‹โ€‹huolimatta.


11) Miten voit priorisoida testitapauksia TestNG?

TestNG tarjoaa priority attribuutti kohdassa @Test annotaatio, joka mรครคrittรครค testimetodien suoritusjรคrjestyksen. Testit, joilla on alhaisempi prioriteettiarvo, suoritetaan ensin.

Esimerkiksi:

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

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

Jos prioriteettia ei ole mรครคritetty, oletusarvo on 0, ja metodit suoritetaan aakkosjรคrjestyksessรค.

Paras harjoitus: Kรคytรค prioriteettiarvoja sรครคsteliรครคsti. Niiden liikakรคyttรถ voi tehdรค testijรคrjestyksestรค jรคykkรครค. Monimutkaisissa virroissa riippuvuuksien hallinta (dependsOnMethods) on helpommin yllรคpidettรคvรค kuin tiukka priorisointi.


12) Selitรค rinnakkaissuorituksen kรคsite ja kรคyttรถ TestNG.

Rinnakkainen suoritus TestNG mahdollistaa useiden testien, luokkien tai metodien suorittamisen samanaikaisesti, mikรค lyhentรครค merkittรคvรคsti kokonaissuoritusaikaa.

Voit ottaa tรคmรคn ominaisuuden kรคyttรถรถn kohdassa testng.xml tiedosto:

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

Tuetut rinnakkaistilat:

  • tests
  • classes
  • methods
  • instances

edut:

  • Nopeampi palautesykli.
  • Moniydinprosessoreiden tehokas hyรถdyntรคminen.
  • Skaalautuvuus suurille automaatiokokonaisuuksille.

Varmista kuitenkin, langan turvallisuus kรคytettรคessรค jaettuja resursseja, kuten WebDriveria tai tietokantayhteyksiรค.


13) Mitรค ovat tiedon tarjoajat TestNGMiten ne eroavat parametreista?

@DataProvider mahdollistaa tietopohjainen testaus toimittamalla testimenetelmille useita datajoukkoja.

Esimerkiksi:

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

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

Ero @Parameters- ja @DataProvider-kohteiden vรคlillรค:

Ominaisuus @Parameters @DataProvider
Tietolรคhde XML-tiedosto Java menetelmรค
Tietotyyppi Yksittรคinen tietojoukko Useita tietojoukkoja
Joustavuus Less Korkea
Kรคytรค asiaa Ympรคristรถmuuttujat Toistetut datapohjaiset testit

Siten, @DataProvider on suositeltava suoritettaessa yhtรค testiรค useilla tietojoukoilla, kuten kirjautumisen varmentamisessa useilla tunnistetiedoilla.


14) Miten voit poistaa testin kรคytรถstรค tai ohittaa sen? TestNG?

Voit poistaa testin kรคytรถstรค kohdassa TestNG kรคyttรคen enabled attribuutin tai ohjelmallisen ohituksen avullaping se.

1. kรคyttรคmรคllรค enabled = false:

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

2. Ohitaping ajon aikana kรคyttรคmรคllรค SkipException:

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

Kรคytรถstรค poistaminen on hyรถdyllistรค, jos tilapรคinen deaktivointi epรคvakaita tai keskenerรคisiรค testejรค poistamatta niitรค Ohita.ping on arvokas ajonaikaiset ehdot, kuten ohitaping testit ei-tuetuille selaimille.


15) Mikรค on testng.xml-tiedoston rooli ja mitkรค ovat sen pรครคkomponentit?

testng.xml tiedosto on konfiguraation selkรคranka TestNGSe mรครคrittelee testipaketit, testiryhmรคt, parametrit ja rinnakkaissuorituksen asetukset.

Rakenne-esimerkki:

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

Pรครคkomponentit:

  • <suite> โ€“ Mรครคrittelee koko sarjan.
  • <test> โ€“ Edustaa testilohkoa.
  • <classes> โ€“ Listaa testiluokat.
  • <methods> โ€“ Suodataa tiettyjรค testimenetelmiรค.
  • <parameter> โ€“ Tarjoaa globaaleja tai testitason parametreja.

XML-tiedosto tarjoaa keskitetty hallinta ylisuoritusta muuttamatta koodia.


16) Miten voit luoda raportteja TestNG?

TestNG luo automaattisesti kahdenlaisia โ€‹โ€‹raportteja:

  1. HTML-raportti (test-output/index.html) โ€“ Yhteenveto hyvรคksytyistรค, hylรคtyistรค ja ohitetuista testeistรค.
  2. XML-raportti โ€“ Kรคytetรครคn CI/CD-tyรถkalujen integrointiin.

Edistynyttรค raportointia varten TestNG integroituu seuraavien kanssa:

  • Laajuusraportit โ€“ Tarjoaa graafisia kojelaudan nรคkymiรค ja yksityiskohtaisia โ€‹โ€‹lokeja.
  • Allure-raportit โ€“ Tarjoaa visuaalista analytiikkaa testivaiheilla, kuvakaappauksilla ja lokeilla.

Esimerkkiintegraatio:

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

Nรคmรค raportit ovat vรคlttรคmรคttรถmiรค trachallitsevat trendit ja tunnistavat testien kattavuuden heikkoja alueita.


17) Missรค tehtaat ovat TestNG, ja miten ne toimivat?

Tehtaita TestNG kรคytetรครคn luomaan testiluokkien dynaamiset instanssitNe mahdollistavat luokkien parametrisoidun instanssin luomisen ennen testien suorittamista.

Esimerkiksi:

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

edut:

  • mahdollistaa parametrisoidun objektin luonti.
  • Ihanteellinen selainten vรคlinen testaus ja moniympรคristรถinen toteutus.
    Tehtaat tรคydentรคvรคt DataProvidereja, kun tarvitset erilaisia โ€‹โ€‹objektikonfiguraatioita pelkรคn metoditason datavariaation sijaan.

18) Miten vรคitteitรค voi kรคyttรครค TestNG?

Vรคitteitรค kรคytetรครคn odotettujen ja todellisten tulosten validointiin testimenetelmissรค.

Vรคitteiden tyypit:

  1. Kovat vรคitteet (vรคiteluokka):
    Pysรคyttรครค testin suorituksen vรคlittรถmรคsti epรคonnistumisen jรคlkeen.
  2. Assert.assertEquals(actual, expected);
    Assert.assertTrue(condition);
    
  3. Pehmeรคt vรคitteet (SoftAssert-luokka):
    Jatkaa suoritusta myรถs epรคonnistumisen jรคlkeen ja raportoi kaikki ongelmat lopussa.
  4. SoftAssert soft = new SoftAssert();
        soft.assertEquals(actual, expected);
        soft.assertAll();
    
  5. Milloin kรคyttรครค:
    • Kรคytรค kovia vรคitteitรค kriittinen validointi kuten kirjautumisen onnistuminen.
    • Kรคytรค pehmeitรค vรคitteitรค useita vahvistuksia yhden testimenetelmรคn sisรคllรค.

19) Selitรค @BeforeMethodin ja @BeforeClassin vรคlinen ero kohdassa TestNG.

Aspect @BeforeMethod @BeforeClass
Teloitus Toimii ennen jokaista testausmenetelmรค Toimii kerran ennen mikรค tahansa luokan metodi
Laajuus Testimenetelmรครค kohden Testiluokkaa kohden
Yleinen kรคyttรถ Selaimen alustaminen ennen jokaista testiรค Kokoonpanon tai selaimen asetusten lataaminen kerran

Esimerkiksi:

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

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

Kรคyttรครค @BeforeMethod kun jokainen testi vaatii puhtaan ympรคristรถn, ja @BeforeClass raskaisiin alustustehtรคviin, joita voidaan kรคyttรครค uudelleen.


20) Miten TestNG Tukeeko riippuvuusinjektiota ja mitkรค ovat sen kรคyttรถtapaukset?

TestNG tukee riippuvuuden injektio sisรครคnrakennetun konteksti- ja konfiguraatio-objektien injektoinnin kautta, kuten ITestContext, XmlTesttai Method.

Esimerkiksi:

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

Kรคytรค koteloita:

  • Testiparametrien noutaminen dynaamisesti.
  • Konfiguraatiotietojen, kuten ohjelmistopakettien nimien tai rinnakkaissuoritusasetusten, kรคyttรถ.
  • Testien joustavuuden parantaminen ilman kovakoodattuja riippuvuuksia.

Riippuvuusinjektio antaa kehittรคjille mahdollisuuden kirjoittaa modulaarisia, kontekstitietoisia testejรค jotka sopeutuvat dynaamisesti ympรคristรถn muutoksiin.


21) Mitรค eroa on @Factorylla ja @DataProviderilla? TestNG?

molemmat @Factory ja @DataProvider apua parametroinnissa, mutta ne toimivat eri tasot testiarkkitehtuurissa.

Ominaisuus @Factory @DataProvider
Laajuus Luokkataso Menetelmรคtaso
Tarkoitus Luo useita instansseja luokasta, jossa on eri tietoja Toimittaa dataa yhdelle testimenetelmรคlle
Teloitus Suorittaa koko luokan jokaiselle instanssille Suorittaa yhden metodin useita kertoja
Ihanteellinen kรคyttรถkotelo Selain- tai ympรคristรถjen vรคlinen testaus Datapohjainen toiminnallinen testaus

Esimerkiksi:

  • Tehdas: Suorittaa koko luokan selaintyypin mukaan.
  • Tiedontoimittaja: Suorittaa yhden testimenetelmรคn useilla tietojoukoilla.

Kรคyttรครค @Factory kun itse objektin instanssi vaihtelee, ja @DataProvider toiminnallisen syรถtteen vaihtelulle saman objekti-instanssin sisรคllรค.


22) Miten voit yrittรครค epรคonnistuneita testitapauksia uudelleen automaattisesti? TestNG?

TestNG tarjoaa mekanismin suorita epรคonnistuneet testitapaukset uudelleen kรคyttรคen IRetryAnalyzer kรคyttรถliittymรค.

Esimerkki toteutus:

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

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

Kรคyttรถ:

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

Hyรถdyt:

  • Vรคhentรครค CI-putkistojen hilseilyรค.
  • Kรคsittelee ohimeneviรค verkko- tai ympรคristรถongelmia.

Paras harjoitus: Yhdistรค uudelleenyrityslogiikka asianmukaiseen lokikirjaukseen ja kuvakaappauksiin ajoittaisten virheiden virheenkorjausta varten.


23) Mitรค hyรถtyรค ITestContextista on? TestNG?

ITestContext tarjoaa kontekstuaalista tietoa tietoja testiajosta, mukaan lukien ohjelman nimi, testin nimi, tulostushakemisto ja parametrit.

Esimerkiksi:

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

Tรคrkeimmรคt menetelmรคt:

  • getSuite() โ€“ Hakee sviittitason tiedot.
  • getName() โ€“ Palauttaa testin nimen.
  • setAttribute() / getAttribute() โ€“ Jaa tietoja testien vรคlillรค.

Se mahdollistaa datan jakaminen testimenetelmien tai luokkien vรคlillรค ja helpottaa dynaamista raportointia ja lokinkirjoitusta.


24) Miten voit luoda riippuvuuksia testiryhmien vรคlille? TestNG?

Voit mรครคrittรครค ryhmien vรคlisiรค riippuvuuksia kรคyttรคmรคllรค dependsOnGroups attribuutti kohdassa @Test merkintรค.

Esimerkiksi:

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

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

Tรคmรค varmistaa, ettรค verifyProfile ryhmรค suoritetaan vain, jos kaikki testit Login ryhmรค lรคpรคisi onnistuneesti.

Se on erityisen hyรถdyllinen integraatiotestaus, jossa moduulit ovat riippuvaisia โ€‹โ€‹muiden moduulien onnistuneesta suorituksesta (esim. kirjautuminen โ†’ profiili โ†’ uloskirjautuminen).


25) Kuinka voit jรคttรครค tietyt testimenetelmรคt huomiotta? TestNG XML-tiedosto?

Voit nimenomaisesti poissulkemismenetelmรคt XML-sviittitiedoston luokan sisรคllรค kรคyttรคmรคllรค <exclude> tunnisteita.

Esimerkiksi:

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

Tรคmรค antaa testaajille mahdollisuuden poista tietyt menetelmรคt vรคliaikaisesti kรคytรถstรค muokkaamatta Java lรคhdekoodi โ€“ hyรถdyllinen suurissa paketeissa, joissa tarvitaan dynaamista sisรคllyttรคmistรค tai poissulkemista julkaisusyklien tai sprinttien prioriteettien perusteella.


26) Kuinka voi TestNG olla integroitu Selenium WebDriver?

TestNG ja Selenium muodostavat tehokkaan yhdistelmรคn kรคyttรถliittymรคn automatisointiin.

Tyypillinen integraatioasennus sisรคltรครค testien jรคrjestรคmisen merkintรถjen avulla, asennuksen/purkamisen hallinnan ja testien suorittamisen XML- tai CI-tyรถkaluilla.

Esimerkiksi:

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

Integraation edut:

  • mahdollistaa rinnakkaiselaintestaus.
  • yksinkertaistetaan testiryhmรคping ja raportointi.
  • Toimii saumattomasti kanssa CI / CD-putkistot pitรครค Jenkins tai GitHub-toiminnot.

27) Mitรค parhaita kรคytรคntรถjรค on kรคytรถssรค? TestNG suurissa automaatiokehyksissรค?

Parhaat kรคytรคnnรถt:

  1. Kรคyttรครค DescriptIve-nimeรคminen: Nimeรค testit kรคyttรคytymisen, รคlรค toteutuksen perusteella.
  2. Vipuvaikutusryhmรคping: Luo loogisia testiryhmiรค (Savu, Regressio).
  3. Vรคltรค kovakoodausta: Kรคytรค testidatalle parametreja tai ominaisuustiedostoja.
  4. Minimoi riippuvuudet: Pidรค testitapaukset itsenรคisinรค aina kun mahdollista.
  5. Keskitetty konfigurointi: Kรคyttรครค testng.xml sviitin asennusta varten.
  6. Integroi raportointi: Kรคytรค kuuntelijoita tai kolmannen osapuolen tyรถkaluja, kuten ExtentReportsia.
  7. Kรคytรค uudelleenyrityslogiikkaa varoen: Vรคltรค peittelemรคstรค aitoja vikoja.

Nรคiden noudattaminen varmistaa skaalautuvuus, yllรคpidettรคvyys ja luettavuus yritystason automaatiossa.


28) Mitรค eroa on @BeforeTestin ja @BeforeSuiten vรคlillรค? TestNG?

Ominaisuus @BeforeTest @BeforeSuite
Laajuus Juoksee ennen jokaista <test> tagi XML:ssรค Toimii kerran ennen koko sviittiรค
Taajuus Useita kertoja (jos useita <test> lohkot) Vain kerran sviittiรค kohden
Yleinen kรคyttรถ Alusta testitason kokoonpano Mรครคritรค globaalit resurssit

Esimerkiksi:

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

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

Kรคyttรครค @BeforeSuite varten globaalit kokoonpanot (esim. tietokantayhteys) ja @BeforeTest varten testikohtaiset alustukset.


29) voi TestNG voidaanko sitรค kรคyttรครค API-testaukseen? Miten?

Kyllรค. TestNG voidaan kรคyttรครค tehokkaasti API-testaus integroimalla HTTP-asiakaskirjastoihin, kuten RestAssured or HTTPClient.

Esimerkiksi:

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

edut:

  • mahdollistaa vรคitteisiin perustuva validointi vastauksista.
  • Tukee parametrisointi ja tietopohjainen testaus useille pรครคtepisteille.
  • synnyttรครค strukturoidut raportit REST API -validointeja varten.

Yhdistรคmรคllรค TestNG ja RestAssuredin avulla testaajat voivat yllรคpitรครค yhtenรคistรค automaatiokehystรค sekรค kรคyttรถliittymรค- ettรค API-testaukselle.


30) Miten komentoriviltรค annetaan parametreja? TestNG?

Voit ohittaa XML-parametrit suorituksen aikana vรคlittรคmรคllรค jรคrjestelmรคominaisuudet kรคyttรคmรคllรค -D lippu.

Komentoesimerkki:

mvn test -Dbrowser=chrome -Denv=staging

Code Esimerkiksi:

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

Tรคmรค mahdollistaa dynaaminen ympรคristรถvalinta CI/CD-putkistoissa ilman konfiguraatiotiedostojen muuttamista, mikรค parantaa testauksen joustavuutta.


31) Miten voit hallita testien suoritusjรคrjestystรค TestNG ilman prioriteetteja?

Kรคyttรคmisen sijaan priority, TestNG mahdollistaa hallinnan riippuvuudet ja XML-metodien jรคrjestys.

Menetelmรคt:

  1. Kรคyttรคminen dependsOnMethods:
  2. @Test
    public void login() { ... }
    
    @Test(dependsOnMethods = "login")
    public void verifyDashboard() { ... }
    
  3. XML-metodisarjan kรคyttรคminen:
  4. <classes>
      <class name="com.test.LoginTests">
        <methods>
          <include name="login"/>
          <include name="verifyDashboard"/>
        </methods>
      </class>
    </classes>
    

Paras harjoitus: Suosi monimutkaisille virroille loogisia riippuvuuksia staattisten prioriteettien sijaan, mikรค varmistaa vankat ja yllรคpidettรคvรคt testipaketit.


32) Miten voit suorittaa tiettyjรค testimetodeja komentoriviltรค? TestNG?

TestNG mahdollistaa metoditason testien suoritus suoraan komentoriviltรค kรคyttรคmรคllรค XML- tai Maven Surefire -konfiguraatioita.

Vaihtoehto 1: XML-tiedoston kรคyttรถ

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

Vaihtoehto 2: Maven-komento

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

Tรคmรค lรคhestymistapa mahdollistaa valikoiva toteutus, hyรถdyllinen yksittรคisten metodien virheenkorjaukseen tai kriittisten toimintojen validointiin nopeiden koontien aikana.


33) Miten parametrisoit testejรค ulkoisen Excel-tiedoston avulla? TestNG?

Excel-pohjainen parametrisointi on yleistรค datalรคhtรถisissรค kehyksissรค, joissa testidata muuttuu usein.

Kรคyttรถรถnoton vaiheet:

  1. Kรคyttรครค Apache POI or JExcel lukea Excel-tietoja.
  2. Syรถtรค se @DataProvider menetelmรคllรค.

Esimerkiksi:

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

Tรคmรค mahdollistaa saman testimenetelmรคn suorittamisen useilla reaalimaailman Excel-tietojoukoilla, mikรค lisรครค joustavuutta ja kattavuutta.


34) Kuinka voit juosta TestNG testit Jenkins vai CI/CD-putkistot?

TestNG integroituu saumattomasti Jenkins, GitLab CItai GitHub-toiminnot Mavenin kautta tai Gradle rakentaa.

Astuu sisรครคn Jenkins:

  1. install Maven-integraatiolaajennus.
  2. Luo Freestyle- tai Pipeline-tyรถ.
  3. Lisรครค mvn clean test rakennusvaiheena.
  4. HTML-raporttien konfigurointi koonnin jรคlkeen:
    • Raporttihakemisto: test-output
    • Indeksitiedosto: index.html

Hyรถdyt:

  • Mahdollistaa automatisoidun regressiotestauksen.
  • Tarjoaa ajoitettuja testiajoja ja trendejรค trackuningas.
  • Varmistaa testien yhdenmukaisen suorittamisen eri ympรคristรถissรค.

35) Mikรค on @Parameters-parametrin tarkoitus ja miten se eroaa @Optional-parametrista?

Molemmat merkinnรคt kรคsittelevรคt parametrisointia, mutta niillรค on eri tarkoitukset.

Ominaisuus @Parameters @Optional
Tarkoitus Vรคlittรครค parametrit XML-tiedostosta Tarjoaa oletusarvon, jos parametri puuttuu
Ilmoitus Kรคytetรครคn XML:n kanssa <parameter> Kรคytetรครคn testimenetelmรคn sisรคllรค
Kรคyttรคytyminen Heittรครค virheen, jos arvo puuttuu Kรคyttรครค vara-arvoa

Esimerkiksi:

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

Kรคyttรคminen @Optional varmistaa testivakaus kun XML-mรครคritykset ovat puutteellisia.


36) Miten kรคsittelet testiriippuvuuksia eri luokkien vรคlillรค? TestNG?

Luokkien vรคlisten riippuvuuksien luomiseksi TestNG mahdollistaa sen kรคytรถn dependsOnGroups mรครคrite.

Esimerkiksi:

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

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

Tรคmรค lรคhestymistapa auttaa hallitsemaan monimoduuliriippuvuudet jossa jokainen luokka edustaa yhtรค moduulia (Kirjautuminen, Kojelauta, Maksu jne.).

Se varmistaa, ettรค riippuvat moduulit suoritetaan vain, jos edellytystestit onnistuvat, sรคilyttรคen testien eheyden.


37) Mitรค ovat konfigurointivirheet TestNG, ja miten niitรค voidaan kรคsitellรค?

Konfiguraatiovirheitรค esiintyy, kun asennus- tai purkumenetelmiin on merkitty @Before* or @After* epรคonnistua.

Ne voivat aiheuttaa riippuvat testit ohitettavaksivaikka nuo testit pitรคisivรคtkin paikkansa.

Yleisiรค syitรค:

  • Virheellinen WebDriver-alustus.
  • Tietokannan tai ympรคristรถn asennusongelmat.
  • Parametrin virheellinen mรครคritys.

Ratkaisut:

  • Kรคyttรครค yritรค saada kiinni lohkot asennusmenetelmissรค.
  • kรคyttรครค alwaysRun = true varmistaakseen, ettรค puhdistus toimii virheistรค huolimatta.

Esimerkiksi:

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

Tรคmรค varmistaa, ettรค purkumenetelmรคsi toimivat edelleen ja testiympรคristรถn vakaus sรคilyy.


38) Mitรค hyรถtyรค on invocationCount- ja threadPoolSize-attribuuteista? TestNG?

Nรคmรค ominaisuudet mahdollistavat toistettujen ja rinnakkaisten testien suorittaminen samalla menetelmรคllรค.

Esimerkiksi:

@Test(invocationCount = 5, threadPoolSize = 2)
public void loadTest() {
    System.out.println("Running load test...");
}
Ominaisuus Tuotetiedot
invocationCount Metodin suorituskertojen mรครคrรค
threadPoolSize Samanaikaisten sรคikeiden mรครคrรค

Kรคyttรถtapa: Suorituskykytestaus, vakauden varmentaminen tai epรคtasaisen kรคyttรคytymisen toistaminen useissa ajoissa.


39) Miten ajat vain epรคonnistuneita testitapauksia TestNG?

Sviittiajon jรคlkeen TestNG luo tiedoston nimeltรค testng-failed.xml vuonna test-output hakemistoon.

Voit suorittaa uudelleen vain epรคonnistuneet testit suorittamalla:

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

edut:

  • Sรครคstรครค aikaa ohittamallaping onnistuneita testejรค.
  • Helpottaa virheenkorjausta suurissa paketeissa.
  • Yleisesti kรคytetty CI-putkistoissa nopeisiin uudelleentestauksiin.

Voit myรถs integroida tรคmรคn Jenkins kรคyttรคmรคllรค uudelleenajoihin jรคlkikรคteistรค komentosarjaa.


40) Mitรค rajoituksia on TestNG ja miten niitรค voidaan lieventรครค?

Kestรคvyydestรครคn huolimatta, TestNG on muutamia rajoituksia.

rajoitus Lieventรคmisstrategia
XML-konfiguraation monimutkaisuus Kรคytรค merkintรถihin perustuvaa konfigurointia ja rakentajia
Rajoitettu natiiviraportointi Integroi ExtentReports tai Allure
Ei sisรครคnrakennettua uudelleenyritysten hallintaa Toteuttaa IRetryAnalyzer
Sรคikeiden turvallisuusongelmat rinnakkaisajossa Kรคytรค sรคikeittรคin luotuja WebDriver-instansseja
Oppimiskรคyrรค aloittelijoille Sรคilytรค mallipohjaiset projektirakenteet

Asianmukaisella kehyssuunnittelulla ja parhailla kรคytรคnnรถillรค nรคitรค rajoituksia voidaan minimoida, mikรค varmistaa vakaat ja yllรคpidettรคvรคt automaatioratkaisut.


41) Miten kรคytรคt kuuntelijoita lokinnukseen ja kuvakaappausten ottamiseen? Selenium-TestNG?

Kuuntelijat sisรครคn TestNG auttavat valvomaan testien suoritusta ja suorittamaan toimintoja, kuten lokin kirjaamista, kuvakaappausten ottamista tai tulosten dynaamista raportointia.

Esimerkki toteutus:

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

Kรคyttรถ:

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

Hyรถdyt:

  • Tallentaa virheet automaattisesti.
  • Parantaa virheenkorjausta visuaalisen todistusaineiston avulla.
  • Vรคhentรครค lokien yllรคpidon manuaalista vaivaa.

Tรคmรค tekniikka on ratkaisevan tรคrkeรค CI/CD-automaatioputkissa, erityisesti epรคonnistuneiden koontien etรคdiagnosoinnissa.


42) Mitรค eroa on IReporterilla ja ITestListenerilla? TestNG?

Ominaisuus IReporter ITestListener
Tarkoitus Luo mukautettuja raportteja testin suorittamisen jรคlkeen Tracks ja reagoi ajonaikaisiin testitapahtumiin
rukous Kaikkien testien jรคlkeen Testin elinkaaren aikana (aloitus, onnistuminen, epรคonnistuminen)
ulostulo HTML/XML/JSON-raportit Lokitiedostot, kuvakaappaukset, reaaliaikaiset kojelaudat
Yleinen kรคyttรถ ExtentReports, Allure-integraatio Lokikirjaus, virheiden kรคsittely, uudelleenyritysmekanismit

Esimerkiksi:

  • Kรคyttรครค IReporter rakentamiseen kattavat raportit testin valmistumisen jรคlkeen.
  • Kรคyttรครค ITestListener varten reaaliaikainen lokikirjaus tai kuvakaappaukset.

Ne voivat myรถs olla yhdistetty rakentaa kokonaisvaltaisia โ€‹โ€‹automaatioanalytiikkajรคrjestelmiรค.


43) Miten suoritat selainten vรคlisen testauksen kรคyttรคmรคllรค TestNG XML-konfiguraatio?

Selainrajat ylittรคvรค testaus varmistaa, ettรค sama toiminnallisuus toimii eri selaimissa.

Esimerkki kokoonpanosta:

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

Tรคmรค lรคhestymistapa mahdollistaa rinnakkainen, usean selaimen suoritus, nopeuttaen testien kattavuutta eri alustoilla.


44) Miten integroit TestNG Dockerin tai Selenium Verkko?

TestNG integroituu saumattomasti Dockerisoitu Selenium ruudukko hajautetun rinnakkaistestauksen mahdollistamiseksi.

Vaiheet:

  1. Perustaa Selenium Ruudukko Dockerissa kรคytรค virkamiestรค Selenium kuva:
    docker run -d -p 4444:4444 --name selenium-grid selenium/standalone-chrome
  2. Pรคivitykset TestNG setup:
  3. DesiredCapabilities caps = new DesiredCapabilities();
    caps.setBrowserName("chrome");
    driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), caps);
    
  4. Toteuta sviittisi kautta Jenkins tai CI-putkisto.

Hyรถdyt:

  • mahdollistaa skaalautuva rinnakkaistestaus.
  • Vรคhentรครค ympรคristรถn asennuskustannuksia.
  • Tarjoaa johdonmukainen testien suorittaminen hajautettujen konttien kautta.

45) Mitรค eroa on rinnakkaissuorituksella sarja-, testi- ja metoditasolla? TestNG?

Taso Rinnakkaisattribuutti Suorituskรคyttรคytyminen
Sviitti parallel="suites" Suorittaa useita sviittejรค samanaikaisesti
Testi parallel="tests" Toimii <test> lohkoja samanaikaisesti
luokka parallel="classes" Suorittaa testiluokkia rinnakkain
Menetelmรค parallel="methods" Suorittaa yksittรคisiรค testimenetelmiรค rinnakkain

Esimerkiksi:

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

Paras harjoitus:Kรคyttรครค parallel="classes" vakautta varten Selenium testit jaettujen kuljettajien konfliktien vรคlttรคmiseksi.


46) Miten voit jakaa dataa testien vรคlillรค kรคyttรคmรคttรค globaaleja muuttujia? TestNG?

TestNG tarjoaa ITestContext ja riippuvuuden injektio jakaa dataa dynaamisesti.

Esimerkiksi:

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

Tรคmรค vรคlttรครค staattisia muuttujia, yllรคpitรครค sรคikeiden turvallisuutta ja varmistaa datan eristรคminen testien vรคlillรค.


47) Miten ohitetut testit tallennetaan ja kirjataan? TestNG?

Voit tallentaa ohitetut testit kรคyttรคmรคllรค onTestSkipped() vuonna ITestListener kรคyttรถliittymรค.

Esimerkiksi:

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

Ohittamisen syytping:

  • Riippuvainen testin epรคonnistuminen.
  • Ehdollinen ohitusping kautta SkipException.
  • Ympรคristรถ ei ole kรคytettรคvissรค.

Paras harjoitus:
Lokin ohitussyyt ja pino traces trackรคytettรคvyys CI-raporteissa tai koontinรคytรถissรค.


48) Selitรค, miten REST API -testejรค parametrisoidaan kรคyttรคmรคllรค TestNG ja RestAssured.

TestNG'S @DataProvider integroituu tyylikkรครคsti RestAssured API-parametrointia varten.

Esimerkiksi:

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

edut:

  • Suorittaa saman API-kutsun useille pรครคtepisteille tai hyรถtykuormille.
  • Yksinkertaistaa regressiotestausta API-rajapinnoille, joissa on vaihtelevia syรถttรถjoukkoja.
  • Integroituu saumattomasti CI-tyรถkaluihin ja -raportteihin.

49) Miten luot mukautettuja merkintรถjรค TestNG uudelleenkรคytettรคviรค testausmalleja varten?

Mukautetut merkinnรคt voivat standardoida toistuvia testikonfiguraatioita tai validointeja.

Esimerkiksi:

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

Kรคyttรถ:

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

Yhdessรค reflektion kanssa voit lukea nรคitรค merkintรถjรค dynaamisesti ryhmitellรคksesi testejรค tai ohjataksesi ehdollista suoritusta.

Tรคtรค tekniikkaa kรคytetรครคn laajalti viitekehyksen metaohjelmointi rakentaa itsedokumentoivia testejรค.


50) Miten voit yhdistรครค Cucumber ja TestNG hybridi-testauskehyksille?

TestNG voi toimia kuten testijuoksija varten Cucumber BDD-skenaariot, jotka tarjoavat tehokasta raportointia ja rinnakkaistamista.

Esimerkki juoksijasta:

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

edut:

  • hyรถdyntรครค TestNG'S merkinnรคt, kuuntelijat ja raportointi.
  • Tukee rinnakkaisominaisuuksien suorittaminen.
  • Integroituu viehรคttรครค ja Laajuusraportit helposti.

Tรคmรค hybridilรคhestymistapa yhdistรครค BDD-luettavuus TestNG joustavuus, ihanteellinen yritystason kehyksille.


๐Ÿ” Huippu TestNG Haastattelukysymykset tosielรคmรคn skenaarioilla ja strategisilla vastauksilla

Alla on 10 realistista, toimialaan liittyvรครค TestNG haastattelukysymykset sekรค selkeรคt odotukset ja vahvat esimerkkivastaukset.

1) Voitko selittรครค tรคrkeimmรคt kรคytรถn edut TestNG verrattuna JUnit?

Ehdokkaalta odotetaan: Osoita ymmรคrrystรค TestNGn parannetut ominaisuudet ja miksi sitรค usein suositaan yritysten automatisoinnissa.

Esimerkki vastauksesta: "TestNG tarjoaa useita etuja, kuten joustavan testikonfiguraation, rinnakkaissuorituksen tuen, riippuvaiset testimenetelmรคt, datalรคhtรถisen testauksen DataProviders-palveluilla ja sisรครคnrakennetun raportoinnin. Nรคmรค ominaisuudet tekevรคt TestNG tehokkaampi monimutkaisille automaatiokehyksille, jotka vaativat skaalautuvuutta.โ€


2) Miten kรคytรคt TestNG merkintรถjรค testin suoritusvirran ohjaamiseksi?

Ehdokkaalta odotetaan: Tieto merkintรถjen tarkoituksesta ja jรคrjestyksestรค.

Esimerkki vastauksesta: "TestNG tarjoaa merkintรถjรค, kuten @BeforeSuite, @BeforeClass, @BeforeMethod, @Test, ja niitรค vastaavat purkumerkinnรคt. Nรคmรค mahdollistavat testien asetusten ja siivouksen jรคsennellyn organisoinnin. Esimerkiksi @BeforeMethod suoritetaan ennen jokaista testimetodia, mikรค on hyรถdyllistรค selaimen tilan alustamisessa.โ€


3) Kuvaile haastavaa automaatioprojektia, jossa TestNG oli avainasemassa.

Ehdokkaalta odotetaan: Kokemusta aidoista projektitรถistรค ja kykyรค ilmaista ongelmanratkaisukykyรค.

Esimerkki vastauksesta: โ€Edellisessรค roolissani tyรถskentelin projektin parissa, joka vaati laajaa regressiotestausta useissa eri ympรคristรถissรค.โ€ TestNGrinnakkainen suoritus ja ryhmรคping ominaisuudet mahdollistivat tiimille kriittisten pakettien samanaikaisen suorittamisen, mikรค lyhensi suoritusaikaa merkittรคvรคsti ja sรคilytti samalla luotettavuuden.โ€


4) Miten TestNG Auttavatko ryhmรคt testien tehokkaassa jรคrjestรคmisessรค ja suorittamisessa?

Ehdokkaalta odotetaan: Ymmรคrrys maaperรคstรคping, mukaan lukien sisรคllyttรคmis-/poissulkemismekanismit.

Esimerkki vastauksesta: "Ryhmรคt sisรครคn TestNG mahdollistavat testitapausten luokittelun, kuten savu-, regressio- ja integrointitestit. Kรคyttรคmรคllรค testng.xml:รครค voin valikoivasti suorittaa ryhmiรค, sulkea pois epรคvakaita testejรค ja hallita eri testisarjoja muokkaamatta itse koodia.โ€


5) Kuvaile tilannetta, jossa jouduit debugaamaan virheen. TestNG testit. Mikรค oli lรคhestymistapasi?

Ehdokkaalta odotetaan: Kriittinen ajattelu ja vianmรครคritystaidot.

Esimerkki vastauksesta: "Edellisessรค tyรถpaikassani kohtasin joukon epรคonnistumisia TestNG testejรค, jotka nรคyttivรคt lรคpรคisevรคn paikallisesti, mutta epรคonnistuivat CI:ssรค. Otin kรคyttรถรถn yksityiskohtaisen lokikirjauksen, tarkistin suoritusjรคrjestyksen ja havaitsin, ettรค jaettua resurssia ei nollattu testien vรคlillรค. Sitten toteutin asianmukaiset purkamisvaiheet kรคyttรคmรคllรค @AfterMethod-tyรถkalua varmistaakseni testien eristรคmisen.โ€


6) Miten toteutat datalรคhtรถisen testauksen kรคyttรคmรคllรค TestNG?

Ehdokkaalta odotetaan: Tietojen tarjoajien ja kรคyttรถtapausten ymmรคrtรคminen.

Esimerkki vastauksesta: โ€Luon @DataProvider-metodin, joka palauttaa dataa Object-taulukoissa, ja sidon sen sitten @Test-metodiin dataProvider-attribuutin avulla. Tรคmรค mahdollistaa saman testin useiden iteraatioiden suorittamisen eri syรถtejoukoilla, mikรค on hyรถdyllistรค lomakkeiden lรคhetysten tai API-hyรถtykuorman muunnelmien validoinnissa.โ€


7) Miten hallitset testiriippuvuuksia TestNG?

Ehdokkaalta odotetaan: dependsOnMethods- tai dependsOnGroups-metodien asianmukainen kรคyttรถ.

Esimerkki vastauksesta: "TestNG sallii testiriippuvuudet dependsOnMethods- ja dependsOnGroups-attribuuttien kautta. Kรคytรคn riippuvuuksia, kun testi on suoritettava vasta toisen suorituksen jรคlkeen, kuten tilauksen varmentamisessa vasta sen luomisen jรคlkeen.โ€


8) Kuvaile, miten olet kรคyttรคnyt TestNG jatkuvan integraation tyรถkaluilla.

Ehdokkaalta odotetaan: Kokemusta reaalimaailman automaatioputkesta.

Esimerkki vastauksesta: "Edellisessรค tyรถssรคni integroin TestNG Jenkins mรครคrittรคmรคllรค Maven-koontiversion luomaan TestNG HTML- ja XML-raportit. Jenkins sitten arkistoi raportit ja nรคytti tulokset jokaisen rakennusjakson jรคlkeen. Tรคmรค integraatio auttoi tiimiรค track-vikoja nopeasti ja yllรคpitรครค vapautumisen vakautta.โ€


9) Kerro minulle tilanteesta, jossa jouduit tyรถskentelemรครคn tiukkojen aikarajojen puitteissa ja samalla hallinnoimaan useita automaatiotehtรคviรค.

Ehdokkaalta odotetaan: Ajanhallinta ja kyky priorisoida.

Esimerkki vastauksesta: "Viimeisimmรคssรค roolissani minun piti pรคivittรครค olemassa olevia TestNG testipaketteja ja samalla luon uusia tulevaa julkaisua varten. Priorisoin tehtรคvรคt liiketoimintavaikutusten perusteella, automatisoin riskialttiimmat alueet ensin ja kรคytin TestNG grouping eristรครค valmiit osiot varhaista tarkistusta varten. Tรคmรค varmisti oikea-aikaisen toimituksen laadusta tinkimรคttรค.โ€


10) Miten suunnittelisit skaalautuvan TestNG kehys suurelle sovellukselle?

Ehdokkaalta odotetaan: Architekstuurien ymmรคrtรคminen, mallit ja parhaat kรคytรคnnรถt.

Esimerkki vastauksesta: "Suunnittelisin modulaarisen kehyksen kรคyttรคen Page Object Modelia, integroisin TestNG suorituksen hallintaan ja DataProviders-palveluita datalรคhtรถisissรค skenaarioissa. Konfiguroisin myรถs rinnakkaissuorituksen, keskittรคisin apuohjelmat ja ulkoistaisin mรครคritysasetukset, jotta kehys pysyy skaalautuvana ja yllรคpidettรคvรคnรค sovelluksen kasvaessa.โ€

Tiivistรค tรคmรค viesti seuraavasti: