Abstract—Software testing is defined as series ofmeasures and operations performed on anysoftware product to make it reliable and workable.The main intention of testing is to find errors andflaws in software product on unit level as well as atsystem level. The fundamental target of softwaretesting is to check that the product is according tothe needs of the customer and it does not doanything that is not desired. For unit level we willuse white box testing as it is used to test eachindividual component of our product and at systemlevel we will use black box testing as it checks thesystem as a whole. In this paper we will target onwhite box testing approaches and their influence onsoftware quality.
Keywords—white box testing, black box testing,unit testing, system testing1. IntroductionTesting of any software system has a very vital roleas it will deflect all the defects which are present inproduct. Software testing is also defined as analyzingthe software product so the flaws are underlined inany software product and can be corrected beforedelivering the actual product to the customer. Thebasic goal of software testing is to assure, verify, andvalidate the software product. Testing is such aprocess which is used to improve the working of asystem.
It is also used to find what necessaryrequirements are and which requirements are notneeded by customer. The primary goal of softwaretesting is to find errors or faults in a system so theseare corrected and customer will get a workingproduct. 1Testing of any system is thought to be one of themost crucial part because it will cost us more than50% of total cost of a system. The main reasonbehind this is that finding any fault which is notaccording to customer requirement and then correct itwill produce more flaws in the product which alsorequire more time to solve it. So all we need to do isto correct all these flaws so the final product which acustomer will get is free of any type of anomalies.Software testing is thought to be a tough job becauseit requires a lot of hard work and effort.
If weremember about SDLC, we will test our product atunit as well as at system level in SDLC. In white boxtesting each individual unit of a system is tested sothat each unit of a system is providing its fullfunctionality. White box testing also enable us tocheck what is actually happening in the system andhow each component of system works and what willbe the output of each component of a system is.
6On system level, black box testing is used to checkthe working of a system as a whole. Both of theseblack and white box testing are used to find problemsin a product. Both of these testing approaches areimportant to examine the system. There is anotherthing which is worth to mention here is that bothblack and white box testing approaches are notenough to find all the errors in the product.
Manyother approaches are available to determine faults inproduct. Every approach has significance importanceto find different type of error in the product. In thispaper our focus is on white box testing approachesand also we will see their impact on softwareproduct.2. White box TestingWhite box testing which is also called transparentbox testing is an important type of testing to findimperfections in the product. 27 Its basic aim is tocheck inner design and structure of a system. Its mainconcern is to find logical errors in the programbecause logic is very important in designing anysystem. The programmer has full technicalknowledge about the system because he is the onlyperson who is held responsible in case of any failurein the system.
30 During this technique, differentactivities and operations are involved to analyze theproduct. The first step during analyzing the product isto check the requirement documents, source code andall those things which belong to that particularsystem to find what essential requirements for thisparticular system are. Next activity is to build testcases for this new system to check its working. Andin last we will consider all those methodologies andtools which will help us to find all the flaws whichare present in the system.In white box testing there is no separate team to testthe product, it is actually the programmer who needto check the working of the system and onlyresponsible for the breakdown of the product. Alsotypographical errors and incorrect programmingsuppositions about code are likewise found in whitebox testing.
White box testing is used to test everybranch and decision construct in our program. Whitebox testing can be applied on a system at unit level,integration level and at system level of testing. In unitlevel it is applied to ensure that all components of asystem are working correctly before they arecombined. In integration level of testing allcomponents are combined to build the new systemand then they are checked whether they are workingaccordingly.
Here we check that all units whencombined are giving their full output. In last levelwhole combined system is checked to get the exactworking of new system.Splits Combined1. White Box TestingFrom the diagram 1 it is seen that when a customerorders for a new system then in first step hisrequirements is break down in simple units.
After thateach individual unit is designed and its functioning ischecked according to his requirements. When everyunit is giving its full functionality then they arecombined to give us actual product which can befurther tested for checking different types of errors.Now we will take a simple example from which wecan more easily understand the concept of white boxtesting. Suppose we are building a new house and wemake four rooms in it and all these rooms areproperly furnished and electric wiring is also done inall these rooms.
Our main concern is to checkwhether wiring is working properly in all rooms sowe will enlighten the whole house. We will checkeach room one by one and if in each room, wiring isworking properly then we can say that whole house iswired properly and we can enlighten the whole houseas we have checked each room individually. Samething we can say about white box testing in whicheach individual component of system is tested and ifit is working accurately then we can say that oursystem is working accurately and efficiently.Software testing is very hectic task because it needs alot of time, effort and budget to test the product. If wewant to maintain quality of our product then we needto test our product from every perspective so thatthere is no error in the product in future.This testing technique gives developer of a systemsatisfaction about that what he has done is his systemis according to the requirement of a customer whichhe wants in this product. Also a tester tests theproduct at unit level without waiting for the actualGUI available for the system.
2.1 Different approaches of White box testingThere are two further approaches of white box testingwhich are as follows,i. Static White box testingii.
Structural white box testingNow we will talk about each methodology in detail.2.1.1 Static white box testingThe fundamental motivation behind static white boxtesting is to test whether the system is as per clientnecessity or not. In this approach our main goal is tofind errors in the program without involving anyknowledge about executable and binary files. 18 ItCustomerRequirementsActualProductUnit 1Unit 2Unit 3Unit 4is done on the program before it is finished.
So wecan say that our main focus in this approach is tocheck whether the program is working according touser requirement or not. Also static white box testingis used to find whether all the requirements arefulfilled or there is something that is missing in thecode. When the code is checked according to codingstandards and guidelines then it is easy to find all themissing things which are necessary for our programto work. 222. Static white box testing188.8.131.52 Desk checkingDesk checking which is also known as workchecking is used to find errors in the code.
It is doneby the developer to discover errors in the systembefore it is finished. If there is any error in the code,then the programmer will contact to the requirementengineer or author to check the requirement againand make it workable according to the customerneeds. The main benefit of this checking is that as itis done on early stages of the code so it is easy to finderrors and correct it in early stages so the code isaccording to prerequisites detail or outline. 184.108.40.206 Code walkthroughThis technique is also called specialized codewalkthrough.
In this technique technical persons areinvolved who will ask questions about the code logicfrom author. If there is any error found in the logic ofthe code it is corrected so there is no problem facedin the future. The principle point of interest of codewalkthrough is that as technical and skilled testers areinvolved, so the system is verified and if there issomething found wrong then it is corrected. 220.127.116.11 Formal inspectionAssessment is a formal, proficient and conservativesystem for discovering mistakes in outline and code.It’s a formal survey and went for recognizing allshortcomings, infringement and other defects in code.
Formal inspection which is also known as Faganinspection process consists of different phases to finderrors in the product. According to Fagan, “A defectis an instance, in which requirements are notsatisfied”. As there are various phases involved informal inspection. 17 These includes,i. Planningii.
Overviewiii. Preparationiv. Inspectionv. Reworkvi. Follow upAll of these phases are basically different techniquesto find errors in the product.2.1.2 Structural White box testingIn structural white box testing our main concern is oncoding internal design and how various componentsare programmed.
So every individual component istested to find errors. Also every branch and decisionconstruct is investigated thoroughly in it so is easy tofind errors in the product. There are varioustechniques involved in structural white box testing20 21. They are shown in diagram.3.
Structural white box testing18.104.22.168 Statement coverage techniqueIn this technique our focus is on how many lines ofcode are in our program and how many of them areexecuted successfully.
Suppose that we have aprogram with 1000 lines of code and 950 lines areexecuting properly without any error then we can saythat 95% of our code is working accurately. In thisStructural whitebox testingStatementcoverageBranchcoveragePathcoverageLoopcoverageStatic white boxtestingDesk checking CodewalkthroughFormalinspectionstechnique the main point which is in our mind is thatthe higher the rate of successful lines of code, thefewer the errors will occur in future. 22.214.171.124 Branch coverage techniqueIn this technique we check how many branches in acode are successfully executed. The result of everybranch may be either true or false. So each edge of abranch is navigated at least once.
This technique isalso known as edge coverage or decision coveragetechnique. For each decision there may be manypaths through which it can traversed, if it can traversethrough each path during a decision then it fulfills itstarget. 126.96.36.199 Path coverage techniqueIn this technique we will check different paths occurin a program from first line of code to last line. Asource code path is defined as series of loops,arithmetic, relational and logical statements till exitpoint.
188.8.131.52 Loop coverage techniqueThis technique focus on loop constructs in a programthat how a loop works. In case of loops errorsnormally occurs at the start or at the end of the loopstatements. The loops which are under observation inthis technique are simple, nested, concatenated andunstructured.
93. Advantages of White box testingWhite box testing approaches are useful for findingthe bugs in product at unit level. It is used to checkthe internal working of system so all internalcomponents of a system are investigated. Followingare some of the advantages which can be obtained bydoing white box testing.3.1 OptimizationOne benefit of white box testing is that it helps inremoving unnecessary lines of code.
So we will getoptimized code 8 26. So anything which is notdesired or not required by customer is removed so thecode size is decreased.3.
2 Find errors from hidden codeWhite box testing is also used to reveal errors fromhidden code so errors which are hidden can belocated easily 8 26 27.3.3 Guess about inputSince the internal working of the system is checkedin detail so it is easy to know what will be given tothe system as input to get the required result from thesystem. It is used to test the application effectively.283.4 Testing is started at earlier stagesIn white box testing we will check internal workingof code, also each individual component is tested soerrors are found at early stages and can be removedand we will get error free code. There is no need towait when user interface is available to test thesystem 27 28 29.3.
5 StabilityIn white box testing each unit is tested so we will get100% output from each unit and we will get a stablesystem 8 29.3.6 ThoughtfulnessIt is the ability to look inside the code to identify theproblems occurred in the code. We will check everynode, loop, all branches are tested completely so toget a working system 8 26 27 28.4. Disadvantages of white box testingAnything which gives us benefit also has drawbacksalso. Following are some of the drawbacks of whitebox testing.4.
1 Skilled ExpertsSince every component of code is being testedthoroughly so a tester must have good programmingskills. Also he has all technical skills and expertiserequired to test the code. Also he has knowledgeabout how a system accepts input, how this input isthen processed and which form of input is given toget the exact output 8 28 30.4.2 Cost factorsAs described earlier that software testing is mosthectic task and it takes more part of our productbudget. If we talk about white box testing, then it isthe most expensive technique as it requires a lot ofeffort and budget to check the internal behavior ofsystem 82830.4.3 Time FactorIn white box testing each individual component of asystem is tested thoroughly, so it is also possible thata tester may found many new types of errors also itrequire time to correct these problems which willappear so time is also require to correct theseproblems.
284.4 Missing featuresAs in white box testing, our goal is to check theinternal behavior of system. So it is possible that ourfocus is one component of a system and we will missa feature which is also required 82830.4.5 Developers are testersIn white box testing there are no separate testers butthese are actually the developers who develop theproduct so it is also extra burden on the developers.Also it is difficult for someone to find faults in hisown creation.
275. ConclusionFrom all above discussion, it is obvious that whitebox testing is good technique to find errors in theproduct because it test the product from initial leveland find all the errors also these errors are correctedand we will get a error free product.White box testing technique is also calledconfirmation and approval technique which assist thetester for finding and correcting errors. In this paperwe have discussed white box testing in detail alsodiscussed all its types in detail also discuss in detailsand how the quality of product is improved by usingthis specific testing approach.6. Future workAs we know that there are a lot of software testingtechniques which are used to make our productefficient and reliable but still there is no suchtechnique which is used to find all types of errors. Soin future we will try to find a technique which can beused to find flaws from the software product.We can also combine different techniques to finddifferent types of errors, so in future the work canalso be done on this, in which different techniquesare combined and applied on system to get error freeproduct.
AcknowledgementI acknowledge my respected teacher who hassupervised me during this research paper and alsoguide and help me to improve my research skills.Also lectures about particular subject help me a lot.7. References1 ijcsi.org/papers/7-3-1-11-16.pdf2 White Box Testing Technique by Yogindernath Guptaavailable at http://ezinearticles.com/?All-About-CodeCoverage—A-White-Box-TestingTechnique&id=17969833 White box testing available athttp://agile.csc.
ncsu.edu/SEMaterials/WhiteBox.pdf4 White Box Testing available athttp://www.testingbrain.
com/WHITEBOX/WHITE_BOX_Testing.html5 White Box Testing available athttp://www.freetutes.com/systemanalysis/sa9-whitebox-testing.
html6 White Box Testing by Sharon Robson in August 2009published by STANZ 20097 G. Janardhanudu, White Box Testing,https://buildsecurityin.uscert.gov/daisy/bsi/articles/bestpractices/whitebox/259BSI.html8 Black-box vs. White-box Testing, Choosing the rightapproach to deliver quality applications,http://www.testplant.com/download_files/BB_vs_WB_Testing.
pdf9 G. D. Everett and R. Mcleod, Testing across the EntireSoftware Development Life Cycle, Hoboken, NewJersey: John Wiley & sons, Inc., 2007, pp. 126-134.10 Zhu, H.
, Hall, P. May, J.: Software Unit TestCoverage and Adequacy, ACM Computing Surveys,Vol. 29 (4), 199711 Graham, D.
, et al.: Foundations of Software Testing,Thomson, 2008, London, UK12 Chays, D., et al.
: An AGENDA for testing relationaldatabase applications, Software Testing, Verification,and Reliability, Vol. 14(1), 200413 H. Liu and H. B. Kuan Tan, “Covering code behavioron input validation in functional testing,” Informationand Software Technology, vol. 51, no. 2, pp. 546–553,Feb.
200914 F. Lammermann, A. Baresel, and J.
Wegener,”Evaluating evolutionary testability for structureoriented testing with software measurements,”Applied Soft Computing, vol. 8, no. 2, pp. 1018–102815 S. R. Rakitin, Software Verification and Validation forPractitioners and Managers. Artech House, 2001.16 T.
Gilb, D. Graham, and S. Finzi, Software inspection.Addison-Wesley, 199317 M. E. Fagan, “Design and code inspections to reduceerrors in program development,” IBM SystemsJournal, vol. 15, no.
3, pp. 182 –211, 1976