BVT应该测些什么?

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


作者:Steve Rowe

BVT(Build Verification Test,构建验证测试)是微软内部的一个标准说法,指的是每天都要运行的测试,以确保前一天入库的内容没有破坏重要功能。先前我曾写过一篇文章说明保持BVT整洁的重要性(文章稍后翻译)。在那些持续通过的测试中,哪些应放入BVT中呢?BVT失败时,应该是你要立即去处理的。也就是说,BVT中失败的测试必须是非常重要的。基于这一观点,以下是一些有关BVT的准则:

  • 测试重要场景,而非次要场景。如果一个重要功能失败了,那么应当立即解决。而如果失败的是一个次要场景,那么只是要引起重视,可能需要推到以后再去处理。
  • 测试主要用例,而非次要用例。对3个功能模块相互交互的测试不应放在BVT中。对最常见使用场景之外的测试不应放在BVT中。虽然每本测试书籍都说要测试边界值,但BVT不应用来测这些东西。BVT测试的是最常见的输入值和使用场景。
  • 做“正常(positive)”测试而非“异常”(negative)测试。不要测试边界外的条件和异常值。当然做这些测试都是必要的,但不应在BVT中做。传递一个空指针而导致的API失效当然要进行修复,但可以放到下周嘛。
BVT应当是一组仔细选取过的测试。它们应当能够快速、一致地运行,其结果要非常重要。始终坚持这些原则的话,BVT就非常有效果,因为任何失败都会受到足够重视。将BVT限制在最重要的场景将保证测试结果能够得到恰当的处理。。
### BVT 测试的概念 BVTBuild Verification Test,构建验证测试)是指在软件开发过程中用于验证新构建版本是否满足基本功能需求的一组自动化测试。它的主要目标是在早期阶段发现严重缺陷,从而减少修复成本并加快交付周期。通常情况下,BVT 测试会在每次代码提交后自动运行,作为持续集成流程的一部分。 #### 特性和目的 - **快速反馈**:BVT 测试旨在提供即时反馈,确认核心功能正常工作[^1]。 - **稳定性保障**:通过检基础组件的功能性问题,确保后续更复杂的测试可以顺利进行[^2]。 - **降低风险**:识别可能导致整个系统崩溃的关键错误,防止这些问题进入生产环境[^3]。 #### 如何实施 BVT 测试? 为了有效开展 BVT 测试,以下是几个关键步骤: 1. **定义范围** 明确哪些模块或特性属于“必须成功”的范畴。这通常涉及应用程序的核心业务逻辑和服务接口调用[^4]。 2. **编写脚本** 创建一系列轻量级、高效的自动化测试案例来覆盖上述区域。这些脚本应专注于验证最基本的操作路径而非边缘情况。 3. **配置 CI/CD 系统** 将编写的测试集整合到现有的连续集成管道里,使得每当有新的变更推送到仓库时都会触发执行过程。例如利用 Jenkins 或 TravisCI 平台完成此操作。 4. **分析结果** 对失败的结果深入调查原因所在,并及时修正相应部分后再重新运行直至全部通过为止。 下面是一个简单的 Python 脚本来演示如何针对 REST API 实施一项典型的 BVT 检查: ```python import requests def test_api_health(): url = 'http://localhost:8080/api/v1/status' response = requests.get(url) assert response.status_code == 200, f"Unexpected status code {response.status_code}" data = response.json() # Ensure service reports healthy state assert data['status'] == 'UP', "Service not reporting as UP" if __name__ == "__main__": test_api_health() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值