Skip to main content
Ahmed Ghiduk
  • Jeddah, Makkah, Saudi Arabia
Abstract. Software testing takes a considerable amount of time and resources spent on producing software. Therefore, it would be useful to have ways to reduce the cost of software testing. The new concepts of spanning sets of entities... more
Abstract. Software testing takes a considerable amount of time and resources spent on producing software. Therefore, it would be useful to have ways to reduce the cost of software testing. The new concepts of spanning sets of entities suggested by Marre ́ and Bertolino are useful for reducing the cost of testing. In fact, to reduce the testing effort, the generation of test data can be targeted to cover the entities 384 A.M. Khamis, M.R. Girgis, A. S. Ghiduk in the spanning set, rather than all the entities in the tested program. Marré and Bertolino presented an algorithm based on the subsumption relation between entities to find spanning sets for a family of control flow and data flow-based test coverage criteria. This paper presents a new general technique for the automatic test data generation for spanning sets coverage. The proposed technique applies to the algorithm proposed recently by Marre ́ and Bertolino to automatically generate the spanning sets of program entities that ...
Higher-order mutants are created by injecting two or more mutations into the original program, while first-order mutants are generated by seeding single faults in the original program. Mutant generation is a key stage of mutation testing... more
Higher-order mutants are created by injecting two or more mutations into the original program, while first-order mutants are generated by seeding single faults in the original program. Mutant generation is a key stage of mutation testing which is computationally very expensive, especially in the case of higher-order mutants. Although many mutation testing techniques have been developed to construct the first-order mutants, a very small number of techniques have been presented to generate the higher-order mutants because of the exponential growth of the number of higher-order mutants, and the coupling effect between higher-order and first-order mutants. To overcome the exponential explosion in the number of higher-order mutants considered, this paper introduces a new technique for generating a reduced set of higher-order mutants. The proposed technique utilizes a data-flow analysis to decrease the number of mutation points through the program under test and consequently reduce the nu...
There are two approaches for the multicast routing architecture. The first approach is a traditional multicast architecture that constructs and updates the multicast tree in distributed manner. The second and most recent approach is... more
There are two approaches for the multicast routing architecture. The first approach is a traditional multicast architecture that constructs and updates the multicast tree in distributed manner. The second and most recent approach is called service-centric, in which there are two types of routers. Efficient router, which is called m-router, handles many to many multicast functions. The other routers are called i-routers that handle only minimum multicast functions. This approach has drawbacks, originating from the centralization idea. This paper proposes two approaches that enhance the performance of the service-centric architecture; hierarchical architecture and fully distributed architecture. In our proposed architectures, the service-centric m-router is divided into three sub m-routers. The functions of each sub router are determined. How these routers communicate with each other to build the multicast tree is demonstrated. Management of the multicast tree in the new architectures...
In this paper, we introduce a new technique for generating set of test data for mutation testing. This technique automatically generates a set of program paths that satisfy the branch coverage criterion by implementing a path generation... more
In this paper, we introduce a new technique for generating set of test data for mutation testing. This technique automatically generates a set of program paths that satisfy the branch coverage criterion by implementing a path generation algorithm proposed by Bertolino and Marré. Then, the proposed technique symbolically executes the generated set of paths to create a system of branch conditions for each path and solve this set of conditions to find the required set of test data for killing the mutants of the program under test. The technique determines infeasible paths by checking the consistency of each system of conditions. For each infeasible path, the technique finds, if possible, a new feasible path. The paper also presents the results of experiments that have been carried out to evaluate the effectiveness of the proposed technique.
Hardware virtualization plays a major role in IT infrastructure optimization in private data centers and public cloud platforms. Though there are many advancements in CPU architecture and hypervisors recently, but overhead still exists as... more
Hardware virtualization plays a major role in IT infrastructure optimization in private data centers and public cloud platforms. Though there are many advancements in CPU architecture and hypervisors recently, but overhead still exists as there is a virtualization layer between the guest operating system and physical hardware. This is particularly when multiple virtual guests are competing for resources on the same physical hardware. Understanding performance of a virtualization layer is crucial as this would have a major impact on entire IT infrastructure. This article has performed an extensive study on comparing the performance of three hypervisors KVM, Xen, and Proxmox VE. The experiments showed that KVM delivers the best performance on most of the selected parameters. Xen excels in file system performance and application performance. Though Proxmox has delivered the best performance in only the sub-category of CPU throughput. This article suggests best-suited hypervisors for ta...
Parallel programming has become an essential programming paradigm in the last years. Testing of parallel programs is more difficult than that of sequential programs due to the anomalous effects which occur due to concurrency and... more
Parallel programming has become an essential programming paradigm in the last years. Testing of parallel programs is more difficult than that of sequential programs due to the anomalous effects which occur due to concurrency and interactions among the parallel processes. In parallel programs, states grow exponentially with the number of concurrent processes. Therefore, finding the valid sequence of transitions through a set of parallel processes is a demand and also a challenging task due to state explosion. In this paper, we present an approach based on genetic algorithms and communication-flow analysis for generating the valid sequence of transitions through the set of parallel processes. The approach uses the communication-flow analysis to generate all sending-receiving pairs between the set of parallel processes. Then, the proposed approach applies a genetic algorithm to generate a set of valid sequences of processes transition. This set of valid sequences of transitions is passed to a feasibility checker to find the proper executable one. We conducted a set of experiments to evaluate the proposed approach. The results of the experiments showed that our proposed approach is more efficient than the random technique that is used to generate the executable transition sequence through the parallel processes.
... with a Multistage-Based Genetic Algorithm Ahmed S. Ghiduk Department of Mathematics, Faculty of Science, Beni-Suef University, Egypt Department of Computer Science, College of Computers and Information Systems, Taif University, Saudi... more
... with a Multistage-Based Genetic Algorithm Ahmed S. Ghiduk Department of Mathematics, Faculty of Science, Beni-Suef University, Egypt Department of Computer Science, College of Computers and Information Systems, Taif University, Saudi Arabia asaghiduk@tu.edu.sa ...
ABSTRACT Path testing is the strongest coverage criterion in white box testing. Finding target paths is a key challenge in path testing. Genetic algorithms have been successfully used in many software testing activities such as generating... more
ABSTRACT Path testing is the strongest coverage criterion in white box testing. Finding target paths is a key challenge in path testing. Genetic algorithms have been successfully used in many software testing activities such as generating test data, selecting test cases and test cases prioritization. In this paper, we introduce a new genetic algorithm for generating test paths. In this algorithm the length of the chromosome varies from iteration to another according to the change in the length of the path. Based on the proposed algorithm, we present a new technique for automatically generating a set of basis test paths which can be used as testing paths in any path testing method. The proposed technique uses a method to verify the independency of the generated paths to be included in the basis set of paths. In addition, this technique employs a method for checking the feasibility of the generated paths. We introduce new definitions for the key concepts of genetic algorithm such as chromosome representation, crossover, mutation, and fitness function to be compatible with path generation. In addition, we present a case study to show the efficiency of our technique. We conducted set of experiments to evaluate the effectiveness of the proposed path generation technique. The results showed that the proposed technique causes substantial reduction in path generation effort, and that the proposed GA algorithm is effective in test path generation.
The representation of the problem and the definition of the fitness function are the two key ingredients for the application of search-based optimization to software engineering problems. Therefore, a well-defined fitness function is... more
The representation of the problem and the definition of the fitness function are the two key ingredients for the application of search-based optimization to software engineering problems. Therefore, a well-defined fitness function is essential to the effectiveness of search-based testing (SBT). Several search based test-data generation techniques utilized the control dependencies (CD) for guiding the search to find tests. Ghiduk et al. presented a search-based technique that utilizes the dominances to direct the search to generate test data. In this paper, we illustrate the efficiency of dominances in the controlflow graph (CFG) in guiding the SBT. The paper gives some problems for SBT which is guided by the CD. The paper introduces a general form for a fitness function in terms of dominances nodes and postdominances. This function will improve the efficiency of the search consequently; the SBT overcomes the CD problems.
ABSTRACT Search-based optimization techniques (e.g., hill climbing, simulated annealing, and genetic algorithms) have been applied to a wide variety of software engineering activities including cost estimation, next release problem, and... more
ABSTRACT Search-based optimization techniques (e.g., hill climbing, simulated annealing, and genetic algorithms) have been applied to a wide variety of software engineering activities including cost estimation, next release problem, and test generation. Several search based test generation techniques have been developed. These techniques had focused on finding suites of test data to satisfy a number of control-flow or data-flow testing criteria. Genetic algorithms have been the most widely employed search-based optimization technique in software testing issues. Recently, there are many novel search-based optimization techniques have been developed such as Ant Colony Optimization (ACO), Particle Swarm Optimization (PSO), Artificial Immune System (AIS), and Bees Colony Optimization. ACO and AIS have been employed only in the area of control-flow testing of the programs. This paper aims at employing the ACO algorithms in the issue of software data-flow testing. The paper presents an ant colony optimization based approach for generating set of optimal paths to cover all definition-use associations (du-pairs) in the program under test. Then, this approach uses the ant colony optimization to generate suite of test-data for satisfying the generated set of paths. In addition, the paper introduces a case study to illustrate our approach.
Research Interests:
Research Interests: