¿Cómo probar el software que graba CD sin desperdiciar CD?

16

Quiero escribir una aplicación que pueda usarse para grabar CD (música). Sé que debería probarlo con CD reales de todos modos, pero no quiero hacer esto cada vez que haga un pequeño cambio. Pero sí quiero saber y probar si se grabarán los datos correctos, para que no se dañen los CD.

Estoy usando una biblioteca que solo expone las API para grabar directamente en una unidad física; no le permite escribir en una imagen de disco (lo que sería mucho más fácil de probar).

¿Cómo podría probar esto sin perder CD y tiempo por cada cambio / pocos cambios que realice?

pliegue derecho
fuente
55
¿Sería posible cambiar a una biblioteca que le permita escribir una imagen de disco?
FrustratedWithFormsDesigner

Respuestas:

29

La respuesta simple es a menudo la mejor: ¿CD regrabables?

También para ahorrar tiempo, escriba archivos relativamente pequeños. Solo haga archivos más grandes de vez en cuando.

Kevin D
fuente
1
Estoy de acuerdo en que esta es una respuesta simple y buena, pero si WTP quiere llevar las pruebas a otro nivel, burlarse de la API (ver otras respuestas a esta pregunta) desbloqueará una dimensión completa de posibilidades de prueba (como en, automatizado).
louisgab
@louisgab Estoy totalmente de acuerdo con usted, cuando escribí la respuesta solo estaba abordando realmente el punto sobre el desperdicio de CD. Esperaba completamente otra respuesta para llegar a algo mejor (y lo han hecho). En todo caso, recomendaría el enfoque de burla y sugeriría mi respuesta solo cuando WTP realmente quiera probar físicamente el proceso de grabación.
Kevin D
19

Si está en Linux, debería poder configurar un "dispositivo de CD" que sea solo una tubería con nombre. Su API escribe en el "dispositivo" y conecta el otro extremo a un programa que le permite ver lo que hace / convertirlo en una imagen de disco. Muchas opciones allí. Consulte este artículo para obtener información sobre las tuberías con nombre.

La respuesta de Kevin es mucho más fácil en mi opinión.

Spencer Rathbun
fuente
2
De hecho, estoy en Mac OS X, que también es un sistema UNIX. Voy a intentar esto.
derecha el
6

Escriba tantas pruebas como sea posible que utilicen un simulacro de la API de la biblioteca. Esto le permite probar su código en unidades. Esto muestra que su código funciona dentro de sí mismo suponiendo que la biblioteca funcione de la manera en que se supone que debe hacerlo.

En algún momento, deberá realizar pruebas de integración que realmente utilicen la biblioteca. Pero el punto es que ya tiene un nivel de confianza con su propio código antes de llegar a este punto. Las pruebas de integración a menudo requieren más tiempo y recursos, como has visto. Por lo tanto, las pruebas unitarias exhaustivas le permiten no confiar completamente en las pruebas de integración.

muestreador
fuente
3

¿De qué pruebas estás hablando exactamente?

Leyendo "No quiero hacer esto cada vez que hago un pequeño cambio" en tu pregunta, imagino que estás hablando de pruebas unitarias .

Pero más tarde, agrega que está utilizando una API que se encarga de grabar datos en CD. Si esta API se prueba y documenta correctamente, no tiene que lidiar con el proceso real de grabación de los datos en el CD, y no tiene que probarlo. En este caso, debe lidiar con las pruebas de integración , que no tiene que hacer "cada vez que [realiza] un pequeño cambio" .

Arseni Mourzenko
fuente
Pero necesito saber si estoy usando la API correctamente.
derecha el
@WTP: ver mi edición. Además, una API escrita correctamente no le permitiría crear CD corruptos al usarlo incorrectamente. Si hace este tipo de cosas, probablemente deberías buscar otra API primero. Una API está aquí para proporcionar una abstracción y especialmente para evitar tratar las formas de evitar la corrupción al guardar datos en un CD.
Arseni Mourzenko
Tienes un punto allí. La API está muy bien documentada.
derecha el
1

WTP,

Como desea probar su software (no la API, ni la grabadora), como señaló Chris, sería necesaria una simulación de la API.
Para las pruebas de integración, un grabador confiable "ISO" debería permitirle automatizar las pruebas del contenido del CD mediante el análisis del archivo .iso.
En realidad, grabar un CD o DVD no arrojaría resultados concluyentes, ya que no podría determinar si la causa del error es un CD defectuoso, una grabadora defectuosa o un error de software, a menos que desee realizar estadísticas de calidad grabando varias copias de el mismo disco (que aparentemente no tienes).
¡Buena suerte!

Jerónimo Vargas
fuente