La nostra azienda crea software finanziario che si integra in un backend del sistema bancario. Stiamo incontrando un sacco di problemi nell'apportare modifiche senza apparentemente influenzare un altro cliente o un altro sistema di backend bancario.
L'obiettivo dell'azienda è quello di spingere per un prodotto ad integrarsi senza problemi tra tutti i sistemi. Ma l'esperienza pratica mi sta dicendo che questo non è possibile né sostenibile dopo il numero di clienti implementato.
Il back-end non è di nostra proprietà, ma è assolutamente vitale per il funzionamento del nostro prodotto. Abbiamo vari modi di comunicare con i sistemi di backend (Socket, Named Pipe, Servizi Web, Servizio WCF, File In File Out) e il formato dei dati, e il suo contenuto è variabile. Ciò significa che dobbiamo anche nascondere / nascondere dinamicamente campi e moduli ui che non si applicano a qualsiasi sistema bancario utilizzato.
I problemi più grandi che stiamo affrontando sono la manutenzione: è impossibile apportare modifiche senza apparentemente avere un impatto su un altro cliente per diversi mesi.
Mi è stato affidato il compito di ridefinire alcuni dei metodi del livello aziendale in modo da poter implementare un nuovo cliente (con nuove chiamate API bancarie mai eseguite prima). Ora ho deciso di provare a scrivere i test di integrazione, poiché sto facendo questo per avere una certa sicurezza di non rompere qualcosa nel processo di refactoring, ma il sistema non è stato progettato per essere testato unitamente. Gli unici test che riesco a fare questo lavoro riguardano la creazione di oggetti IPC reali che imitano un sistema di back-end in cui posso controllare che i messaggi di ricezione e risposta siano nel formato corretto con i dati corretti, ma sono così fragili e hanno bisogno di molte dipendenze per lavorare (Ad esempio, corretta configurazione dell'applicazione, più database).
Temo di aver appena scritto 20 casi di test che questo non è scalabile né mantenibile man mano che il codice cambia. I test sembrano troppo fragili. Cosa dovrei fare? Ho cercato di spingere per riscrivere il livello aziendale per un lungo periodo, ma la gente ha paura di rompere ciò che già funziona.