Software Testing: Essential Phase of SDLC and a Comparative Study Of
Total Page:16
File Type:pdf, Size:1020Kb
International Journal of System and Software Engineering Volume 5 Issue 2, December 2017 ISSN.: 2321-6107 Software Testing: 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: Software Development 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) Requirement 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 requirements 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 Unit Testing: 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 System Testing: 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 integration testing 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. Software maintenance 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, gray 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 ofTesting 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 test case 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