scholarly journals Survey on Various Testing Techniques and Strategies for Bug Finding

2013 ◽  
Vol 11 (1) ◽  
pp. 2150-2155
Author(s):  
Mohit Kumar ◽  
Geetika Gandhi ◽  
Sushil Garg

Software testing is verification and validation process aimed for evaluating a program and ensures that it meets the required result. The main goal of software testing is to uncover the errors in software. So the main aim of test cases is to derive set of tests that have highest probability of finding bugs. There are many approaches to software testing, but effective testing of any software product is essentially a tough process. It is nearly impossible to find all the errors in the program. The major problem in testing is what would be the strategy that we should adopt for testing. Thus, the selection of right strategy at the right time will make the software testing efficient and effective. In this paper I have described software testing techniques which are classified by purpose.

Author(s):  
GIRIDHAR TRIVEDI

Sanity testing is the process of testing the basic functionality of any software product. Sanity testing would take considerable amount of time by test engineer to test the product. If sanity testing itself fails, then the effort put on other testing techniques would go waste, as the build is declared un-usable if Sanity fails. Hence it is a good idea to automate sanity testing process so that, same sanity suite can be run as soon as a new build arrives. This automation tool is developed for a specific product, Media Access Cross Connect. The tool is being divided into two parts. First part, records all test cases in the background, whenever a test engineer performs sanity testing and saves it in XML file format. Second part, replays same configurations using a script and carries out verification and validation for the response data to decide success or failure of the test cases. It is record once run many times activity.


2020 ◽  
Author(s):  
Mubarak Albarka Umar

<p><i>Software Testing is the process of evaluating a software program to ensure that it performs its intended purpose. Software testing verifies the safety, reliability, and correct working of software. The growing need for quality software makes software testing a crucial stage in Software Development Lifecycle. There are many methods of testing software, however, the choice of method to test a given software remains a major problem in software testing. Although, it is often impossible to find all errors in software, employing the right combination of methods will make software testing efficient and successful. Knowing these software testing methods is the key to making the right selection. This paper presents a comprehensive study of software testing methods. An explanation of Testing Categories was presented first, followed by Testing Levels (and their comparison), then Testing Techniques (and their comparison). For each Testing Levels and Testing Techniques, examples of some testing types and their pros and cons were given with a brief explanation of some of the important testing types. Furthermore, a clear and distinguishable explanation of two confused and contradictory terms (Verification and Validation) and how they relate to Software Quality was provided.</i></p>


2021 ◽  
Vol 50 (3) ◽  
pp. 443-457
Author(s):  
Thamer Alrawashdeh ◽  
Fuad ElQirem ◽  
Ahmad Althunibat ◽  
Roba Alsoub

The regression testing is a software-based testing approach executed to verify that changes made to the softwaredo not affect the existing functionality of the product. On account of the constraints of time and cost, it isimpractical to re-execute all the test cases for software whenever a change occurs. In order to overcome sucha problem in the selection of regression test cases, a prioritization technique should be employed. On the basisof some predefined criterion, the prioritization techniques create an execution schedule for the test cases, sothe higher priority test cases can be performed earlier than the lower priority test cases in order to improvethe efficiency of the software testing. Many prioritization criteria for regression test cases have been proposedin software testing literature; however, most of such techniques are code-based. Keeping in view this fact, thisresearch work has proposed a prioritization approach for regression test cases generated from software specificationswhich are based on the criterion of the Average Percentage Transition Coverage (APTC) by using arevised genetic algorithm. This criterion evaluates the rate of transitions coverage by incorporating knowledgeabout the significance of transitions between activates in the form of weights. APTC has been used as a fitnessevaluation function in a genetic algorithm to measure the effectiveness of a test cases sequence. Moreover, inorder to improve the coverage percentage, the proposed approach has revised the genetic algorithm by solvingthe problem of the optimal local solution. The experimental results show that the proposed approach demonstratesa good coverage performance with less execution time as compared to the standard genetic algorithmand some other prioritization techniques.


2019 ◽  
Vol 8 (3) ◽  
pp. 4265-4271

Software testing is an essential activity in software industries for quality assurance; subsequently, it can be effectively removing defects before software deployment. Mostly good software testing strategy is to accomplish the fundamental testing objective while solving the trade-offs between effectiveness and efficiency testing issues. Adaptive and Random Partition software Testing (ARPT) approach was a combination of Adaptive Testing (AT) and Random Partition Approach (RPT) used to test software effectively. It has two variants they are ARPT-1 and ARPT-2. In ARPT-1, AT was used to select a certain number of test cases and then RPT was used to select a number of test cases before returning to AT. In ARPT-2, AT was used to select the first m test cases and then switch to RPT for the remaining tests. The computational complexity for random partitioning in ARPT was solved by cluster the test cases using a different clustering algorithm. The parameters of ARPT-1 and ARPT-2 needs to be estimated for different software, it leads to high computation overhead and time consumption. It was solved by Improvised BAT optimization algorithms and this approach is named as Optimized ARPT1 (OARPT1) and OARPT2. By using all test cases in OARPT will leads to high time consumption and computational overhead. In order to avoid this problem, OARPT1 with Support Vector Machine (OARPT1-SVM) and OARPT2- SVM are introduced in this paper. The SVM is used for selection of best test cases for OARPT-1 and OARPT-2 testing strategy. The SVM constructs hyper plane in a multi-dimensional space which is used to separate test cases which have high code and branch coverage and test cases which have low code and branch coverage. Thus, the SVM selects the best test cases for OARPT-1 and OARPT-2. The selected test cases are used in OARPT-1 and OARPT-2 to test software. In the experiment, three different software is used to prove the effectiveness of proposed OARPT1- SVM and OARPT2-SVM testing strategies in terms of time consumption, defect detection efficiency, branch coverage and code coverage.


Author(s):  
SIRA VEGAS ◽  
NATALIA JURISTO ◽  
VICTOR BASILI

One of the main problems in software testing is the development of a suitable set of test cases so that the effectiveness of the test is maximised with a minimum number of test cases. A lot of testing techniques are now available for developing test cases. However, some of them are misused, others are never used and only a few are applied again and again. When developers have to decide what testing techniques(s) they should use in a project, they have little (if any) experiential information about the available testing techniques, their usefulness and, in general, how suited they are to the project. This paper presents the results of developing a characterization scheme for test technique selection. When instantiated for different techniques, the scheme should provide developers with enough information for choosing the best suited to their project. Thus, their decisions would be based on sound knowledge of the techniques, instead of perceptions, suppositions and assumptions.


Author(s):  
Mitsuhiro Kimura ◽  
Shigeru Yamada

It is of great importance for software engineers and managers to evaluate software testing-progress in a large-scale software production process, since tremendous software development resources must be consumed to achieve high quality and reliability of a software product. By focusing on the behavior of the digested test-case data observed in the testing process, we construct a stochastic model and derive several quantitative measures for software testing-progress evaluation. Actual data observed in the testing process are analyzed by the proposed model, and we discuss the applicability of our models.


The Component Based software development which reduces the time, budget and efforts compare to the traditional software development. The components are reusable, developed by third parties and available at Commercial-Of-The Self (COTS). Most recent technologies such embedded systems, mobile phones, control systems and other paradigms are developed with this concept. Software researchers should pay more attention on testing of Component Based technology. The software testing is the most commonly used technique for validating the product quality. It is something different from the traditional software development, due to the invisible source code and design make it very difficult to trace the faults. Software testing strategy is road map integrates test case design methods into well planned series of steps for successful construction of software. The selection right strategy at the right time will make the software product as robust. This paper highlights the various software testing challenges, difficulties, strategies and techniques in perspective of Component Based Software Development


The quality of the software is a very important aspect in the development of software application. In order to make sure there is the software of good quality, testing is a critical activity of software development. Thus, software testing is the activity which focuses on the computation of an attribute or the ability of either a system or program that decides if user requirements are met. There is a proper strategy for the design of software for which testing has to be adopted. The techniques of test case selection attempt at reduction of the test cases that need to be executed at the same time satisfying the needs of testing that has been denoted by the test criteria. In the time of software testing, and the resource will be the primary constraints at the time of testing since this has been a highly neglected phase in the Software Development Life Cycle (SDLC). The optimizing of a test suite is very critical for the reduction of the testing phase and also the selection of the test cases that eliminate unwanted or redundant data. All work in literature will make use of techniques of single objective optimization that does not have to be efficient as the code coverage will play an important role at the time of selection of test case. As the test case choice is Non-Deterministic, the work also proposes a novel and multi-objective algorithm like the Non-Dominated Sorting Genetic Algorithm II (NSGA II) and the Stochastic Diffusion Search (SDS) algorithm that makes use of the cost of execution and code coverage as its objective function. The results prove a faster level of convergence of the algorithm with better coverage of code in comparison to the NSGA II.


2020 ◽  
Author(s):  
Omdev Dahiya ◽  
Kamna Solanki ◽  
Amita Dhankhar

Most of the software organizations often strive hard while deciding the releasedates of their software product. This is because no organization wants to take riskswhere the fault is revealed in the developed product on the client-side. This will leadto expensive bug-fixes, and the image of the developer company is tarnished. On theother hand, testing beyond a particular time would lead to a loss of revenue for theorganization. The effective approach for handling the risky components will enablesoftware testers to identify more important test cases that can reveal faults associatedwith those components. After identification of those test cases, software testers work tofix fault sooner by managing the testing schedule by running such test cases earlier.Faults associated with hazardous components can also be detected sooner. In riskbased testing, the probability of a fault becoming a reality is assessed, and the damagethat this fault can cause when leading to failure is considered. This study haspresented an overall layout of risk-based testing. We have summarized the researchfindings of numerous researchers in this field. This will help the newcomers in thisfiled to provide a comprehensive source of information altogether. The futuredirection of this study will focus on proposing a novel technique for risk-based testing,considering different parameters together.


Sign in / Sign up

Export Citation Format

Share Document