Je veux écrire une application qui peut être utilisée pour graver des CD (musique). Je sais que je devrais quand même le tester avec de vrais CD, mais je ne veux pas le faire à chaque fois que je fais un petit changement. Mais je veux savoir et tester si les bonnes données seront gravées, afin que vous n'obteniez pas de CD corrompus.
J'utilise une bibliothèque qui expose uniquement les API à graver directement sur un disque physique; il ne vous permet pas d'écrire sur une image disque (ce qui serait beaucoup plus facile à tester).
Comment pourrais-je tester cela sans perdre de CD et de temps pour chaque changement / quelques changements que j'apporte?
Réponses:
La réponse simple est souvent la meilleure: des CD réinscriptibles?
Aussi pour gagner du temps, écrivez des fichiers relativement petits. Ne faites que des fichiers plus gros de temps en temps.
la source
Si vous êtes sous Linux, vous devriez pouvoir configurer un "périphérique cd" qui n'est qu'un canal nommé. Votre API écrit sur le "périphérique" et vous connectez l'autre extrémité à un programme qui vous permet de voir ce qu'il fait / de le convertir en image disque. Beaucoup d'options là-bas. Consultez cet article pour plus d'informations sur les canaux nommés.
La réponse de Kevin est beaucoup plus facile à l'OMI.
la source
Écrivez autant de tests que possible qui utilisent une maquette de l'API de la bibliothèque. Cela vous permet de tester votre code en unités. Cela montre que votre code fonctionne en lui-même en supposant que la bibliothèque fonctionne comme elle est censée le faire.
À un moment donné, vous devrez effectuer des tests d'intégration qui utilisent réellement la bibliothèque. Mais le fait est que vous avez déjà un certain niveau de confiance avec votre propre code avant d'en arriver là. Les tests d'intégration prennent souvent plus de temps et de ressources, comme vous l'avez vu. Des tests unitaires approfondis vous permettent de ne pas vous fier entièrement aux tests d'intégration.
la source
De quels tests parlez-vous exactement?
En lisant "Je ne veux pas faire ça à chaque fois que je fais un petit changement" dans votre question, j'imagine que vous parlez de tests unitaires .
Mais plus tard, vous ajoutez que vous utilisez une API qui est chargée de graver des données sur CD. Si cette API est testée et documentée correctement, vous n'avez pas à gérer le processus réel de gravure des données sur le CD et vous n'avez pas à le tester. Dans ce cas, vous traitez avec les tests d'intégration , que vous n'avez pas à faire "à chaque fois que [vous] faites un petit changement" .
la source
WTP,
Comme vous voulez tester votre logiciel (pas l'API, ni l'enregistreur), comme l'a souligné Chris, une maquette de l'API serait nécessaire.
Pour les tests d'intégration, un enregistreur "ISO" fiable devrait vous permettre d'automatiser le test du contenu du CD en analysant le fichier .iso.
En fait, graver un CD ou un DVD ne donnerait pas de résultats concluants, car vous ne seriez pas en mesure de déterminer si la cause de l'erreur est un CD défectueux, un enregistreur défectueux ou un bogue logiciel, sauf si vous souhaitez effectuer des statistiques de qualité en enregistrant plusieurs copies de le même disque (ce que vous n'avez apparemment pas).
Bonne chance!
la source