Sto implementando alcuni test funzionali automatici in un ambiente con circa 20 applicazioni che comunicano tra loro utilizzando code e / o interfacce restful.
Il problema che sto affrontando è che ho aggiunto un po 'di test a una delle applicazioni, chiamiamola Pagamenti e sono tutte molto belle e verdi. Una delle modifiche all'applicazione Pagamenti ha aggiunto un campo aggiuntivo in un messaggio che viene inviato a un'altra applicazione chiamiamolo CRM e il CRM ha scartato il messaggio, il che significava che le applicazioni iniziarono a non essere sincronizzate. L'applicazione Pagamenti (come la maggior parte delle altre applicazioni) invia messaggi in modo fire-and-forget, il che significa che il produttore non sa mai se un messaggio viene elaborato o scartato.
Mi chiedo come testare queste dipendenze tra i sistemi. Un'opzione (che non mi piace dal mio intestino, ma non ho idea del perché) è quella di connettersi all'altro sistema e verificare che il record sia stato aggiornato. La maggior parte delle applicazioni ha un'interfaccia riposante e fornisce anche client, quindi non è molto lavoro. Ma ho la strong sensazione che farlo lo farà rendere il test più fragile. Uno dei motivi per cui non mi piace, è che la maggior parte delle applicazioni parla con altre 4-10 altre applicazioni, quindi non è solo controllando un'altra app ... e dal momento che molte cose sono asincrone, aggiunge ancora più incertezza alla prova.
Quindi, come crei test funzionali per questo tipo di ambiente?