如何测试刻录CD而不浪费CD的软件?


16

我想编写一个可用于刻录CD(音乐)的应用程序。我知道我还是应该用真实的CD对其进行测试,但是我不想每次做小小的改动时都这样做。但是我确实想知道并测试是否会刻录正确的数据,因此您不会损坏CD。

我使用的是仅公开API才能直接刻录到物理驱动器的库;它不允许您写入磁盘映像(这将更易于测试)。

我如何在不浪费CD和时间进行每次更改/更改的情况下进行测试?


5
是否可以切换到该库允许你写光盘映像?
FrustratedWithFormsDesigner

Answers:


29

简单的答案通常是最好的:可重​​写CD?

另外,为节省时间,请写入较小的文件。只能经常执行较大的文件。


1
我同意这是一个简单且不错的答案,但是如果WTP希望将测试提升到另一个层次,则对API进行模拟(请参阅此问题的其他答案)将释放测试可能性的整个维度(例如,自动化)。
louisgab 2011年

@louisgab我完全同意您的看法,当我写答案时,我只是在解决浪费CD的问题。我完全希望另一个答案能提出更好的建议(而且他们有)。如果有的话,我会推荐这种模拟方法,并且仅在WTP实际上想要物理测试刻录过程时才提出我的答案。
凯文D

19

如果您使用的是Linux,则应该能够设置只是命名管道的“ cd设备”。您的api写入“设备”,然后将另一端连接到一个程序,该程序可让您查看其功能/将其转换为磁盘映像。那里有很多选择。有关 命名管道的信息,请参见本文

凯文的答案要比国际海事组织容易得多。


2
我实际上在同时也是UNIX系统的Mac OS X上。我会尝试的。

6

编写尽可能多的使用库API模拟的测试。这使您可以以单位测试代码。这表明您的代码在自身内部运行,并假设该库执行了应有的功能。

在某些时候,您将需要进行确实使用该库的集成测试。但要点是,在达到这一点之前,您已经对自己的代码有一定的信心。如您所见,集成测试通常会花费更多的时间和资源。因此,彻底的单元测试使您不必完全依赖集成测试。


3

您到底在说什么测试?

在您的问题中读到“我不想每次都做一点零钱都要做”时,我想您正在谈论单元测试

但是后来,您添加了您正在使用的API,该API负责将数据刻录到CD。如果已正确测试和记录了此API,则无需处理将数据刻录到CD的实际过程,也不必进行测试。在这种情况下,您需要进行集成测试,而不必“每次[都]做一个小的改变”


但是我确实需要知道我是否正确使用了API。

@WTP:看我的编辑。另外,正确编写的API不允许您错误地使用它来创建损坏的CD。如果执行此类操作,则可能应该首先搜索另一个API。这里的API提供了一种抽象,尤其是避免了将数据保存到CD时避免损坏的方法。
阿森尼·穆尔坚科

你确实有一点。该API有充分的文档记录。

1

WTP,

正如克里斯指出,由于您要测试软件(而不是API,也不是记录器),因此有必要对API进行模拟。
对于集成测试,可靠的“ ISO”记录器应允许您通过分析.iso文件来自动化CD内容的测试。
实际刻录CD或DVD并不会得出结论性的结果,因为您将无法确定错误原因是CD缺陷,刻录机缺陷还是软件错误,除非您想通过记录多个CD或DVD来执行质量统计同一张光盘(显然不喜欢)。
祝好运!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.