Software Testing Techniques: a Comprehensive Analysis

Software Testing Techniques: a Comprehensive Analysis

SOFTWARE TESTING TECHNIQUES: A COMPREHENSIVE ANALYSIS 1SHLOAK CHOPRA, 2KSHITIJ MUNDRA, 3SWARNALATHA P. 1,2,3School of Computer Science Engineering, Vellore Institute of Technology, Vellore Abstract - As our dependence on the software systems is increasing at a breakneck speed- it has become paramount to develop a threshold amount of reliability and trust between us and the software systems. Software Testing is becoming paramount to ensure the promised and expected functional and non-functional requirements are fulfilled by every software system. Software testing has become an inherent part of the Software Development Lifecycle, and has become sacrosanct to test and maintain the sanctity of software. The testing methodologies and techniques should be enhanced and implemented in a proper manner, to ensure that quality is embedded in the software from its conception to deployment. This paper aims to elaborate on existing testing methodologies and discuss upon their application and relations between one another for incorporating better quality assurance. It also elaborates upon some improvements in certain testing methods and techniques. Keywords - Black-box testing, Grey-box testing, Testing Methodologies, White Box Testing I. INTRODUCTION third phase of testing is Test Execution where the test cases previously generated are put to use, and the In recent times, our dependence on software system bugs that are relevant are reported in the following has been growing exponentially and with this phase, which is called the Test Reporting Phase. The growing dependence, the concern for reliability and final stage of testing cycle is Test Result Analysis security in using these software systems is evolving. where the developer does the defect analysis for the Software Engineering is of great use in the fields of software, and this process can be handled along with management systems, system dynamics and computer the software clients if he has a proper understanding science [1]. It has become necessary to embed testing of the development techniques used for development techniques at each level in the Software Development and his requirements [4]. The following terms are Lifecycle i.e. Requirement Specification, Analysis, usually used in the testing procedures and have been Design Development, Code Development, explained in the simplest of means below: Deployment of Software and Maintenance phase. The Verification: It is a concept in which it is guaranteed incorporation of testing methodologies at each phase that the software system that has been designed is guarantees the authenticity and quality at that level. working in a manner that is acceptable and suitable to The flaws at any particular level can cause serious the user base. implications at the cascading levels [2]. The testing process can be divided into various types. When the classification is done based on the stage it is opted for, then it can be divided into- Unit Testing, Integration Testing, Functional Testing, System Testing and Acceptance Testing. While the first four are covered by the software developer or by an engineer who is responsible for quality assurance known as software tester [3], the client or the target users of the software generally do the last. The whole process of testing can also be categorized upon the knowledge of the system undergoing the test; it can be broadly divided into Black Box, Grey Box and White Box Testing. There are various types of testing strategies that are applied with different aim and objective to test a software application. The Testing Cycle can be broadly categorized into several phases, ranging from the preliminary Test Planning to the final Test Results. The foremost phase is Test Planning and is the review and documentation of all the processes that need to be carried on during the entire testing process. Test Case Development is the next phase in the testing cycle, in which the main aim is the development of test cases, which would be used for testing the software. The Figure 1: Testing Techniques-Classification Proceedings of ASAR International Conference, 24th December, 2017, Chennai, India 60 2016 6th International Conference on Information and Communication Technology for The Muslim World Software Testing Techniques: A Comprehensive Analysis Validation: This is a concept in which it is C. Loop Testing: The loops are generally avoided determined that the software system is developed as it while evaluating and testing CFGs, because the loop was expected. testing methodology is intricately delicate and drastically different. Each time when the loop is II. EXISTING TESTING TECHNIQUES traversed, it is counted as a distinct path, but when two or more loops are concatenated, the number of There are a plethora of existing techniques applied in distinct path multiplies, and as the loop is repeated, the domain of Software Testing, but they can be the combinational complexity exponentially increases broadly be categorized under the masthead of- White [8]. Using the concept of cyclomatic complexity, an Box Testing, Black Box Testing and Grey Box often-used software metric we can gauge the logical Testing [5]. The first step is to design proper test complexity of a module or modules. cases for each type of testing technique. D. Conditional Testing: This type of testing aims at White Box Testing Techniques: testing all the possible outputs pertaining to any relational or Boolean operator used in any of the The most trivial process of testing the most basic unit modules of the software system. This can be applied of the software- its functionality and the internal in the code development phase of the SDLC, in order architecture of the software system. This to promote quality and reduce the testing time [9]. methodology of testing requires a certain degree of E. Branch/Decision Testing: Branch testing is closely programming expertise and experience in this domain related to decision testing methodology, and for test to design specific test cases. White box testing is also items with only one entry point the branch test called Security Testing technique and help to certify coverage is equivalent to the decision test coverage. It whether the information system secure the data and aims at testing the data flow between modules and perform the corresponding functionality [6]. White produces better results for finite state machines. This box testing techniques are efficient for solving applied technique finds a set of paths minimally problems as the errors can be detected before they which contain all primary and internal gate-level cause any serious implications. input and output lines. It presents a more viable design and test approach. A criteria is used for branch A. Control Flow Testing: The structural or selection, which is called the fitness-function. The implementation view contains many components, two major heuristics used for this fitness function are modules or sub-systems that interact with one the approach level and branch level distance. The another. The complex interactions can be subdivided approach level distance is a more important heuristic into- interactions that occur along an execution path, in this regard, and helps in increasing the efficiency in such paths there is a concurrent flow of errors of branch testing [for details see 10]. which flows down the entire execution path. The second type are the ones that are specifically related F. Basis Path Testing: Every program contains a to some data items in execution, here the ones defined number of execution paths. This technique aims to latter depend on the earlier ones for values and analyse only one of those which is the basis or at- definitions. Control Flow Graphs (CFGs) are least covers most of the intrinsic concepts of considered a specific case of Finite-State Machines execution throughout a program. A basis set is a finite (FSMs) which are used to check the entry, exit, set of linearly independent execution paths, each of processing and branching nodes for control flow which have to be tested at least once. Each errors. independent path has at least one node different from each of all other paths [11]. When tested based on B. Data Flow Testing: It is one of the oldest testing only the logical structure of the program, many techniques that has been applied in software testing infeasible paths are also tested decreasing the for more than thirty years now. The data objects are efficiency of the testing technique, but when this the most basic unit of any software model, and technique is applied with the control flow graph sharing data objects is considered the weakest form of generated from the code of the software module being coupling and the strongest form of cohesion in a tested the efficiency can be improved. On the basis of software system. The primary objective of this dependence relationships of the predicates involved a method is to derive a set of test cases which execute baseline path can be selected instead of the longest the paths between the definition and the path which has many branch nodes, thus increasing corresponding use of those data items. The data flow the overall efficiency [12]. can be tested through Data Flow Graphs (DFGs) which are similar to the CFGs mentioned earlier. The Black Box Testing Techniques: criterion of Data Flow Testing in general requires that definition use associations (duas)should be covered. The testing approach applied in this type of testing It aims to achieve that each of the duas should be does not include the implementation level detail, as it clearly defined and executed at least once [7]. focuses on the various functionalities that were Proceedings of ASAR International Conference, 24th December, 2017, Chennai, India 61 2016 6th International Conference on Information and Communication Technology for The Muslim World Software Testing Techniques: A Comprehensive Analysis expected from the software by the clients, this is collaborated with the help of the requirement specification document.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    5 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us