Sto lavorando per introdurre test su un vecchio sistema. A causa del debito tecnico, siamo atterrati su test di componenti / interfaccia.
Il sistema è un servitore di server che invia messaggi in un formato personalizzato tra loro. L'idea è di creare un framework in cui possiamo creare una testcase per stimolare un server, quindi prendere in giro i messaggi che invia ad altri server e infine convalidare la risposta sulla richiesta originale.
La mia domanda, qual è il miglior design per questo? A causa di restrizioni, un po 'di codice possibile dovrebbe essere modificato. Vedo due approcci diversi. In fase di test e out-process framework
In corso: Archiviare testcases e framework di test in una DLL che viene caricata in modo dinamico dal server che vogliamo testare. È necessario creare un NetworkObserver che possa inoltrare informazioni a TestFramework
Fuoriprocesso:Creaunnuovoservercheascolticiòcheilserverchevogliamotestare.Ilserverditestdeveaverelaprioritàperlagestionedeimessaggiinmodochepossapotenzialmenteprendereingirolarichiesta.
I disegni di progettazione non sono eccezionali, ma speriamo che lo rendano più facile da capire.
Elementi da considerare:
-
I server sono multithreading
-
C'è un sacco di accesso al database
- Vorrei eseguire gli stessi casi di test in due modalità. Uno per convalida l'interno e uno in cui convalidare i dati simulati contro i dati actuall restituiti dagli altri servizi. Per farlo funzionare ho bisogno di impostare alcuni dati spesifici su alcuni server che comunicano con sistemi esterni.
- Ci sono molti file di configurazione.
Mi piacerebbe qualche input su come gestirlo al meglio. C'è un terzo modo per farlo?