Як перевірити програмне забезпечення, яке записує компакт-диски, не витрачаючи компакт-диски?


16

Хочу написати програму, яку можна використовувати для запису компакт-дисків (музики). Я знаю, що все-таки варто перевірити його на справжніх компакт-дисках, але я не хочу цього робити щоразу, коли вношу невеликі зміни. Але я хочу дізнатися і перевірити, чи будуть записані правильні дані, щоб у вас не було пошкоджених компакт-дисків.

Я використовую бібліотеку, яка відкриває лише API, щоб безпосередньо записати на фізичний диск; це не дозволяє записати зображення на диск (що було б набагато простіше перевірити).

Як я можу перевірити це, не витрачаючи компакт-дисків і часу на кожну зміну / кілька змін, які я вношу?


5
Чи можна було б перейти до бібліотеки, яка дозволяє записати зображення на диску?
FrustratedWithFormsDesigner

Відповіді:


29

Проста відповідь часто найкраща: перезаписувані компакт-диски?

Також для економії часу пишіть відносно невеликі файли. Тільки часто створюйте великі файли.


1
Я погоджуюсь, що це проста і хороша відповідь, але якщо WTP захоче пройти тестування на інший рівень, глузування з API (див. Інші відповіді на це запитання) відкриє цілий вимір можливостей тестування (як в автоматизованому).
louisgab

@louisgab Я повністю погоджуюся з вами, коли я писав відповідь, я дійсно вирішував питання про те, щоб витрачати компакт-диски. Я повністю очікував, що ще одна відповідь придумає щось краще (і вони є). Якщо що, я рекомендував би глузливий підхід і пропонував би відповісти лише тоді, коли WTP насправді хоче фізично перевірити процес горіння.
Кевін Д

19

Якщо ви працюєте в Linux, ви повинні мати можливість встановити "CD-пристрій", який є лише названою трубкою. Ваш api пише на "пристрій", і ви підключите інший кінець до програми, яка дозволяє вам бачити, що він робить / перетворює на зображення диска. Є багато варіантів. Інформацію про названі труби див. У цій статті .

Відповідь Кевіна набагато простіше ІМО.


2
Я фактично на Mac OS X, яка також є системою UNIX. Я спробую це.
праворуч

6

Напишіть якомога більше тестів, які використовують макет API бібліотеки. Це дозволяє протестувати код в одиницях. Це показує, що ваш код працює всередині себе, припускаючи, що бібліотека виконує так, як належить.

У якийсь момент вам потрібно буде зробити інтеграційне тестування, яке фактично використовує бібліотеку. Але справа в тому, що ви вже маєте рівень впевненості у власному коді, перш ніж дійти до цього моменту. Інтеграційні тести часто потребують більше часу та ресурсів, як ви вже бачили. Настільки ретельне тестування блоку дозволяє повністю не покладатися на інтеграційне тестування.


3

Про яке тестування ви точно говорите?

Читаючи "Я не хочу цього робити кожного разу, коли я вношу невеликі зміни" у вашому запитанні, я думаю, що ви говорите про тестування одиниць .

Але пізніше ви додасте, що ви використовуєте API, який відповідає за запис даних на компакт-диски. Якщо цей API перевірений і задокументований правильно, вам не доведеться мати справу з фактичним процесом запису даних на компакт-диск, і вам не доведеться його тестувати. У цьому випадку ви маєте справу з тестуванням інтеграції , що вам не доведеться робити "щоразу, коли ви [зробите] невелику зміну" .


Але мені потрібно знати, чи правильно я використовую API.
праворуч

@WTP: дивіться мою редагування. Також правильно написаний API не дозволить вам створити пошкоджені компакт-диски, використовуючи його неправильно. Якщо це робиться таким чином, вам, мабуть, слід спочатку пошукати інший API. API тут для надання абстракції і, особливо, для уникнення поводження зі способами уникнення корупції під час збереження даних на компакт-диску.
Арсеній Муренко

У вас там є крапка. API дуже добре задокументований.
праворуч

1

WTP,

Оскільки ви хочете протестувати своє програмне забезпечення (не API, не рекордер), як зазначав Кріс, макет API повинен бути необхідним.
Для тестування на інтеграцію надійний диктофон "ISO" повинен дозволяти автоматизувати тестування вмісту компакт-дисків шляхом аналізу файлу .iso.
Насправді записування компакт-диска чи DVD не призведе до переконливих результатів, оскільки ви не зможете визначити, чи є причиною помилки несправний компакт-диск, несправний диктофон або програмна помилка, якщо ви не хочете проводити статистику якості, записуючи кілька копій той самий диск (якого, мабуть, немає).
Удачі!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.