Top 50 TestNG Pertanyaan dan Jawaban Wawancara (2026)

Mempersiapkan a TestNG Wawancara kerja? Saatnya mempertimbangkan pertanyaan-pertanyaan yang menunjukkan kekuatan Anda. Sebuah jawaban yang solid. TestNG Kemampuan wawancara yang baik menunjukkan kedalaman, kepercayaan diri, dan kesiapan yang dihargai oleh tim perekrutan.
Peluang di bidang ini mencakup pertumbuhan otomatisasi, kerangka kerja yang terus berkembang, dan aplikasi pengujian praktis yang membutuhkan pengalaman teknis dan profesional. Bekerja di bidang ini menuntut keahlian di bidang tertentu, keterampilan analisis, dan keahlian yang fleksibel yang membantu para pemula, profesional tingkat menengah, dan senior untuk menjawab pertanyaan dan jawaban umum yang sering diajukan, baik yang bersifat teknis, dasar, maupun lanjutan. Baca lebih banyak…
👉 Unduhan PDF Gratis: TestNG Pertanyaan & Jawaban Wawancara
Atasan TestNG Pertanyaan dan Jawaban Wawancara
1) Apa itu TestNG dan mengapa hal itu digunakan dalam pengujian otomatisasi?
TestNG (Test Next Generation) adalah kerangka kerja pengujian yang terinspirasi oleh JUnit dan NUnit tetapi ditingkatkan dengan kemampuan canggih seperti pengelompokan, pengurutan, parameterisasi, dan manajemen ketergantungan. Ini terutama digunakan dalam pengujian otomatisasi untuk menyederhanakan eksekusi pengujian, meningkatkan organisasi pengujian, dan menghasilkan laporan HTML dan XML yang detail.
Manfaat utama dari TestNG meliputi:
- Mendukung eksekusi pengujian paralel, mengurangi total waktu eksekusi.
- Menyediakan penjelasan yang mengontrol alur pengujian secara efektif.
- Penawaran pengujian berdasarkan data melalui
@DataProvideranotasi. - Menghasilkan laporan yang dapat disesuaikan untuk debugging yang lebih baik.
Sebagai contoh, TestNG Memungkinkan Anda untuk menjalankan kelompok pengujian smoke test, regression test, dan integration test secara independen tanpa memodifikasi kode pengujian, menawarkan fleksibilitas dan skalabilitas dalam rangkaian otomatisasi yang besar.
2) Jelaskan TestNG siklus hidup dengan anotasi dan urutan eksekusinya.
The TestNG Siklus hidup mendefinisikan bagaimana pengujian diinisialisasi, dieksekusi, dan diakhiri. Hal ini dikendalikan melalui anotasi yang memberikan struktur dan kejelasan pada alur pengujian.
| Anotasi | Uraian Teknis | Perintah Eksekusi |
|---|---|---|
@BeforeSuite |
Dijalankan sebelum semua pengujian dalam rangkaian pengujian. | 1 |
@BeforeTest |
Dieksekusi sebelum <test> tag dalam XML |
2 |
@BeforeClass |
Dijalankan sebelum metode pertama di kelas saat ini. | 3 |
@BeforeMethod |
Dieksekusi sebelum setiap metode pengujian | 4 |
@Test |
Berisi logika pengujian aktual. | 5 |
@AfterMethod |
Berjalan setelah setiap metode pengujian | 6 |
@AfterClass |
Dijalankan setelah semua metode dalam kelas. | 7 |
@AfterTest |
Berlari mengejar <test> tag dalam XML |
8 |
@AfterSuite |
Dieksekusi setelah semua pengujian di suite | 9 |
Urutan terstruktur ini memastikan pengaturan dan pembongkaran pengujian yang dapat diprediksi, yang sangat penting untuk menjaga independensi pengujian.
3) Bagaimana keadaannya TestNG berbeda dari JUnit?
Meskipun kedua kerangka kerja tersebut digunakan untuk pengujian unit, TestNG menyediakan kemampuan konfigurasi dan eksekusi paralel yang lebih tangguh.
| Fitur | JUnit | TestNG |
|---|---|---|
| Eksekusi Paralel | Dukungan terbatas | Dukungan penuh |
| Penjelasan | Lebih sedikit (@Before, @After) |
Lebih kaya (@BeforeSuite, @DataProvider) |
| Manajemen Ketergantungan | Tidak tersedia | Tersedia menggunakan dependsOnMethods |
| Pengelompokan | Tidak didukung | Didukung menggunakan groups |
| Parameterisasi | Melalui pelari eksternal | Terintegrasi melalui XML atau @DataProvider |
Kesimpulan, TestNG lebih disukai untuk pengujian otomatisasi tingkat perusahaan dan integrasi dengan alat-alat seperti Selenium, sedangkan JUnit sangat ideal untuk pengujian unit yang lebih sederhana.
4) Apa itu TestNG Anotasi dan bagaimana kegunaannya?
Anotasi dalam TestNG menetapkan struktur dan perilaku metode pengujianMereka menghilangkan kebutuhan akan konfigurasi XML yang kompleks dengan menyediakan kontrol pengujian deklaratif langsung dalam kode.
Anotasi yang umum digunakan meliputi:
@BeforeSuite,@BeforeTest,@BeforeClass,@BeforeMethod@Test@AfterMethod,@AfterClass,@AfterTest,@AfterSuite
Contoh:
@BeforeMethod
public void setup() {
System.out.println("Initializing browser...");
}
@Test
public void verifyLogin() {
System.out.println("Executing login test...");
}
Hal ini membantu pengembang mengatur eksekusi pengujian secara logis, memastikan bahwa pengaturan, eksekusi pengujian, dan pembersihan terjadi dalam urutan yang telah ditentukan.
5) Jelaskan konsep pengelompokan dalam TestNG.
Pengelompokan dalam TestNG Memungkinkan pengkategorian logis pengujian ke dalam kelompok yang lebih kecil dan mudah dikelola seperti "Smoke", "Regresi", atau "Sanity".
Contoh:
@Test(groups = {"Smoke"})
public void loginTest() { ... }
@Test(groups = {"Regression"})
public void paymentTest() { ... }
Anda dapat mengkonfigurasi rangkaian XML Anda untuk menjalankan grup tertentu:
<groups>
<run>
<include name="Smoke"/>
</run>
</groups>
Manfaat:
- Memfasilitasi eksekusi kasus uji secara selektif.
- Meningkatkan fleksibilitas dalam pipeline CI/CD.
- Menghemat waktu eksekusi selama proses build bertahap.
6) Bagaimana parameterisasi dapat dicapai dalam TestNG?
Parameterisasi memungkinkan pengujian berbasis data, sehingga pengujian dapat dijalankan dengan beberapa kumpulan data masukan. TestNG mendukung dua metode utama:
- Menggunakan
@Parametersanotasi dengan XML: - Menggunakan
@DataProvider:
<parameter name="browser" value="chrome"/>
@Test
@Parameters("browser")
public void launchBrowser(String browser) { ... }
@DataProvider(name="loginData")
public Object[][] getData() {
return new Object[][] {{"user1","pass1"}, {"user2","pass2"}};
}
@Test(dataProvider="loginData")
public void loginTest(String user, String pass) { ... }
Fleksibilitas ini mempermudah pemeliharaan dan pelaksanaan rangkaian pengujian besar di berbagai lingkungan atau konfigurasi.
7) Apa saja dependensi dalam TestNG dan bagaimana cara pengelolaannya?
Ketergantungan dalam TestNG mengontrol urutan eksekusi pengujian berdasarkan hasil pengujian lainnya menggunakan dependsOnMethods or dependsOnGroups atribut.
Contoh:
@Test
public void loginTest() { ... }
@Test(dependsOnMethods = {"loginTest"})
public void verifyDashboard() { ... }
Jika metode yang bergantung gagal, pengujian selanjutnya akan dilewati secara otomatis.
Mekanisme ini mencegah eksekusi pengujian yang tidak valid dan membantu menjaga integritas uji logisIni sangat berguna untuk alur fungsional multi-langkah seperti login → melakukan tindakan → memverifikasi hasil.
8) Apa saja berbagai cara untuk melaksanakannya? TestNG tes?
TestNG Pengujian dapat dijalankan dengan beberapa cara fleksibel tergantung pada pengaturan pengujian:
- Dari IDE (Eclipse/IntelliJ): Klik kanan pada kelas atau
XML file→Run as→TestNG Test. - Dari Command Line:
java -cp "path\testng.jar;bin" org.testng.TestNG testng.xml - Menggunakan Build Tools:
- Ahli: Konfigurasi
surefire-plugininpom.xml. - Gradle: penggunaan
testngKonfigurasi ketergantungan dan tugas.
- Ahli: Konfigurasi
- Melalui pipeline CI/CD: Terintegrasi dengan Jenkins atau GitHub Actions untuk eksekusi otomatis.
Keragaman ini memastikan kompatibilitas di seluruh lingkungan pengembangan, pengujian, dan produksi.
9) Apa itu TestNG Pendengar dan mengapa mereka penting?
Pendengar di TestNG menyediakan mekanisme untuk menyesuaikan perilaku pengujian dengan memantau peristiwa eksekusi pengujian seperti mulai, berhasil, gagal, atau dilewati.
Pendengar umum:
ITestListenerMelacak peristiwa tingkat metode pengujian.ISuiteListenerMengamati peristiwa tingkat suite.IReporterMenghasilkan laporan khusus.
Contoh:
public class CustomListener implements ITestListener {
public void onTestFailure(ITestResult result) {
System.out.println("Test Failed: " + result.getName());
}
}
Pendengar sering digunakan untuk mengambil tangkapan layar kegagalan, menghasilkan log khusus, atau terintegrasi dengan alat pelaporan seperti Allure atau ExtentReports.
10) Apa keuntungan dan kerugian menggunakan TestNG?
| Aspek | Kelebihan | Kekurangan |
|---|---|---|
| keluwesan | Mendukung pengelompokan, ketergantungan, dan eksekusi paralel. | Pengaturan XML kompleks untuk rangkaian perangkat lunak besar. |
| Pelaporan | Menyediakan laporan HTML dan XML terperinci. | Kustomisasi terbatas tanpa pendengar |
| integrasi | Bekerja dengan lancar Selenium dan alat CI/CD | Kurva pembelajaran sedikit lebih tinggi. |
| Parameterisasi | Dukungan bawaan untuk pengujian berbasis data. | Membutuhkan pemeliharaan untuk kumpulan data besar. |
Secara keseluruhan, TestNG merupakan kerangka kerja yang tangguh dan fleksibel yang cocok untuk lingkungan pengujian otomatisasi modern meskipun memiliki sedikit biaya konfigurasi tambahan.
11) Bagaimana Anda dapat memprioritaskan kasus uji dalam TestNG?
TestNG menyediakan priority atribut di @Test Anotasi untuk menentukan urutan eksekusi metode pengujian. Pengujian dengan nilai prioritas lebih rendah akan dijalankan terlebih dahulu.
Contoh:
@Test(priority = 1)
public void loginTest() { ... }
@Test(priority = 2)
public void dashboardTest() { ... }
Jika prioritas tidak ditentukan, nilai defaultnya adalah 0, dan metode dieksekusi secara alfabetis.
Praktek terbaik: Gunakan nilai prioritas dengan hemat. Penggunaan yang berlebihan dapat membuat urutan pengujian menjadi kaku. Untuk alur yang kompleks, manajemen ketergantungan (dependsOnMethods) lebih mudah dipelihara daripada prioritas yang ketat.
12) Jelaskan konsep dan penggunaan eksekusi paralel dalam TestNG.
Eksekusi paralel di TestNG Memungkinkan beberapa pengujian, kelas, atau metode untuk dijalankan secara bersamaan, sehingga secara signifikan mengurangi waktu eksekusi keseluruhan.
Anda dapat mengaktifkan fitur ini di testng.xml File:
<suite name="ParallelSuite" parallel="tests" thread-count="3"> <test name="Test1">...</test> <test name="Test2">...</test> </suite>
Mode paralel yang didukung:
testsclassesmethodsinstances
Keuntungan:
- Siklus umpan balik yang lebih cepat.
- Pemanfaatan prosesor multi-core secara efisien.
- Skalabilitas untuk rangkaian otomatisasi besar.
Namun, pastikan pengaman ulir saat menggunakan sumber daya bersama seperti WebDriver atau koneksi basis data.
13) Apa itu penyedia data di TestNGApa perbedaannya dengan parameter?
@DataProvider memungkinkan pengujian berdasarkan data dengan menyediakan metode pengujian dengan beberapa set data.
Contoh:
@DataProvider(name="credentials")
public Object[][] data() {
return new Object[][] {{"user1", "pass1"}, {"user2", "pass2"}};
}
@Test(dataProvider="credentials")
public void login(String username, String password) { ... }
Perbedaan antara @Parameters dan @DataProvider:
| Fitur | @Parameters |
@DataProvider |
|---|---|---|
| Sumber data | File XML | Java metode |
| Data Type | Kumpulan data tunggal | Beberapa kumpulan data |
| keluwesan | Less | High |
| Use Case | Variabel lingkungan | Pengujian berulang berbasis data |
Karenanya, @DataProvider Metode ini lebih disukai saat menjalankan satu pengujian dengan beberapa kumpulan data, seperti memverifikasi login dengan beberapa kredensial.
14) Bagaimana cara menonaktifkan atau melewati tes di TestNG?
Anda dapat menonaktifkan pengujian di TestNG menggunakan enabled atribut atau dengan melewatinya secara terprogram.
1. Menggunakan enabled = false:
@Test(enabled = false)
public void skipTest() {
System.out.println("This test will not run.");
}
2. Melewati saat runtime menggunakan SkipException:
@Test
public void conditionalSkip() {
throw new SkipException("Skipping this test due to condition.");
}
Menonaktifkan berguna untuk menonaktifkan sementara Tes yang tidak stabil atau tidak lengkap tanpa menghapusnya. Melewatkan tes ini bermanfaat untuk... kondisi waktu eksekusi, seperti melewatkan pengujian untuk browser yang tidak didukung.
15) Apa peran file testng.xml dan apa saja komponen utamanya?
The testng.xml berkas merupakan tulang punggung konfigurasi dari TestNGIni mendefinisikan rangkaian pengujian, kelompok pengujian, parameter, dan pengaturan eksekusi paralel.
Contoh Struktur:
<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>
Komponen utama:
<suite>– Mendefinisikan keseluruhan rangkaian.<test>– Mewakili blok pengujian.<classes>– Mencantumkan kelas pengujian.<methods>– Menyaring metode pengujian spesifik.<parameter>– Menyediakan parameter global atau parameter tingkat pengujian.
File XML tersebut menyediakan kontrol terpusat Eksekusi berlebihan tanpa mengubah kode.
16) Bagaimana cara Anda membuat laporan di TestNG?
TestNG secara otomatis menghasilkan dua jenis laporan:
- Laporan HTML (
test-output/index.html) – Merangkum tes yang lulus, gagal, dan dilewati. - Laporan XML – Digunakan untuk integrasi dengan alat CI/CD.
Untuk pelaporan tingkat lanjut, TestNG terintegrasi dengan:
- Laporan Luas – Menawarkan dasbor grafis dan log terperinci.
- Laporan Allure – Menyediakan analitik visual dengan langkah-langkah pengujian, tangkapan layar, dan log.
Contoh Integrasi:
ExtentReports extent = new ExtentReports();
ExtentTest test = extent.createTest("Login Test");
test.pass("Test Passed Successfully");
extent.flush();
Laporan-laporan ini sangat penting untuk melacak tren dan mengidentifikasi area lemah dalam cakupan pengujian.
17) Apa itu pabrik di TestNG, dan bagaimana cara kerjanya?
Pabrik di TestNG digunakan untuk membuat contoh dinamis dari kelas pengujianMereka mengizinkan instansiasi kelas berparameter sebelum menjalankan pengujian.
Contoh:
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);
}
}
Keuntungan:
- memungkinkan pembuatan objek berparameter.
- Ideal untuk pengujian lintas-browser dan eksekusi multi-lingkungan.
Factory melengkapi DataProvider ketika Anda membutuhkan konfigurasi objek yang berbeda, bukan hanya variasi data tingkat metode.
18) Bagaimana Anda dapat menggunakan pernyataan (assertions) dalam TestNG?
Assertions digunakan untuk memvalidasi hasil yang diharapkan dibandingkan dengan hasil aktual dalam metode pengujian.
Jenis-Jenis Pernyataan:
- Pernyataan Keras (Kelas Assert):
Menghentikan eksekusi pengujian segera setelah terjadi kegagalan. - Pernyataan Lunak (kelas SoftAssert):
Eksekusi berlanjut meskipun terjadi kegagalan, dan semua masalah dilaporkan pada akhirnya. - Kapan Harus Digunakan:
- Gunakan pernyataan tegas untuk validasi kritis Seperti berhasil masuk.
- Gunakan pernyataan lunak untuk verifikasi ganda dalam satu metode pengujian tunggal.
Assert.assertEquals(actual, expected); Assert.assertTrue(condition);
SoftAssert soft = new SoftAssert();
soft.assertEquals(actual, expected);
soft.assertAll();
19) Jelaskan perbedaan antara @BeforeMethod dan @BeforeClass dalam TestNG.
| Aspek | @BeforeMethod |
@BeforeClass |
|---|---|---|
| Execution | Berjalan sebelum setiap metode pengujian | Berjalan sekali sebelum metode apa pun di dalam kelas |
| Cakupan | Per metode pengujian | Per kelas uji |
| Penggunaan umum | Menginisialisasi browser sebelum setiap pengujian | Memuat konfigurasi atau pengaturan browser sekali |
Contoh:
@BeforeClass
public void setupClass() {
System.out.println("Executed once per class");
}
@BeforeMethod
public void setupMethod() {
System.out.println("Executed before each method");
}
penggunaan @BeforeMethod ketika setiap pengujian membutuhkan lingkungan yang bersih, dan @BeforeClass untuk tugas inisialisasi berat yang dapat digunakan kembali.
20) Bagaimana caranya TestNG Mendukung dependency injection dan apa saja kasus penggunaannya?
TestNG mendukung injeksi ketergantungan melalui injeksi konteks dan objek konfigurasi bawaan seperti ITestContext, XmlTest, atau Method.
Contoh:
@Test
public void testContextExample(ITestContext context) {
System.out.println("Suite Name: " + context.getSuite().getName());
}
Gunakan Kasus:
- Mengambil parameter pengujian secara dinamis.
- Mengakses informasi konfigurasi seperti nama suite atau pengaturan eksekusi paralel.
- Meningkatkan fleksibilitas pengujian tanpa perlu memasukkan dependensi secara manual.
Injeksi dependensi memungkinkan pengembang untuk menulis tes modular dan peka konteks yang beradaptasi secara dinamis terhadap perubahan lingkungan.
21) Apa perbedaan antara @Factory dan @DataProvider dalam TestNG?
Kedua @Factory dan @DataProvider Mereka membantu dalam hal parameterisasi, tetapi mereka beroperasi pada level yang berbeda dalam arsitektur pengujian.
| Fitur | @Factory |
@DataProvider |
|---|---|---|
| Cakupan | tingkat kelas | Tingkat metode |
| Tujuan | Membuat beberapa instance dari sebuah kelas dengan data yang berbeda. | Menyediakan data untuk satu metode pengujian tunggal |
| Execution | Menjalankan seluruh kelas untuk setiap instance. | Menjalankan satu metode beberapa kali |
| Kasus Penggunaan Ideal | Pengujian lintas browser atau lingkungan | Pengujian fungsional berbasis data |
Contoh:
- Pabrik: Menjalankan seluruh kelas per jenis browser.
- Penyedia Data: Menjalankan satu metode pengujian dengan beberapa set data.
penggunaan @Factory ketika instansiasi objek itu sendiri bervariasi, dan @DataProvider untuk variasi input fungsional dalam instance objek yang sama.
22) Bagaimana Anda dapat mencoba ulang kasus uji yang gagal secara otomatis di TestNG?
TestNG menyediakan mekanisme untuk Jalankan ulang kasus uji yang gagal. menggunakan IRetryAnalyzer Antarmuka.
Contoh Implementasi:
public class RetryAnalyzer implements IRetryAnalyzer {
int count = 0;
int maxTry = 2;
public boolean retry(ITestResult result) {
if (count < maxTry) {
count++;
return true;
}
return false;
}
}
Pemakaian:
@Test(retryAnalyzer = RetryAnalyzer.class)
public void testLogin() {
Assert.fail("Intentional Failure");
}
Manfaat:
- Mengurangi ketidakstabilan dalam pipeline CI.
- Menangani masalah jaringan atau lingkungan yang bersifat sementara.
Praktek terbaik: Gabungkan logika percobaan ulang dengan pencatatan dan tangkapan layar yang tepat untuk mendebug kegagalan yang terjadi sesekali.
23) Apa kegunaan ITestContext dalam TestNG?
ITestContext menyediakan informasi kontekstual Informasi mengenai jalankan pengujian, termasuk nama suite, nama pengujian, direktori output, dan parameter.
Contoh:
@Test
public void contextExample(ITestContext context) {
System.out.println("Suite: " + context.getSuite().getName());
}
Metode Utama:
getSuite()– Mengambil informasi tingkat suite.getName()– Mengembalikan nama tes.setAttribute()/getAttribute()– Berbagi data antar pengujian.
Itu memungkinkan berbagi data antar metode atau kelas pengujian serta memfasilitasi pelaporan dan pencatatan yang dinamis.
24) Bagaimana Anda dapat menciptakan ketergantungan antar kelompok pengujian di TestNG?
Anda dapat mendefinisikan ketergantungan antar kelompok menggunakan dependsOnGroups atribut di @Test anotasi.
Contoh:
@Test(groups = "Login")
public void login() { ... }
@Test(dependsOnGroups = "Login")
public void verifyProfile() { ... }
Ini memastikan bahwa verifyProfile Grup hanya akan berjalan jika semua tes di Login Kelompok berhasil melewati tahap tersebut.
Hal ini sangat berguna khususnya dalam tes integrasi, di mana modul-modul bergantung pada keberhasilan eksekusi modul lainnya (misalnya, alur login → profil → logout).
25) Bagaimana Anda dapat mengabaikan metode pengujian tertentu dalam sebuah TestNG Berkas XML?
Anda bisa secara eksplisit mengecualikan metode di dalam sebuah kelas di dalam file suite XML menggunakan <exclude> tag.
Contoh:
<class name="com.test.LoginTests">
<methods>
<exclude name="verifyLogout"/>
</methods>
</class>
Hal ini memungkinkan penguji untuk menonaktifkan metode tertentu untuk sementara waktu tanpa memodifikasi Java Kode sumber — berguna dalam rangkaian besar di mana penyertaan atau pengecualian dinamis diperlukan berdasarkan siklus rilis atau prioritas sprint.
26) Bagaimana caranya TestNG diintegrasikan dengan Selenium Pengemudi Web?
TestNG dan Selenium Membentuk kombinasi yang ampuh untuk otomatisasi UI.
Pengaturan integrasi yang umum melibatkan pengorganisasian pengujian menggunakan anotasi, pengelolaan pengaturan/pembersihan, dan menjalankan pengujian melalui XML atau alat CI.
Contoh:
@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();
}
Manfaat Integrasi:
- memungkinkan pengujian browser paralel.
- Disederhanakan pengelompokan dan pelaporan tes.
- Bekerja dengan lancar Jalur pipa CI / CD seperti Jenkins atau GitHub Actions.
27) Apa saja praktik terbaik saat menggunakan TestNG dalam kerangka kerja otomatisasi besar?
Praktik terbaik:
- penggunaan DescriptPenamaan: Beri nama pengujian berdasarkan perilaku, bukan implementasi.
- Pengelompokan Leverage: Buat kelompok uji logis (Smoke, Regresi).
- Hindari pengkodean secara langsung (hardcoding): Gunakan parameter atau berkas properti untuk data uji.
- Minimalkan Ketergantungan: Jaga agar kasus uji tetap independen sebisa mungkin.
- Sentralisasi Konfigurasi: penggunaan
testng.xmluntuk pengaturan suite. - Integrasi Pelaporan: Gunakan listener atau alat pihak ketiga seperti ExtentReports.
- Gunakan Logika Percobaan Ulang dengan Hati-hati: Hindari menutupi cacat yang sebenarnya.
Dengan mengikuti hal-hal ini, Anda akan mendapatkan kepastian. skalabilitas, pemeliharaan, dan keterbacaan dalam otomatisasi tingkat perusahaan.
28) Apa perbedaan antara @BeforeTest dan @BeforeSuite dalam TestNG?
| Fitur | @BeforeTest |
@BeforeSuite |
|---|---|---|
| Cakupan | Berjalan sebelum setiap <test> tag dalam XML |
Dijalankan sekali sebelum seluruh rangkaian proses. |
| Frekuensi | Beberapa kali (jika ada beberapa) <test> blok) |
Hanya sekali per suite |
| Penggunaan umum | Inisialisasi konfigurasi tingkat pengujian | Siapkan sumber daya global |
Contoh:
@BeforeSuite
public void setupSuite() {
System.out.println("Global setup for suite.");
}
@BeforeTest
public void setupTest() {
System.out.println("Setup for each <test> tag.");
}
penggunaan @BeforeSuite untuk konfigurasi global (misalnya, koneksi basis data) dan @BeforeTest untuk inisialisasi khusus pengujian.
29) Bisa TestNG Apakah bisa digunakan untuk pengujian API? Bagaimana caranya?
Ya. TestNG dapat digunakan secara efektif untuk Pengujian API dengan mengintegrasikan dengan pustaka klien HTTP seperti Tenanglah or Klien Http.
Contoh:
@Test
public void verifyApiResponse() {
Response response = RestAssured.get("https://api.example.com/users");
Assert.assertEquals(response.getStatusCode(), 200);
}
Keuntungan:
- memungkinkan validasi berbasis pernyataan dari tanggapan.
- Mendukung parameterisasi dan pengujian berdasarkan data untuk beberapa titik akhir.
- Menghasilkan laporan terstruktur untuk validasi REST API.
Dengan menggabungkan TestNG Dengan RestAssured, penguji dapat mempertahankan kerangka kerja otomatisasi terpadu untuk pengujian UI dan API.
30) Bagaimana cara Anda mengirimkan parameter dari baris perintah di TestNG?
Anda dapat menimpa parameter XML saat runtime dengan meneruskan properti sistem menggunakan -D bendera.
Contoh Perintah:
mvn test -Dbrowser=chrome -Denv=staging
Contoh Kode:
@Parameters("browser")
@Test
public void launch(@Optional("firefox") String browser) {
System.out.println("Running on: " + browser);
}
Ini memungkinkan pemilihan lingkungan dinamis dalam pipeline CI/CD tanpa mengubah file konfigurasi, sehingga meningkatkan fleksibilitas pengujian.
31) Bagaimana Anda dapat mengontrol urutan eksekusi pengujian di TestNG tanpa menggunakan prioritas?
Alih-alih menggunakan priority, TestNG memungkinkan kontrol melalui ketergantungan dan Pengurutan metode XML.
metode:
- Menggunakan
dependsOnMethods: - Menggunakan Urutan Metode XML:
@Test
public void login() { ... }
@Test(dependsOnMethods = "login")
public void verifyDashboard() { ... }
<classes>
<class name="com.test.LoginTests">
<methods>
<include name="login"/>
<include name="verifyDashboard"/>
</methods>
</class>
</classes>
Praktek terbaik: Utamakan ketergantungan logis untuk alur yang kompleks daripada prioritas statis, sehingga memastikan rangkaian pengujian yang kuat dan mudah dipelihara.
32) Bagaimana Anda dapat menjalankan metode pengujian tertentu dari baris perintah di TestNG?
TestNG memungkinkan eksekusi pengujian tingkat metode langsung dari baris perintah menggunakan konfigurasi XML atau Maven Surefire.
Opsi 1: Menggunakan File XML
<class name="com.test.LoginTests">
<methods>
<include name="verifyLogin"/>
</methods>
</class>
Opsi 2: Perintah Maven
mvn test -Dtest=com.test.LoginTests#verifyLogin
Pendekatan ini memungkinkan eksekusi selektif, berguna untuk men-debug metode individual atau memvalidasi fungsionalitas penting selama proses build cepat.
33) Bagaimana cara Anda memparameterisasi pengujian menggunakan file Excel eksternal di TestNG?
Parameterisasi berbasis Excel umum digunakan dalam kerangka kerja berbasis data di mana data uji sering berubah.
Langkah-langkah Implementasi:
- penggunaan Apache POI or JExcel untuk membaca data Excel.
- Masukkan ke dalam
@DataProviderMetode.
Contoh:
@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;
}
Hal ini memungkinkan menjalankan metode pengujian yang sama dengan beberapa kumpulan data dunia nyata dari Excel, sehingga meningkatkan fleksibilitas dan cakupan.
34) Bagaimana kamu bisa berlari? TestNG Pengujian di Jenkins atau pipeline CI/CD?
TestNG terintegrasi secara mulus dengan Jenkins, GitLab CI, atau Tindakan GitHub melalui Maven atau Gradle membangun.
Langkah-langkah di Jenkins:
- Install Plugin Integrasi Maven.
- Membuat Pekerjaan Gaya Bebas atau Pipeline.
- Add
mvn clean testsebagai langkah pembangunan. - Setelah proses build, konfigurasikan laporan HTML:
- Direktori laporan:
test-output - Berkas indeks:
index.html
- Direktori laporan:
Manfaat:
- Memungkinkan pengujian regresi otomatis.
- Menyediakan jadwal uji coba dan pelacakan tren.
- Memastikan eksekusi pengujian yang konsisten di berbagai lingkungan.
35) Apa tujuan dari @Parameters dan apa perbedaannya dengan @Optional?
Kedua anotasi tersebut berkaitan dengan parameterisasi tetapi memiliki tujuan yang berbeda.
| Fitur | @Parameters |
@Optional |
|---|---|---|
| Tujuan | Meneruskan parameter dari file XML | Memberikan nilai default jika parameter hilang. |
| Pernyataan | Digunakan dengan XML <parameter> |
Digunakan di dalam metode pengujian |
| Tingkah laku | Menampilkan kesalahan jika nilai hilang | Menggunakan nilai cadangan |
Contoh:
@Test
@Parameters("browser")
public void runTest(@Optional("chrome") String browser) {
System.out.println("Running on: " + browser);
}
Menggunakan @Optional Memastikan uji stabilitas ketika konfigurasi XML tidak lengkap.
36) Bagaimana Anda menangani ketergantungan pengujian antar kelas yang berbeda di TestNG?
Untuk membuat dependensi antar kelas, TestNG memungkinkan penggunaan dependsOnGroups atribut.
Contoh:
@Test(groups = "Login")
public void loginTest() { ... }
@Test(groups = "Dashboard", dependsOnGroups = "Login")
public void dashboardTest() { ... }
Pendekatan ini membantu dalam pengelolaan. dependensi multi-modul di mana setiap kelas mewakili sebuah modul (Login, Dashboard, Pembayaran, dll.).
Hal ini memastikan bahwa modul yang bergantung hanya akan dieksekusi jika pengujian prasyarat berhasil, sehingga menjaga integritas pengujian.
37) Apa yang dimaksud dengan kegagalan konfigurasi pada TestNGLalu bagaimana cara mengatasinya?
Kegagalan konfigurasi terjadi ketika metode setup atau teardown diberi anotasi dengan @Before* or @After* gagal.
Mereka dapat menyebabkan tes dependen yang dilewati, bahkan jika tes-tes tersebut benar.
Penyebab umum:
- Inisialisasi WebDriver tidak tepat.
- Masalah pengaturan basis data atau lingkungan.
- Kesalahan konfigurasi parameter.
Solusi:
- penggunaan coba tangkap blok dalam metode pengaturan.
- Mendaftar
alwaysRun = trueuntuk memastikan proses pembersihan tetap berjalan meskipun terjadi kegagalan.
Contoh:
@BeforeMethod(alwaysRun = true)
public void setup() {
// Setup logic
}
Hal ini memastikan metode pembongkaran Anda tetap berjalan, sehingga menjaga stabilitas lingkungan pengujian.
38) Apa kegunaan atribut invocationCount dan threadPoolSize dalam TestNG?
Atribut-atribut ini memungkinkan eksekusi pengujian berulang dan paralel dengan metode yang sama.
Contoh:
@Test(invocationCount = 5, threadPoolSize = 2)
public void loadTest() {
System.out.println("Running load test...");
}
| Atribut | Uraian Teknis |
|---|---|
invocationCount |
Jumlah kali suatu metode dijalankan |
threadPoolSize |
Jumlah thread yang berjalan bersamaan |
Gunakan Kasus: Pengujian kinerja, verifikasi stabilitas, atau mereproduksi perilaku yang tidak stabil dalam beberapa kali percobaan.
39) Bagaimana cara Anda hanya menjalankan kasus uji yang gagal? TestNG?
Setelah serangkaian acara, TestNG menghasilkan file bernama testng-failed.xml dalam test-output direktori.
Anda dapat menjalankan ulang hanya pengujian yang gagal dengan mengeksekusi:
java -cp testng.jar org.testng.TestNG test-output/testng-failed.xml
Keuntungan:
- Menghemat waktu dengan melewati tes yang berhasil.
- Mempermudah proses debugging pada rangkaian pengujian yang besar.
- Umumnya digunakan dalam pipeline CI untuk pengujian ulang cepat.
Anda juga dapat mengintegrasikannya dengan Jenkins menggunakan skrip pasca-pembuatan untuk menjalankan ulang.
40) Apa saja keterbatasan dari TestNG dan bagaimana hal itu dapat diatasi?
Terlepas dari kekokohannya, TestNG memiliki beberapa keterbatasan.
| batasan | Strategi Mitigasi |
|---|---|
| Kompleksitas konfigurasi XML | Gunakan konfigurasi dan pembangun berbasis anotasi. |
| Pelaporan penduduk asli terbatas | Integrasikan ExtentReports atau Allure |
| Tidak ada kontrol percobaan ulang bawaan. | Implementasi VE IRetryAnalyzer |
| Kekhawatiran terkait keamanan thread dalam eksekusi paralel. | Gunakan instance WebDriver thread-local |
| Kurva belajar untuk pemula | Memelihara struktur proyek berbasis templat. |
Dengan desain kerangka kerja yang tepat dan praktik terbaik, keterbatasan ini dapat diminimalkan, sehingga memastikan solusi otomatisasi yang stabil dan mudah dipelihara.
41) Bagaimana Anda menggunakan listener untuk logging dan pengambilan tangkapan layar di Selenium-TestNG?
Pendengar di TestNG Membantu memantau eksekusi pengujian dan melakukan tindakan seperti pencatatan log, mengambil tangkapan layar, atau melaporkan hasil secara dinamis.
Contoh Implementasi:
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"));
}
}
Pemakaian:
@Listeners(ScreenshotListener.class)
public class LoginTests extends BaseTest { ... }
Manfaat:
- Mendeteksi kegagalan secara otomatis.
- Meningkatkan proses debugging melalui bukti visual.
- Mengurangi upaya manual dalam memelihara log.
Teknik ini sangat penting dalam pipeline otomatisasi CI/CD, terutama saat mendiagnosis build yang gagal dari jarak jauh.
42) Apa perbedaan antara IReporter dan ITestListener dalam TestNG?
| Fitur | IReporter |
ITestListener |
|---|---|---|
| Tujuan | Menghasilkan laporan khusus setelah eksekusi pengujian. | Melacak dan bereaksi terhadap peristiwa pengujian saat runtime. |
| Doa | Setelah semua tes selesai | Selama siklus hidup pengujian (mulai, berhasil, gagal) |
| Keluaran | Laporan HTML/XML/JSON | Berkas log, tangkapan layar, dasbor langsung |
| Penggunaan umum | Integrasi ExtentReports dan Allure | Pencatatan log, penanganan kegagalan, mekanisme percobaan ulang |
Contoh:
- penggunaan
IReporteruntuk membangun laporan yang komprehensif setelah tes selesai. - penggunaan
ITestListeneruntuk pencatatan waktu nyata atau tangkapan layar.
Mereka juga bisa bergabung untuk membangun sistem analitik otomatisasi ujung-ke-ujung.
43) Bagaimana cara Anda melakukan pengujian lintas browser menggunakan TestNG Konfigurasi XML?
Pengujian lintas browser memastikan bahwa fungsi yang sama bekerja di berbagai browser.
Contoh Konfigurasi:
<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 Kode:
@Parameters("browser")
@BeforeClass
public void setup(String browser) {
if(browser.equalsIgnoreCase("chrome"))
driver = new ChromeDriver();
else if(browser.equalsIgnoreCase("firefox"))
driver = new FirefoxDriver();
}
Pendekatan ini memungkinkan Eksekusi paralel multi-browser, mempercepat cakupan pengujian di berbagai platform.
44) Bagaimana Anda mengintegrasikan TestNG dengan Docker atau Selenium jaringan?
TestNG terintegrasi secara mulus dengan Dockerisasi Selenium kisi untuk memungkinkan pengujian paralel terdistribusi.
Tangga:
- Mendirikan Selenium Grid di Docker menggunakan resmi Selenium gambar:
docker run -d -p 4444:4444 --name selenium-grid selenium/standalone-chrome
- Memperbarui TestNG mempersiapkan:
- Jalankan rangkaian pengujian Anda melalui Jenkins atau pipeline CI.
DesiredCapabilities caps = new DesiredCapabilities();
caps.setBrowserName("chrome");
driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), caps);
Manfaat:
- memungkinkan pengujian paralel yang terukur.
- Mengurangi biaya pengaturan lingkungan.
- Menyediakan pelaksanaan pengujian yang konsisten di seluruh kontainer terdistribusi.
45) Apa perbedaan antara eksekusi paralel pada level suite, test, dan method dalam TestNG?
| Tingkat | Atribut Paralel | Perilaku Eksekusi |
|---|---|---|
| Rangkaian | parallel="suites" |
Menjalankan beberapa rangkaian secara bersamaan. |
| uji | parallel="tests" |
Berjalan <test> blok secara bersamaan |
| Kelas | parallel="classes" |
Menjalankan kelas pengujian secara paralel |
| metode | parallel="methods" |
Menjalankan metode pengujian individual secara paralel. |
Contoh:
<suite name="ParallelTests" parallel="methods" thread-count="3">
<test name="SampleTest">
<classes><class name="com.test.ParallelExample"/></classes>
</test>
</suite>
Praktek terbaik:penggunaan parallel="classes" untuk stabilitas dalam Selenium pengujian untuk menghindari konflik driver bersama.
46) Bagaimana Anda dapat berbagi data antar pengujian tanpa menggunakan variabel global? TestNG?
TestNG menyediakan ITestContext dan injeksi ketergantungan untuk berbagi data secara dinamis.
Contoh:
@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);
}
Hal ini menghindari variabel statis, menjaga keamanan thread, dan memastikan isolasi data di seluruh pengujian.
47) Bagaimana Anda menangkap dan mencatat tes yang dilewati? TestNG?
Anda dapat mencatat tes yang dilewati menggunakan onTestSkipped() dalam ITestListener Antarmuka.
Contoh:
@Override
public void onTestSkipped(ITestResult result) {
System.out.println("Skipped Test: " + result.getName());
}
Alasan untuk Melewatkan:
- Kegagalan pengujian dependen.
- Melewati kondisi melalui
SkipException. - Ketidaktersediaan lingkungan.
Praktek terbaik:
Catat alasan pengabaian log dan jejak tumpukan untuk ketertelusuran dalam laporan atau dasbor CI.
48) Jelaskan cara memparameterisasi pengujian REST API menggunakan TestNG dan Tenang Saja.
TestNG'S @DataProvider terintegrasi secara elegan dengan Tenanglah untuk parameterisasi API.
Contoh:
@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);
}
Keuntungan:
- Menjalankan panggilan API yang sama untuk beberapa endpoint atau payload.
- Menyederhanakan pengujian regresi untuk API dengan kumpulan input yang bervariasi.
- Terintegrasi dengan mulus dengan alat dan laporan CI.
49) Bagaimana cara membuat anotasi khusus di TestNG untuk pola pengujian yang dapat digunakan kembali?
Anotasi khusus dapat menstandarisasi konfigurasi atau validasi pengujian yang berulang.
Contoh:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface SmokeTest {
String description() default "Smoke Test";
}
Pemakaian:
@SmokeTest(description="Validating Login Functionality")
@Test
public void loginTest() { ... }
Dipadukan dengan refleksi, Anda dapat membaca anotasi ini secara dinamis untuk mengelompokkan pengujian atau menjalankan eksekusi bersyarat.
Teknik ini banyak digunakan dalam kerangka kerja meta-pemrograman untuk membangun tes yang mendokumentasikan diri sendiri.
50) Bagaimana Anda bisa menggabungkannya? Cucumber dan TestNG untuk kerangka kerja pengujian hibrida?
TestNG dapat bertindak sebagai pelari uji untuk Cucumber Skenario BDD, menawarkan pelaporan dan paralelisasi yang andal.
Contoh Pelari:
@CucumberOptions(
features = "src/test/resources/features",
glue = "stepDefinitions",
plugin = {"pretty", "html:target/cucumber-report.html"}
)
public class RunCucumberTest extends AbstractTestNGCucumberTests { }
Keuntungan:
- Leverage TestNG'S anotasi, pendengar, dan pelaporan.
- Mendukung eksekusi fitur paralel.
- Terintegrasi dengan Daya tarik dan Laporan Luas mudah.
Pendekatan hibrida ini menggabungkan Keterbacaan BDD dengan TestNG fleksibilitas, ideal untuk kerangka kerja tingkat perusahaan.
🔍 Atas TestNG Pertanyaan Wawancara dengan Skenario Dunia Nyata & Respons Strategis
Berikut adalah 10 contoh realistis dan relevan dengan bidangnya. TestNG Pertanyaan wawancara beserta ekspektasi yang jelas dan contoh jawaban yang kuat.
1) Dapatkah Anda menjelaskan keunggulan utama menggunakan TestNG dibandingkan dengan JUnit?
Diharapkan dari kandidat: Menunjukkan pemahaman tentang TestNGFitur-fitur unggulannya dan mengapa seringkali lebih disukai untuk otomatisasi perusahaan.
Contoh jawaban: "TestNG menyediakan beberapa keunggulan seperti konfigurasi pengujian yang fleksibel, dukungan untuk eksekusi paralel, metode pengujian dependen, pengujian berbasis data dengan DataProviders, dan pelaporan bawaan. Kemampuan ini menjadikan TestNG lebih ampuh untuk kerangka kerja otomatisasi kompleks yang membutuhkan skalabilitas.”
2) Bagaimana cara Anda menggunakannya? TestNG Anotasi untuk mengontrol alur eksekusi pengujian?
Diharapkan dari kandidat: Pemahaman tentang tujuan dan urutan anotasi.
Contoh jawaban: "TestNG Menawarkan anotasi seperti @BeforeSuite, @BeforeClass, @BeforeMethod, @Test, dan anotasi teardown yang sesuai. Ini memungkinkan pengorganisasian terstruktur dari pengaturan dan pembersihan pengujian. Misalnya, @BeforeMethod dieksekusi sebelum setiap metode pengujian, yang berguna untuk menginisialisasi status browser.”
3) Jelaskan proyek otomatisasi yang menantang di mana TestNG memainkan peran kunci.
Diharapkan dari kandidat: Pengalaman proyek nyata dan kemampuan untuk mengartikulasikan solusi masalah.
Contoh jawaban: “Dalam peran saya sebelumnya, saya mengerjakan sebuah proyek yang membutuhkan pengujian regresi ekstensif di berbagai lingkungan. TestNGFitur eksekusi paralel dan pengelompokan memungkinkan tim untuk menjalankan rangkaian pengujian penting secara bersamaan, mengurangi waktu eksekusi secara signifikan sambil tetap menjaga keandalan.”
4) Bagaimana caranya TestNG Apakah kelompok-kelompok tersebut membantu dalam mengatur dan melaksanakan pengujian secara efisien?
Diharapkan dari kandidat: Pemahaman tentang pengelompokan, termasuk mekanisme penyertaan/pengecualian.
Contoh jawaban: “Kelompok-kelompok di TestNG Memungkinkan pengkategorian kasus uji seperti smoke test, regresi, dan integrasi. Dengan menggunakan testng.xml, saya dapat menjalankan grup secara selektif, mengecualikan pengujian yang tidak stabil, dan mengelola berbagai rangkaian pengujian tanpa memodifikasi kode itu sendiri.”
5) Jelaskan situasi di mana Anda harus melakukan debugging terhadap kegagalan. TestNG tes. Bagaimana pendekatan Anda?
Diharapkan dari kandidat: Kemampuan berpikir kritis dan pemecahan masalah.
Contoh jawaban: “Di posisi sebelumnya, saya menghadapi serangkaian kegagalan TestNG Tes yang tampaknya berhasil secara lokal tetapi gagal di CI. Saya mengaktifkan pencatatan log terperinci, meninjau urutan eksekusi, dan menemukan bahwa sumber daya bersama tidak direset di antara tes. Kemudian saya menerapkan langkah-langkah pembersihan yang tepat menggunakan @AfterMethod untuk memastikan isolasi tes.”
6) Bagaimana Anda menerapkan pengujian berbasis data menggunakan TestNG?
Diharapkan dari kandidat: Pemahaman tentang DataProvider dan kasus penggunaannya.
Contoh jawaban: “Saya membuat metode @DataProvider yang mengembalikan data dalam array Object, lalu mengikatnya ke metode @Test menggunakan atribut dataProvider. Ini memungkinkan beberapa iterasi pengujian yang sama dengan kumpulan input yang berbeda, yang berguna untuk memvalidasi pengiriman formulir atau variasi payload API.”
7) Bagaimana Anda mengelola dependensi pengujian di TestNG?
Diharapkan dari kandidat: Penggunaan dependsOnMethods atau dependsOnGroups yang tepat.
Contoh jawaban: "TestNG Ini memungkinkan pengujian dependensi melalui atribut dependsOnMethods dan dependsOnGroups. Saya menggunakan dependensi ketika sebuah pengujian hanya boleh dijalankan setelah pengujian lain berhasil diselesaikan, seperti memverifikasi pesanan hanya setelah membuatnya.”
8) Jelaskan bagaimana Anda telah menggunakan TestNG dengan alat integrasi berkelanjutan.
Diharapkan dari kandidat: Pengalaman nyata dalam otomatisasi alur kerja.
Contoh jawaban: “Di pekerjaan saya sebelumnya, saya mengintegrasikan TestNG dengan Jenkins dengan mengkonfigurasi build Maven untuk menghasilkan TestNG Laporan HTML dan XML. Jenkins kemudian mengarsipkan laporan tersebut dan menampilkan hasilnya setelah setiap siklus build. Integrasi ini membantu tim melacak kegagalan dengan cepat dan menjaga stabilitas rilis.”
9) Ceritakan tentang suatu waktu ketika Anda harus bekerja di bawah tenggat waktu yang ketat sambil mengelola banyak tugas otomatisasi.
Diharapkan dari kandidat: Manajemen waktu dan kemampuan untuk memprioritaskan.
Contoh jawaban: “Dalam peran saya sebelumnya, saya perlu memperbarui yang sudah ada.” TestNG Saya membuat rangkaian pengujian yang sudah ada sekaligus membuat yang baru untuk rilis mendatang. Saya memprioritaskan tugas berdasarkan dampak bisnis, mengotomatiskan area berisiko tinggi terlebih dahulu, dan menggunakan... TestNG Pengelompokan dilakukan untuk mengisolasi bagian-bagian yang telah selesai untuk ditinjau lebih awal. Hal ini memastikan pengiriman tepat waktu tanpa mengorbankan kualitas.”
10) Bagaimana Anda akan merancang sistem yang dapat diskalakan? TestNG Kerangka kerja untuk aplikasi besar?
Diharapkan dari kandidat: Archipemahaman teknik, pola, dan praktik terbaik.
Contoh jawaban: “Saya akan merancang kerangka kerja modular menggunakan Page Object Model, mengintegrasikannya TestNG untuk manajemen eksekusi, dan menggunakan DataProviders untuk skenario berbasis data. Saya juga akan mengkonfigurasi eksekusi paralel, memusatkan utilitas, dan mengexternalisasi pengaturan konfigurasi sehingga kerangka kerja tetap terukur dan mudah dipelihara seiring pertumbuhan aplikasi.”
