测试一下?

chi*_*s42 7 automated-tests unit-testing

我主要花时间研究win32和.NET应用程序的自动化测试,这需要大约30%的时间来编写,70%用于维护.我们一直在研究减少维护时间的方法,并且已经转移到可重用的测试库,该库涵盖了我们软件的大部分关键组件.此外,我们正在进行一些工作,以使我们的库进入可以使用基于关键字的测试的状态.

我一直在考虑对我们的测试库进行单元测试,但我想知道它是否值得花时间.我是软件单元测试的坚定支持者,但我不确定如何处理测试代码.

您认为自动化Gui测试库应该进行单元测试吗?还是只是浪费时间?

Men*_*elt 11

首先,我发现将单元测试视为"可执行规范"而非测试非常有用.我写下了我想要的代码,然后实现它.我从编写单元测试中获得的大部分好处是它们推动了实现过程并集中思考.他们可以重复测试我的代码的事实几乎是一个愉快的巧合.

测试测试似乎只是一种解决问题而不是解决问题的方法.谁将测试测试测试的测试?TDD用来确保测试实际有用的"技巧"是首先让它们失败.这也许你可以在这里使用.编写测试,看到它失败,然后修复代码.


Pre*_*ten 9

我不认为你应该对你的单元测试进行单元测试.

但是,如果你已经编写了自己的测试库,有自定义断言,键盘控制器,按钮测试器或者什么,那么是的.您应该编写单元测试来验证它们是否都按预期工作.

例如,NUnit库经过单元测试.


Mar*_*ham 5

从理论上讲,它软件,因此应进行单元测试.如果您正在推出自己的单元测试库,尤其是您需要随时对其进行单元测试.

但是,主软件系统的实际单元测试不应该变得足够大,需要进行单元测试.如果他们是如此复杂,他们需要的单元测试,你需要你的软件的一些严重的重构和注意一些简化你的单元测试.


Lie*_*ers 5

您可能想看看谁测试测试.

简短的回答是代码测试测试,测试测试代码.

咦?

测试原子钟
让我先来一个类比.假设你带着原子钟旅行.你怎么知道时钟校准正确?

一种方法是向你的邻居询问一个原子钟(因为每个人都携带一个原子钟)并比较两者.如果他们都报告同一时间,那么你对他们都是正确的信心很高.

如果它们不同,那么你就知道其中一个是错的.

所以在这种情况下,如果您要问的唯一问题是"我的时钟是否给出了正确的时间?",那么您真的需要第三个时钟来测试第二个时钟和第四个时钟来测试第三个时钟吗?不是全部.Stack Overflow避免了!

IMPO:这是你需要多少时间和你想拥有多少质量之间的权衡.

  • 如果我要使用自制的测试哈纳斯,我会在时间允许的情况下进行测试.
  • 如果它是我正在使用的第三方工具,我希望供应商对其进行测试.