Abeer Hamdy - Profile on Academia.edu (original) (raw)

Papers by Abeer Hamdy

Research paper thumbnail of Artificial Bee Colony for Automated Black-Box Testing of RESTful API

Artificial Bee Colony for Automated Black-Box Testing of RESTful API

Smart innovation, systems and technologies, Dec 31, 2022

Research paper thumbnail of Interactions between Interleukin-6 and MDA in Women with Preeclampsia

Systematic Reviews in Pharmacy, 2020

This study is cross-sectional and conducted from March to July 2019 .in Baghdad city to compare t... more This study is cross-sectional and conducted from March to July 2019 .in Baghdad city to compare the levels of IL-6 and MDA in healthy and pre-eclamptic pregnant wome. The number of pregnant women understudy were 60 women 30 normal pregnant women at the full term of pregnancy. Autamatic blood pressure monitoring was performed Blood pressure readings were taken at 30minute intervals. Blood were collected from each subject in this study, sera were then extracted and stored for determination of IL-6 and MDA by ELISA technique. The study showed no statistically variance between studied groups regarding patient age and gestational age at sampling and parity (P>0.05) while there was a significant difference between studied cases and the control group regarding systolic and diastolic blood pressure (P <0.05). The study presented that the highest mean level of MDA was found in pregnant women with preeclampsia (4.15±2.34 pg/ml) as compared with healthy women (1.71±0.44 pg/ml), (P<0.01). The study demonstrated that IL-6 mean was significantly elevated in pregnant women with Pre-eclampsia as compared with the control group (5.71±1.14 and 1.66 ± 0.41 pg/ml) respectively (P. value <0.01). The study showed strong positive correlation between MDA and IL-6 levels in pregnant women under preeclampsia

Research paper thumbnail of Efficient Processing Power Reservation Approach to Imporove Real-Time Task Schedulability and Relaibaility

Efficient utilization of the computational resources is an urgent demand especially if real time ... more Efficient utilization of the computational resources is an urgent demand especially if real time constraints should be guaranteed. Moreover, an acceptable level of reliability should be provided due to the critical nature of some real time applications. This paper proposes a new approach for processing power reservations that efficiently utilizes all the available processing power to improve reliability and schedulability of independent real time tasks on a uniprocessor. The basic idea of the proposed approach is to use all of the available processing power in the time interval between the arrivals of two successive tasks or when an existing task departs. The advantages of this mechanism are: 1) it reduces the execution time required for each task and hence increases its reliability. 2) At the arrival of a new task; the processing power requirements for the executing tasks to meet their deadlines are smaller, which gives the new arriving tasks higher chances to be accommodated with the existing ones. 3) Efficient processing power utilization may reduce the power consumption in processors with dynamic voltage scaling. An illustration example and simulation experiments showed that our approach provides a more reliable scheduling scheme with higher acceptance rate compared to the traditional approach based on Rialto operating system.

Research paper thumbnail of Bug Fix Time Optimization Using K-medoids Clustering Technique

In software engineering practice, bug triaging, assigning a developer for a bug report to fix it,... more In software engineering practice, bug triaging, assigning a developer for a bug report to fix it, consumes time besides being error-prone process. Most of previously proposed automation approaches focus on classification techniques. However, the developer workload and developer availability are taken into account in only a handful number papers. In this work, a new automated triaging approach is proposed, which automates the triaging process and optimizes the total fixing time, considering the developer workload, developer availability and the developer previous experience. The proposed solution leverages text mining and clustering technique (K-medoids algorithm). Linux, Eclipse and Apache repositories are explored for evaluating the proposed algorithm. Experimental results showed that the proposed algorithm (1) reduces the total fixing time by 58.16%, 22.84%, and 23.17% in Linux, Eclipse and Apache respectively, (2) normalizes the developer workload and (3) considers the developer ...

Research paper thumbnail of A Modified Neural Network Model for Real-time Driver Drowsiness Detection System

Engineering World

World is running fast. With the speed of communication technology, there is a boom in the transpo... more World is running fast. With the speed of communication technology, there is a boom in the transportation industry also. The transportation vehicles are operating day and night to provide proper support of the need. This is really tiring for the transportation workers, especially the drivers who are driving the vehicle. A slight negligence of a driver may cause huge loss. The increasing number of road accidents are therefore a big concern. There is huge research going on to comfort the drivers and increase the security features of vehicles to avoid accidents. Here is this work, a model is proposed, which can efficiently detect driver drowsiness. The work mainly focused on building the learning model. A modified convolutional neural network is built to solve the purpose. The model trained with a dataset of 7000 images of open and closed eyes. For testing purposes, some real-time experiments are done by some volunteer drivers in different conditions, like gender, day, night, etc. the m...

Research paper thumbnail of DevOps and IaC to Automate the Delivery of Hands-On Software Lab Exams

DevOps and IaC to Automate the Delivery of Hands-On Software Lab Exams

2022 6th International Conference on Computer, Software and Modeling (ICCSM)

Research paper thumbnail of Bug Fix Time Optimization Using Matrix Factorization and Iterative Gale-Shaply Algorithms

arXiv (Cornell University), Jul 14, 2022

Bug triage is an essential task in software maintenance phase. It assigns developers (fixers) to ... more Bug triage is an essential task in software maintenance phase. It assigns developers (fixers) to bug reports to fix them. This process is performed manually by a triager, who analyzes developers' profiles and submitted bug reports to make suitable assignments. Bug triaging process is time consuming thus automating this process is essential to improve the quality of software. Previous work addressed triaging problem either as an information retrieval or classification problem. This paper tackles this problem as a resource allocation problem, that aims at the best assignments of developers to bug reports, that reduces the total fixing time of the newly submitted bug reports, in addition to the even distribution of bug reports over developers. In this paper, a combination of matrix factorization and Gale-Shapely algorithm, supported by the differential evolution is firstly introduced to optimize the total fix time and normalize developers work load. Matrix factorization is used to establish a recommendation system for Gale-Shapley to make assignment decisions. Differential evolution provides the best set of weights to build developers score profiles. The proposed approach is assessed over three repositories, Linux, Apache and Eclipse. Experimental results show that the proposed approach reduces the bug fixing time, in comparison to the manual triage, by 80.67%, 23.61% and 60.22% over Linux, Eclipse and Apache respectively. Moreover, the workload for the developers is uniform.

Research paper thumbnail of Bug Triage Automation Approaches

Bug Triage Automation Approaches

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.

Research paper thumbnail of Developer Load Normalization Using Iterative Kuhn-Munkres Algorithm: An Optimization Triaging Approach

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...

Research paper thumbnail of Topic modelling for automatic selection of software design patterns

Topic modelling for automatic selection of software design patterns

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.

Research paper thumbnail of Semantic Categorization of Software Bug Repositories for Severity Assignment Automation

Semantic Categorization of Software Bug Repositories for Severity Assignment Automation

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.

Research paper thumbnail of Search-Based Regression Testing Optimization

Search-Based Regression Testing Optimization

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...

Research paper thumbnail of Towards More Accurate Automatic Recommendation of Software Design Patterns

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...

Research paper thumbnail of Deep Hybrid Features for Code Smells Detection

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 ...

Research paper thumbnail of Code Complexity and Version History for Enhancing Hybrid Bug Localization

IEEE Access, 2021

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.

Research paper thumbnail of Multi-Objective Adapted Binary Bat for Test Suite Reduction

Intelligent Automation & Soft Computing, 2022

Regression testing is an essential quality test technique during the maintenance phase of the sof... more Regression testing is an essential quality test technique during the maintenance phase of the software. It is executed to ensure the validity of the software after any modification. As software evolves, the test suite expands and may become too large to be executed entirely within a limited testing budget and/or time. So, to reduce the cost of regression testing, it is mandatory to reduce the size of the test suite by discarding the redundant test cases and selecting the most representative ones that do not compromise the effectiveness of the test suite in terms of some predefined criteria such as its fault-detection capability. This problem is known as test suite reduction (TSR); and it is known to be as nondeterministic polynomial-time complete (NP-complete) problem. This paper formulated the TSR problem as a multi-objective optimization problem; and adapted the heuristic binary bat algorithm (BBA) to resolve it. The BBA algorithm was adapted in order to enhance its exploration capabilities during the search for Pareto-optimal solutions. The effectiveness of the proposed multiobjective adapted binary bat algorithm (MO-ABBA) was evaluated using 8 test suites of different sizes, in addition to twelve benchmark functions. Experimental results showed that, for the same fault discovery rate, the MO-ABBA is capable of reducing the test suite size more than each of the multi-objective original binary bat (MO-BBA) and the multi-objective binary particle swarm optimization (MO-BPSO) algorithms. Moreover, MO-ABBA converges to the best solutions faster than each of the MO-BBA and the MO-BPSO.

Research paper thumbnail of Deep mining of open source software bug repositories

Deep mining of open source software bug repositories

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...

Research paper thumbnail of Automatic Recommendation of Software Design Patterns: Text Retrieval Approach

Journal of Software, 2018

Design pattern is a reusable solution to a commonly occurring design problem in certain context. ... more Design pattern is a reusable solution to a commonly occurring design problem in certain context. Using design patterns in software development improves the product's quality, understandability and productivity. However, it is a challenging task for novice developers to select the right design pattern to solve a design problem. The paper proposes a methodology for the automatic selection of the fit design pattern from a list of patterns. The proposed methodology is based on Text retrieval approach where the design problem scenarios are described in natural language. A vector space model (VSM) was created for the catalogue of design patterns. A vector of features consists of unigrams and bigrams is generated for the given design problem scenario. The recommended design pattern is the closest to the problem scenario. The proposed mechanism was evaluated using the Gang of four design patterns and the experimental results showed the effectiveness of the proposed methodology.

Research paper thumbnail of LS-SVM Approach for Predicting Frictional Performance of Industrial Brake Pad Materials

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.

Research paper thumbnail of Greedy Binary Particle Swarm Optimization for multi-Objective Constrained Next Release Problem

International Journal of Machine Learning and Computing, 2019

companies, that adopt agile methodologies in the development of a large and complex software prod... more companies, that adopt agile methodologies in the development of a large and complex software product, encounter the problem of selecting the subset of requirements to be included in the next release of the product. This problem is known as the next release problem (NRP). NRP is identified as an NP-hard problem as it involves a set of conflicting objectives that need to be addressed. These objectives are as follows: (1) maximizing the customer satisfaction taking into consideration that each customer has an importance level to the company, and (2) minimizing the development cost such that it does not exceed the allocated budget. Furthermore, the requirements have dependency and precedence relationships, and each requirement has a priority for each customer according to the customer's needs. Therefore, metaheuristic algorithms are good candidate for tackling this problem. This paper proposes a hybrid approach to address the multi-objective constrained NRP. The proposed approach is based on adapting an improved binary particle swarm optimization (IBPSO) algorithm. Additionally, a greedy methodology was utilized for swarm initialization to seed the swarm with good solutions. Experimental results, of over six small and large NRP instances, demonstrated that the proposed approach converges much faster to solutions better than the ones discovered by the original binary PSO.

Research paper thumbnail of Artificial Bee Colony for Automated Black-Box Testing of RESTful API

Artificial Bee Colony for Automated Black-Box Testing of RESTful API

Smart innovation, systems and technologies, Dec 31, 2022

Research paper thumbnail of Interactions between Interleukin-6 and MDA in Women with Preeclampsia

Systematic Reviews in Pharmacy, 2020

This study is cross-sectional and conducted from March to July 2019 .in Baghdad city to compare t... more This study is cross-sectional and conducted from March to July 2019 .in Baghdad city to compare the levels of IL-6 and MDA in healthy and pre-eclamptic pregnant wome. The number of pregnant women understudy were 60 women 30 normal pregnant women at the full term of pregnancy. Autamatic blood pressure monitoring was performed Blood pressure readings were taken at 30minute intervals. Blood were collected from each subject in this study, sera were then extracted and stored for determination of IL-6 and MDA by ELISA technique. The study showed no statistically variance between studied groups regarding patient age and gestational age at sampling and parity (P>0.05) while there was a significant difference between studied cases and the control group regarding systolic and diastolic blood pressure (P <0.05). The study presented that the highest mean level of MDA was found in pregnant women with preeclampsia (4.15±2.34 pg/ml) as compared with healthy women (1.71±0.44 pg/ml), (P<0.01). The study demonstrated that IL-6 mean was significantly elevated in pregnant women with Pre-eclampsia as compared with the control group (5.71±1.14 and 1.66 ± 0.41 pg/ml) respectively (P. value <0.01). The study showed strong positive correlation between MDA and IL-6 levels in pregnant women under preeclampsia

Research paper thumbnail of Efficient Processing Power Reservation Approach to Imporove Real-Time Task Schedulability and Relaibaility

Efficient utilization of the computational resources is an urgent demand especially if real time ... more Efficient utilization of the computational resources is an urgent demand especially if real time constraints should be guaranteed. Moreover, an acceptable level of reliability should be provided due to the critical nature of some real time applications. This paper proposes a new approach for processing power reservations that efficiently utilizes all the available processing power to improve reliability and schedulability of independent real time tasks on a uniprocessor. The basic idea of the proposed approach is to use all of the available processing power in the time interval between the arrivals of two successive tasks or when an existing task departs. The advantages of this mechanism are: 1) it reduces the execution time required for each task and hence increases its reliability. 2) At the arrival of a new task; the processing power requirements for the executing tasks to meet their deadlines are smaller, which gives the new arriving tasks higher chances to be accommodated with the existing ones. 3) Efficient processing power utilization may reduce the power consumption in processors with dynamic voltage scaling. An illustration example and simulation experiments showed that our approach provides a more reliable scheduling scheme with higher acceptance rate compared to the traditional approach based on Rialto operating system.

Research paper thumbnail of Bug Fix Time Optimization Using K-medoids Clustering Technique

In software engineering practice, bug triaging, assigning a developer for a bug report to fix it,... more In software engineering practice, bug triaging, assigning a developer for a bug report to fix it, consumes time besides being error-prone process. Most of previously proposed automation approaches focus on classification techniques. However, the developer workload and developer availability are taken into account in only a handful number papers. In this work, a new automated triaging approach is proposed, which automates the triaging process and optimizes the total fixing time, considering the developer workload, developer availability and the developer previous experience. The proposed solution leverages text mining and clustering technique (K-medoids algorithm). Linux, Eclipse and Apache repositories are explored for evaluating the proposed algorithm. Experimental results showed that the proposed algorithm (1) reduces the total fixing time by 58.16%, 22.84%, and 23.17% in Linux, Eclipse and Apache respectively, (2) normalizes the developer workload and (3) considers the developer ...

Research paper thumbnail of A Modified Neural Network Model for Real-time Driver Drowsiness Detection System

Engineering World

World is running fast. With the speed of communication technology, there is a boom in the transpo... more World is running fast. With the speed of communication technology, there is a boom in the transportation industry also. The transportation vehicles are operating day and night to provide proper support of the need. This is really tiring for the transportation workers, especially the drivers who are driving the vehicle. A slight negligence of a driver may cause huge loss. The increasing number of road accidents are therefore a big concern. There is huge research going on to comfort the drivers and increase the security features of vehicles to avoid accidents. Here is this work, a model is proposed, which can efficiently detect driver drowsiness. The work mainly focused on building the learning model. A modified convolutional neural network is built to solve the purpose. The model trained with a dataset of 7000 images of open and closed eyes. For testing purposes, some real-time experiments are done by some volunteer drivers in different conditions, like gender, day, night, etc. the m...

Research paper thumbnail of DevOps and IaC to Automate the Delivery of Hands-On Software Lab Exams

DevOps and IaC to Automate the Delivery of Hands-On Software Lab Exams

2022 6th International Conference on Computer, Software and Modeling (ICCSM)

Research paper thumbnail of Bug Fix Time Optimization Using Matrix Factorization and Iterative Gale-Shaply Algorithms

arXiv (Cornell University), Jul 14, 2022

Bug triage is an essential task in software maintenance phase. It assigns developers (fixers) to ... more Bug triage is an essential task in software maintenance phase. It assigns developers (fixers) to bug reports to fix them. This process is performed manually by a triager, who analyzes developers' profiles and submitted bug reports to make suitable assignments. Bug triaging process is time consuming thus automating this process is essential to improve the quality of software. Previous work addressed triaging problem either as an information retrieval or classification problem. This paper tackles this problem as a resource allocation problem, that aims at the best assignments of developers to bug reports, that reduces the total fixing time of the newly submitted bug reports, in addition to the even distribution of bug reports over developers. In this paper, a combination of matrix factorization and Gale-Shapely algorithm, supported by the differential evolution is firstly introduced to optimize the total fix time and normalize developers work load. Matrix factorization is used to establish a recommendation system for Gale-Shapley to make assignment decisions. Differential evolution provides the best set of weights to build developers score profiles. The proposed approach is assessed over three repositories, Linux, Apache and Eclipse. Experimental results show that the proposed approach reduces the bug fixing time, in comparison to the manual triage, by 80.67%, 23.61% and 60.22% over Linux, Eclipse and Apache respectively. Moreover, the workload for the developers is uniform.

Research paper thumbnail of Bug Triage Automation Approaches

Bug Triage Automation Approaches

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.

Research paper thumbnail of Developer Load Normalization Using Iterative Kuhn-Munkres Algorithm: An Optimization Triaging Approach

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...

Research paper thumbnail of Topic modelling for automatic selection of software design patterns

Topic modelling for automatic selection of software design patterns

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.

Research paper thumbnail of Semantic Categorization of Software Bug Repositories for Severity Assignment Automation

Semantic Categorization of Software Bug Repositories for Severity Assignment Automation

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.

Research paper thumbnail of Search-Based Regression Testing Optimization

Search-Based Regression Testing Optimization

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...

Research paper thumbnail of Towards More Accurate Automatic Recommendation of Software Design Patterns

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...

Research paper thumbnail of Deep Hybrid Features for Code Smells Detection

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 ...

Research paper thumbnail of Code Complexity and Version History for Enhancing Hybrid Bug Localization

IEEE Access, 2021

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.

Research paper thumbnail of Multi-Objective Adapted Binary Bat for Test Suite Reduction

Intelligent Automation & Soft Computing, 2022

Regression testing is an essential quality test technique during the maintenance phase of the sof... more Regression testing is an essential quality test technique during the maintenance phase of the software. It is executed to ensure the validity of the software after any modification. As software evolves, the test suite expands and may become too large to be executed entirely within a limited testing budget and/or time. So, to reduce the cost of regression testing, it is mandatory to reduce the size of the test suite by discarding the redundant test cases and selecting the most representative ones that do not compromise the effectiveness of the test suite in terms of some predefined criteria such as its fault-detection capability. This problem is known as test suite reduction (TSR); and it is known to be as nondeterministic polynomial-time complete (NP-complete) problem. This paper formulated the TSR problem as a multi-objective optimization problem; and adapted the heuristic binary bat algorithm (BBA) to resolve it. The BBA algorithm was adapted in order to enhance its exploration capabilities during the search for Pareto-optimal solutions. The effectiveness of the proposed multiobjective adapted binary bat algorithm (MO-ABBA) was evaluated using 8 test suites of different sizes, in addition to twelve benchmark functions. Experimental results showed that, for the same fault discovery rate, the MO-ABBA is capable of reducing the test suite size more than each of the multi-objective original binary bat (MO-BBA) and the multi-objective binary particle swarm optimization (MO-BPSO) algorithms. Moreover, MO-ABBA converges to the best solutions faster than each of the MO-BBA and the MO-BPSO.

Research paper thumbnail of Deep mining of open source software bug repositories

Deep mining of open source software bug repositories

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...

Research paper thumbnail of Automatic Recommendation of Software Design Patterns: Text Retrieval Approach

Journal of Software, 2018

Design pattern is a reusable solution to a commonly occurring design problem in certain context. ... more Design pattern is a reusable solution to a commonly occurring design problem in certain context. Using design patterns in software development improves the product's quality, understandability and productivity. However, it is a challenging task for novice developers to select the right design pattern to solve a design problem. The paper proposes a methodology for the automatic selection of the fit design pattern from a list of patterns. The proposed methodology is based on Text retrieval approach where the design problem scenarios are described in natural language. A vector space model (VSM) was created for the catalogue of design patterns. A vector of features consists of unigrams and bigrams is generated for the given design problem scenario. The recommended design pattern is the closest to the problem scenario. The proposed mechanism was evaluated using the Gang of four design patterns and the experimental results showed the effectiveness of the proposed methodology.

Research paper thumbnail of LS-SVM Approach for Predicting Frictional Performance of Industrial Brake Pad Materials

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.

Research paper thumbnail of Greedy Binary Particle Swarm Optimization for multi-Objective Constrained Next Release Problem

International Journal of Machine Learning and Computing, 2019

companies, that adopt agile methodologies in the development of a large and complex software prod... more companies, that adopt agile methodologies in the development of a large and complex software product, encounter the problem of selecting the subset of requirements to be included in the next release of the product. This problem is known as the next release problem (NRP). NRP is identified as an NP-hard problem as it involves a set of conflicting objectives that need to be addressed. These objectives are as follows: (1) maximizing the customer satisfaction taking into consideration that each customer has an importance level to the company, and (2) minimizing the development cost such that it does not exceed the allocated budget. Furthermore, the requirements have dependency and precedence relationships, and each requirement has a priority for each customer according to the customer's needs. Therefore, metaheuristic algorithms are good candidate for tackling this problem. This paper proposes a hybrid approach to address the multi-objective constrained NRP. The proposed approach is based on adapting an improved binary particle swarm optimization (IBPSO) algorithm. Additionally, a greedy methodology was utilized for swarm initialization to seed the swarm with good solutions. Experimental results, of over six small and large NRP instances, demonstrated that the proposed approach converges much faster to solutions better than the ones discovered by the original binary PSO.