INTRODUCTIONSmoke Testing is a quick-and-dirty test that the major functions of a piece of software work.Originated in the hardware testing practice of turning on a new piece of hardware for the firsttime and considering it a success if it does not catch on fire. In software testing, a smoke testis a collection of written tests that are performed on a system prior to being accepted forfurther testing. This is also known as a build verification test.Smoke test refers to the first test made after repairs or first assembly to provide someassurance that the system under test will not catastrophically fail. Smoke testing is conductedto ensure whether the most crucial functions of a program are working, but not bothering withfiner details. (Such as build verification).Smoke testing originated in the hardware testing practice of turning on a new piece ofhardware for the first time and considering it a success if it does not catch fire and smoke. Insoftware industry, smoke testing is a shallow and wide approach whereby all areas of theapplication without getting into too deep, is tested.Smoke testing is a preliminary to further testing, intended to reveal simple failures severeenough to reject a prospective software release. Smoke testing performed on a particularbuild is also known as a build verification test. Smoke tests can either be performed manuallyor using an automated tool. When automated tools are used, the tests are often initiated by thesame process that generates the build itself.In software engineering, a smoke test generally consists of a collection of tests that can beapplied to a newly created or repaired computer program. Sometimes the tests are performedby the automated system that builds the final software. In this sense a smoke test is theprocess of validating code changes before the changes are checked into the larger productionofficial source code collection or the main branch of source code.Smoke testing is non-exhaustive software testing, ascertaining that the most crucial functionsof a program work, but not bothering with finer details. Smoke testing involves running aseries of tests before entering into the full scale testing of the application that is underdevelopment. The main objective behind smoke testing is to know whether the essentialfunctions of the applications are working or not. In case they are found to be not working,
additional modifications and changes are introduced before the application can proceed toother tests.Such modifications may need to continue until a time when all essential functions go throughthe smoke test. Smoke test can be an invaluable tool that helps you conserve precious time,energy and money; if any of the software feature fails smoke test, then the developers need tothink of additional modifications to the application.Testers use smoke test from time to time especially during development phase. It will alsohelp you hasten and improve the software developmental process and reduce the timeframefor development. You can also perform smoke testing at the first phase to ensure that theparticular product does not turn a failure.TYPES OF SOMKE TESTINGSmoke tests can be broadly categorized as functional tests or unit tests: 1. Functional tests exercise the complete program with various inputs. 2. Unit tests exercise individual functions, subroutines, or object methods.Both functional testing tools and unit testing tools tend to be third-party products that are notpart of the compiler suite. Functional tests may be a scripted series of program inputs,possibly even with an automated mechanism for controlling mouse movements. Unit testsmay be separate functions within the code itself, or driver layer that links to the code withoutaltering the code being tested.ROLE OF SMOKE TEST IN SOFTWARE DEVELOPMENTThe term smoke test is metaphorical when used in software testing. Software developersperform smoke test on new programs. Automated tests can help them build better softwareapplications. Smoke tests can act as validating tests for the embedded codes when there aresome modifications or changes to the application architecture. After validation, you canintegrate the changes into the final code collection. You also need to run the test again tovalidate the entire code set and to find out, if there are other errors that need an immediatefix. Smoke testing is cheaper and is result oriented.
Build verification test is another name for smoke testing. Both of these tests are shallow andwide in their perspective. The tester who works on the program should look into all possiblesectors of the program without having a deep understanding of how the software applicationworks.There is really no need for the tester to know how the entire process flows, he only needs toknow if the particular software does what it is supposed to do. In case, when the softwareapplication fails, then you can safely assume that it is indeed a failure and you just cannotproceed further on testing.SMOKE TESTING ADVANTAGESSoftware development industry also uses smoke test. It acts as a prerequisite test beforeconducting any other tests. Using smoke testing at the first stage of the software developmentwill help you reveal the errors and possible failures on the software. A big failure orbreakdown will help the developers decide whether they need to discard the project or not. Itmay also provide them invaluable clues on the types of modifications that can repair theanomaly.But aside from software development, smoke testing can be used in many other fieldsincluding in the areas of electronics, plumbing, and even woodwind repair. For example,smoke tests conducted in plumbing will measure the actual passage of smoke that passesthrough the pipe. In case of any leakage, the plumber could easily see the smoke coming outof the pipe.In an electronic industry, smoke testing helps the engineers to find out whether a circuitworks or not. They will also be able to determine if the wiring is placed correctly or not. Incase the engineers have made a mistake then smoke will appear from the circuit. In fact, theterm smoke testing took its birth in the hardware industry.A smoke test is a subset of the test cases that is typically representative of the overall testplan. Smoke tests are good for verifying proper deployment or other non-invasive changes.They are also useful for verifying a build is ready to send to test. Smoke tests are notsubstitute for actual functional testing.
IMPLEMENTING SMOKE TESTINGGenerally, quality assurance section develop and run the actual test on all new softwareapplications. Test cases come to use while testing the functions of software. In fact, thesetests are not simple and low-level tests, they consists of almost 30 different high-level casesthat every software applications will pass.In addition, there are strict and stipulated needs for the application to pass through the smoketest. Obviously, this test is the first test that a software application undergoes in its life cycle.If there is a failure, you can assume that there are problems in the developmental process. Inreality, a team of software engineers works on the software project and each of them willneed to use the test to pass the code sets.The quality assurance department should ensure that their project should not undergoadditional testing unless the previous failures undergo serious changes from thedevelopmental team. You may also wish to run the test in an automatic mode. This mode canspeed-up up the process of testing so that you can conserve precious time to market.A given software system can fail at times. It could happen in a typical team baseddevelopment environment. Peer pressure and constant evaluation can help prevent thispossible failure. However, the team as a whole can work to solve many problems of softwaredevelopment. To create an error-free software application, you may need to fix all majorfunctionality defects and errors in the initial stages of the project; smoke testing will come toyour help to check certain phases of software applications.CONCLUSIONSmoke testing does provide lot of benefits to the software development team. First, it canexpel all those software applications that lack the potential to reach the market. In this way,software engineers can easily reject those software projects that are still in their early stagesof development. If they find some errors in such projects, they can either modify it or rejectthe whole project. With smoke testing, you can conserve time and money as it passes theapplication for other future tests.
In addition, this test also allows software developers to learn different aspects of the programthat needs further improvements. They will also be cautious in the future and avoid makingsimilar mistakes again. Smoke testing at an earlier stage will help you avoid majormodifications and changes to the core design of the applications. REFERENCES • http://en.wikipedia.org/wiki/Smoke_testing • http://www.softwaretestingmentor.com/types-of-testing/smoke-testing.php • http://www.exforsys.com/tutorials/testing-types/smoke-testing.html •