Come aggiungere casi a un progetto di base di codice legacy di grandi dimensioni? [duplicare]

0

C'è un progetto legacy pieno di codice C ++. Come un progetto GUI MFC, contiene molte logiche di business fuori controllo e oltre il programmatore di livello medio per capire. Per lavorare su questo progetto GUI, esistono tecniche comuni per aggiungere casi di test / cablaggi?

    
posta upton 09.02.2015 - 07:44
fonte

2 risposte

0

Il problema con questo progetto è che non vuoi cambiare il codice senza aggiungere test di unità, ma di solito non puoi e test di unità senza cambiare il codice.

Se il tuo progetto è come un tipico progetto legacy, allora hai classi grandi con molte funzioni davvero lunghe, senza un ruolo chiaro.

La mia strategia è la seguente:

  • Cerca di identificare i ruoli di una grande classe (di solito ce ne sono una dozzina).
  • Prova a spaccare la classe insieme a questi ruoli. Inizia con il più semplice. Prova a modificare il minor numero possibile di codici, spostando principalmente le funzioni sulle nuove classi.
  • Ogni volta che viene completato un blocco, prova manualmente.
  • Se sei riuscito a scomporre una classe più piccola, aggiungi i test unitari e continua con il successivo.

Questo è un processo davvero lungo e impegnativo, e non ci sono bullets argentati. Solitamente cambio molto le mie modifiche e riprovo con un approccio diverso. E i test manuali sono davvero importanti. La cosa migliore è se hai qualcuno che ha usato molto questo software e può controllare se funziona davvero come prima.

Buona fortuna con questo!

    
risposta data 09.02.2015 - 08:12
fonte
0

Per le applicazioni legacy della GUI si trarrebbero vantaggi in due modi:

  1. Traccia della logica aziendale : chiedi a Sai Baba la conoscenza del business per informazioni descrittive e scrivi test automatici end-to-end dell'interfaccia utente. Ottieni una buona suite di test per la regressione.

  2. Codice contemplation track : se dovessi scrivere test unitari per codice legacy, lo farei solo per codice refactored o debugging . IMHO non è molto utile testare il codice legacy per ottenere i test di regressione impostati. Ecco perché

risposta data 09.02.2015 - 08:49
fonte

Leggi altre domande sui tag