BVT测试与冒烟测试

【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 不影响其他日常测试工作。

转载自:http://www.51testing.com/html/01/439201-249662.html


### BVT 测试的概念 BVT(Build 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、付费专栏及课程。

余额充值