Üst 50 TestNG Mülakat Soruları ve Cevapları (2026)

Iyi TestNG Mülakat Soruları ve Cevapları

için hazırlanıyor TestNG Mülakat mı? Güçlü yönlerinizi sergileyen soruları düşünmenin zamanı geldi. Sağlam bir TestNG Mülakatın temeli, işe alım ekipleri tarafından değer verilen derinliği, özgüveni ve hazır oluşu ortaya koyar.

Bu alandaki fırsatlar, otomasyonun büyümesi, gelişen çerçeveler ve teknik ve profesyonel deneyim gerektiren pratik test uygulamalarını kapsamaktadır. Bu alanda çalışmak, alan uzmanlığı, analiz becerileri ve yeni mezunlardan orta düzey ve kıdemli profesyonellere kadar herkesin teknik, temel ve ileri düzeydeki en sık sorulan soruları ve cevapları bulmasına yardımcı olan esnek bir beceri seti gerektirir.
Daha fazla oku…

👉 Ücretsiz PDF İndir: TestNG Mülakat Soruları ve Cevapları

Iyi TestNG Mülakat Soruları ve Cevapları

1) Nedir TestNG Peki otomasyon testlerinde neden kullanılıyor?

TestNG (Test Next Generation), şu unsurlardan ilham alan bir test çerçevesidir: JUnit NUnit'e benzer ancak gruplandırma, sıralama, parametreleştirme ve bağımlılık yönetimi gibi gelişmiş özelliklerle zenginleştirilmiştir. Öncelikle otomasyon testlerinde test yürütmesini kolaylaştırmak, test organizasyonunu iyileştirmek ve ayrıntılı HTML ve XML raporları oluşturmak için kullanılır.

Anahtar faydaları TestNG şunları içerir:

  • Destekler paralel test yürütmeBu da toplam çalışma süresini azaltır.
  • Sağlar ek açıklamalar Test akışını etkili bir şekilde kontrol edenler.
  • Teklifler veriye dayalı test içinden @DataProvider Ek açıklama.
  • üretir özelleştirilebilir raporlar daha iyi hata ayıklama için.

Örneğin, TestNG Bu özellik, test kodunu değiştirmeden duman testi, regresyon testi ve entegrasyon testi gruplarını bağımsız olarak çalıştırmanıza olanak tanıyarak büyük otomasyon paketlerinde esneklik ve ölçeklenebilirlik sağlar.


2) Açıklayın TestNG Ek açıklamalar ve bunların yürütülme sırası ile yaşam döngüsü.

MKS TestNG Yaşam döngüsü, testlerin nasıl başlatılacağını, yürütüleceğini ve sonlandırılacağını tanımlar. Bu, test akışına yapı ve açıklık sağlayan ek açıklamalar aracılığıyla kontrol edilir.

not Tanım Yürütme Emri
@BeforeSuite Test paketindeki tüm testlerden önce çalıştırılır. 1
@BeforeTest Öncesinde yürütülür <test> XML'deki etiket 2
@BeforeClass Geçerli sınıftaki ilk metottan önce çalışır. 3
@BeforeMethod Her test yönteminden önce yürütülür 4
@Test Gerçek test mantığını içerir. 5
@AfterMethod Her test yönteminden sonra çalışır. 6
@AfterClass Sınıftaki tüm metotlardan sonra çalışır. 7
@AfterTest Koşuyor, sonrasında <test> XML'deki etiket 8
@AfterSuite Paketteki tüm testlerden sonra yürütülür 9

Bu yapılandırılmış düzen, test bağımsızlığının korunması için hayati önem taşıyan, öngörülebilir test kurulumu ve sökümünü sağlar.


3) nasıl TestNG farklıdır JUnit?

Her iki çerçeve de birim testleri için kullanılsa da, TestNG Daha sağlam yapılandırma ve paralel yürütme yetenekleri sağlar.

Özellikler JUnit TestNG
Paralel Yürütme Sınırlı destek Tam destek
Açıklamalar Daha az (@Before, @After) Daha zengin (@BeforeSuite, @DataProvider)
Bağımlılık Yönetimi Müsait değil Şu şekilde kullanılabilir: dependsOnMethods
Gruplama Desteklenmez Desteklenen kullanım groups
Parametrelendirme Harici aracılar aracılığıyla XML aracılığıyla yerleşik veya @DataProvider

Özetle, TestNG için tercih edilir kurumsal düzeyde otomasyon testi ve aşağıdaki gibi araçlarla entegrasyon Selenium, buna karşılık JUnit Daha basit birim testleri için idealdir.


4) Nedir? TestNG Ek açıklamalar ve bunların faydaları nelerdir?

Ek açıklamalar TestNG tanımlamak test yöntemlerinin yapısı ve davranışıKod içinde doğrudan bildirimsel test kontrolü sağlayarak karmaşık XML yapılandırmasına olan ihtiyacı ortadan kaldırırlar.

Sıklıkla kullanılan açıklamalar şunlardır:

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

Örnek:

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

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

Bu, geliştiricilerin test yürütmesini mantıklı bir şekilde organize etmelerine yardımcı olur ve kurulum, test yürütme ve sonlandırma işlemlerinin tanımlanmış bir sırayla gerçekleşmesini sağlar.


5) Gruplandırma kavramını açıklayın. TestNG.

Gruplandırma TestNG Bu özellik, testlerin "Duman Testi", "Gerileme Testi" veya "Sağlık Testi" gibi daha küçük, yönetilebilir gruplara mantıksal olarak sınıflandırılmasına olanak tanır.

Örnek:

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

XML paketini belirli gruplar halinde çalışacak şekilde yapılandırabilirsiniz:

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

Faydaları:

  • Test senaryolarının seçici olarak yürütülmesini kolaylaştırır.
  • CI/CD süreçlerinde esnekliği artırır.
  • Artımlı derlemeler sırasında yürütme süresini kısaltır.

6) Parametrelendirme nasıl gerçekleştirilebilir? TestNG?

Parametrelendirme, veriye dayalı test yapmayı mümkün kılarak testlerin birden fazla girdi veri kümesiyle çalıştırılmasına olanak tanır. TestNG İki temel yöntemi destekler:

  1. kullanma @Parameters XML ile açıklama ekleme:
  2. <parameter name="browser" value="chrome"/>
    @Test
    @Parameters("browser")
    public void launchBrowser(String browser) { ... }
    
  3. kullanma @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) { ... }
    

Bu esneklik, farklı ortamlar veya yapılandırmalar genelinde büyük test setlerinin bakımını ve yürütülmesini kolaylaştırır.


7) Bağımlılıklar nelerdir? TestNG Peki bunlar nasıl yönetiliyor?

Bağımlılıklar TestNG Diğer test sonuçlarına bağlı olarak test yürütme sırasını kontrol etmek için şunu kullanın: dependsOnMethods or dependsOnGroups Öznitellikler.

Örnek:

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

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

Bağımlı yöntem başarısız olursa, sonraki test otomatik olarak atlanır.

Bu mekanizma geçersiz test yürütülmesini önler ve bakımın sürdürülmesine yardımcı olur. mantıksal test bütünlüğüÖzellikle oturum açma → işlem gerçekleştirme → sonucu doğrulama gibi çok adımlı işlevsel akışlar için kullanışlıdır.


8) Uygulamanın farklı yolları nelerdir? TestNG testler?

TestNG Testler, test kurulumuna bağlı olarak çeşitli esnek yöntemlerle yürütülebilir:

  1. IDE'den (Eclipse/IntelliJ): Sınıfın üzerine sağ tıklayın veya XML fileRun asTestNG Test.
  2. Komut satırından: java -cp "path\testng.jar;bin" org.testng.TestNG testng.xml
  3. Derleme Araçlarını Kullanma:
    • Uzman: yapılandırma surefire-plugin in pom.xml.
    • Gradle: Kullanım testng Bağımlılık ve görev yapılandırması.
  4. CI/CD İşlem Hatları Aracılığıyla: Otomatik yürütme için Jenkins veya GitHub Actions ile entegre edilmiştir.

Bu çeşitlilik, geliştirme, test ve üretim ortamları arasında uyumluluğu sağlar.


9) Nedir? TestNG Dinleyiciler ve neden önemlidirler?

Dinleyiciler TestNG Test yürütme olaylarını (başlangıç, başarı, başarısızlık veya atlama gibi) izleyerek test davranışını özelleştirmek için kancalar sağlayın.

Yaygın dinleyiciler:

  • ITestListenerTest metodu düzeyindeki olayları izler.
  • ISuiteListenerSüit düzeyindeki olayları gözlemler.
  • IReporterÖzel raporlar oluşturur.

Örnek:

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

Dinleyiciler genellikle kayıt almak için kullanılır. Başarısızlık durumunda ekran görüntüleri, oluşturma özel günlüklerya da raporlama araçlarıyla entegre etme Allure veya ExtentReports gibi.


10) Kullanmanın avantajları ve dezavantajları nelerdir? TestNG?

Görünüş Avantajlar Dezavantajlar
Esneklik Gruplandırmayı, bağımlılığı ve paralel yürütmeyi destekler. Büyük veri paketleri için karmaşık XML kurulumu
Raporlama Ayrıntılı HTML ve XML raporları sunar. Dinleyiciler olmadan sınırlı özelleştirme
Entegrasyonu ile sorunsuz çalışır Selenium ve CI/CD araçları Biraz daha yüksek öğrenme eğrisi
Parametrelendirme Veriye dayalı testler için yerleşik destek. Büyük veri kümeleri için bakım gerektirir.

Genel olarak, TestNG Yapılandırma maliyetinin az olmasına rağmen, modern otomasyon test ortamları için uygun, sağlam ve esnek bir çerçevedir.


11) Test senaryolarını nasıl önceliklendirebilirsiniz? TestNG?

TestNG sağlar priority özniteliği @Test Test yöntemlerinin yürütülme sırasını tanımlamak için kullanılan ek açıklama. Öncelik değeri düşük olan testler önce çalışır.

Örnek:

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

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

Öncelik belirtilmezse, varsayılan değer şudur: 0Ve yöntemler alfabetik sırayla yürütülür.

En iyi pratik: Öncelik değerlerini ölçülü kullanın. Aşırı kullanımları test sırasını katılaştırabilir. Karmaşık akışlar için bağımlılık yönetimi (dependsOnMethodsBu yaklaşım, katı önceliklendirmeye göre daha sürdürülebilirdir.


12) Paralel yürütmenin kavramını ve kullanımını açıklayın. TestNG.

Paralel yürütme TestNG Birden fazla testin, sınıfın veya metodun aynı anda çalışmasına olanak tanıyarak genel yürütme süresini önemli ölçüde azaltır.

Bu özelliği şuradan etkinleştirebilirsiniz: testng.xml Dosya:

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

Desteklenen paralel modlar:

  • tests
  • classes
  • methods
  • instances

Avantajları:

  • Daha hızlı geri bildirim döngüsü.
  • Çok çekirdekli işlemcilerin verimli kullanımı.
  • Büyük ölçekli otomasyon paketleri için ölçeklenebilirlik.

Ancak, şunlardan emin olun: iplik güvenliği WebDriver veya veritabanı bağlantıları gibi paylaşılan kaynaklar kullanılırken.


13) Veri sağlayıcılar nelerdir? TestNGParametrelerden farkları nelerdir?

@DataProvider sağlar veriye dayalı test Test yöntemlerine birden fazla veri seti sağlayarak.

Örnek:

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

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

@Parameters ve @DataProvider arasındaki fark:

Özellikler @Parameters @DataProvider
Veri kaynağı XML dosyası Java yöntem
Veri tipi Tek veri seti Birden fazla veri kümesi
Esneklik Less Yüksek
Kullanım çantası Ortam Değişkenleri Tekrarlanan veri odaklı testler

Bu nedenle, @DataProvider Birden fazla veri kümesiyle tek bir test yürütülürken, örneğin birden fazla kimlik bilgisiyle oturum açmanın doğrulanması gibi durumlarda tercih edilir.


14) Bir testi nasıl devre dışı bırakabilir veya atlayabilirsiniz? TestNG?

Bir testi devre dışı bırakabilirsiniz. TestNG ile enabled öznitelik yoluyla veya programatik olarak atlayarak.

1. kullanma enabled = false:

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

2. Çalışma sırasında atlama işlemi SkipException:

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

Devre dışı bırakmak şu amaçlarla faydalıdır: geçici olarak devre dışı bırakılıyor Kararsız veya eksik testleri silmeden atlamak faydalıdır. çalışma zamanı koşullarıDesteklenmeyen tarayıcılar için testleri atlamak gibi.


15) testng.xml dosyasının rolü nedir ve başlıca bileşenleri nelerdir?

MKS testng.xml Bu dosya, yapılandırmanın temelini oluşturur. TestNGBu, test paketlerini, test gruplarını, parametreleri ve paralel yürütme kurulumunu tanımlar.

Yapı Örneği:

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

Ana Bileşenler:

  • <suite> – Tüm paketi tanımlar.
  • <test> – Bir test bloğunu temsil eder.
  • <classes> – Test sınıflarını listeler.
  • <methods> – Belirli test yöntemlerini filtreler.
  • <parameter> – Genel veya test düzeyinde parametreler sağlar.

XML dosyası şunları sağlar: merkezi kontrol Kodda değişiklik yapmadan aşırı çalıştırma.


16) Raporları nasıl oluşturabilirsiniz? TestNG?

TestNG otomatik olarak oluşturur iki tür rapor:

  1. HTML raporu (test-output/index.html(Geçilen, kalınan ve atlanan sınavları özetler.)
  2. XML Raporu – CI/CD araçlarıyla entegrasyon için kullanılır.

Gelişmiş raporlama için, TestNG ile entegre olur:

  • Kapsam Raporları – Grafiksel gösterge panelleri ve ayrıntılı kayıtlar sunar.
  • Allure Raporları – Test adımları, ekran görüntüleri ve kayıtlarla görsel analiz sağlar.

Örnek Entegrasyon:

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

Bu raporlar, eğilimleri takip etmek ve test kapsamındaki zayıf alanları belirlemek için çok önemlidir.


17) Fabrikalar ne tür fabrikalardır? TestNGve nasıl çalışıyorlar?

Fabrikalar TestNG oluşturmak için kullanılır test sınıflarının dinamik örnekleriBu özellikler, testleri çalıştırmadan önce sınıfların parametreli olarak örneklendirilmesine olanak tanır.

Örnek:

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

Avantajları:

  • sağlayan parametreli nesne oluşturma.
  • İçin ideal tarayıcılar arası test ve çoklu ortam yürütme.
    Farklı nesne yapılandırmalarına ihtiyaç duyduğunuzda, yalnızca yöntem düzeyinde veri varyasyonuna değil, aynı zamanda Fabrikalar da Veri Sağlayıcılarına (DataProviders) ek bir işlev görür.

18) Doğrulama ifadelerini nasıl kullanabilirsiniz? TestNG?

Doğrulama ifadeleri, test yöntemlerinde beklenen sonuçlarla gerçekleşen sonuçların doğruluğunu teyit etmek için kullanılır.

İddia Türleri:

  1. Kesin Doğrulama İşlemleri (Assert sınıfı):
    Test başarısız olursa, test yürütmesini derhal durdurur.
  2. Assert.assertEquals(actual, expected);
    Assert.assertTrue(condition);
    
  3. Yumuşak Doğrulama (SoftAssert sınıfı):
    Başarısızlık durumunda bile çalışmaya devam eder ve sonunda tüm sorunları rapor eder.
  4. SoftAssert soft = new SoftAssert();
        soft.assertEquals(actual, expected);
        soft.assertAll();
    
  5. Ne Zaman Kullanılır:
    • Kesin doğrulama ifadelerini şu amaçlarla kullanın: kritik doğrulama Giriş başarılı gibi.
    • Yumuşak onaylamaları şu amaçlarla kullanın: birden fazla doğrulama tek bir test yöntemi içinde.

19) @BeforeMethod ve @BeforeClass arasındaki farkı açıklayın. TestNG.

Görünüş @BeforeMethod @BeforeClass
infaz Runs her birinden önce test metodu Runs önceden birkez sınıf içindeki herhangi bir yöntem
kapsam Test yöntemine göre Her test sınıfı için
Genel kullanım Her testten önce tarayıcıyı başlatmak. Yapılandırma veya tarayıcı ayarları yükleniyor

Örnek:

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

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

Kullanım @BeforeMethod Her testin temiz bir ortama ihtiyaç duyduğu durumlarda, @BeforeClass Yeniden kullanılabilen, yoğun başlatma görevleri için.


20) Nasıl TestNG Bağımlılık enjeksiyonunu destekler ve kullanım alanları nelerdir?

TestNG destekler bağımlılık ekleme Örneğin, bağlam ve yapılandırma nesnelerinin yerleşik enjeksiyonu yoluyla ITestContext, XmlTestya da Method.

Örnek:

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

Kullanım Durumları:

  • Test parametrelerini dinamik olarak alma.
  • Süit adları veya paralel yürütme ayarları gibi yapılandırma bilgilerine erişim.
  • Bağımlılıkları kod içine yerleştirmeden test esnekliğini artırma.

Bağımlılık enjeksiyonu, geliştiricilere şunları sağlar: modüler, bağlam duyarlı testler yazın Çevresel değişikliklere dinamik olarak uyum sağlayanlar.


21) @Factory ve @DataProvider arasındaki fark nedir? TestNG?

Her ikisi de @Factory ve @DataProvider Parametrelendirmeye yardımcı olurlar, ancak şu şekilde çalışırlar: farklı seviyeler test mimarisinde.

Özellikler @Factory @DataProvider
kapsam Sınıf seviyesi Yöntem düzeyi
Amaç Bir sınıfın farklı verilerle birden fazla örneğini oluşturur. Tek bir test yöntemine veri sağlar.
infaz Her bir örnek için sınıfın tamamını çalıştırır. Bir metodu birden fazla kez çalıştırır.
İdeal Kullanım Durumu Tarayıcılar arası veya ortam testi Veri odaklı fonksiyonel test

Örnek:

  • Fabrika: Her tarayıcı türü için tüm dersi çalıştırır.
  • Veri Sağlayıcı: Birden fazla veri kümesiyle tek bir test yöntemini çalıştırır.

Kullanım @Factory Nesne örneğinin kendisi değiştiğinde ve @DataProvider Aynı nesne örneği içindeki işlevsel girdi varyasyonu için.


22) Başarısız olan test durumlarını otomatik olarak nasıl yeniden deneyebilirsiniz? TestNG?

TestNG bir mekanizma sağlar Başarısız test durumlarını yeniden çalıştır ile IRetryAnalyzer Arayüz aynı

Örnek Uygulama:

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

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

Kullanımı:

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

Faydaları:

  • CI süreçlerindeki istikrarsızlığı azaltır.
  • Geçici ağ veya ortam sorunlarını giderir.

En iyi pratik: Aralıklı hataların giderilmesi için yeniden deneme mantığını uygun günlük kaydı ve ekran görüntüleriyle birleştirin.


23) ITestContext'in kullanım amacı nedir? TestNG?

ITestContext sağlar bağlamsal bilgi Test çalıştırmasıyla ilgili bilgiler; paket adı, test adı, çıktı dizini ve parametreler dahil.

Örnek:

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

Anahtar Yöntemler:

  • getSuite() – Süit düzeyindeki bilgileri getirir.
  • getName() – Test adını döndürür.
  • setAttribute() / getAttribute() – Testler arasında veri paylaşımı.

sağlar Test yöntemleri veya sınıfları arasında veri paylaşımı Dinamik raporlama ve kayıt tutmayı kolaylaştırır.


24) Test grupları arasında nasıl bağımlılık oluşturabilirsiniz? TestNG?

Gruplar arası bağımlılıkları aşağıdaki yöntemle tanımlayabilirsiniz: dependsOnGroups özniteliği @Test Ek açıklama.

Örnek:

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

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

Bu, verifyProfile Grup yalnızca tüm testler tamamlandıktan sonra çalıştırılır. Login Grup başarıyla geçti.

Özellikle şu durumlarda faydalıdır: entegrasyon testiBurada modüller, diğerlerinin başarılı bir şekilde yürütülmesine bağlıdır (örneğin, giriş → profil → çıkış akışı).


25) Bir çalışmada belirli test yöntemlerini nasıl göz ardı edebilirsiniz? TestNG XML dosyası mı?

açıkça yapabilirsiniz hariç tutma yöntemleri XML paket dosyasındaki bir sınıf içinde kullanarak <exclude> etiketleri.

Örnek:

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

Bu, test uzmanlarına olanak tanır Belirli yöntemleri geçici olarak devre dışı bırakın değiştirmeden Java Kaynak kod — yayın döngülerine veya sprint önceliklerine bağlı olarak dinamik dahil etme veya hariç tutmanın gerektiği büyük paketlerde kullanışlıdır.


26) Nasıl olabilir? TestNG entegre olmak Selenium Web Sürücüsü?

TestNG ve Selenium Kullanıcı arayüzü otomasyonu için güçlü bir kombinasyon oluştururlar.

Tipik bir entegrasyon kurulumu, ek açıklamalar kullanarak testleri düzenlemeyi, kurulum/kaldırma işlemlerini yönetmeyi ve testleri XML veya CI araçları aracılığıyla çalıştırmayı içerir.

Örnek:

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

Entegrasyonun Avantajları:

  • sağlayan paralel tarayıcı testi.
  • kolaylaştırır test gruplama ve raporlama.
  • ile sorunsuz çalışır CI / CD boru hatları Jenkins veya GitHub Actions gibi.

27) Kullanırken en iyi uygulamalardan bazıları nelerdir? TestNG Büyük otomasyon çerçevelerinde mi?

En İyi Uygulamalar:

  1. Kullanım Descriptİsimlendirme: Testleri uygulamaya göre değil, davranışa göre adlandırın.
  2. Kaldıraç Gruplandırması: Mantıksal test grupları oluşturun (Temel test, Regresyon testi).
  3. Kod içine doğrudan veri yazmaktan kaçının: Test verileri için parametreleri veya özellik dosyalarını kullanın.
  4. Bağımlılıkları En Aza İndirin: Mümkün olduğunca test senaryolarını birbirinden bağımsız tutun.
  5. Merkezi Yapılandırma: Kullanım testng.xml Süit kurulumu için.
  6. Raporlamayı Entegre Etme: Dinleyicileri veya ExtentReports gibi üçüncü taraf araçları kullanın.
  7. Yeniden deneme mantığını dikkatli kullanın: Gerçek kusurları gizlemekten kaçının.

Bunların takip edilmesi şunları sağlar: ölçeklenebilirlik, sürdürülebilirlik ve okunabilirlik Kurumsal düzeyde otomasyonda.


28) @BeforeTest ve @BeforeSuite arasındaki fark nedir? TestNG?

Özellikler @BeforeTest @BeforeSuite
kapsam Her birinden önce çalışır. <test> XML'deki etiket Tüm süit çalıştırılmadan önce bir kez çalıştırılır.
Sıklık Birden fazla kez (eğer birden fazla ise) <test> blok) Süit başına yalnızca bir kez
Genel kullanım Test seviyesi yapılandırmasını başlatın. Küresel kaynaklar oluşturun

Örnek:

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

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

Kullanım @BeforeSuite için küresel yapılandırmalar (örneğin, veritabanı bağlantısı) ve @BeforeTest için teste özgü başlatmalar.


29 can TestNG API testleri için nasıl kullanılır?

Evet. TestNG etkili bir şekilde kullanılabilir API testi HTTP istemci kütüphaneleriyle entegre olarak, örneğin Emin olabilirsiniz or HttpClient.

Örnek:

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

Avantajları:

  • sağlayan iddia tabanlı doğrulama Cevapların.
  • Destekler ölçülebilirliği ve veriye dayalı test birden fazla uç nokta için.
  • üretir yapılandırılmış raporlar REST API doğrulama işlemleri için.

Birleştirerek TestNG RestAssured ile test uzmanları, hem kullanıcı arayüzü hem de API testleri için birleşik bir otomasyon çerçevesi oluşturabilirler.


30) Komut satırından parametreleri nasıl iletirsiniz? TestNG?

XML parametrelerini çalışma zamanında sistem özelliklerini kullanarak geçersiz kılabilirsiniz. -D bayrağı.

Komut Örneği:

mvn test -Dbrowser=chrome -Denv=staging

Kod Örneği:

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

Bu, dinamik ortam seçimi CI/CD işlem hatlarında yapılandırma dosyalarını değiştirmeden test esnekliğini artırır.


31) Test yürütme sırasını nasıl kontrol edebilirsiniz? TestNG Öncelikleri kullanmadan mı?

Kullanmak yerine priority, TestNG kontrolü sağlar bağımlılıklar ve XML yöntem sıralaması.

Yöntem:

  1. kullanma dependsOnMethods:
  2. @Test
    public void login() { ... }
    
    @Test(dependsOnMethods = "login")
    public void verifyDashboard() { ... }
    
  3. XML Metot Sırasını Kullanma:
  4. <classes>
      <class name="com.test.LoginTests">
        <methods>
          <include name="login"/>
          <include name="verifyDashboard"/>
        </methods>
      </class>
    </classes>
    

En iyi pratik: Karmaşık iş akışları için statik öncelikler yerine mantıksal bağımlılıkları tercih edin; bu sayede sağlam ve sürdürülebilir test paketleri elde edin.


32) Komut satırından belirli test yöntemlerini nasıl çalıştırabilirsiniz? TestNG?

TestNG veriyor Metot düzeyinde test yürütme XML veya Maven Surefire yapılandırmalarını kullanarak doğrudan komut satırından.

Seçenek 1: XML Dosyası Kullanımı

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

Seçenek 2: Maven Komutu

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

Bu yaklaşım izin verir seçici yürütmeBu araç, hızlı derlemeler sırasında tek tek yöntemlerin hata ayıklaması veya kritik işlevlerin doğrulanması için kullanışlıdır.


33) Harici bir Excel dosyası kullanarak testleri nasıl parametreleştirirsiniz? TestNG?

Excel tabanlı parametreleştirme, test verilerinin sık sık değiştiği veri odaklı çerçevelerde yaygındır.

Uygulama Adımları:

  1. Kullanım Apaçi İÇN or JExcel Excel verilerini okumak.
  2. Bunu bir şeye besleyin @DataProvider yöntemi.

Örnek:

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

Bu, Excel'den alınan birden fazla gerçek dünya veri kümesiyle aynı test yöntemini çalıştırmaya olanak tanıyarak esnekliği ve kapsamı artırır.


34) Nasıl koşabilirsiniz? TestNG Jenkins'te veya CI/CD işlem hatlarında yapılan testler mi?

TestNG ile sorunsuz bir şekilde bütünleşir Jenkins, GitLab CIya da GitHub Eylemleri Maven aracılığıyla veya Gradle oluşturur.

Jenkins'teki adımlar:

  1. kurmak Maven Entegrasyon Eklentisi.
  2. Hat için bir Serbest Stil veya Boru Hattı İşi.
  3. Ekle mvn clean test Bir geliştirme aşaması olarak.
  4. Derleme sonrasında HTML raporlarını yapılandırın:
    • Rapor dizini: test-output
    • Dizin dosyası: index.html

Faydaları:

  • Otomatik regresyon testini mümkün kılar.
  • Planlı test çalıştırmaları ve trend takibi sağlar.
  • Testlerin farklı ortamlarda tutarlı bir şekilde yürütülmesini sağlar.

35) @Parameters'ın amacı nedir ve @Optional'dan farkı nedir?

Her iki açıklama da parametreleştirmeyle ilgilidir ancak farklı amaçlara hizmet eder.

Özellikler @Parameters @Optional
Amaç XML dosyasından parametreleri geçirir. Parametre eksikse varsayılan değeri sağlar.
Beyan XML ile birlikte kullanılır. <parameter> Test yönteminin içinde kullanılır.
Davranış Değer eksikse hata verir. Yedek değeri kullanır.

Örnek:

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

kullanma @Optional olmasını sağlar test kararlılığı XML yapılandırmaları eksik olduğunda.


36) Farklı sınıflar arasındaki test bağımlılıklarını nasıl ele alıyorsunuz? TestNG?

Sınıflar arası bağımlılıklar oluşturmak için, TestNG kullanımına izin verir dependsOnGroups özniteliği.

Örnek:

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

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

Bu yaklaşım yönetmeye yardımcı olur. çoklu modül bağımlılıkları Burada her sınıf bir modülü temsil eder (Giriş, Kontrol Paneli, Ödeme, vb.).

Bu, bağımlı modüllerin yalnızca ön koşul testleri başarılı olursa çalışmasını sağlayarak test bütünlüğünü korur.


37) Yapılandırma hataları nelerdir? TestNGPeki, bunlarla nasıl başa çıkılabilir?

Yapılandırma hataları, kurulum veya kaldırma yöntemlerine ek açıklama eklendiğinde ortaya çıkar. @Before* or @After* başarısız.

neden olabilirler atlanacak bağımlı testlerBu testler doğru olsa bile.

Yaygın sebepler:

  • WebDriver'ın yanlış başlatılması.
  • Veritabanı veya ortam kurulumu sorunları.
  • Parametre yapılandırma hatası.

Çözümler:

  • Kullanım dene-yakala Kurulum yöntemlerindeki bloklar.
  • Uygula alwaysRun = true Arızalara rağmen temizleme işleminin devam etmesini sağlamak için.

Örnek:

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

Bu, test ortamının istikrarını koruyarak, sonlandırma yöntemlerinizin çalışmaya devam etmesini sağlar.


38) invocationCount ve threadPoolSize özniteliklerinin kullanım amacı nedir? TestNG?

Bu özellikler şunlara olanak tanır: tekrarlanan ve paralel test yürütme aynı yöntemle.

Örnek:

@Test(invocationCount = 5, threadPoolSize = 2)
public void loadTest() {
    System.out.println("Running load test...");
}
özellik Tanım
invocationCount Bir metodun çalışma sayısı
threadPoolSize Eş zamanlı iş parçacığı sayısı

Kullanım Örneği: Performans testi, kararlılık doğrulaması veya birden fazla çalıştırma altında kararsız davranışların yeniden üretilmesi.


39) Yalnızca başarısız olan test durumlarını nasıl çalıştırırsınız? TestNG?

Süit turunun ardından, TestNG adlı bir dosya oluşturur testng-failed.xml içinde test-output dizin.

Yalnızca başarısız olan testleri yeniden çalıştırmak için şu komutu kullanabilirsiniz:

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

Avantajları:

  • Başarılı testleri atlayarak zamandan tasarruf sağlar.
  • Büyük test paketlerinde hata ayıklamayı kolaylaştırır.
  • Genellikle CI işlem hatlarında hızlı yeniden testler için kullanılır.

Ayrıca, yeniden çalıştırmalar için derleme sonrası bir komut dosyası kullanarak bunu Jenkins ile entegre edebilirsiniz.


40) Bunun bazı sınırlamaları nelerdir? TestNG ve bunlar nasıl hafifletilebilir?

Sağlamlığına rağmen, TestNG Bazı sınırlamaları vardır.

Sınırlama Azaltma stratejisi
XML yapılandırma karmaşıklığı Ek açıklama tabanlı yapılandırma ve oluşturucuları kullanın.
Sınırlı yerel raporlama ExtentReports veya Allure'u entegre edin.
Dahili yeniden deneme kontrolü yok. Uygulamak IRetryAnalyzer
Paralel çalıştırmalarda iş parçacığı güvenliğiyle ilgili endişeler İş parçacığına özgü WebDriver örneklerini kullanın.
Yeni başlayanlar için öğrenme eğrisi Şablon tabanlı proje yapılarını koruyun.

Uygun çerçeve tasarımı ve en iyi uygulamalarla bu sınırlamalar en aza indirilebilir ve istikrarlı ve sürdürülebilir otomasyon çözümleri sağlanabilir.


41) Günlük kaydı tutmak ve ekran görüntüsü yakalamak için dinleyicileri nasıl kullanırsınız? Selenium-TestNG?

Dinleyiciler TestNG Test yürütmesini izlemeye ve günlük kaydı tutma, ekran görüntüsü alma veya sonuçları dinamik olarak raporlama gibi eylemleri gerçekleştirmeye yardımcı olur.

Örnek Uygulama:

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

Kullanımı:

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

Faydaları:

  • Arızaları otomatik olarak yakalar.
  • Görsel kanıtlar aracılığıyla hata ayıklamayı iyileştirir.
  • Kayıt tutma işlemlerindeki manuel çabayı azaltır.

Bu teknik, özellikle uzaktan başarısız derlemeleri teşhis ederken, CI/CD otomasyon süreçlerinde çok önemlidir.


42) IReporter ve ITestListener arasındaki fark nedir? TestNG?

Özellikler IReporter ITestListener
Amaç Test yürütülmesi sonrasında özel raporlar oluşturur. Çalışma zamanı test olaylarını izler ve bunlara tepki verir.
Çağırma Tüm testler tamamlandıktan sonra Test yaşam döngüsü boyunca (başlangıç, başarı, başarısızlık)
Çıktı HTML/XML/JSON raporları Günlük dosyaları, ekran görüntüleri, canlı kontrol panelleri
Genel kullanım ExtentReports ve Allure entegrasyonu Günlük kaydı, hata yönetimi, yeniden deneme mekanizmaları

Örnek:

  • Kullanım IReporter İnşaat için kapsamlı raporlar Test tamamlandıktan sonra.
  • Kullanım ITestListener için gerçek zamanlı kayıt veya ekran görüntüleri.

Onlar da olabilir kombine Uçtan uca otomasyon analitik sistemleri oluşturmak.


43) Çapraz tarayıcı testini nasıl gerçekleştirirsiniz? TestNG XML yapılandırması mı?

Tarayıcılar arası test, aynı işlevselliğin farklı tarayıcılarda da çalıştığından emin olmayı sağlar.

Örnek Yapılandırma:

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

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

Bu yaklaşım, paralel, çoklu tarayıcı yürütmeBu sayede platformlar genelinde test kapsamı hızlandırılıyor.


44) Nasıl entegre oluyorsunuz? TestNG Docker ile veya Selenium Kafes?

TestNG ile sorunsuz bir şekilde bütünleşir Dockerize edilmiş Selenium Grid Dağıtılmış paralel testlerin yapılmasını sağlamak için.

Adımlar:

  1. Kurmak Selenium Docker'da Grid resmi kullanarak Selenium görüntü:
    docker run -d -p 4444:4444 --name selenium-grid selenium/standalone-chrome
  2. Güncelle TestNG Kurulum:
  3. DesiredCapabilities caps = new DesiredCapabilities();
    caps.setBrowserName("chrome");
    driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), caps);
    
  4. Test paketini Jenkins veya CI işlem hattı üzerinden çalıştırın.

Faydaları:

  • sağlayan ölçeklenebilir paralel test.
  • Ortam kurulumuyla ilgili ek maliyetleri azaltır.
  • Sağlar tutarlı test yürütme Dağıtılmış konteynerler genelinde.

45) Süit, test ve metot seviyelerinde paralel yürütme arasındaki fark nedir? TestNG?

Seviye Paralel Nitelik Yürütme Davranışı
süit parallel="suites" Birden fazla test paketini eş zamanlı olarak çalıştırır.
test parallel="tests" Runs <test> blokları aynı anda
Sınıf parallel="classes" Test sınıflarını paralel olarak çalıştırır.
Yöntem parallel="methods" Bireysel test yöntemlerini paralel olarak yürütür.

Örnek:

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

En iyi pratik:Kullanım parallel="classes" istikrar için Selenium Paylaşımlı sürücü çakışmalarını önlemek için yapılan testler.


46) Genel değişkenler kullanmadan testler arasında veri nasıl paylaşabilirsiniz? TestNG?

TestNG sağlar ITestContext ve bağımlılık ekleme Verileri dinamik olarak paylaşmak.

Örnek:

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

Bu, statik değişkenlerden kaçınmayı, iş parçacığı güvenliğini sağlamayı ve şunu garanti eder: testler genelinde veri izolasyonu.


47) Atlanan testleri nasıl yakalar ve kaydedersiniz? TestNG?

Atlanan testleri şu yöntemle yakalayabilirsiniz: onTestSkipped() içinde ITestListener Arayüz aynı

Örnek:

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

Atlamanın Sebepleri:

  • Bağımlı test başarısız oldu.
  • Koşullu atlama yoluyla SkipException.
  • Ortam kullanılamıyor.

En iyi pratik:
CI raporlarında veya gösterge panolarında izlenebilirlik için atlama nedenlerini ve yığın izlerini kaydedin.


48) REST API testlerine parametre eklemenin nasıl yapılacağını açıklayın. TestNG ve RestAssured.

TestNG'S @DataProvider zarif bir şekilde bütünleşir Emin olabilirsiniz API parametreleştirmesi için.

Örnek:

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

Avantajları:

  • Birden fazla uç nokta veya veri yükü için aynı API çağrısını yürütür.
  • Değişken girdi kümelerine sahip API'ler için regresyon testini basitleştirir.
  • Sürekli entegrasyon araçları ve raporlarıyla sorunsuz bir şekilde entegre olur.

49) Özel ek açıklamaları nasıl oluşturursunuz? TestNG Yeniden kullanılabilir test kalıpları için mi?

Özel açıklamalar, tekrarlayan test yapılandırmalarını veya doğrulamalarını standartlaştırabilir.

Örnek:

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

Kullanımı:

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

Yansıma (reflection) ile birlikte kullanıldığında, bu ek açıklamaları dinamik olarak okuyarak testleri gruplandırabilir veya koşullu yürütmeyi yönlendirebilirsiniz.

Bu teknik yaygın olarak kullanılmaktadır. çerçeve meta-programlama Kendi kendini belgeleyen testler oluşturmak.


50) Nasıl birleştirebilirsiniz? Cucumber ve TestNG Hibrit test çerçeveleri için mi?

TestNG olarak hareket edebilir test koşucusu için Cucumber BDD senaryoları, güçlü raporlama ve paralelleştirme özellikleri sunar.

Örnek Çalıştırıcı:

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

Avantajları:

  • Kaldıraçlar TestNG'S notlar, dinleyiciler ve raporlama.
  • Destekler paralel özellik yürütme.
  • İle bütünleşir albeni ve Kapsam Raporları kolayca.

Bu hibrit yaklaşım birleştiriyor BDD okunabilirliği ile TestNG esneklikKurumsal düzeydeki çerçeveler için idealdir.


🔍 Üst TestNG Gerçek Dünya Senaryoları ve Stratejik Yanıtlar İçeren Mülakat Soruları

Aşağıda 10 gerçekçi, alanla ilgili örnek bulunmaktadır. TestNG Mülakat soruları, net beklentiler ve güçlü örnek cevaplar.

1) Kullanmanın başlıca avantajlarını açıklayabilir misiniz? TestNG nazaran JUnit?

Adaydan beklenenler: Anlayışınızı gösterin TestNGGelişmiş özelliklerinin ve kurumsal otomasyon için neden sıklıkla tercih edildiğinin nedenleri.

Örnek cevap: "TestNG Esnek test yapılandırması, paralel yürütme desteği, bağımlı test yöntemleri, DataProviders ile veri odaklı test ve yerleşik raporlama gibi çeşitli avantajlar sunar. Bu özellikler, TestNG Ölçeklenebilirlik gerektiren karmaşık otomasyon çerçeveleri için daha güçlüdür."


2) Nasıl kullanıyorsunuz? TestNG Test yürütme akışını kontrol etmek için kullanılan ek açıklamalar nelerdir?

Adaydan beklenenler: Ek açıklamaların amacını ve sırasını bilmek.

Örnek cevap: "TestNG @BeforeSuite, @BeforeClass, @BeforeMethod, @Test gibi ek açıklamalar ve bunlara karşılık gelen sonlandırma ek açıklamaları sunar. Bunlar, test kurulumu ve temizliğinin yapılandırılmış bir şekilde organize edilmesini sağlar. Örneğin, @BeforeMethod her test yönteminden önce çalışır ve bu, tarayıcı durumunu başlatmak için kullanışlıdır.


3) Zorlu bir otomasyon projesini açıklayın. TestNG önemli bir rol oynadı.

Adaydan beklenenler: Gerçek proje deneyimi ve problem çözme becerisini ifade edebilme yeteneği.

Örnek cevap: "Önceki görevimde, birden fazla ortamda kapsamlı regresyon testleri gerektiren bir projede çalıştım." TestNG"Paralel yürütme ve gruplandırma özellikleri, ekibin kritik test paketlerini eş zamanlı olarak çalıştırmasına, yürütme süresini önemli ölçüde azaltmasına ve güvenilirliği korumasına olanak sağladı."


4) Nasıl yapılır TestNG Gruplar, testlerin verimli bir şekilde organize edilmesine ve yürütülmesine yardımcı olur mu?

Adaydan beklenenler: Gruplandırmanın anlaşılması, dahil etme/hariç tutma mekanizmaları da dahil olmak üzere.

Örnek cevap: “Gruplar halinde” TestNG Bu sayede test senaryolarını duman testi, regresyon testi ve entegrasyon testi gibi kategorilere ayırabiliyorum. testng.xml dosyasını kullanarak, kodu değiştirmeden grupları seçici olarak çalıştırabiliyor, kararsız testleri hariç tutabiliyor ve farklı test paketlerini yönetebiliyorum.”


5) Hata ayıklaması yapmanız gereken bir durumu açıklayın. TestNG Testler. Yaklaşımınız neydi?

Adaydan beklenenler: Eleştirel düşünme ve sorun çözme becerileri.

Örnek cevap: "Önceki görevimde bir dizi başarısızlıkla karşılaştım." TestNG Yerel ortamda başarılı görünen ancak CI'da başarısız olan testler vardı. Ayrıntılı günlük kaydını etkinleştirdim, yürütme sırasını inceledim ve testler arasında paylaşılan bir kaynağın sıfırlanmadığını keşfettim. Ardından, test izolasyonunu sağlamak için @AfterMethod kullanarak uygun sonlandırma adımlarını uyguladım.


6) Veriye dayalı testleri nasıl uyguluyorsunuz? TestNG?

Adaydan beklenenler: Veri sağlayıcıları ve kullanım senaryoları hakkında bilgi sahibi olmak.

Örnek cevap: “Verileri nesne dizileri halinde döndüren bir @DataProvider metodu oluşturuyorum ve ardından bu metodu dataProvider özniteliğini kullanarak bir @Test metoduna bağlıyorum. Bu, farklı girdi kümeleriyle aynı testin birden fazla kez tekrarlanmasına olanak tanır; bu da form gönderimlerini veya API yükü varyasyonlarını doğrulamak için kullanışlıdır.”


7) Test bağımlılıklarını nasıl yönetiyorsunuz? TestNG?

Adaydan beklenenler: dependsOnMethods veya dependsOnGroups'un doğru kullanımı.

Örnek cevap: "TestNG `dependsOnMethods` ve `dependsOnGroups` öznitelikleri aracılığıyla test bağımlılıklarına izin verir. Bir testin yalnızca başka bir test başarıyla tamamlandıktan sonra yürütülmesi gerektiğinde, örneğin bir siparişi yalnızca oluşturulduktan sonra doğrulamak gibi durumlarda bağımlılıkları kullanıyorum.


8) Nasıl kullandığınızı açıklayın. TestNG sürekli entegrasyon araçlarıyla.

Adaydan beklenenler: Gerçek dünya otomasyon hattı deneyimi.

Örnek cevap: “Önceki işimde entegre ettim.” TestNG Jenkins ile Maven derlemesini yapılandırarak oluşturma işlemi gerçekleştirilir. TestNG HTML ve XML raporları. Jenkins daha sonra raporları arşivledi ve her derleme döngüsünden sonra sonuçları gösterdi. Bu entegrasyon, ekibin hataları hızlı bir şekilde takip etmesine ve sürüm istikrarını korumasına yardımcı oldu.”


9) Bana, birden fazla otomasyon görevini yönetirken aynı zamanda sıkı zaman kısıtlamaları altında çalışmanız gereken bir zamandan bahsedin.

Adaydan beklenenler: Zaman yönetimi ve önceliklendirme becerisi.

Örnek cevap: "Son görevimde, mevcut sistemleri güncellemem gerekiyordu." TestNG Mevcut test paketlerini oluştururken aynı zamanda yaklaşan bir sürüm için yenilerini de oluşturdum. Görevleri iş etkisine göre önceliklendirdim, en yüksek riskli alanları önce otomatikleştirdim ve kullandım. TestNG Tamamlanmış bölümleri erken inceleme için ayırmak amacıyla gruplandırma yapıldı. Bu, kaliteden ödün vermeden zamanında teslimatı sağladı.”


10) Ölçeklenebilir bir yapıyı nasıl tasarlardınız? TestNG Büyük bir uygulama için çerçeve mi?

Adaydan beklenenler: ArchiMimari anlayışı, kalıpları ve en iyi uygulamalar.

Örnek cevap: “Sayfa Nesne Modeli'ni kullanarak modüler bir çerçeve tasarlardım, entegre ederdim.” TestNG Yürütme yönetimi için DataProviders'ı, veri odaklı senaryolar için ise DataProviders'ı kullanırdım. Ayrıca paralel yürütmeyi yapılandırır, yardımcı programları merkezileştirir ve yapılandırma ayarlarını dışa aktarırdım, böylece uygulama büyüdükçe çerçeve ölçeklenebilir ve bakımı kolay kalırdı.”

Bu yazıyı şu şekilde özetleyin: