什么是好的测试用例(二)

发表于:2008-10-31 15:58

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:译者:马心蕊    来源:51Testing投稿

  更有利于解决问题。

  比如,在不能给有关测试条件提供大量信息以重现问题的情况下,大量的自动测试经常会搞毁系统。

  他们对解决问题没有好处。越难重复的测试越不利于解决问题。

  如果需要解决的问题是由这个测试发现的,那么这个测试就越难执行,下次测试也越难执行正确。

  更有信息量。

  测试的价值就是我们能从中学到东西。

  大多数情况下,你从通过测试的程序中学到的东西比没通过测试的程序中学到的多,但有信息的测试会教你(减少不确定性)判定程序是否能通过测试。

  比如,如果我们已经在多次构建之后运行了一个测试,并且程序每次都可靠地通过测试,那么我们就期望程序能再次通过这项测试。从重复测试中得到的另外的“通过”结果不会有助于我们对程序的认知。

  等价类的观点是信息价值的另一个例子。任何测试背后都是一个测试集,他们之间有很高的相似度,我们认为其他测试实质上是这个测试的冗余。用口头的行话说,这就是“等价类”或者“等价部分”。如果这些测试充分的相似,那么第二次测试得到的附加信息会少于第一次测试。

  这个标准很接近于Karl Popper的实验价值理论(参考Popper 1992)。优秀的实验涵盖了风险预测。这个理论预言人们期望的某些事物并不真实,你偏爱的理论是错的或者会令许多人感到惊讶。Popper分析认为优秀的实验(优秀的测试)是近似于科学哲理的主流核心理念。

  或许,在这里真正要考虑的是,你希望从测试中学到的东西与测试设计、运行的机会成本是均衡的。你花费在测试上的时间就是你没有花费在其他测试或活动上的时间。

  更加复杂。

  一个复杂的测试包含被测软件的很多方面、或变量、或其他属性。

  当程序有很多变更或一次测了很多特性时,不提倡用复杂测试。如果程序存在很多BUG,复杂测试很快就会失败,也就没必要再执行它了。测试组主要依靠复杂测试发现模块化的BUG。模块化的BUG使很多测试都无法通过,阻碍测试组了解测试应该暴露的信息。因此,测试初期,进行简单测试是合理的、有必要的。当程序更稳定时,或(在极限编程或任何开发生命周期)程序有了更稳定的特性时,更复杂的测试就会变得更有意义。

版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51Testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们

42/4<1234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号