【BVT的释义】
BVT的全称是Build Verification Test。可以说这个全称就是BVT的定义了。
BVT只验证build构建的成功与失败,不深入测试构建好的build的功能、性能等等。
BVT是在所有开发工程师都已经检入自己的代码,项目组编译生成当天的版本之后进行,主要目的是验证最新生成的软件版本在功能上是否完整,主要的软件特性是否正确。如无大的问题,就可以进行相应的功能测试。BVT优点是时间短,验证了软件的基本功能。缺点是该种测试的覆盖率很低。因为运行时间短,不可能把所有的情况都测试到。
【BVT的执行】
在每日构建的环境里,每个 daily build 构建完成时都要执行 BVT。对于 daily build 以外的每个版本和微版本,构建完成时也要执行 BVT。
BVT 可以手动执行。版本的构建是相对稳定的过程,因此 BVT 基本上是软件测试中最早实现全面自动化的测试。现在绝大多数版本构建工具都附带 BVT 功能。
BVT 最基础的任务是进行文件版本的比对。伴随开发进程,软件功能越来越固化,BVT 有时会在不影响最基本功能的基础上加入一些成熟的自动化测试脚本。
【BVT 对后续测试工作的影响】
BVT 是集成测试的一道门槛,只有通过了 BVT 的 build 才可以进入后面的集成测试过程。
-
BVT 结果成功的 build —— 表明该 build 构建成功,交付集成测试,但不一定被测试。
-
BVT 结果失败的 build —— 表明该 build 构建失败,不交付集成测试;提交 BVTBug,并按照 Bug 流程解决此 Bug。
-
未经 BVT 的 build —— 不得提交集成测试
Smoke Testing是从电路板测试得来的,当电路板做好以后,首先会加电测试,如果电路板没有冒烟再进行其它测试,如果冒烟了就说明这个电路板基本的功能(加电)都没达到,那其他的功能也就没办法测了。软件测试中的冒烟测试,是对软件基本的功能进行测试,目的是确认软件基本的功能正常,保证软件系统能跑的起来,如果基本功能不正常的话,就没有办法进行后续的测试,所以测试人员测试的版本必须首先通过冒烟测试的考验。
【BVT 不同于 Smoke Testing】
BVT 所做的测试内容很浅,这一特征似乎符合 Smoke Testing 的定义;但是 BVT 只验证 build 的构建情况,这一点与 Smoke Testing 截然不同,因此二者是完全不同的测试。另外:
- BVT 只在 build 构建完成时进行;Smoke Testing 是各个阶段都有的测试。
- 尽管 BVT 可以加入自动测试脚本并执行少量固定的自动化测试,但 Smoke Testing 与 build 的验证无关。
- BVT 的结果直接决定新构建的 build 是否交付后续测试;Smoke Testing 不影响其他日常测试工作。