BVT应该测些什么?

BVT应该测些什么?

原文地址: What Tests Belong in the BVTs?


作者:Steve Rowe

BVT(Build Verification Test,构建验证测试) 是微软内部的一个标准说法,指的是每天都要运行的测试,以确保前一天入库的内容没有破坏重要功能。

->事实如此,我们做NBS项目时,每晚下班前,测试组的同事都要做BVT测试。测试没问题的话,下班走人;否则要对应。(20090512追加)

 

先前我曾写过一篇文章说明保持 BVT整洁的重要性(文章稍后翻译)。在那些持续通过的测试中,哪些应放入BVT中呢?BVT失败时,应该是你要立即去处理的。也就是说,BVT中失败的 测试必须是非常重要的。基于这一观点,以下是一些有关BVT的准则:

  • 测试重要场景,而非次要场景。 如果一个重要功能失败了,那么应当立即解决。而如果失败的是一个次要场景,那么只是要引起重视,可能需要推到以后再去处理。

-》BVT测试的重点是重要功能。(20090512追加)

  • 测试主要用例,而非次要用例。对3个功能模块相互交互的测试不应放在BVT中。对最常见使用场景之外的测试不应放在BVT中。虽然每本测试书籍都说要测试边界值,但BVT不应用来测这些东西。BVT测试的是最常见的输入值和使用场景。

-》这边就更加体现BVT测试的重点了(最常见的输入值和使用场景),那些边界值是需要测试,但是不适合放在这边进行。(20090512追加)

  • 做“正常(positive)”测试 而非“异常”(negative)测试。不要测试边界外的条件和异常值。当然做这些测试都是必要的,但不应在BVT中做。传递一个空指针而导致的API失效当然要进行修复,但可以放到下周嘛。

-》时时刻刻记住BVT测试的重点:最常见最重要的(输入值)场景测试、正常测试。(20090512追加)

 

BVT应当是一组仔细选取过的测试。它们应当能够快速、一致地运行,其结果要非常重要。始终坚持这些原则的话,BVT就非常有效果,因为任何失败都会受到足够重视。将BVT限制在最重要的场景将保证测试结果能够得到恰当的处理。

 

 

你可能感兴趣的:(BVT应该测些什么?)