1. 什么是build verification testing
build verification testing(BVT) 是一组测试用例在每次有新版本的时候运行,在移交给测试团队做更进一步测试之前,检测build是否是可测试的。BVT的case都是一些Core-functional,确保系统是稳定的,可以进行详尽的测试,通常BVT会被自动化,如果BVT失败了,那么会将build移交给develop team做修正。
通常BVT也叫做smoke testing或者build acceptance tesitng(BAT)
2. BVT basics
- 是test case的一个子集,包含一些essential function的case
- 一般在daily build的时候运行,失败了的话就移交给develop team直到问题修复
- BVT的优势在于能够为测试团队节约时间,一旦new build有一些重要的功能问题,将不会直接deliver给test team
- BVT尽量包含一些基本的功能
- BVT 通常不应该超过30分钟
- BVT是一种回归测试,应该每天运行,以及在每个build运行。
- BVT 主要是检查当系统的各个模块整合在一起的时候是否正确运行,module integration testing在多个开发团队同时开发的时候非常重要。
3. build release的主要任务
当然是check in file. BVT的主要检查inital build health, 例如: 是否所有new file,modified file都已经包含到了release里,所有文件的格式正确,版本号正确等等。
4. BVT应该包含哪些case
- 在BVT中这只包含重要的case
- 所有BVT中的case都应该是稳定的
- 所有BVT 的case都应该有确定的期望值
- 确保所包含的重要功能的case能满足系统的覆盖率
- 不应该在BVT中包含不稳定的模块,那些正在开发中的模块,因为预期不到它的行为。
- 可以和项目组的人一起讨论哪些是critical function test case。
4.1 example:test case to be include in BVT for text edition application
- create text file
- writing something into text editor
- copy, paste of text editor
- open, save,delete text file
BVT的automation suite需要及时更新,新开发的模块变得稳定的时候,需要把整个模块的重要功能加进来。
5. 当BVT suite run的时候会发生什么
- 将BVT的结果邮件发送给相关人员
- BVT ownser需要检查BVT结果
- 如果BVT 失败了,那么BVT ownser需要研究导致失败的原因
- 如果失败的case是build里面的BUG, 那么所有相关的信息,包括failure log需要发送给对应的开发人员
- 开发人员需要向负责BVT owner说明失败原因,是否是一个BUG, 如果是一个bug,那么bug-fixing的scenario是什么样的
- 一旦BUG修复,再次运行BVT