Come testare software che masterizza CD senza sprecare CD?


16

Voglio scrivere un'applicazione che può essere utilizzata per masterizzare CD (musica). So che dovrei testarlo con CD reali comunque, ma non voglio farlo ogni volta che faccio una piccola modifica. Ma voglio sapere e testare se verranno masterizzati i dati corretti, in modo da non avere CD danneggiati.

Sto usando una libreria che espone solo le API da masterizzare direttamente su un'unità fisica; non ti consente 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 che faccio?


5
Sarebbe possibile passare a una libreria che non ti permettono di scrivere un'immagine del disco?
FrustratedWithFormsDesigner

Risposte:


29

La semplice risposta è spesso la migliore: CD riscrivibili?

Inoltre, per risparmiare tempo, scrivi file relativamente piccoli. Esegui solo file più grandi ogni tanto.


1
Sono d'accordo che questa è una risposta semplice e buona, ma se WTP vuole portare i test ad un altro livello, deridere l'API (vedi altre risposte a questa domanda) sbloccherà un'intera dimensione di possibilità di test (come in, automatizzata).
louisgab,

@louisgab Sono totalmente d'accordo con te, quando ho scritto la risposta mi occupavo solo del punto di sprecare i CD. Mi aspettavo che un'altra risposta avrebbe prodotto qualcosa di meglio (e loro hanno). Semmai, consiglierei l'approccio beffardo e suggerirei la mia risposta solo quando WTP vuole davvero testare fisicamente il processo di masterizzazione.
Kevin D,

19

Se sei su Linux, dovresti essere in grado di impostare un "dispositivo cd" che è solo una pipe denominata. Il tuo API scrive sul "dispositivo" e agganci l'altra estremità a un programma che ti consente di vedere cosa fa / convertirlo in un'immagine del disco. Molte opzioni lì. Vedi questo articolo per informazioni sulle pipe con nome.

La risposta di Kevin è molto più semplice dell'IMO.


2
In realtà sono su Mac OS X che è anche un sistema UNIX. Ci proverò.
destra del

6

Scrivi quanti più test possibile che usi una simulazione dell'API della libreria. Ciò consente di testare il codice in unità. Questo dimostra che il tuo codice funziona all'interno di se stesso supponendo che la libreria funzioni come dovrebbe.

Ad un certo punto, dovrai eseguire test di integrazione che effettivamente utilizzano la libreria. Ma il punto è che hai già un livello di confidenza con il tuo codice prima di arrivare a questo punto. I test di integrazione spesso richiedono più tempo e risorse, come hai visto. Quindi un accurato test unitario ti consente di non fare affidamento completamente sui test di integrazione.


3

Di quali test stai parlando esattamente?

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

Ma più tardi, aggiungi che stai utilizzando un'API che si occupa della masterizzazione dei dati su CD. Se questa API è stata testata e documentata correttamente, non è necessario affrontare il processo effettivo di masterizzazione dei dati sul CD e non è necessario testarlo. In questo caso, ti occupi dei test di integrazione , che non devi fare "ogni volta che [fai] una piccola modifica" .


Ma devo sapere se sto usando correttamente l'API.
destra del

@WTP: vedi la mia modifica. Inoltre, un'API scritta correttamente non consentirebbe di creare CD danneggiati utilizzandola in modo errato. Se fa questo genere di cose, probabilmente dovresti cercare prima un'altra API. Un'API è qui per fornire un'astrazione e soprattutto per evitare di affrontare i modi per evitare la corruzione quando si salvano i dati su un CD.
Arseni Mourzenko,

Hai un punto lì. L'API è ben documentata.
destra del

1

WTP,

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.