Recently, RESTful APIs are widely utilized in a variety of web applications; developers utilize R... more Recently, RESTful APIs are widely utilized in a variety of web applications; developers utilize Restful APIs as a blacked-out component in micro-services. Black box testing for Restful APIs is essential as neither of the API’s source code nor its compiled binary is always available for public access. A handful number of research studies were conducted for the automatic generation of test suite for RESTful APIs based on black box testing. However, to our knowledge, none of them considered the test coverage criteria or the test suite optimization. This paper proposed adapting the Artificial Bee Colony (ABC) swarm intelligence algorithm for the automatic generation of test suites for Restful APIs based on Open API Specification (OAS); whilst also maximizing the API test coverage (path, operation, parameter, input value and status code). Experiments were conducted on six APIs that differ from each other in the number of routes, operation types, input values, and how well the API is docu...
International Journal of Open Source Software and Processes
Bug triage is an essential task in the software maintenance phase. It is the process of assigning... more Bug triage is an essential task in the software maintenance phase. It is the process of assigning a developer (fixer) to a bug report. A personnel (triager) has to analyze the developers' profiles and bug reports for the purpose of making a suitable assignment. Manual bug triage consumes time and effort, so automating this process is a necessity. The previous research studies addressed the triage problem as an information retrieval problem, where the new bug report is the query. Other researchers tackled this problem as a classification problem and utilized traditional machine learning or deep learning techniques. A handful of research studies handled this problem as an optimization problem and utilized optimization algorithms such as Hungarian. This paper briefs and analyzes the previous bug triage approaches in addition to conducting an empirical comparison among five of the previous approaches.
The accuracy of algorithmic models for software cost prediction is limited due to their inability... more The accuracy of algorithmic models for software cost prediction is limited due to their inability to handle imprecision and uncertainties associated with the software project attributes like size, programmer experience, etc. This paper enhances the accuracy and sensitivity of one of a widely used models COCOMO81 intermediate by incorporating a fuzzy component into the model. The fuzzy component deals with the vagueness and imprecision of the model’s cost drivers. MATLAB fuzzy toolbox was used in implementing the proposed fuzzy model. Artificial datasets was derived from COCOMONASA2 dataset to evaluate the proposed fuzzy model. The results showed that the sensitivity of the proposed fuzzy model is superior to COCOMO81 intermediate. It’s worth mentioning that the idea of the paper isn’t restricted to COCOMO81 intermediate; it could be applied to other algorithmic models.
Design pattern is a high-quality reusable solution to a commonly occurring design problem in cert... more Design pattern is a high-quality reusable solution to a commonly occurring design problem in certain context. Using design patterns in software development improves some of the quality attributes of the system including productivity, understandability and maintainability. However, it is hard for novice developers to select a fit design pattern to solve a design problem. The paper proposes a text retrieval based approach for the automatic selection of the fit design pattern. This approach is based on generating a vector space model (VSM) of unigrams and topics to the catalogue of patterns. The topic is a set of words that often appear together. Latent Dirichlet Allocation topic model is adopted to analyze the textual descriptions of the patterns to extract the key topics and discover the hidden semantic. The similarity between the target problem scenario and the collection of patterns is measured using an improved version of the popular Cosine similarity measure. The proposed approac...
Code smells are symptoms of poor software design and implementation choices. Previous empirical s... more Code smells are symptoms of poor software design and implementation choices. Previous empirical studies have underlined their negative effect on software comprehension, fault-proneness and maintainability. A number of approaches have been proposed to identify the existence of code smells in the source code; recent studies have shown the potential of machine learning models in this context. However, previous approaches did not exploit the lexical and syntactical features of the source code; they instead modelled the source code using software metrics only. This paper proposes an approach for detecting the occurrence of the God class smell which utilizes both, the source code textual features and metrics to train three deep learning networks (i) Long short term memory, (ii) Gated recurrent unit and (iii) Convolutional neural network. We proposed utilizing deep leaning networks as they are reported to outperform traditional machine learning models in several domains including software ...
International Journal of Mechanical Engineering and Robotics Research, 2016
Modeling frictional performance of a break pad material is difficult and requires the use of comp... more Modeling frictional performance of a break pad material is difficult and requires the use of complex numerical models. The current work utilizes one of the Artificial Intelligence techniques, Least Squares Support Vector Machine (LS-SVM), to model the nonlinear relationships between the input breaking conditions and the frictional and thermal performance of previously developed non-commercial brake pad materials. Experimental data were produced and used in training and testing the proposed LS-SVM models. The results indicate that LS-SVM constitutes a robust methodology and the proposed models could be used to predict the friction coefficients and the induced interface temperature of brake pad materials in order to reduce experimental time and cost.
Proceedings of the Fifth IEEE International Symposium on Signal Processing and Information Technology, 2005.
Scheduling real-time applications requires high utilization of the available processing power on ... more Scheduling real-time applications requires high utilization of the available processing power on processors to accommodate as many tasks as possible while satisfying the required deadlines of the applications. Moreover, an acceptable level of reliability should be provided due to ...
Bug triage can be defined as the process of assigning a developer to a bug report. The duty of th... more Bug triage can be defined as the process of assigning a developer to a bug report. The duty of the bug triage team is to study the developers profiles well in order to make an appropriate match between the developers and the incoming bug reports. Thus, this process is a vital step in issue management system. In fact, the number of bug reports submitted every day is gradually increasing which affects the developer workload. Thus, the triage team should consider this factor in distributing the bugs and because of the manual approach, many developers are burden. In particular, triaging bug reports without considering the workload does not only affect the developers workload but also leads to an increase in the number of unaddressed bug reports. As a result, the fixing time of the reported bugs will relatively increase. Unlike other researchers who focus on automating the bug triage and ignoring the developer workload, in this work, we handle the triaging process from a different perspe...
Proceedings of the International Conference on Geoinformatics and Data Analysis, 2018
Design pattern is a high-quality and reusable solution to a recurring software design problem. It... more Design pattern is a high-quality and reusable solution to a recurring software design problem. It is considered an important concept in the software engineering field due to its ability to enhance some of the quality attributes of the software systems including maintainability and extensibility. However, novice developers need to be provided by a tool to assist them in selecting the fit design pattern to solve a design problem. The paper proposes a novel approach for the automatic selection of the fit design pattern. This approach is based on using Latent Dirichlet Allocation (LDA) topic model. The topic is a set of words that often appear together. LDA is able to relate words with similar meaning and to differentiate between uses of words with multiple meanings. In this paper LDA is used to analyze the textual descriptions of design patterns and extract the topics then discover the similarity between the target problem scenario and the collection of patterns using Improved Sqrt-Cosine similarity measure (ISCS). The proposed approach was evaluated using Gang of four design patterns. The experimental results showed that the proposed approach outperforms approach based on the traditional vector space model of Unigrams.
Integrating Research and Practice in Software Engineering, 2019
Bug triage is one of the crucial activities undertaken during the maintenance phase of large-scal... more Bug triage is one of the crucial activities undertaken during the maintenance phase of large-scale software projects, to fix the bugs that appear. In this paper we propose an approach to automate one of the important activities of bug triage which is the bug severity assignment. The proposed approach is based on mining the historical bug repositories of software projects. It utilizes the Hierarchical Dirichlet Process (HDP) topic modeller to extract the topics shared by the historical bug reports, then categorizing them according to their proportions in the extracted topics using the K-means clustering algorithm. For each new submitted report, the top K similar reports are retrieved from their cluster using a novel weighted K-nearest neighbour algorithm that utilizes a similarity measure called Improved-Sqrt-Cosine similarity. The severity level of the new bug is assigned using a Dual-weighted voting scheme. The experimental results demonstrated that our proposed model improved the performance of the bug severity assignment task when compared against three baseline models in the context of two popular bug repositories, Eclipse and Mozilla.
International Journal of Open Source Software and Processes, 2021
Regression testing is one of the essential activities during the maintenance phase of software pr... more Regression testing is one of the essential activities during the maintenance phase of software projects. It is executed to ensure the validity of an altered software. However, as the software evolves, regression testing becomes prohibitively expensive. In order to reduce the cost of regression testing, it is mandatory to reduce the size of the test suite by selecting the most representative test cases that do not compromise the effectiveness of the regression testing in terms of fault-detection capability. This problem is known as test suite reduction (TSR) problem, and it is known to be an NP-complete. The paper proposes a multi-objective adapted binary bat algorithm (ABBA) to solve the TSR problem. The original binary bat (OBBA) algorithm was adapted to enhance its exploration capabilities during the search for a Pareto-optimal surface. The effectiveness of the ABBA was evaluated using six Java programs with different sizes. Experimental results showed that for the same fault disc...
The paper proposes a framework for building a semantic map for indoor environment using a mobile ... more The paper proposes a framework for building a semantic map for indoor environment using a mobile robot. The framework includes five main modules which are: 1) Raw and spatial data acquisition module, 2)Steering and exploration module, 3)Information detection and extraction module, 4)Semantic knowledge mapping module and 5) High level task planner interface. The framework will be implemented on the ATRV-Mini robot. A simulation and control environment has been developed for this purpose. The steering and exploration module and the tasks responsible for the spatial data acquisition using sonar sensors and constructing a sonar occupancy map have been developed. The simulation results showed that the ATRV-mini robot is capable of learning metric maps of potential navigation areas.
Software projects are not void from bugs when they are released, so the developers keep receiving... more Software projects are not void from bugs when they are released, so the developers keep receiving bug reports that describe technical issues. The process of identifying the buggy code files that correspond to the submitted bug reports is called bug localization. Automating the bug localization process can speed up bug fixing and improve the productivity of the developers, especially with a large number of submitted bug reports. Several automatic bug localization approaches were proposed in the literature reviews which are based on the textual and /or semantic similarity among the bug reports and the source code files. Nevertheless, none of the previous approaches made use of the source code complexity despite its importance; as high complexity source code files have higher probabilities to be modified than the low complexity files and are prone to bug occurrences. To improve the accuracy of the automatic bug localization task, this paper proposes a Hybrid Bug Localization approach (HBL) that makes full use of textual and semantic features of source code files, previously fixed bug reports, in addition to the source code complexity and version history properties. The effectiveness of the proposed approach was assessed using three opensource Java projects, ZXing, SWT, and AspectJ, of different sizes. Experimental results showed that the proposed approach outperforms several state-of-the-art approaches in terms of the mean average precision (MAP) and the mean reciprocal rank (MRR) metrics.
International Journal of Computers and Applications, 2020
Large scale software projects adopt bug tracking systems such as Bugzilla and Jira to manage the ... more Large scale software projects adopt bug tracking systems such as Bugzilla and Jira to manage the bugs’ fixes and store their information. Mining bug repositories is essential to automate some maint...
International Journal of Open Source Software and Processes, 2020
When bug reports are submitted through bug tracking systems, they are analysed manually to identi... more When bug reports are submitted through bug tracking systems, they are analysed manually to identify their severity levels. A severity level specifies the negative impact of a bug on a system. With the huge number of submitted reports, setting the severity class manually is tedious and time consuming. Moreover, some bug types are reported more often than other types, which leads to imbalanced bug repositories. This paper proposes a multi-feature approach for automatic severity assignment, which leverages lexical, semantic, and categorical properties of the bug reports. The proposed approach utilizes word embeddings, topic model, vector space model, and an adapted K-Nearest Neighbour technique. Moreover, the impact of utilizing two sampling techniques, namely SMOTE and cluster-based under-sampling (CBU), were investigated. Experiments over two open source repositories, Eclipse and Mozilla, demonstrated that the proposed approach is superior to two previous studies.
Recently, RESTful APIs are widely utilized in a variety of web applications; developers utilize R... more Recently, RESTful APIs are widely utilized in a variety of web applications; developers utilize Restful APIs as a blacked-out component in micro-services. Black box testing for Restful APIs is essential as neither of the API’s source code nor its compiled binary is always available for public access. A handful number of research studies were conducted for the automatic generation of test suite for RESTful APIs based on black box testing. However, to our knowledge, none of them considered the test coverage criteria or the test suite optimization. This paper proposed adapting the Artificial Bee Colony (ABC) swarm intelligence algorithm for the automatic generation of test suites for Restful APIs based on Open API Specification (OAS); whilst also maximizing the API test coverage (path, operation, parameter, input value and status code). Experiments were conducted on six APIs that differ from each other in the number of routes, operation types, input values, and how well the API is docu...
International Journal of Open Source Software and Processes
Bug triage is an essential task in the software maintenance phase. It is the process of assigning... more Bug triage is an essential task in the software maintenance phase. It is the process of assigning a developer (fixer) to a bug report. A personnel (triager) has to analyze the developers' profiles and bug reports for the purpose of making a suitable assignment. Manual bug triage consumes time and effort, so automating this process is a necessity. The previous research studies addressed the triage problem as an information retrieval problem, where the new bug report is the query. Other researchers tackled this problem as a classification problem and utilized traditional machine learning or deep learning techniques. A handful of research studies handled this problem as an optimization problem and utilized optimization algorithms such as Hungarian. This paper briefs and analyzes the previous bug triage approaches in addition to conducting an empirical comparison among five of the previous approaches.
The accuracy of algorithmic models for software cost prediction is limited due to their inability... more The accuracy of algorithmic models for software cost prediction is limited due to their inability to handle imprecision and uncertainties associated with the software project attributes like size, programmer experience, etc. This paper enhances the accuracy and sensitivity of one of a widely used models COCOMO81 intermediate by incorporating a fuzzy component into the model. The fuzzy component deals with the vagueness and imprecision of the model’s cost drivers. MATLAB fuzzy toolbox was used in implementing the proposed fuzzy model. Artificial datasets was derived from COCOMONASA2 dataset to evaluate the proposed fuzzy model. The results showed that the sensitivity of the proposed fuzzy model is superior to COCOMO81 intermediate. It’s worth mentioning that the idea of the paper isn’t restricted to COCOMO81 intermediate; it could be applied to other algorithmic models.
Design pattern is a high-quality reusable solution to a commonly occurring design problem in cert... more Design pattern is a high-quality reusable solution to a commonly occurring design problem in certain context. Using design patterns in software development improves some of the quality attributes of the system including productivity, understandability and maintainability. However, it is hard for novice developers to select a fit design pattern to solve a design problem. The paper proposes a text retrieval based approach for the automatic selection of the fit design pattern. This approach is based on generating a vector space model (VSM) of unigrams and topics to the catalogue of patterns. The topic is a set of words that often appear together. Latent Dirichlet Allocation topic model is adopted to analyze the textual descriptions of the patterns to extract the key topics and discover the hidden semantic. The similarity between the target problem scenario and the collection of patterns is measured using an improved version of the popular Cosine similarity measure. The proposed approac...
Code smells are symptoms of poor software design and implementation choices. Previous empirical s... more Code smells are symptoms of poor software design and implementation choices. Previous empirical studies have underlined their negative effect on software comprehension, fault-proneness and maintainability. A number of approaches have been proposed to identify the existence of code smells in the source code; recent studies have shown the potential of machine learning models in this context. However, previous approaches did not exploit the lexical and syntactical features of the source code; they instead modelled the source code using software metrics only. This paper proposes an approach for detecting the occurrence of the God class smell which utilizes both, the source code textual features and metrics to train three deep learning networks (i) Long short term memory, (ii) Gated recurrent unit and (iii) Convolutional neural network. We proposed utilizing deep leaning networks as they are reported to outperform traditional machine learning models in several domains including software ...
International Journal of Mechanical Engineering and Robotics Research, 2016
Modeling frictional performance of a break pad material is difficult and requires the use of comp... more Modeling frictional performance of a break pad material is difficult and requires the use of complex numerical models. The current work utilizes one of the Artificial Intelligence techniques, Least Squares Support Vector Machine (LS-SVM), to model the nonlinear relationships between the input breaking conditions and the frictional and thermal performance of previously developed non-commercial brake pad materials. Experimental data were produced and used in training and testing the proposed LS-SVM models. The results indicate that LS-SVM constitutes a robust methodology and the proposed models could be used to predict the friction coefficients and the induced interface temperature of brake pad materials in order to reduce experimental time and cost.
Proceedings of the Fifth IEEE International Symposium on Signal Processing and Information Technology, 2005.
Scheduling real-time applications requires high utilization of the available processing power on ... more Scheduling real-time applications requires high utilization of the available processing power on processors to accommodate as many tasks as possible while satisfying the required deadlines of the applications. Moreover, an acceptable level of reliability should be provided due to ...
Bug triage can be defined as the process of assigning a developer to a bug report. The duty of th... more Bug triage can be defined as the process of assigning a developer to a bug report. The duty of the bug triage team is to study the developers profiles well in order to make an appropriate match between the developers and the incoming bug reports. Thus, this process is a vital step in issue management system. In fact, the number of bug reports submitted every day is gradually increasing which affects the developer workload. Thus, the triage team should consider this factor in distributing the bugs and because of the manual approach, many developers are burden. In particular, triaging bug reports without considering the workload does not only affect the developers workload but also leads to an increase in the number of unaddressed bug reports. As a result, the fixing time of the reported bugs will relatively increase. Unlike other researchers who focus on automating the bug triage and ignoring the developer workload, in this work, we handle the triaging process from a different perspe...
Proceedings of the International Conference on Geoinformatics and Data Analysis, 2018
Design pattern is a high-quality and reusable solution to a recurring software design problem. It... more Design pattern is a high-quality and reusable solution to a recurring software design problem. It is considered an important concept in the software engineering field due to its ability to enhance some of the quality attributes of the software systems including maintainability and extensibility. However, novice developers need to be provided by a tool to assist them in selecting the fit design pattern to solve a design problem. The paper proposes a novel approach for the automatic selection of the fit design pattern. This approach is based on using Latent Dirichlet Allocation (LDA) topic model. The topic is a set of words that often appear together. LDA is able to relate words with similar meaning and to differentiate between uses of words with multiple meanings. In this paper LDA is used to analyze the textual descriptions of design patterns and extract the topics then discover the similarity between the target problem scenario and the collection of patterns using Improved Sqrt-Cosine similarity measure (ISCS). The proposed approach was evaluated using Gang of four design patterns. The experimental results showed that the proposed approach outperforms approach based on the traditional vector space model of Unigrams.
Integrating Research and Practice in Software Engineering, 2019
Bug triage is one of the crucial activities undertaken during the maintenance phase of large-scal... more Bug triage is one of the crucial activities undertaken during the maintenance phase of large-scale software projects, to fix the bugs that appear. In this paper we propose an approach to automate one of the important activities of bug triage which is the bug severity assignment. The proposed approach is based on mining the historical bug repositories of software projects. It utilizes the Hierarchical Dirichlet Process (HDP) topic modeller to extract the topics shared by the historical bug reports, then categorizing them according to their proportions in the extracted topics using the K-means clustering algorithm. For each new submitted report, the top K similar reports are retrieved from their cluster using a novel weighted K-nearest neighbour algorithm that utilizes a similarity measure called Improved-Sqrt-Cosine similarity. The severity level of the new bug is assigned using a Dual-weighted voting scheme. The experimental results demonstrated that our proposed model improved the performance of the bug severity assignment task when compared against three baseline models in the context of two popular bug repositories, Eclipse and Mozilla.
International Journal of Open Source Software and Processes, 2021
Regression testing is one of the essential activities during the maintenance phase of software pr... more Regression testing is one of the essential activities during the maintenance phase of software projects. It is executed to ensure the validity of an altered software. However, as the software evolves, regression testing becomes prohibitively expensive. In order to reduce the cost of regression testing, it is mandatory to reduce the size of the test suite by selecting the most representative test cases that do not compromise the effectiveness of the regression testing in terms of fault-detection capability. This problem is known as test suite reduction (TSR) problem, and it is known to be an NP-complete. The paper proposes a multi-objective adapted binary bat algorithm (ABBA) to solve the TSR problem. The original binary bat (OBBA) algorithm was adapted to enhance its exploration capabilities during the search for a Pareto-optimal surface. The effectiveness of the ABBA was evaluated using six Java programs with different sizes. Experimental results showed that for the same fault disc...
The paper proposes a framework for building a semantic map for indoor environment using a mobile ... more The paper proposes a framework for building a semantic map for indoor environment using a mobile robot. The framework includes five main modules which are: 1) Raw and spatial data acquisition module, 2)Steering and exploration module, 3)Information detection and extraction module, 4)Semantic knowledge mapping module and 5) High level task planner interface. The framework will be implemented on the ATRV-Mini robot. A simulation and control environment has been developed for this purpose. The steering and exploration module and the tasks responsible for the spatial data acquisition using sonar sensors and constructing a sonar occupancy map have been developed. The simulation results showed that the ATRV-mini robot is capable of learning metric maps of potential navigation areas.
Software projects are not void from bugs when they are released, so the developers keep receiving... more Software projects are not void from bugs when they are released, so the developers keep receiving bug reports that describe technical issues. The process of identifying the buggy code files that correspond to the submitted bug reports is called bug localization. Automating the bug localization process can speed up bug fixing and improve the productivity of the developers, especially with a large number of submitted bug reports. Several automatic bug localization approaches were proposed in the literature reviews which are based on the textual and /or semantic similarity among the bug reports and the source code files. Nevertheless, none of the previous approaches made use of the source code complexity despite its importance; as high complexity source code files have higher probabilities to be modified than the low complexity files and are prone to bug occurrences. To improve the accuracy of the automatic bug localization task, this paper proposes a Hybrid Bug Localization approach (HBL) that makes full use of textual and semantic features of source code files, previously fixed bug reports, in addition to the source code complexity and version history properties. The effectiveness of the proposed approach was assessed using three opensource Java projects, ZXing, SWT, and AspectJ, of different sizes. Experimental results showed that the proposed approach outperforms several state-of-the-art approaches in terms of the mean average precision (MAP) and the mean reciprocal rank (MRR) metrics.
International Journal of Computers and Applications, 2020
Large scale software projects adopt bug tracking systems such as Bugzilla and Jira to manage the ... more Large scale software projects adopt bug tracking systems such as Bugzilla and Jira to manage the bugs’ fixes and store their information. Mining bug repositories is essential to automate some maint...
International Journal of Open Source Software and Processes, 2020
When bug reports are submitted through bug tracking systems, they are analysed manually to identi... more When bug reports are submitted through bug tracking systems, they are analysed manually to identify their severity levels. A severity level specifies the negative impact of a bug on a system. With the huge number of submitted reports, setting the severity class manually is tedious and time consuming. Moreover, some bug types are reported more often than other types, which leads to imbalanced bug repositories. This paper proposes a multi-feature approach for automatic severity assignment, which leverages lexical, semantic, and categorical properties of the bug reports. The proposed approach utilizes word embeddings, topic model, vector space model, and an adapted K-Nearest Neighbour technique. Moreover, the impact of utilizing two sampling techniques, namely SMOTE and cluster-based under-sampling (CBU), were investigated. Experiments over two open source repositories, Eclipse and Mozilla, demonstrated that the proposed approach is superior to two previous studies.
Uploads
Papers by Abeer Hamdy