2012-09-06 23 views
5

amo l'idea di Pex - test di unità autogenerating mediante analisi statica del codice - ma i test che sono effettivamente generate dallo strumento sono orribili, brutti, strettamente accoppiati ai moduli Pex, difficili da leggere e comprendere eccPex (e il relativo output) è adatto per un ambiente aziendale?

Is uno strumento del genere veramente adatto (nel suo stato attuale) per l'uso in un ambiente aziendale, dove l'accento deve essere posto sulla facilità di manutenzione?

Oppure ho frainteso l'uso previsto di Pex?

+0

In Visual Studio 2012 Pex viene sostituito (in parte) da Fakes http://msdn.microsoft.com/en-us/library/hh549175.aspx –

risposta

1

In effetti, avete frainteso l'uso previsto.

Pex è uno strumento di test white-box. Genera test cases basati sull'analisi del codice che dovrebbe testare. La ragione di ciò è di rilevare e testare i casi limite . Quindi, in pratica, non dovresti nemmeno cambiare i test generati automaticamente.

I test unitari normali non possono essere sostituiti da Pex. È solo uno strumento aggiuntivo.

0

Pex è molto utile per testare algoritmi complessi che non fanno affidamento su nulla di esterno. Ad esempio, non ti aiuterà a trovare casi limite in istruzioni SQL o accesso ai file. Tuttavia, per trovare casi limite e aumentare la copertura del codice, è estremamente utile in aggiunta ai normali test unitari.

1

Questo sembra una questione soggettiva ...

direi che sì, prove scritte in un quadro determinato/API sono spesso strettamente accoppiati a tale quadro. L'intenzione di Pex non è quella di generare test "leggibili", ma garantire la copertura del codice per un determinato insieme di vincoli. Se questo è prezioso per il tuo prodotto, allora è adatto - e certamente scommetterei che per un dato team e un determinato numero di codice, questo fornirà un valore.

Ogni azienda è diversa, ma è il prodotto e il suo codice a dettare l'idoneità di uno strumento di test. Suggerirei che la cosa da mettere in discussione è il valore di Pex per una determinata base di codice, indipendentemente dall'organizzazione in questione.

1

Ho usato pex in un grande istituto finanziario e raccomanderei il suo uso, ma solo per un caso molto specifico. Penso che Pex sia bravo in quello che fa (come descritto altrove qui, i white box test per trovare casi limite), ma i test non hanno una longevità significativa in quanto sono strettamente accoppiati.

Fondamentalmente, pex è ottimo per generare copertura. Se non hai test e vuoi un po 'veloce, usa Pex. MA POI Raccomando che invece di usarlo di nuovo, imponi agli standard per il nuovo codice di soddisfare una metrica di copertura concordata con test scritti a mano.

In questo modo i fragili test di pex vengono sostituiti nel tempo con test più flessibili e di qualità superiore.