Abeer Hamdy - Profile on Academia.edu (original) (raw)
Papers by Abeer Hamdy
Artificial Bee Colony for Automated Black-Box Testing of RESTful API
Smart innovation, systems and technologies, Dec 31, 2022
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
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.
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 ...
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...
DevOps and IaC to Automate the Delivery of Hands-On Software Lab Exams
2022 6th International Conference on Computer, Software and Modeling (ICCSM)
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.
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.
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...
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.
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.
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...
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 ...
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.
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.
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...
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.
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.
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.
Artificial Bee Colony for Automated Black-Box Testing of RESTful API
Smart innovation, systems and technologies, Dec 31, 2022
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
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.
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 ...
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...
DevOps and IaC to Automate the Delivery of Hands-On Software Lab Exams
2022 6th International Conference on Computer, Software and Modeling (ICCSM)
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.
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.
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...
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.
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.
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...
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 ...
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.
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.
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...
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.
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.
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.