1. |
- Knauss, Eric, 1977, et al.
(författare)
-
Supporting Continuous Integration by Code-Churn Based Test Selection
- 2015
-
Ingår i: RCoSE - 2nd International Workshop on Rapid Continuous Software Engineering @ ICSE 2015 Florence, Italy.
-
Konferensbidrag (övrigt vetenskapligt/konstnärligt)abstract
- Continuous integration promises advantages in large-scale software development by enabling software development organizations to deliver new functions faster. However, implementing continuous integration in large software development organizations is challenging because of organizational, social and technical reasons. One of the technical challenges is the ability to rapidly prioritize the test cases which can be executed quickly and trigger the most failures as early as possible. In our research we propose and evaluate a method for selecting a suitable set of functional regression tests on system level. The method is based on analysis of correlations between test-case failures and source code changes and is evaluated by combining semi-structured interviews and workshops with practitioners at Ericsson and Axis Communications in Sweden. The results show that using measures of precision and recall, the test cases can be prioritized. The prioritization leads to finding an optimal test suite to execute before the integration.
|
|
2. |
- Al Sabbagh, Khaled, 1987, et al.
(författare)
-
Predicting Test Case Verdicts Using TextualAnalysis of Commited Code Churns
- 2019
-
Ingår i: CEUR Workshop Proceedings. - 1613-0073. ; 2476, s. 138-153
-
Konferensbidrag (refereegranskat)abstract
- Background: Continuous Integration (CI) is an agile software development practice that involves producing several clean builds of the software per day. The creation of these builds involve running excessive executions of automated tests, which is hampered by high hardware cost and reduced development velocity. Goal: The goal of our research is to develop a method that reduces the number of executed test cases at each CI cycle.Method: We adopt a design research approach with an infrastructure provider company to develop a method that exploits Ma-chine Learning (ML) to predict test case verdicts for committed sourcecode. We train five different ML models on two data sets and evaluate their performance using two simple retrieval measures: precision and recall. Results: While the results from training the ML models on the first data-set of test executions revealed low performance, the curated data-set for training showed an improvement on performance with respect to precision and recall. Conclusion: Our results indicate that the method is applicable when training the ML model on churns of small sizes
|
|
3. |
- Antinyan, Vard, 1984, et al.
(författare)
-
Monitoring Evolution of Code Complexity and Magnitude of Changes
- 2014
-
Ingår i: Acta Cybernetica. - 0324-721X. ; 21:3, s. 367-382
-
Tidskriftsartikel (refereegranskat)abstract
- Background: Complexity management has become a crucial activity in continuous software development. While the overall perceived complexity of a product grows rather insignificantly, the small units, such as functions and files, can have noticeable complexity growth with every increment of product features. This kind of evolution triggers risks of escalating fault-proneness and deteriorating maintainability. Goal: The goal of this research was to develop a measurement system which enables effective monitoring of complexity evolution. Method: An action research has been conducted in two large software development organiza-tions. We have measured three complexity and two change properties of code for two large industrial products. The complexity growth has been measured for five consecutive releases of products. Different patterns of growth have been identified and evaluated with software engi-neers in industry. Results: The results show that monitoring cyclomatic complexity evolution of functions and number of revisions of files focuses the attention of designers to potentially problematic files and functions for manual assessment and improvement. A measurement system was developed at Ericsson to support the monitoring process.
|
|
4. |
- Staron, Miroslaw, 1977, et al.
(författare)
-
Identifying Implicit Architectural Dependencies using Measures of Source Code Change Waves
- 2013
-
Ingår i: 39th Euromicro Conference Series on Software Engineering and Advanced Applications, SEAA 2013; Santander; Spain; 4 September 2013 through 6 September 2013. - 9780769550916 ; , s. 325-332
-
Konferensbidrag (refereegranskat)abstract
- The principles of Agile software development are increasingly used in large software development projects, e.g. using Scrum of Scrums or combining Agile and Lean development methods. When large software products are developed by self-organized, usually feature-oriented teams, there is a risk that architectural dependencies between software components become uncontrolled. In particular there is a risk that the prescriptive architecture models in form of diagrams are outdated and implicit architectural dependencies may become more frequent than the explicit ones. In this paper we present a method for automated discovery of potential dependencies between software components based on analyzing revision history of software repositories. The result of this method is a map of implicit dependencies which is used by architects in decisions on the evolution of the architecture. The software architects can assess the validity of the dependencies and can prevent unwanted component couplings and design erosion hence minimizing the risk of post-release quality problems. Our method was evaluated in a case study at one large product at Saab Electronic Defense Systems (Saab EDS) and one large software product at Ericsson AB.
|
|
5. |
- Staron, Miroslaw, 1977, et al.
(författare)
-
Selecting the Right Visualization of Indicators and Measures - Dashboard Selection Model
- 2015
-
Ingår i: International Conference on Software Measurement (Mensura).
-
Konferensbidrag (refereegranskat)abstract
- Background: Contemporary software development organizations utilize multiple channels to disseminate information about their indicators, measures, trends and predictions. Selecting these channels is usually done based on the availability of the visualization technology and a set of requirements elicited from stakeholders at the company. Eliciting these kind of requirements can be labor-intensive and time-consuming. Goal: The objective of this research is to develop a method for selecting which dashboard should be used. As the set of dissemination patterns of measures in modern organizations is limited, this method should be able to identify the needs of visualizations at the company and match them to the dissemination patterns and their supporting technology. Method: The research method applied is action research conducted at Volvo Car Group. The action research is conducted as part of a project redesigning a large project status reporting tool and has been designed to quantify the requirements elicited from the stakeholders of the system. Results: The results is the dashboard selection model which consists of seven dimensions { type of reporting, data acquisition method, type of stakeholders, method of delivery, frequency of updates, aim of the information, and length of data processing ( ow). Conclusions: The conclusions show that using this model leads to a rapid identification of the best visualization method for measurement data, which has a cost-saving impact on measurement programs and ect-maximizing impact on the companies.
|
|
6. |
- Al Sabbagh, Khaled, 1987, et al.
(författare)
-
Improving Data Quality for Regression Test Selection by Reducing Annotation Noise
- 2020
-
Ingår i: Proceedings - 46th Euromicro Conference on Software Engineering and Advanced Applications, SEAA 2020. ; , s. 191-194
-
Konferensbidrag (refereegranskat)abstract
- Big data and machine learning models have been increasingly used to support software engineering processes and practices. One example is the use of machine learning models to improve test case selection in continuous integration. However, one of the challenges in building such models is the identification and reduction of noise that often comes in large data. In this paper, we present a noise reduction approach that deals with the problem of contradictory training entries. We empirically evaluate the effectiveness of the approach in the context of selective regression testing. For this purpose, we use a curated training set as input to a tree-based machine learning ensemble and compare the classification precision, recall, and f-score against a non-curated set. Our study shows that using the noise reduction approach on the training instances gives better results in prediction with an improvement of 37% on precision, 70% on recall, and 59% on f-score.
|
|
7. |
- Al Sabbagh, Khaled, 1987, et al.
(författare)
-
Selective Regression Testing based on Big Data: Comparing Feature Extraction Techniques
- 2020
-
Ingår i: IEEE Software. - 1937-4194 .- 0740-7459. ; , s. 322-329
-
Konferensbidrag (refereegranskat)abstract
- Regression testing is a necessary activity in continuous integration (CI) since it provides confidence that modified parts of the system are correct at each integration cycle. CI provides large volumes of data which can be used to support regression testing activities. By using machine learning, patterns about faulty changes in the modified program can be induced, allowing test orchestrators to make inferences about test cases that need to be executed at each CI cycle. However, one challenge in using learning models lies in finding a suitable way for characterizing source code changes and preserving important information. In this paper, we empirically evaluate the effect of three feature extraction algorithms on the performance of an existing ML-based selective regression testing technique. We designed and performed an experiment to empirically investigate the effect of Bag of Words (BoW), Word Embeddings (WE), and content-based feature extraction (CBF). We used stratified cross validation on the space of features generated by the three FE techniques and evaluated the performance of three machine learning models using the precision and recall metrics. The results from this experiment showed a significant difference between the models' precision and recall scores, suggesting that the BoW-fed model outperforms the other two models with respect to precision, whereas a CBF-fed model outperforms the rest with respect to recall.
|
|
8. |
|
|
9. |
|
|
10. |
- Antinyan, Vard, 1984, et al.
(författare)
-
Identifying Complex Functions : By Investigating Various Aspects of Code Complexity
- 2015
-
Ingår i: Proceedings of 2015 Science and Information Conference (SAI). - : IEEE Press. - 9781479985470 - 9781479985487 - 9781479985463 ; , s. 879-888
-
Konferensbidrag (refereegranskat)abstract
- The complexity management of software code has become one of the major problems in software development industry. With growing complexity the maintenance effort of code increases. Moreover, various aspects of complexity create difficulties for complexity assessment. The objective of this paper is to investigate the relationships of various aspects of code complexity and propose a method for identifying the most complex functions. We have conducted an action research project in two software development companies and complemented it with a study of three open source products. Four complexity metrics are measured, and their nature and mutual influence are investigated. The results and possible explanations are discussed with software engineers in industry. The results show that there are two distinguishable aspects of complexity of source code functions: Internal and outbound complexities. Those have an inverse relationship. Moreover, the product of them does not seem to be greater than a certain limit, regardless of software size. We present a method that permits identification of most complex functions considering the two aspects of complexities. The evaluation shows that the use of the method is effective in industry: It enables identification of 0.5% most complex functions out of thousands of functions for reengineering.
|
|