Systematic Selection framework For Software Testing Tools

Systematic Selection framework For Software Testing Tools

البحث العلمي المؤتمرات العلمية ابحاث المؤتمرات العلمية

اسم الباحث     :    Asma Gamal Al-Sharjabi Asma Abdulghani Al-Shargabi
سنة النشر     :    2022
ملخص البحث     :   

Abstract

This research aims at developing a comprehensive framework for testing tools classification. This framework would help developers choosing the appropriate tool for particular software , help solving  the problem of avoid using the testing tools , and also help tools developers to discover the improvement areas for their products. Through an analytical study on the criteria for classifying, comparing, and selecting the test tools based on the literature review. then develop a comprehensive framework for testing CASE tools based. This framework will be developed using multiple views of classifications. This model by applying selected and classified criteria through Multi-Criteria Decision Making (MCDM) AHP and TOPSIS ,this model is developed for help testers and programmers to choose the appropriate tool for the software they want to test according to the criteria they specify.

Keywords: Computer-Aided Software Engineering, Computer, Software Development Life Cycle ,Multi-Criteria Decision Making , Technique for Order Preference by Similarity to Ideal Solution, Analytic Hierarchy Analytic Hierarchy Process.

1.   Introduction

Software is one of the most important aspects of technological advances in the world. Software affects all aspects of our daily life and control most other fields and disciplines [21][20]. For this reason, there are increasing interest from the research community and also the pioneers in software market to improve the software development process and practices. In addition, software represent a basic and essential component of the new computation trends such as ubiquitous computing, internet of things, embedded systems, and robotics.

Within the heart of software development life cycle (SDLC), testing represents a milestone process to check the validity and quality of software [20][23]. In software industry, testing occupies around 40% of the SDLC regardless the software development approach that is used [1][4][38]. Indeed, testing accompanies all other processes of SDLC, even those earlier processes such as requirements engineering and system design. The early testing in SDLC works to avoid defects in the code which is the basic task of testing [20][23][12][19]. Testing is the diagnosis tool that provide the developers with information on the quality of software artifacts and products through the different phases of SDLC. Therefore, testing is across-activity that span all other activities and  all software artifacts. On the other hand, the results of testing is a vital factor that the decisions made based on. So, testing should be managed and achieved using the best practices to develop a high quality software with cost-effective approaches [12][19].

In general, software testing aims at: (1) confirming that the software meets its specification for both functionality and non-functionality/quality aspects; (2) insuring the compatibility and consistency between the different software artifacts such as the requirements with design and development; (3)insuring that the software responses meet correctly for both valid and invalid inputs; (4)proving that the software is fit for its purposes within the real environment; (5) detecting  faults/bugs/failures in software and judging the software readiness for release [12][19][4].

In spite of the important role that the testing plays within the SDLC, testing stills face many obstacles.  One basic  problem with software testing is that the exhaustive testing is not impossible. Testing for all combinations of inputs is so difficult;  even with simple software. These  difficulties increase with manual testing. This means that the critical defects could stay hidden and difficult to discover in manual testing. The main problem is the time/cost as we need to repeat many test cases after each correction and repairing for any defect because of the relations between requirements. This processes consumes a lot of time and effort [12][19][44]. The software testing practices adopt several strategies  to choice the tests that are feasible in terms of the allowed time and resources [6] [12][19]. Another major problem is choosing the correct and suitable testing type as there are many variant testing types based on the size of software, the programming language, the purpose of the test, and finally the level of test [38][6] [12][19]. Accordingly, there are functional testing and non-functional testing. Non-functional testing combine a wide spectrum of quality testing types such as  compatibilityscalability, usability, and performance testing [12][6][44]. The testing technique that is used to derive the test cases is traditionally divided into two types; black-box and white-box testing [6] [12][19]. Moreover, testing could be static or dynamic according to the way the defects are detected. Dynamic testing discovers the bugs by running code whereas static testing focuses on inspection both manually or using testing tools. Beside all above testing has four levels; unit testing, integration testing, component interface testing, and system testing. After each correction, testers should retest the target feature and also test all relative features. These two types of testing are confirmation testing and regression testing. On the other hand testing differ according to the application area, the SDLC approach such as agile or waterfall approach, and the computational area such as cloud computing, web applications, or service-oriented software [6][12][19][73][39].

All above testing types and techniques could be manual or automated. Automated testing save the testing time significantly. The challenge is how to choose the correct testing type/techniques and how to choose the appropriate testing tools accordingly. In addition, conduct testing using the tools still has some disadvantages in terms of learning how to perform test .Beside, the selected tools for testing may not be provided with enough functions for particular test . Since there is a lake of clear and comprehensive classification for testing tools based on multi-criteria model [25][22][15][12].

Our research aims at developing a comprehensive framework for testing tools classification. This framework would help developers choosing the appropriate tool for particular software , help solving  the problem of avoid using the testing tools , and also help tools developers to discover the improvement areas for their products.

رجوع