<<

International Journal of System and Software Volume 5 Issue 2, December 2017 ISSN.: 2321-6107 : Essential Phase of SDLC and a Comparative Study of Software Testing Techniques Sushma Malik Assistant Professor, Institute of Innovation in Technology and Management, Janak Puri, New Delhi, India. Email: [email protected]

Abstract: Life-Cycle (SDLC) follows In the software development process, the problem (Software) the different activities that are used in the development of a can be dividing in the following activities [3]: software product. SDLC is also called the software process ∑∑ Understanding the problem and it is the lifeline of any Software Development Model. ∑∑ Decide a plan for the solution Software Processes decide the survival of a particular software development model in the market as well as in ∑∑ Coding for the designed solution software organization and Software testing is a process of ∑∑ Testing the definite program finding software bugs while executing a program so that we get the zero defect software. The main objective of software These activities may be very complex for large systems. So, testing is to evaluating the competence and usability of a each of the activity has to be broken into smaller sub-activities software. Software testing is an important part of the SDLC or steps. These steps are then handled effectively to produce a because through software testing getting the quality of the software project or system. The basic steps involved in software software. Lots of advancements have been done through project development are: various verification techniques, but still we need software to 1) Analysis and Specification: The goal of be fully tested before handed to the customer. this phase is to recognize the accurate necessity of the customer and document them properly in a natural Keywords: Black box testing, Grey box testing, Software language. It contains a description of what the system will Development Life Cycle (SDLC), Software Development do without describing how it will be done. The document Process (SDP), Verification and validation, White box which contains the of the user in a proper testing. manner is called the Software Requirement Specification (SRS). I. Introduction 2) Design: The main aim of design phase is giving the structural form to the requirements with suitable Software development organizations follow some process programming language. In this phase the software when developing software. In small organizations, the process visibility and working of software is designed. This is usually not written down. But in developed organizations, work is documented and known as Software Design the process is written down and is actively implemented. The Description (SDD) document. main component of any Software Development Process (SDP) 3) Implementation and : In this phase coding is the life cycle model on which the software is developed. part is implemented smoothly is the SDD is properly The particular life cycle model significantly affects overall life complete in the earlier design phase. In the unit testing cycle costs associated with a software product. Life cycle of the small modules or functioning units of the software are software start from the exploration and ends at the retirement tested. And in testing part software is examine and doing of the software [1]. the modification in the coding if required. In the IEEE standard Glossary of Software Engineering 4) Integration and : The objective of unit Terminology, the software life cycle is: “the period of time testing is to determine that each independent module that start when a software product is conceived and ends when is correctly work. But unit testing is not able to test the product is no longer available for use. The software life the interface between the modules are also correct and cycle typically includes a requirements phase, design phase, function correctly. So for that is implementation phase, test phase, installation and check out required. And system testing involves the testing of the phase, operation phase, and maintenance phase and sometimes entire system, whereas software is a part of the system. retirement phase”. This phase is essential to develop confidence in the Software Testing: Essential Phase of SDLC and a Comparative Study of Software Testing Techniques 39 software through up gradations and deletion of out of dated part of the software during the usage age of the developers before software is delivered to the customer installed and is operational. phase software. or released in the market. doing the error correction in the coding part, improvement of capabilities of the software through up gradations and 5) Operation and Maintenance: Software maintenance is a task come across the development phases of the software, deletion of out of dated part of the software during the when the software is delivered to the customer’s site, usage age of the software.

Requirement analysis and specification

Operation and Design Maintenance Software Development Life Cycle (SDLC)

Integration and Implementation System Testing and unit testing

Fig. 1: Software Development Life Cycle (SDLC) Fig. 1: Software Development Life Cycle (SDLC) II. Objective of Testing III. Verification and Validation

The main objective of the software testing is to find out the The terms ‘Verification’ and ‘Validation’ are frequently used in the software testing world but the meaning of these terms errors and remove these errors to improve the quality of the II. OBJECTIVE OF TESTINGare mostly unclear and doubtful. Some time user and developer software. Maximum part of the software development budget is both are confused in the verification and validation of the used inThe the main software objective testing of the phase software of thetesting SDLC. is to find out the errors andsoftware remove these and errorsthey toare improve not able the toquality differentiate of between them. the software. Maximum part of the software development budget is usedLots in theof peoplesoftware use testing verification phase of the and SDLC. validation interchangeably but both have different meanings [10].

Table I: Difference Between Verification and Validation III. VERIFICATION AND VALIDATION Verification Validation The terms ‘Verification’ and ‘Validation’ are frequently used in the software testing world but the meaning of In the Verification, the software or application is verified that they Validation determines whether software or application meetthese all termsthe requirements are mostly unclear which and are doubtful. written Some down time in theuser SRS. and developermeets both the are customer confused expectationsin the verification and and requirements or not. The main activities which are performed during the verification In the validation part of the software, different types of test- part of the software are Reviews, Meetings and Inspections. ing is performed on the software, like black box testing, white box testing, etc. No need to execute the codes of the System or Application under In the validation part of the software, execution of code is Verification. must to validate the software. In verification process only check the output on the basis of input Validation process is only checked that the software is ac- which is earlier recorded. cepted or not by the user. Cost of Verification is less than as comparison to Validation. Validation process is more costly than Verification. 40 International Journal of System and Software Engineering Volume 5, Issue 2, December 2017

Verification Validation Verification gives the answer of the question: Are we building Validation gives the answer of the question: Are we build- the product right? ing the right product? In verification, manually checking of documents is done. But in Validation checking, software is checked through various tools and activities. correct in terms of requirements and functionality. It is done at the lowest level. The main goal of unit testing IV. Softwareis to separate Test eaching part Strateg of the programies and show that the2) individualIntegration part of Testing the software: Integration is correct in meansterms of combine. requirements and functionality. Unit testing cannot catch eachIntegration and every testing bug in is software. defined It as is theimpossible testing toof combined Software testing strategies includes various software parts or module of a software to check the functionality evaluate every execution path in every software [7]. design methods for a well prepared series of steps for successful if each part or module work properly. Integration testing testing of software. These strategies are generally developed by can be done in two ways: Bottom-up integration testing tester, project manager2) Integration and software Testing :engineers. Integration Theremeans arecombine. four Integrationand testing Top-down is defined integration as the testing testing of combined [6]. parts types of Software Testing Strategies [6]: or module of a software to check the functionality if each 3) partSystem or module Testing work: Systemproperly. testingIntegration test testing the entire can system. 1) Unit Testing: Unit is the smallest module i.e. smallest Once all the modules are integrated, than whole system be done in two ways: Bottom-up integration testing and Top-down integration testing [6]. set of lines of codes which can be tested. This type of is tested to see that it fulfill all the requirements. System testing performed by the developers. Testing is done by testing is based on the functional and requirements the respective3) Systemdevelopers Testing on: Stheystem individual testing test unit the of entiresource system. Oncespecification all the modules ofare integrated,the system. than whole But non system functional quality code. The goalis testedof unit to testingsee that isit tofulfill isolate all the each requirements. part of System testingattributes is based like onreliability the functional and securityand requirements are also checked the program andspecification show that of individual the system. parts But nonare correctfunctional in quality attributesin system like reliabilitytesting. This and securitytype of aretesting also ischecked performed by a terms of requirements and functionality. It is done at the specialized team for testing [6]. in system testing. This type of testing is performed by a specialized team for testing [6]. lowest level. The main goal of unit testing is to separate 4) : The main aim of acceptance testing each part of the program and show that the individual is to test whether the system meets all the specifications part of the4) softwareAcceptance is correct Testing in: Theterms main of requirementsaim of acceptance testingand is requirements to test whether of thethe customersystem meets and allalso the give assure and functionality.specifications Unit testing and requirements cannot catch of th eeach customer and and also givethat assure the system that the is system working is working rather thanrather to than find to errors. It is every bug in software.find errors. It It is is impossibleconducted by to the evaluate Quality everyAssurance Team [7].conducted by the Quality Assurance Team [7]. execution path in every software [7].

Unit Testing (Individual Components

SOFTWARE Integration System Testing Testing TESTING ( Components STRATEGIES (System as a Group) whole)

Acceptance Testing (System as a whole: custumer Requirements)

Fig. Fig2: Software. 2: Software Testing Testing Strategies Strategies [6] [6] V. Software Testing Methodologies A. White Box Testing

In software testing phase of SDLC, various type of software White box testing mainly focuses on internal logic and structure testing Methodologies are used by the developers and tester of of the code. White-box is done when the programmer has full V. SOFTWARE TESTING METHODOLOGIES the system / application. These methodologies are: knowledge on the program structure. In white box testing ∑∑ White Box Testing internal details and structure of system is made visible. It is ∑∑ Black Box Testing also called clear box testing. To finding the errors in the system, ∑∑ Grey Box Testing tester should have complete knowledge of how the system Software Testing: Essential Phase of SDLC and a Comparative Study of Software Testing Techniques 41 modules are interact. This testing is rarely used practically for ∑∑ Extra lines of codes can be removed which can bring in large systems for debugging the errors. But it is best for web hidden defects. services applications [8]. Disadvantages [9]: Advantages [9]: ∑∑ Skilled tester is needed to perform white box testing. ∑∑ It becomes very easy for the tester to find out which type ∑∑ It is not possible to check every part of the codes to find of data can help in testing the system because the tester the errors. has knowledge of the source code. ∑∑ It is required specialized tools.

Desk Checking

Static White Box Testing Code walkthrough

Formal Inspections

White Box Testing

Control Flow

Testing Structural White Box Testing Basis Path Testing

Data Flow testing

Loop Testing

Fig. 3: DifferentFig. 3Forms: Different of forms White of White Box BoxTesting Testing [8] [8]

The various forms of White Box Testing [8]: 7) Loop Testing: It exclusively focuses on the validity of 1) Desk Checking: It is the Theprimary various formsstage of of White the Box testing. Testing The [8]: loop construct. programmer fully involved in it. 2) Code Walkthrough: In this1) testingDesk Checking process: It is thea primarygroup stageof of theB. testing. Black The Box programmer Testing fully involved in it. technical people go through2) theCode code. Walkthrough This is: In one this testingtype ofprocess a group of technical people go through the code. This is one type semi-formal review technique.of semi-formal review technique. It is based on requirements specifications and there is no need to test the coding of the system. This technique work without 3) Formal Inspections: It is 3) the Formal economical Inspections and: It is efficientthe economical and efficient method of finding bugs in the system. It’s a formal having any knowledge of the system coding, that’s why it is method of finding bugs in the reviewsystem. and It’saimed a atformal detecting review all faults, violations and other side effects. called black box testing. It is purely based on user’s point of and aimed at detecting all faults,4) Control violations Flow Testing and: otherIt is a sidestructural testing strategy that uses the program control flow as a model view. The tester is unaware to the system coding. The tester effects. control flow and favors more but simpler paths over fewer but complicated path. will directly interact with the user interface by providing inputs 5) Basis Path Testing: Basis path testing allows the test case designer to produce a logical complexity measure 4) Control Flow Testing: It is a structural testing strategy and checking the outputs without knowing how and where the of procedural design and then uses this measure as an approach for outlining a basic set of execution paths. that uses the program control flow as a model control inputs worked upon. flow and favors more but6) simpler Data Flow paths Testing over: In thisfewer type ofbut testing the control flow graph is annotated with the information about complicated path. how the program variables are define and used.The various forms of Black Box Testing [8]: 5) Basis Path Testing: Basis7) path Loop testing Testing: Itallows exclusively the focu testses on the validity1) Equivalenceof loop construct. Partitioning: This technique divides the case designer to produce a logical complexity measure domain of a program into equivalence classes from of procedural design and then uses this measure as an which test cases can be derived input, so it can reduce the approach for outlining a basic set of execution paths. number of test cases. 6) Data Flow Testing: In this type of testing the control flow 2) Boundary Value Analysis: It focuses on testing at graph is annotated with the information about how the boundaries, or where the extreme boundary values are program variables are define and used. chosen. It includes minimum, maximum, just inside / outside boundaries, error values and typical values. 42 International Journal of System and Software Engineering Volume 5, Issue 2, December 2017

3) Fizzing: This technique feeds random input to 6) All : The main objective of this technique is application. It is used for finding implementation bugs, to execute all possible path combinations of each pair of using malformed / semi-malformed data injection in an input parameters. Its main objective is to have a set of test automated or semi-automated session. cases that covers all the pairs. 4) Cause-Effect Graph: In this technique, testing begins by creating a graph and establishing the relation between 7) State Transition Testing: This type of testing is useful for effect and its causes. testing state machine and also for navigation of graphical 5) Testing: It can be applied where input user interface. domain is very small, but too large to accommodate exhaustive testing.

Equivalence Partitioning

Boundary Value Analysis

Fuzzing

Black Box Testing Cause-Effect Graph

Orthogonal Array Testing

All Pair Testing

State Transition Testing

Fig. 4:Fig Different. 4: Different Forms Forms of Blackof Black Box Box Testing Testing [8] [8] ∑∑ In this testing limited coverage of the coding because Advantages [9]: selected numbers of test scenarios are performed. ∑∑ Code access is not required. ∑∑ Some specific code segments or error prone areas are not ∑∑ Well usableAdvantages for large [ 9]:coding systems. tested at all. ∑∑ Does not require Code having access knowledge is not required. of programming ∑∑ Inefficient testing because tester has limited knowledge. languages.  Well usable for large coding systems. ∑∑ Not required anyC. skilled Grey tester. Box Testing C. Grey Box Testing  Does not require having knowledge of programming languages. ∑∑ Testing is done from user’s point of view. Grey box testing is basically combining the benefits of both ∑∑ Programmer and Not tester required both any are skilled independent tester. of each black box testing and white box testing. It is technique to test Grey box testing is basically combining the benefitsthe application of both withblack having box testing a limited and knowledge white box oftesting. the internal It is technique other.  Testing is done from user’s point of view. working of the software / application. Therefore, a tester can to test the application with having a limited knowledge of the internal working of the software / application. Disadvantages [8]: Programmer and tester both are independent of eachauthenticate other. both the output of the user interface and also the ∑∑ The test cases Therefore, are difficult a tester to can design authenticate without both clear the routeoutput that of leadsthe user to that interface user interface and also output. the route Gray-box that leads testing to that user specification. mostly used in integration testing [8]. Disadvantagesinterface [8]: output. Gray-box testing mostly used in integration testing [8].  The test cases are difficult to design without clear specification.  In this testing limited coverage of the coding because selected numbers of test scenarios are performed.  SomeGrey specific box code segments or error proneWhite areas box are not tested at all. Black Box testing = Testing + Testing  Inefficient testing because tester has limited knowledge.

Tester only test the user interface part of the software through black box testing, but in grey box testing, the tester has access to design documents and database also. Having this knowledge, a tester can prepare better test cases and test scenarios while making a test plan [9]. Grey-box testing is a perfect fit for Web-based applications.

Gray-Box Testing Techniques:

1) : This type of testing use as subset of all possible combinations and provides maximum code coverage with minimum test cases. 2) Matrix Testing: In this testing technique tester used all the variables that exist in the system or application. In matrix testing the status report of the project is stated. 3) : If new changes are made in software, regression testing implies running of test cases to check whether the changes in the previous version are properly work in the new version of the system / application. 4) Pattern Testing: This testing performed on the historical data of the previous system defects and this testing technique digs within the code and determines why the failure happened. Pattern testing verifies the good application for its architecture and design.

Advantages [9]:  It combines the benefits of both black box and white box testing.  A grey box tester can design excellent test cases for system / application because the tester have both the knowledge like function or input output of the software as well as the coding part of the software.  Tester can test the system/application from the users point of view instated of designer. Software Testing: Essential Phase of SDLC and a Comparative Study of Software Testing Techniques 43

Tester only test the user interface part of the software through technique digs within the code and determines why black box testing, but in grey box testing, the tester has access the failure happened. Pattern testing verifies the good to design documents and database also. Having this knowledge, application for its architecture and design. a tester can prepare better test cases and test scenarios while Advantages [9]: making a test plan [9]. ∑∑ It combines the benefits of both black box and white box Grey-box testing is a perfect fit for Web-based applications. testing. Gray-Box Testing Techniques: ∑∑ A grey box tester can design excellent test cases for 1) Orthogonal Array Testing: This type of testing use system / application because the tester have both the as subset of all possible combinations and provides knowledge like function or input output of the software maximum code coverage with minimum test cases. as well as the coding part of the software. 2) Matrix Testing: In this testing technique tester used all the ∑∑ Tester can test the system / application from the users variables that exist in the system or application. In matrix point of view instated of designer. testing the status report of the project is stated. Disadvantages [9]: 3) Regression Testing: If new changes are made in software, regression testingDisadvantages implies [9]: running of test cases to check ∑∑ Test coverage is limited. whether the changes Test in coverage the previous is limited. version are properly ∑∑ The test cases may be duplicated because may be designer work in the new versionThe test of cases the may system be duplicated / application. because may be designer has alreadyhas execute already the sameexecute test cases. the same test cases.  4) Pattern Testing: ThisTesting testing every possibleperformed input streamon the is unrealistic.historical ∑∑ Testing every possible input stream is unrealistic. data of the previous system defects and this testing

Orthogonal Array Testing

Matrix Testing

Grey Box Testing

Regression Testing

Pattern Testing

Fig.Fig .5: 5: Different forms forms of Grey of Box Grey Testing Box [8] Testing [8]

VI. A Comparison of Testing Methods

The following table lists the main differences between black-box testing, grey-box testing, and white-box testing [9]: VI. A COMPARISON OF TESTING METHODS

The following table lists the main differences between black-box testing, grey-box testing, and white-box testing Table II: Comparison of Testing Methods [9]: Black-Box Testing Grey-Box Testing White-Box Testing TABLE II: COMPARISON OF TESTING METHODS Tester does not need to know the internal The tester has limited knowledge of Tester has full knowledge of the internal working of the system / application. the internal workings of the applica- workings of the application. Black-Box Testing tion. Grey-Box Testing White-Box Testing Also known as closed-boxTester does not testing need to or know the AlsoThe tester known has limited as translucent knowledge of testing. Tester has fullAlso knowledge known of as the clear-box testing or struc- .internal working of the system / the internal workings of the internal workingstural testing. of the application. application. application. Black box testingAlso is performedknown as closed by-box the testing GreyAlso knownbox Testing as translucent is performed testing. Also by known Itas isclear normally-box testing done or by testers and devel- end-users and also by testers and devel- end-users and also by testers and opers. opers. developers. 44 International Journal of System and Software Engineering Volume 5, Issue 2, December 2017

Black-Box Testing Grey-Box Testing White-Box Testing Testing is based on external expectations. Testing is done on the basis of high- Tester has fully knowledge of the inter- On the users point of view. level database diagrams and DFDs. nal structure of the application so they can design test case accordingly. It is less time consuming testing. It is partly time-consuming It is the most time-consuming type of testing. Not suited for algorithm testing. Not suited for algorithm testing. Suited for algorithm testing. This can only be done by trial-and-error Data domains and internal boundaries Data domains and internal boundaries method. can be tested, if known. can be better tested.

VII. Summary of Various Types of Testing Which under workload. Held in SDLC Hence, software testing is one of the major parts of the SDLC and it should be carried out effectively for measuring the quality Various types of testing involves throughout SDLC are: of the product. 1) Acceptance Testing: Acceptance Testing is a level of the software testing where a system is tested for acceptability. VIII. Conclusion 2) Ad-Hoc Testing: Ad-hoc testing is used to find errors that are not found by other testing types. Therefore, it is Software Development Life Cycle is a procedure used by the performed without planning or documentation. software development industry to design, develop and test high 3) Alpha and Beta Testing: Alpha testing is the testing done quality software’s. The main aims of SDLC are to produce by testing teams at development site after the acceptance high-quality software that meets all the expectations of the testing. When the testing performed by the real users in customer and develop software within a time period and within the real environment, than this type of testing is called a cost estimates. Beta testing. Quality of the any Software Development Company is the 4) Black Box Testing: It is based on requirements main focus and without measuring, developer cannot be sure specifications and there is no need to test the coding of of software quality. So the software testing techniques are used the system. This technique work without having any to measure the quality of software. Software testing executes knowledge of the system coding. the software with intention to find the errors in the software. 5) White Box Testing: White box testing is the testing of This paper provides the various types of testing which perform software’s internal coding and infrastructure. in each and every phase of the SDLC. And also describe the comparison of three main techniques of software testing. 6) Automated Testing: Using automation tools to write and execute test cases is known as automation testing. eferences 7) Grey Box Testing: It is a combination of black box testing R and white box testing. [1] K. K. Aggarwal, and Y. Singh, Software Engineering, 8) Integration Testing: In integration testing the individual New Age International Publishers, N. D. tested units are grouped together and the interface [2] R. Pressman, Software Engineering: A Practitioner’s between them is tested. Approach, 6th ed., McGraw-Hill Publication, N. D. 9) Regression Testing: Regression type of testing is [3] P. Jalote, An Integrated Approach to Software performed when the changes are made in the developed Engineering, 3rd ed., Springer Science Business Media software to test the performance of the software. Inc., 2005. 10) : Stress testing is the process of determining [4] S. M. Metev, and V. P. Veiko, Laser Assisted the ability of a software to work under unfavorable nd conditions. Microtechnology, 2 ed., R. M. Osgood, Jr., ed., Berlin, Germany: Springer-Verlag, 1998. 11) UAT (User Acceptance Testing): This is the last phase of the testing. It is performed by the end users of the [5] Md. E. Khan, and F. Khan, “Importance of software test- software. ing in software development life cycle,” International 12) : The main aim of this kind of testing is Journal of Computer Science Issues, vol. 11, no. 2, pp. protect data and maintain the functionality of the system 120-123, March 2014. and tests the skill of the software to prevent unauthorized [6] R. K. Chauhan, and I. Singh, “Latest research and de- access to the resources and data. velopment on software testing techniques and tools,” 13) Performance Testing: Performance testing is basically International Journal of Current Engineering and used to test whether the software will performed well Technology, vol. 4, no. 4, pp. 2368-2372, August 2014. Software Testing: Essential Phase of SDLC and a Comparative Study of Software Testing Techniques 45

[7] Anshula, and K. Kumar, “Evolution of software testing and Mobile Computing, vol. 3, no. 6, pp. 579-584, June procedures and tools,” International Journal of Recent 2014. Research Aspects, vol. 3, no. 4, pp. 51-55, December [9] https://www.tutorialspoint.com/software_testing/soft- 2016. ware_testing_methods.htm [8] A. Bansal, “A comparative study of software testing [10] http://softwaretestingfundamentals.com/ techniques,” International Journal of Computer Science verification-vs-validation/