Come testare un software che masterizza CD senza sprecare CD?

16

Voglio scrivere un'applicazione che può essere utilizzata per masterizzare CD (musica). So che dovrei provarlo con veri CD comunque, ma non voglio farlo ogni volta che faccio un piccolo cambiamento. Ma voglio sapere e testare se i dati corretti verranno bruciati, in modo da non ottenere CD corrotti.

Sto usando una libreria che espone solo le API per masterizzare direttamente su un'unità fisica; non ti permette di scrivere su un'immagine del disco (che sarebbe molto più facile da testare).

Come potrei testarlo senza sprecare CD e tempo per ogni cambiamento / poche modifiche apportate?

    
posta rightfold 04.11.2011 - 16:31
fonte

5 risposte

30

La semplice risposta è spesso la migliore: CD riscrivibili?

Anche per risparmiare tempo, scrivi file relativamente piccoli. Crea file più grandi ogni tanto.

    
risposta data 04.11.2011 - 16:33
fonte
19

Se sei su Linux, dovresti essere in grado di configurare un "dispositivo cd" che è solo una named pipe. L'API scrive sul "dispositivo" e si collega l'altra estremità a un programma che consente di vedere che cosa fa / convertirlo in un'immagine del disco. Ci sono un sacco di opzioni lì. Vedi questo articolo per informazioni sulle pipe denominate.

La risposta di Kevin è molto più semplice IMO.

    
risposta data 04.11.2011 - 16:39
fonte
6

Scrivi il maggior numero di test possibile che usi una simulazione dell'API della libreria. Questo ti permette di testare il tuo codice in unità. Questo dimostra che il tuo codice funziona autonomamente supponendo che la libreria funzioni come dovrebbe.

A un certo punto, sarà necessario eseguire test di integrazione che effettivamente utilizzano la libreria. Ma il punto è che hai già un livello di sicurezza con il tuo codice prima di arrivare a questo punto. I test di integrazione richiedono spesso più tempo e risorse, come hai visto. Un test unitario così approfondito ti consente di non fare completamente affidamento sui test di integrazione.

    
risposta data 04.11.2011 - 16:42
fonte
3

Di quali test stai parlando esattamente?

Leggendo "Non voglio farlo ogni volta che apporto una piccola modifica" nella tua domanda, immagino che tu stia parlando di test dell'unità .

In seguito, aggiungerai che stai utilizzando un'API che si occupa della masterizzazione dei dati su CD. Se questa API viene testata e documentata correttamente, non è necessario gestire l'effettivo processo di masterizzazione dei dati sul CD e non è necessario testarlo. In questo caso, gestisci i test di integrazione , che non devi fare "ogni volta che [fai] una piccola modifica" .

    
risposta data 04.11.2011 - 16:39
fonte
1

WTP,

Dato che vuoi testare il tuo software (non l'API, né il registratore), come indicato da Chris, sarebbe necessaria una simulazione dell'API.
Per il test di integrazione, un affidabile registratore "ISO" dovrebbe consentire di automatizzare il test del contenuto del CD analizzando il file .iso.
In realtà, la masterizzazione di un CD o di un DVD non produce risultati conclusivi, dal momento che non si è in grado di determinare se la causa dell'errore è un CD difettoso, un registratore difettoso o un bug software, a meno che non si desideri eseguire statistiche di qualità registrando più copie di lo stesso disco (che apparentemente non lo fai).
Buona fortuna!

    
risposta data 04.11.2011 - 18:35
fonte

Leggi altre domande sui tag