2009-01-13 11 views
10

Per C++, ci sono molti buoni framework di test di unità, ma non sono riuscito a trovare uno buono per functional testing. Con test funzionali, intendo cose che toccano il disco, richiede l'applicazione completa ecc.Quadro di test per test funzionali/di sistema per C/C++?

Punto nel caso: quale framework aiuta a testare le cose come se l'I/O funzioni? Ho installato un sistema a mano, che crea cartelle temporanee, copia attorno a un mucchio di dati, quindi i test vengono sempre eseguiti nello stesso ambiente, ma prima di passare più tempo sul mio framework personalizzato - c'è un bravo là fuori già?

+0

Quali piattaforme siete? –

+0

Windows e Linux al momento. Il mio attuale framework di test è scritto su .NET 2 e funziona dove lavora Mono. – Anteru

risposta

3

Ne ho già scritto uno da zero tre volte, due volte per testare le app C++ che hanno parlato con gli scambi utilizzando il protocollo FIX, una volta per un'app GUI.

Il problema è che è necessario emulare il mondo esterno per eseguire test di sistema appropriati. Non intendo "al di fuori del tuo codice" - al di fuori della tua applicazione. Ciò comporta l'emulazione di utenti finali, entità esterne, Internet e così via.

Di solito uso Perl per scrivere il mio sistema di test e test di sistema, soprattutto perché è buono con l'accesso a tutti i tipi di strutture del sistema operativo e regex sono cittadini di prima classe.

Alcuni suggerimenti: assicurarsi che i registri siano facili da analizzare, dettagliati ma non troppo prolissi. Avere una configurazione predefinita sana. Rendi semplice "resettare" l'applicazione - devi farlo dopo ogni test.

L'approccio che uso di solito è di avere una sorta di "adattatore" che trasforma le comunicazioni dell'applicazione con il mondo esterno in stdin/stdout di alcuni eseguibili. Poi costruisco un framework perl in cima a quello, e poi i casi di test usano il framework.

2

Di seguito elencherò un paio di strumenti e applicazioni di test di maggiori dimensioni di cui sono a conoscenza. Se fornisci ulteriori informazioni sulla tua piattaforma (sistema operativo, ecc.), Possiamo probabilmente fornire risposte migliori.

Da parte di ciò che si richiede, Microsoft fornisce il Application Verifier:

Application Verifier (AppVerifier) ​​è uno strumento di verifica di runtime utilizzato in applicazioni di test per la compatibilità con Microsoft Windows XP. Questo strumento può essere utilizzato per verificare un'ampia gamma di problemi noti di compatibilità mentre l'applicazione è in esecuzione. Questo articolo descrive i passaggi per l'utilizzo di AppVerifier come un'aggiunta efficace ai cicli di sviluppo e test dell'applicazione.

Application Verifier può essere utile per testare condizioni di memoria insufficiente, altre risorse basse e altro utilizzo dell'API.

Un'altra parte del puzzle, è il pacchetto Microsoft Detours, che può essere utilizzato per sostituire le chiamate API con il proprio codice (utile per esempio, restituendo i codici di errore per i test difficili da configurare).

Detours è una libreria per la strumentazione di funzioni Win32 arbitrarie su macchine x86, x64 e IA64. Le deviazioni intercettano le funzioni Win32 riscrivendo il codice in memoria per le funzioni di destinazione. Il pacchetto Detours contiene anche utilità per collegare DLL e segmenti di dati arbitrari (chiamati payload) a qualsiasi binario Win32.

Esistono anche altri pacchetti più grandi (e più costosi). Borland rende Silk.
Il software automatizzato effettua TestComplete. La selezione di uno di questi strumenti sarebbe all'altezza delle tue esigenze per le tue applicazioni.
IBM/Rational fornisce lo Rational Functional Tester, disponibile su molte piattaforme e ricco di funzionalità.

+0

Il problema con Detours è che mentre v2.1 è gratuito, è solo per la ricerca, non commerciale, non solo di produzione. La versione 3.0 rimuove queste restrizioni ma costa $ 9.999 - un impegno pesante se non si sa se soddisfa le proprie esigenze. –

0

Ciao Non sono sicuro se il framework che abbiamo aiuta nella tua situazione ma si aggancia a Rational Functional Tester e consente all'utente di creare vari set di dati da allegare a diversi test e di cambiare gli ambienti senza modificare scripting e riutilizzabili l'automazione in modo efficiente. Date un'occhiata se siete interessati: http://www.testpro.com.au/Test-Automation-Framework.html

+2

Si prega di aggiungere una dichiarazione di non responsabilità ai tuoi messaggi raccomandando i tuoi prodotti. Vedo che divulghi la tua affiliazione nel tuo profilo, ma non tutti penseranno a guardare. Vedi anche la [promozione faq #]. –

Problemi correlati