1. BVT(Build Verification Test)

  a. BVT概念

    Build Verification test is a set of tests run on every new build to verify that build is testable before it is released to test team for further testing. These test cases are core functionality test cases that ensure application is stable and can be tested thoroughly. Typically BVT process is automated. If BVT fails that build is again get assigned to developer for fix.

    BVT即版本验证测试,由一组基本的功能测试用例组成,每一次当有新的build生成,我们都要通过先运行这些case, 来保证在生成新的build后系统还是完整的稳定的,不能因为一次的branch合并就导致整个系统奔溃。所以,BVT是要在每次有新的code合并后进行,如果BVT失败了,要重新返回给code的开发者去fix, 直到BVT成功才能将修改过的代码合并到系统中来。所以BVT最好写成自动化,而且最好保证每次BVT的执行时间别太长。这样,可以在空闲时间(比如下班后)自动执行,节省测试时间,提高测试效率。

    BVT又被称为“冒烟测试”(Smoke Testing),同时,BVT也是一种回归测试。

  b. BVT的优缺点

    BVT 的优点是运行时间短,验证了软件的基本功能; 缺点是这种测试的覆盖率很低,只能当作最基本的软件测试。

  c. 冒烟测试(Smoke Testing)的简单介绍

    BVT 测试又被称为“冒烟测试”,而冒烟测试源自硬件测试,当对一个硬件或者硬件组合改动后,直接给设备通电,看看设备是否会冒烟,没冒烟说明待测组件通过了测试。而在软件开发过程中一直就有高内聚,低耦合的说法, 各个功能模块之间的耦合存在,所以一个功能的改动,会影响到其他的功能模块。这就要求开发人员在修复先前测试中发现的bug后,想知道这个bug的修复有没有影响到其他的功能模块,就需要做冒烟测试。

  d. BVT测试用例包含的内容

    1) 业务流的测试,保证正常业务链路的通畅;

    2) 工作流的测试,主要是测试流程流转的是否正常,至于流程步骤的表单内容是否正确则先不关注;

    3) 关键功能的测试,至少要保证系统运转所需的启动数据,以及一些开关控制正常;

    4) 重要的基本功能测试,比如对一些核心业务有影响的一些增删改查等。

    BVT测试的用例必须要随着系统的扩充而扩充,它并不是一成不变的。

    Here are some simple tips to include test cases in your BVT automation suite:

    * Include only critical test cases in BVT;

    * All test cases included in BVT should be stable;

    * All the test cases should have known expected result;

    * Make sure all included critical functionality test cases are sufficient for application test coverage.

  e. BVT 测试的过程

    1) 前提条件是软件的各个单元测试都通过;

    2) Build出最新的版本,拿到最新的版本;

    3) 根据文档要求配置测试环境;

    4) 执行BVT测试用例(手动或者自动);  

    5) BVT测试结束,查看结果,若是成功,则可以交给测试组进行接下来详尽的测试工作;若是失败,则需要报bug,以最高的优先级去修复该bug,然后重新进行BVT测试,直到成功才可进行下面的其他测试。

  f. BVT测试用例的简单案例

    对一个简单的编辑器的BVT测试需要包含的测试用例(基本功能的测试):

    (1)需要测试用例来测试create a new text file;

    (2)需要测试用例来测试writing的功能;

    (3)测试用例来测试copy, paste, cut functionality of text editor;

    (4)测试用例来测试opening, saving , deleting text file. 

参考: http://www.softwaretestinghelp.com/bvt-build-verification-testing-process/   

2. BAT(Build Acceptance Test)

 a. BAT概念

  BAT指“工作版本可接受测试”, 新的工作版本正式测试前进行的一项快速测试过程,目的是保证软件的基本功能和内容的正确和完整性,经过了BAT测试后,就进入了正轨的测试阶段。BVT只验证build版本构建的成功与失败,不需要深入测试后见好的build的功能、性能等,同时只考虑功能的覆盖率;而BAT测试则需要考虑功能性能的测试,以及考虑功能的覆盖率的同时,也要考虑功能的正确性。

  New build is checked mainly for two things:

    * Build validation

    * Build acceptance

  BAT测试是在新版本build成功后,且BVT测试通过之后,进行的一项测试,目的是测试是否要接受这个构建的版本,找出构建版本的主要功能和性能上可能存在的bug。

 b. BAT测试的必要性

  Because BATs represent a subset of important tests from each of the teams, they should also be used to pre-test proposed changes that may have impact that is not localized to a feature team. Running private builds against the BATs prior to check-in provides evidence as to whether the proposed changes are likely to negatively impact tests (and by implication consumers). This pre check-in process is especially valuable for changes where the impact across all features may not be fully understood.

  c. The results of Build Acceptance Tests:

   * Are an initial measure of build health:  low pass rates are correlated with poor build health.

    * Allow consumers to determine if they wish to use a build.

* Indicate if basic functionality is working (for those feature areas that are passing).

* Are used to qualify the build as sufficiently high quality for self-host use (all tests passing).

   * Are a necessary prerequisite for limited external release of the build for preview and casual usage by Partners (e.g. TAP or CTP drops).  (Requires that all tests are passing.)

3. The difference of BVT & BAT 

  在开始系统测试前,我们先要做BVT测试(about 0.5 hour,10%-15% of the total test cases will be executed.),当BVT测试通过以后,才开始做BAT测试(about one night, 80%-85% of the test cases will be executed.)

  Unlike Build Verification Tests (BVTs), the results of BATs are not intended to be all or nothing, but allow the consumer to determine the state of the features of interest.

  BATs run after each official build (after BVTs have passed) and do not “cause” build breaks if one or more of the tests fails.  The run results of the BATs (and BVTs) are used to categorize the build into one of three states:

Self Host:   A build where the BVT and BAT runs have a Pass Count greater than zero and a Fail Count of zero.

Self Test:   A build where the BVT has a Pass Count greater than zero and a Fail Count of 0, but the BAT either has a Pass Count of zero, or a Fail Count greater than zero.

Self Toast: A build where the BVT has a Pass Count of zero or a Fail Count greater than zero.

 BAT测试一般位于BVT测试之后进行,同时,两个测试的侧重点不同,BVT更侧重于build版本功能的完整性,对于功能的覆盖率,正确性及性能等各方面没有很大的要求,而BAT则相反。同时,BAT测试中的case,允许用户自己决定关注点应该更多的放在哪个模块,比如说对于一个金融会计公司,更关注财会模块(Finance,General journal等)功能的完整性和正确性的状态,对于供应链(supply chain)模块不关注,而对于物流公司则相反。

  也有些人说,BAT、BVT 和 Smoke test是一样的。这个还有待商榷。

4. SVT(System Verification Test)

  SVT is the point where the entire package comes together fot the first time, with all components working together to deliver the pojects intended purpose. It's also the point where we move beyond the lower-level, more granular tests of FVT(Function Verification Testing), and into tests that take a more global view of the product or system. SVT is also the land of load and stress. When the code under test eventually finds itself in a real production evironment, heavy loads will be a way of life. That means that with few exceptions, no SVT scenario should be considered complete until it has been run successfully against a backdrop of load/stress.

  注: 平时的工作中经常会做BVT,BAT的测试,但昨天上测试培训课时听到老师讲SVT,虽然个人对SVT的理解还不够,但还是先做个笔记,以后好慢慢积累理解并运用。

SVT的理解可参考: http://m.softwaretestinggenius.com/?page=details&url=system-verification-test-plan-and-its-major-areas-of-concern

参考: http://www.cnblogs.com/haining1993/p/5340348.html

BVT & BAT & SVT的更多相关文章

  1. BVT & BAT (版本验证测试和版本验收测试)

    BVT & BAT 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.BVT: (Build Verification Test ) BVT的概念: BVT(版本验证测试)是在所有开发 ...

  2. BAT“搅局”B2B市场,CIO们准备好了吗?

    "CIO必须灵活构建其所在企业的IT系统,深入业务,以应对日新月异的数字化业务环境."   BAT军团"搅局"B2B市场,CIO们准备好了吗? 庞大的企业级市场 ...

  3. Jenkins配置MSBuild实现自动部署(MSBuild+SVN/Subversion+FTP+BAT)

    所要用到的主要插件: [MSBuild Plugin] 具体操作: 1.配置MSBuild的版本 [系统管理]->[Global Tool Configuration]->[MSBuild ...

  4. 猫哥网络编程系列:详解 BAT 面试题

    从产品上线前的接口开发和调试,到上线后的 bug 定位.性能优化,网络编程知识贯穿着一个互联网产品的整个生命周期.不论你是前后端的开发岗位,还是 SQA.运维等其他技术岗位,掌握网络编程知识均是岗位的 ...

  5. 批处理bat 命令

    1.批处理常用符号: - echo 打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置 语法:@echo [{ on|off }]  echo{"显示 ...

  6. 【转】BAT 批处理脚本 教程

    第一章 批处理基础第一节 常用批处理内部命令简介批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命令统称批处理命令.小知识:可以在 ...

  7. 使用bat(批处理文件类型)两步更改笔记本IP

    一.背景 在南农工的第三年里,学校终于给教学区覆盖了无线网NJAUPK,这解决了我在汇贤楼教室上自习没网写web的尴尬处境!经常在9栋和汇贤楼教学区之间来回,遇见了一个大问题:宿舍里无线需要更改IPV ...

  8. bat转exe工具 Bat To Exe Converter v2.4.7 绿色版

    一款非常小巧的工具,从它的名称便能知道它的功能:它能将BAT或CMD文件转换成 EXE 文件.使用它,你可以保护由自己开发的软件的软件代码,创建一个漂亮的图标,让软件看起来更专业. 下载地址: htt ...

  9. winform总结3> 有趣的bat/winform程序完成自己的任务,然后把自己删除

    在winform的开发过程中往往会有这样的应用场景,执行完成某任务之后,程序需要把本身删除掉.比如卸载.分享一个比较简单实现. 思路就是利用批处理,关闭文件后执行bat,bat执行删除主文件,然后删除 ...

随机推荐

  1. javascript 继承实现

    JavaScript高级程序设计读书笔记 这本书继承的实现列举了好几种,里面有两种是比较靠谱的. 1 组合继承 //父构造函数 function Super(name) { this.name = n ...

  2. 使用HTML5+CSS3制作圆角内发光按钮----示例

    <!doctype html> <html> <head> <meta charset="utf-8" /> <title&g ...

  3. Python开发入门与实战4-模板页面

    4.Django基于模板页面 在前一章中,HTML是直接被硬编码在 Python views.py代码中,如下: from django.http import HttpResponse import ...

  4. Android重要控件———ListView

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...

  5. C++异常处理的问题

    一般在C语言中,是通过返回值或者设置errno的方式来标识错误的 但在C++里面,构造函数是没有返回值的,于是发明了异常的方式:为了正确的向使用者表明 异常抛出的原因,你必须弄清楚异常抛出的原因(比如 ...

  6. Android使用SharedPreference存储数据

    SharedPreference存储数据和文件存储更加方便的一点是可以按照一定的数据类型进行存储,同时取数据时也能够获取到相应的数据类型.它是按照map的方式来存储和读取数据的. MainActivi ...

  7. 委托Delegate,多播委托和委托链

    定义一个委托 public delegate void CalculateDelegate(int 32 x,int 32 y); 定义一个委托类型的变量 public static Calculat ...

  8. 简单的JS多物体的运动---运动和透明度的变化

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  9. java.lang.ClassNotFoundException: Didn't find class "*****(转载)

    很多人出现了java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{*****Activity}: java. ...

  10. Python 利用pytesser模块识别图像文字

    使用的是python的pytesser模块,原先想做的是图片中文识别,搞了一段时间了,在中文的识别上还是有很多问题,这里做记录分享. pytesser,OCR in Python using the ...