Domanda

Sto per apportare alcune modifiche a un modulo Apache C esistente per correggere alcuni possibili difetti di sicurezza e cattive pratiche generali. Tuttavia, la funzionalità del codice deve rimanere invariata (tranne nei casi in cui corregge un bug). I test standard di regressione sembrano essere in ordine. Vorrei sapere se qualcuno conosce un buon modo per eseguire alcuni test unitari di regressione contro il codice. Sto pensando a qualcosa sulla falsariga di usare Unità C ma con tutti i legami con l'APR di Apache e le strutture di stato mi chiedevo se c'è un buon modo per testarlo. Ci sono dei framework predefiniti che possono essere usati con l'unità C per esempio?

Grazie

Peter

È stato utile?

Soluzione

Ho pensato di rispondere a questo per un po ', ma ho pensato che qualcun altro potesse trovare una risposta migliore, perché la mia è piuttosto insoddisfacente: no, non sono a conoscenza di un tale framework di test unitari.

Penso che la tua scommessa migliore sia cercare di riformattare il tuo modulo C in modo tale che le sue dipendenze dalla base di codice httpd siano contenute in uno strato di colla molto sottile. Non mi preoccuperei troppo delle dipendenze da APR, che possono essere facilmente collegate al codice dell'unità di test. È come usare il record di richiesta che dovresti provare a sottrarre un po '.

Andrò lontano e suggerirò che un tale refactoring è una buona idea se si sospetta che il codice contenga difetti di sicurezza e cattive pratiche. Di solito è un lavoro piuttosto grosso.

Quello che potresti anche considerare è l'esecuzione di test di integrazione piuttosto che di unit test (idealmente entrambi), ovvero fornire una serie di richieste e risposte attese dal server ed eseguire un programma per confrontare le risposte effettive a quelle attese.

Quindi, non la risposta che stavi cercando, e probabilmente hai pensato a qualcosa in questo senso da solo. Ma almeno posso dirti per esperienza che se il modulo non può essere sostituito con qualcosa di nuovo per motivi commerciali, probabilmente il refactoring per testabilità probabilmente ripagherà a lungo termine.

Altri suggerimenti

Ho passato un po 'di tempo a guardarti attorno come una domanda, ero curioso. mi sono imbattuto in un articolo wiki che afferma che

http://cutest.sourceforge.net/

è stato utilizzato per il test di runtime portatile apache. potrebbe valere la pena verificarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top