Build Verification Testing (BVT Testing) Complete Guide

What Is Build Verification Testing (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 the application is stable and can be tested thoroughly. Typically BVT process is automated. If BVT fails that build is again get assigned to a developer for the fix.

Build Verification Testing (BVT Testing)

BVT is also called Smoke Testing or Builds Acceptance Testing (BAT)

New Build is checked mainly for two things:

  • Build Validation
  • Build Acceptance

Some BVT basics:

  • It is a subset of tests that verify main functionalities.
  • The BVT’s are typically run on daily builds and if the BVT fails the build is rejected and a new build is released after the fixes are done.
  • The advantage of BVT is it saves the efforts of a test team to set up and test a build when major functionality is broken.
  • Design BVTs carefully enough to cover basic functionality.
  • Typically BVT should not run more than 30 minutes.
  • BVT is a type of Regression Testing, done on each and every new build.

BVT primarily checks for the project integrity and checks whether all the modules are integrated properly or not. Module integration testing is very important when different teams develop project modules. I heard many cases of application failure due to improper module integration. Even in the worst cases, the complete project gets scrapped due to failure in module integration.

What is the main task in Build Release? Obviously file ‘check-in’ i.e. to include all the new and modified project files associated with respective builds. BVT was primarily introduced to check initial build health i.e. to check whether – all the new and modified files are included in the release, all file formats are correct, every file version and language, flags associated with each file.

These basic checks are worth before build release to test team for testing. You will save time and money by discovering the build flaws at the very beginning using BVT.

Which Test Cases should be included in BVT?

This is a very tricky decision to take before automating the BVT task. Keep in mind that the success of BVT depends on which test cases you include in 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 the result.
  • Make sure all included critical functionality test cases are sufficient for application test coverage.

Also, do not includes modules in BVT, which are not yet stable. For some under-development features, you can’t predict expected behavior as these modules are unstable and you might know some known failures before testing for these incomplete modules. There is no point using such modules or test cases in BVT.

You can make this critical functionality test cases inclusion task simple by communicating with all those involved in project development and testing life cycle. Such a process should negotiate BVT test cases, which ultimately ensure BVT success. Set some BVT quality standards and these standards can be met only by analyzing major project features and scenarios.

For Example, Test cases to be included in BVT for Text editor application (Some sample tests only):

  • Test case for creating the text file.
  • Test cases for writing something into the text editor
  • Test case for copy, cut, paste functionality of text editor
  • Test case for opening, saving, deleting text file.

These are some sample test cases, which can be marked as ‘critical’ and for every minor or major change in the application, these basic critical test cases should be executed. This task can be easily accomplished by BVT.

BVT automation suits need to be maintained and modified time-to-time. E.g. include test cases in BVT when there are new stable project modules available.

What happens when the BVT Suite run?

Say Build verification automation test suite executed after any new build.
#1) The result of BVT execution is sent to all the email ID’s associated with that project.
#2) The BVT owner (person executing and maintaining the BVT suite) inspects the result of BVT.
#3) If BVT fails then BVT owner diagnose the cause of failure.
#4) If the failure cause is the defect in build, all the relevant information with failure logs is sent to respective developers.
#5) Developer on his initial diagnostic replies to the team about the failure cause. Whether this is really a bug? And if it’s a bug then what will be his bug-fixing scenario.
#6) On bug fix once again BVT test suite is executed and if the build passes BVT, the build is passed to test team for further detail functionality, performance, and other tests.

This process gets repeated for every new build.

Why did BVT or Build Fail?

BVT breaks sometimes. This doesn’t mean that there is always a bug in the build. There are some other reasons to build fail like test case coding error, automation suite error, infrastructure error, hardware failures etc.
You need to troubleshoot the cause for the BVT break and need to take proper action after diagnosis.

Tips for BVT success:

#1) Spend considerable time writing BVT test cases scripts.
#2) Log as much detailed info as possible to diagnose the BVT pass or fail result. This will help the developer team to debug and quickly know the failure cause.
#3) Select stable test cases to include in BVT. For new features, if new critical test case passes consistently on different configuration then promote this test case in your BVT suite. This will reduce the probability of frequent build failure due to new unstable modules and test cases.
#4) Automate BVT process as much as possible. Right from build release process to BVT result – automate everything.
#5) Have some penalties for breaking the build ;-) Some chocolates or team coffee party from a developer who breaks the build will do.

Conclusion

BVT is nothing but a set of regression test cases that are executed each time for the new build. This is also called a smoke test. The build is not assigned to the test team unless and until the BVT passes.

BVT can be run by developer or tester and BVT result is communicated throughout the team and immediate action is taken to fix the bug if BVT fails. BVT process is typically automated by writing scripts for test cases.

Only critical test cases are included in BVT. These test cases should ensure application test coverage. BVT is very effective for daily as well as long-term builds. This saves significant time, cost, resources and after all no frustration of test team for the incomplete build.

If you have some experience in BVT process then please share it with our readers in comments below.

Recommended Reading

111 thoughts on “Build Verification Testing (BVT Testing) Complete Guide”

  1. hello sir or madam
    today i went to interview.
    in that interviewer asked abt qtp and winrunner ,which one is best.
    on that time what i told is now every one is using qtp,
    is it correct or not.i dont know.
    and another question ,we ar ready to test linux ,which one is best again he asked.
    what i told is in this testing we ar testing the functionality.
    is it correct or not.
    he asks how to test the linux.

    just i completed the testing course.

    regards
    bharghava

    Reply
  2. hi deepak
    cyclometic complexity is one of metric which isused to measure the logical complexity of program

    to calculate CYCLOMETIC COMPLEXITY

    V(G)=E-N+2
    Here
    E————>NO OF EDGES
    N————>NO OF NODES

    THANX KS THANGAVEL

    Reply
  3. hello,
    by this article can we conclude tht BAT, BVT and Smoke test’ all are same kind of testing, or any difference s thr……..pls tel me……

    Reply
  4. hi,

    I recently joined a MNC as a test engineer and i was put into an onsite-offshore model project. I am facing prb regd executing testcases as the application crashes/gives error msg at diff. pts while entering the data due to which i cannot set p/f status to any of the testcases.i do not know where the prb is? And my teamlead does not care abt this and says that i have to finish atleast some testcases before the end of the day as she has to report to onsite lead. I do not know what to do. where is the prb i do not understand. can any one help me.

    Reply
  5. hi,

    I recently joined a MNC as a test engineer and i was put into an onsite-offshore model project. I am facing prb regd executing testcases as the application crashes/gives error msg at diff. pts while entering the data due to which i cannot set p/f status to any of the testcases.i do not know where the prb is? And my teamlead does not care abt this and says that i have to finish atleast some testcases before the end of the day as she has to report to onsite lead. I do not know what to do. where is the prb i do not understand. can any one help me.
    didn’t get an answer for this yet. Hoping for an imm. reply folks

    Reply
  6. Hi Friends,

    Currently i am working in Non-IT field and planned to switch my career to testing.I had learned the basics of testing,and now i am very eager to learn testing practically with real time projects.
    If any one interested to teach testing personally with real time projects , i will be more grateful, or else show me the right place in chennai.
    Thanks & regards
    selvam.ba@rediffmail.com

    Reply
  7. Hi Vijay,

    Thanks for posting this article. Can you please let me know more about Automation with respect to Silk Test? I am working on that and your points would be of a great help to me and my team.

    Reply
  8. Hi Vijay,

    Thanks for the article, as far for others who think Sanity and smoke testing are same , then this is for them

    Sanity testing:
    Once a new build is obtained with minor revisions, instead of doing a through regression, a sanity is performed so as to ascertain the build has indeed rectified the issues and no further issue has been introduced by the fixes. Its generally a subset of regression testing and a group of test cases are executed that are related with the changes made to the app.
    Generally, when multiple cycles of testing are executed, sanity testing may be done during the later cycles after through regression cycles.

    Smoke Testing:
    When a build is received, a smoke test is run to ascertain if the build is stable and it can be considered for further testing.
    Smoke testing can be done for testing the stability of any interim build.
    Smoke testing can be executed for platform qualification tests.

    Hope this answers the doubt about smoke and sanity testing.

    Thanks & regards
    Sarath S Pillai

    Reply
  9. @ Vijay
    Thanks to Sarath S Pillai.I will just add my note here mite b helpful to others.
    sanity and smoke there is no much difference and moverover its company specif wt have they have given.
    BUT if u go by books dffination
    SANITY–is build acceptence test used to certify the build where build is stable or not and we decide here is it worth time spending for further testing or not..
    Most important thing is taht we have seperate test cases for SANITY.some company have sanity check list.its one and same thing

    SMOKE–as i told there is no much difference between sanity and smoke.However we focus testing on more critical and important test path.basically we check depth wise while in sanity we check bredth wise.

    I hope i added some point mite b helpful

    Reply
  10. This is for the first time i had read about BVT and blive me i dint find any problem in understanding the concept,this matter is so transparent this even i can visualize the BVT process…and which help me lot to keep the concept of BVT in my mind for a long time…
    Thanx & Regards…

    Reply
  11. Hi Shweta…
    Actully when we find any bug in any module thru BVT it assigned to the respective developer for fix and after fixing it,we again test the same application and its impact on others thru BVT,and which is the same thing we do in Regression Testing…

    Reply
  12. Is BVT or Smoke testing functional or non-functional testing technique??
    Also can you identify for me about
    Sanity, Re-testing,RegressionUsability & User interface testing??

    Will appreciate a quick response.

    Reply
  13. Hi Addy…
    Both BVT & smoke testing are functional testing techniques,
    Sanity testing is vry similar to smoke testing,in this we test the basic functionality of the component.
    Re-testing is to re test the component after fixing the bug.
    Regression testing is test the impact of the fixed bug on the whole project.
    & UIT ithink it similar to UAT.

    Reply
  14. Hi Puneet,

    Answer is in ur question itself, BVT is kind of white box testing and also a component testing so it is done at developer’s site before assingning it to testing team.

    Reply
  15. Hi Vijay

    U have done wonderful job on this site. Its very useful to learn about BVT clearly. Thanks a lot. Thank you a lot.

    Reply
  16. Thanks a lot for giving information about BVT, I have some doubt about BVT. know i got clear information about that.This site very help to the bigner’s.

    Reply
  17. @Rahul

    Can you do a sanity test of your sentences before you replies in any forum. It’s really hard to understand when someone makes so much mistakes in english.

    peace..

    Reply
  18. I had doubt about Selenium :

    When i generate any script it takes normal time depends upon internet speed , but when i run it at High speed it hardly takes 1 min to execute test case with many transactions.

    Why is that?

    how can it be so fast ?

    Reply
  19. Hey, Do you really practice the script execution for the Smoke testing. And also in many cases of keyword driven testing, the flows are not very much organised to suit the smoke tetsing suite, as oer my knowledge. SO how is that we proceed with the same in case it has to be practised.

    Reply
  20. hi vijay ,i am sandya.now i am studying mphil (C.A).i select software testing for my research topic.my guide told me to take that topic is ” how to enhance performance on regression testing?”.but i do not know how 2 do that?pls send some related heading to my mail id.my mail id is sandyaselvam@gmail.com

    Reply
  21. Hi Vijay ..
    The details about BAT is really very helpful and Could I know which automation testing tool would be used to test the Build Installation.
    Please do get me some idea for this as I am assigned to google this in my concern.

    Reply
  22. hi…this is nice one topic…its really help those ..who have only therotical knowledge…practically..how testing performed in company environment…this is good one post..i like it..

    Reply
  23. Hi,
    I am working as a release team member , daily i installed my latest build and execute some set of test cases, it is very painful job to do daily. can you please suggest me is dar any tool for this type of snoke testing??

    Reply
  24. Well,really a good article to read and I would appreciate such initiatives.I am manual test engineer and have overall 2.6 years of experience guys can you share your respective email Id,s to me or let me know if there are any opening on pratapvarun93@gmail.com,I,ll be highly thankful to you all.

    Reply

Leave a Comment