What is 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 is also called smoke testing or build 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 setup 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 worst cases complete project gets scraped 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 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 very tricky decision to take before automating the BVT task. Keep in mind that 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 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 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.
Example: Test cases to be included in BVT for Text editor application (Some sample tests only):
1) Test case for creating text file.
2) Test cases for writing something into text editor
3) Test case for copy, cut, paste functionality of text editor
4) 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 changes in application these basic critical test cases should be executed. This task can be easily accomplished by BVT.
BVT automation suits needs 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 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 defect in build, all the relevant information with failure logs is sent to respective developers.
5) Developer on his initial diagnostic replies to 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 build passes BVT, the build is passed to test team for further detail functionality, performance and other testes.
This process gets repeated for every new build.
Why BVT or build fails?
BVT breaks sometimes. This doesn’t mean that there is always 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 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 developer who breaks the build will do.
Conclusion:
BVT is nothing but a set of regression test cases that are executed each time for new build. This is also called as smoke test. Build is not assigned to 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 incomplete build.
If you have some experience in BVT process then please share it with our readers in comments below.
If you like this post do consider subscribing to our email newsletter to ensure you will not miss any article on software testing! Click here to get article updates by email.



60 comments ↓
thanks a lot Vijay for the post.
i got really good idea of BVT. Was eagar to know abt BVT since long and now your post helped me a lot.
hi,
thanking fr the more information refgarding th bvt thanks a lot
with best regards,
G.Viswanath
Thank you………Vijay
I really got a new idea for my testing process, which I can implement in my testing
Hi Vijay,
This is fantastic, good tips for beginners. My Expectation from your side is new articles daily.
Regards,
R.Prakash.
Hi,
Thanx for your more valueable information for smoke testing.
i would like to know about sanity testing.
thanks a lot ……ur articles are very helpful….
Hi Sonali,
as far as I know, “sanity test” is just another expression for smoke test.
Good work Vijay.
BR
Jens
Nice Article!
Nice Article!
hi ,
can you please tell how to test Reports generated by sql server reporting services ?
or provide any links where we can refer to acquire knowledge about testing reports.
Thanks,
Pradeep.
Hi vijay,
really a helpful article for the beginners, now here goes my query realted to BVT to u ,
most of the time Devloper does the BVT and the build team modifies the database changes and implement them during the next version build,
now for the companies who deals in pure manual testing how can we assure the BVT took place and its working ?
Is there anyway through which we can make same thing working in manual testing?
Thanks & Regards,
Avinash.
Thnank U Vijay……..
Good Article
thanx
thanx nice
hi,
i didnt see any article on performace testing on this site, can you give it so that it will be very helpful for us.
thnaks,
Pradeep.
Thanks a lot Vijay for this article on BVT.
This kind of summarizes the main ideas we should know about BVT very well.
Thats a lot and looking forward for more such articles.
-subha
Great vijay,
you had given me the key to achieve my destination.
thanks a lot.
hi,
thanks for this information!!!!!!
Nice Information.
It really helped a lot.
Developers migh be doing the unit and intregration testing and not necessarily the BVT. BVT is most of the times done by test engineer. Once the build team deploys the test build on the test environments its the job of test engineer to perform BVT (sniff, sanity smoke etc..)
If you are able to test the applicaiton and are executing the test cases, its natural that the BVT has been passed. Else you wouldn’t have been able to test the applciation… It dosent mattter if the testing is done manually or is automated using any tool. If the build has got a new feature how can you automate it?
Following is the process that you might follow:
Developer initiates a mail to build team (also marked to test team with the description of what to be tested in the new build) to make the build >> Build team makes the build and deploys it on test machines and replies all asking the test team to continue testing, else if build fails he replies so in the mail >> If the BVT fails tester replies to mail stating that the BVT failed along with the logs whatever are available, else continues testing.
Regards, Suhas M
*the post above is marked to Avinash.
Hi,
I found this article very interesting, thanks for the information. While testing web modules we frequently come across schema hardcoding done by developers, can it also be a part of BVT, even if it is not related to any specific module.
it is very nice article…Thanks a lot
hi frends
i want to know possible test cases for health care system.
please reply be asap bcoz i have an interview.
Thanks a lot Vijay and all the related guys and gals.
Hello Vijay,
Talking about BVT, I am sure you would agree that this is one of the most confused and most misunderstood concepts in S/W Testing. Few weeks ago one of my blog readers had asked me a plain vanilla definition of BVT. But unlike you (giving away my version of definition of BVT), I opted for hearing the different versions of definitions circulating in the Testosphere! And the result was shocking! Well, here is the result of the Case Study in case anybody wants to take a look.
Happy Testing…
-Debasis
Hi Suhas ,
Now its too much clear to me wht exactly BVT the author want to tell us in this nice Post.Well you are absolutely right for the Procedure that we are following for testing. Anyways thanks sir for the useful information and really appreciated your reply.
Thanks N Regards,
Avinash.
Thats a good article by vijay but as pointed out by suhas, it depends from organisation to organisation. Its not necessary that BVT is done by developers. Once the build is ready it is released to the testing team who does the smoke testing and confirms for failure or success of the same. Thanks for suhas’s comment.
Hi,
what is the diff b/w embedded software and application software…
Hi,
It is a good article.
Very clear description is given about BVT.
Hi frnds,
recently i given a test in one company, i didnt got selected in HR..
well in that written test they asked abt “Cyclometric” wt it mean?
wts the use of it?
anybody know?
Hey L V Prasad,
Could you please clearly mention what exactly the question is?
is it Cyclometric / Psychometric?
Did they ask this question….
What is Cyclometric complexity? (is this the question?)
if Yes : - Then:- The cyclomatic complexity is a software metric that provides a quantitative measure of the logical complexity of a program.
hai all,
i want details about ISTQB & STUDY MATERIALs. If
u’ve kindly fwd to my mail. my mail id is gsheela80@yahoo.com
Thank u very much.
Hi,
Thanx for the info on BVT. Got a pratical insight as to how it is done. Can u pls recomend how to go about DB testing with some sample testcases?
Thanx,
Meera
Amazing blog!
Was wondering, such an amazing blogger like you should visit Manipal on 18th and 19th April to join Manipal Bloggers’ Meet and Manipal Media Students’ Convention…
what say?
Please visit the site for more info. www.mmsc-manipal.com
hi……….
This is really very helpfull aricle and i have learnt a lot from this article
Looking forward to see such types of article more
Thank you very much
@meera
database testing is more related with white box testing stuff ..Actualli i mean to say u need to concentrate on followings
1>varify dsn is correct or not
2>varify weather we are referring correct table or not
3>varify in inline qurey/sp/trigger
4>varify data in the table is updated or latest or not..
this is all very very important prerequisite that tester shold know like developer..since most of invalid bug is because of this…
if anything more ping me back..rahulkumarbangalore@yahoo.co.in
@sonali
I have given clear difference b/n smoke and sanity here 1 more time
Thi sis most mcommon thing weather folks get confused..but i will give more clear example
SMOKE–it checks health of build..weather health i sstable or not ..which decide weather further testing would be carried out or not..we check weather build is crashing or not..it is more systematic than SANITY..
SANITY–it checks functionality of build at higher level..we carried out one teansection related to each module hare..it is less formal and less planned then SMOKE.
if smoke fails sanity stops.Sanity tell weather it is “reasonable” enough to carry out testing or not..
i hope this will clarify major doubt .
Rahul!!!
more info ping back rahulkumarbangalore@yahoo.co.in
@Deepak
i think it would be Cyclomatic Complecity (cc)which is no. of binary decision+1
i.e. cc=binary decision+1
used for test coverage..
more info ping back rahulkumarbangalore@yahoo.co.in
HI
Nice site, have a lots of information.
Thanks
Iam not able to understand what is this APACHE AND TOMCAT SERVER is all about..are they different ?
Some say they are not and they are called as webapplication servers.By the way do application server and web server reside on the same machine or in different machines.How they are configured.
How a application server contacts webserver or vice versa..again are they configured on differnet machines .I am totally confused please help me understand this.Respond me to this e mail with your answers norman_g40@yahoo.com
HI Jen
Sanity testing is come under the same ambit but situation is different.
After a final round of testing then we push produt to client side, before that will do a quick round of testing before First UAT is called Sanity.
I think is right.
Thanks
what is the build and release?
Exactly what is the difference between new build and modified build?
Can we process an xml file in QTP like database files,if possible,how can we process it
hello friends/sir/mam
Its Pankaj Bhatt,completed graduation in Commerce.I know JAVA Language.Looking for Software Testing.Need help from u.
I have make career in this field,so what step i have to follow?
plzs reply at: pankaj.bhatt@hotmail.com
Hi,
I am vishvas tyagi working for Keane India.Can you please tell me about V model testing and what’s the need of this model?
Hi All,
If any of u r tester from Kolkata then pls reply for this thread.
Thanks
Vishal
Call: 9830704327
mail: bishalchaperia@gmail.com
Hi All,
Here are the differences you can see,
SMOKE TESTING:
1) Smoke testing originated in the hardware testing practice of turning on a new piece of hardware for the first time and considering it a success if it does not catch fire and smoke. In software industry, smoke testing is a shallow and wide approach whereby all areas of the application without getting into too deep, is tested.
2) A smoke test is scripted–either using a written set of tests or an automated test
3) A Smoke test is designed to touch every part of the application in a cursory way. It’s is shallow and wide.
4) Smoke testing will be conducted to ensure whether the most crucial functions of a program work, but not bothering with finer details. (Such as build verification).
5) Smoke testing is normal health check up to a build of an application before taking it to testing in depth.
SANITY TESTING:
1) A sanity test is a narrow regression test that focuses on one or a few areas of functionality. Sanity testing is usually narrow and deep.
2) A sanity test is usually unscripted.
3) A Sanity test is used to determine a small section of the application is still working after a minor change.
4) Sanity testing is a cursory testing; it is performed whenever a cursory testing is sufficient to prove the application is functioning according to specifications. This level of testing is a subset of regression testing.
5) sanity testing is to verify whether requirements are met or not, checking all features breadth-first.
Regards,
VijayD
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
Where can I download “Mercury Quality Center Connectivity Add-in”? Can anyone provide the link.
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
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……
Hi Beena,
You are right. We can conclude that BAT, BVT and Smoke test are same.
Thank U Anand.
By the by, r u working? In which city u r working?
Yes, I am working in Mumbai.
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.
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
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
Leave a Comment