Pengujian integrasi

Pengantar Pengujian di Java

Maria Milusheva

Senior Software Engineer

Definisi pengujian integrasi

  • Integrasi - proses menggabungkan komponen atau subsistem perangkat lunak menjadi satu sistem yang bekerja selaras.
  • Uji integrasi - uji yang memverifikasi interaksi antar beberapa komponen atau modul aplikasi untuk memastikan semuanya bekerja bersama dengan benar. Sering melibatkan dependensi eksternal.

Gambar furnitur Ikea tepat sebelum perakitan

Pengantar Pengujian di Java

Dependensi

  • Dependensi perangkat lunak - hubungan antar komponen perangkat lunak saat satu komponen bergantung pada yang lain untuk bekerja dengan benar

Bagan relasi dependensi antar kelas

1 Grafik dibuat menggunakan Mermaid: https://mermaid.live
Pengantar Pengujian di Java

Uji integrasi vs. uji unit

Uji unit:

  • Menguji komponen secara terpisah
  • Kegagalan menunjukkan masalah pada bagian kode tertentu
  • Lebih cepat ditulis dan dijalankan
  • Gunakan berbagai alat untuk menghindari pengujian dependensi
  • Melakukan asersi pada hasil yang tepat

Uji integrasi:

  • Menguji banyak komponen dan interaksinya
  • Kegagalan butuh analisis lebih mendalam untuk ditelusuri
  • Bisa berat dan lebih lama disiapkan serta dijalankan
  • Menguji interaksi nyata dengan dependensi nyata
  • Dapat melakukan asersi pada perilaku umum, bukan nilai tepat
Pengantar Pengujian di Java

Contoh: Valas

Misalkan kita membuat aplikasi penukaran mata uang:

public class ExchangeApp {
    private EuropeanCentralBankServer bank; // Memungkinkan ExchangeApp memakai server bank

    public ExchangeApp(EuropeanCentralBankServer bank) {
        this.bank = bank; // Simpan objek yang diteruskan via konstruktor
    }


public double convertEuroTo(String currency, double amount) { double rate = this.bank.getRateEuroTo(currency); return amount * rate; // Gunakan nilai balik metode bank dalam perhitungan } }
Pengantar Pengujian di Java

Pengujian integrasi untuk valas

Pengujian integrasi memverifikasi metode convertEuroTo dan EuropeanCentralBankServer:

@Test
void convert_convertsWithoutError() {
    EuropeanCentralBankServer bank = new EuropeanCentralBankServer();
    ExchangeApp exchangeApp = new ExchangeApp(bank); // Teruskan objek bank ke konstruktor

double amount = 1000.0; String currency = "USD"; // convertEuroTo memanggil getRateEuroTo dari objek bank double result = exchangeApp.convertEuroTo(currency, amount); assertTrue(result > 0); // Nilai tepat tak dapat diprediksi, hanya sanity test }
Pengantar Pengujian di Java

Ayo berlatih!

Pengantar Pengujian di Java

Preparing Video For Download...