Testarea de integrare

Introducere în testarea în Java

Maria Milusheva

Senior Software Engineer

Definirea testării de integrare

  • Integrare - procesul de combinare a componentelor sau subsistemelor software individuale într-un sistem unificat, funcțional.
  • Test de integrare - un test care verifică interacțiunea dintre mai multe componente sau module ale unei aplicații pentru a se asigura că funcționează corect împreună. Implică adesea testarea cu dependențe externe.

Imagine cu mobilă IKEA înainte de asamblare

Introducere în testarea în Java

Dependențe

  • Dependență software - o relație între componente software în care una depinde de cealaltă pentru a funcționa corect

1 Chart made using Mermaid: https://mermaid.live
Introducere în testarea în Java

Testare de integrare vs. testare unitară

Teste unitare:

  • Testează componente individuale în izolare
  • Eșecurile indică probleme cu o parte specifică a codului
  • Mai rapide de scris și rulat
  • Utilizează diverse instrumente pentru a evita testarea dependențelor
  • Verifică rezultate și ieșiri exacte

Teste de integrare:

  • Testează mai multe componente și interacțiunile dintre ele
  • Eșecurile necesită analize mai profunde pentru depistarea cauzei
  • Pot fi costisitoare și durează mai mult de configurat și rulat
  • Testează interacțiuni reale cu dependențe reale
  • Pot verifica comportamente generale în loc de rezultate exacte
Introducere în testarea în Java

Exemplu: Schimb valutar

Suppose we are building a currency exchange app:

public class ExchangeApp {
    private EuropeanCentralBankServer bank; // Enables ExchangeApp to use the bank server

    public ExchangeApp(EuropeanCentralBankServer bank) {
        this.bank = bank; // Save the object passed through the constructor
    }


public double convertEuroTo(String currency, double amount) { double rate = this.bank.getRateEuroTo(currency); return amount * rate; // Use the return values of the bank method in calculations } }
Introducere în testarea în Java

Testarea de integrare pentru schimb valutar

Testarea de integrare verifică atât metoda convertEuroTo, cât și EuropeanCentralBankServer:

@Test
void convert_convertsWithoutError() {
    EuropeanCentralBankServer bank = new EuropeanCentralBankServer();
    ExchangeApp exchangeApp = new ExchangeApp(bank); // Pass bank object to constructor

double amount = 1000.0; String currency = "USD"; // convertEuroTo calls getRateEuroTo from the bank object double result = exchangeApp.convertEuroTo(currency, amount); assertTrue(result > 0); // Can't predict exact value, can only sanity test }
Introducere în testarea în Java

Să exersăm!

Introducere în testarea în Java

Preparing Video For Download...