25 research outputs found
Towards Understanding and Improving Code Review Quality
Code review is an essential element of any mature software development project, it is key to ensuring the long-term quality of the code base. Code review aims at evaluating code contributions submitted by developers before they are committed into the project's version control system. Code review is considered to be one of the most effective QA practices for software projects. In principle, the code review process should improve the quality of committed code changes. However, in practice, the execution of this process can still allow bugs to enter into the codebase unnoticed.
Moreover, the notion of the quality of the code review process is not limited to the quality of the source code that passed a review. It goes beyond that, the quality of the code review process can affect how successful a software development project is. For instance, in the world of open source software (OSS), a particular execution code review process may encourage or deter the contributions from ``external" developers, the people who are essential to OSS projects.
We claim that by analyzing various software artifacts as well as assessing developers' daily experience, we can create models that represent the established code review processes and highlight potentially weak points in their execution. Having this information, the stakeholders can channel the available resources to address the deficiencies in their code review process. To support such a claim, we perform the following studies.
First, we study the tool-based code review processes of two large OSS projects that use traditional model of evaluating code contributions. We analyse the software artifacts extracted from the issue tracking systems to understand what can affect code review response time and eventual outcome. We found that code review is affected not only by technical factors (e.g., patch size, priority, etc.) but also by non-technical ones (e.g., developers' affiliation, their experience, etc.).
Second, we investigate the quality of contributions that passed the code review process and explore the relationships between the reviewers' code inspections and a set of factors, both personal and social in nature, that might affect the quality of such inspections. By mining the software repository and the issue tracking system of the Mozilla project, as well as applying the SZZ algorithm to detect bug-inducing changes, we were able to find that 54\% of the reviewed changes introduced bugs in the code. Our findings also showed that both personal metrics, such as reviewer workload and experience, and participation metrics, such as the number of involved developers, are associated with the quality of the code review process.
Third, we further study the topic of code review quality by studying the developers' attitude and perception of review quality as well as the factors they believe to be important. To accomplish this, we surveyed 88 Mozilla core developers, and applied grounded theory to analyze their responses. The results provide developer insights into how they define review quality, what factors contribute to how they evaluate submitted code and what challenges they face when performing review tasks.
Finally, we examined the code review processes executed in a completely different environment --- an industrial project that uses pull-based development model. Our case study was Active Merchant project developed by Shopify Inc. We performed a quantitative analysis of their software repository to understand the effects of a variety of factors on pull request review time and outcome. After that, we surveyed the developers to understand their perception of the review process and how it is different from developers' perception in traditional development model.
The studies presented in this thesis focus on code review processes performed by projects of different nature --- OSS vs. industrial, traditional vs. pull-based. Nevertheless, we observed similar patterns in the execution of code review that the stakeholder should be aware of to maintain the long-term health of the projects
Mining modern repositories with elasticsearch
Organizations are generating, processing, and retaining data at a rate that often exceeds their ability to analyze it effec-tively; at the same time, the insights derived from these large data sets are often key to the success of the organi-zations, allowing them to better understand how to solve hard problems and thus gain competitive advantage. Be-cause this data is so fast-moving and voluminous, it is in-creasingly impractical to analyze using traditional offline, read-only relational databases. Recently, new βbig data β technologies and architectures, including Hadoop and NoSQL databases, have evolved to better support the needs of organizations analyzing such data. In particular, Elasticsearch β a distributed full-text search engine β explicitly addresses issues of scalability, big data search, and performance that relational databases were simply never designed to support. In this paper, we reflect upon our own experience with Elasticsearch and highlight its strengths and weaknesses for performing modern mining software repositories research
User Behavior Analysis Using Web-based Machine Learning Features: new solutions for IT business
The development of information technologies in IT business increases the interest in executing machine learning models directly on the client browser, reducing the load on the server and the number of levels of access to it. At the same time, some features have advantages and disadvantages, associated with a smaller amount of information transmitted over the network, limited power of client devices, and others. Among modern client-side tools with machine learning capabilities, Tensorflow.js is suitable, which can be used to analyse user behaviour in web applications for classification and clustering models based on their behavioural patterns, predict future user behaviour trends, detect unusual or suspicious user actions, recommendation models based on their previous behaviour. The article analyses the features of implementation and the limitations associated with the use, specifically regarding the behaviour of users in social networks. The model was formed based on data from news posts on social networks Instagram and Facebook, with the following parameters of user activity, such as the number of likes, comments, and shares according to the post's text. These aspects are a significant addition to the tools that can be applied within the economic, technical, and other means of IT business development. Considering this, it is advisable to study the formation and development of the innovation management system in e-business in the future.The development of information technologies in IT business increases the interest in the execution of machine learning models directly on the client browser, reduces the load on the server and the number of levels of access to it. At the same time, there are some features that have advantages and disadvantages, which are associated with a smaller amount of information transmitted over the network, limited power of client devices, and others. Among modern client-side tools with machine learning capabilities, Tensorflow.js is suitable, which can be used to analyze user behavior in web applications for classification and clustering models based on their behavioral patterns, predict future user behavior trends, detect unusual or suspicious user actions, recommendation models based on their previous behavior. The article analyzes the features of implementation, the limitations associated with the use specifically for the behavior of users in social networks. The model was formed on the basis of data from news posts on social networks Instagram and Facebook with the following parameters of user activity as the number of likes, comments and shares according to the text of the post. These aspects are a significant addition to the tools that can be applied within the set of economic, technical and other means for IT business development. Taking this into account, in the future it is advisable to study the formation and development of the innovation management system in e-business
Π‘ΠΏΠΎΡΡΠ± Π²ΠΈΠ·Π½Π°ΡΠ΅Π½Π½Ρ ΠΎΠΊΠΈΡΠ½ΠΎ-Π²ΡΠ΄Π½ΠΎΠ²Π»ΡΠ²Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΡΠ°Π»Ρ ΡΡΡΠ½ΠΊΠΈ ΠΊΠΈΡΠΊΠΈ
Π‘ΠΏΠΎΡΡΠ± Π²ΠΈΠ·Π½Π°ΡΠ΅Π½Π½Ρ ΠΎΠΊΠΈΡΠ½ΠΎ-Π²ΡΠ΄Π½ΠΎΠ²Π»ΡΠ²Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΡΠ°Π»Ρ ΡΡΡΠ½ΠΊΠΈ ΠΊΠΈΡΠΊΠΈ Π½Π°Π»Π΅ΠΆΠΈΡΡ Π΄ΠΎ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΡ ΠΌΠ΅Π΄ΠΈΡΠΈΠ½ΠΈ, ΠΌΠΎΠΆΠ΅ Π±ΡΡΠΈ Π²ΠΈΠΊΠΎΡΠΈΡΡΠ°Π½ΠΈΠΉ Π² Π°Π±Π΄ΠΎΠΌΡΠ½Π°Π»ΡΠ½ΡΠΉ Ρ
ΡΡΡΡΠ³ΡΡ.
ΠΡΠΈ ΡΠΈΡΡΠ²Π°Π½Π½Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠΉΡΠ΅ ΠΏΠΎΡΠΈΠ»Π°Π½Π½Ρ http://essuir.sumdu.edu.ua/handle/123456789/999
Π ΠΎΠ·ΡΠΎΠ±ΠΊΠ° Π΅Π½Π΅ΡΠ³ΠΎΠ·Π±Π΅ΡΡΠ³Π°ΡΡΠΎΠ³ΠΎ ΠΎΠ±Π»Π°Π΄Π½Π°Π½Π½Ρ ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ½Π° ΠΎΠΏΡΠΈΠΌΡΠ·Π°ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π³ΡΠ°Π½ΡΠ»ΡΡΡΡ Π°Π·Π°ΡΠ½ΠΈΡ Π΄ΠΎΠ±ΡΠΈΠ² Π±Π°ΡΡΠΎΠ²ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ
ΠΠΈΠΊΠΎΠ½Π°Π½ΠΈΠΉ ΠΏΠ°ΡΠ΅Π½ΡΠ½ΠΈΠΉ ΠΏΠΎΡΡΠΊ ΠΏΠΎ ΡΡΡΠ°ΡΠ½ΠΈΠΌ Π½Π°ΠΏΡΡΠΌΠΊΠ°ΠΌ ΡΡΠ²ΠΎΡΠ΅Π½Π½Ρ Π³ΡΠ°Π½ΡΠ»ΡΡΡΠΉΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°Π΄Π½Π°Π½Π½Ρ ΡΠ° Π²ΠΈΠ·Π½Π°ΡΠ΅Π½Ρ Π½Π°ΠΉΠ±ΡΠ»ΡΡ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π½Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΡΡ Π³ΡΠ°Π½ΡΠ»ΡΡΠΎΡΡΠ² ΠΏΠ»Π°Π²Ρ Π°Π·ΠΎΡΠ½ΠΈΡ
ΡΠ° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΈΡ
Π΄ΠΎΠ±ΡΠΈΠ².
Π ΡΠΎΠ±ΠΎΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΎ ΡΡΠΎΡΠ½Π΅Π½Π½Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ½ΠΎΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΡΡ
Ρ ΠΏΠ»Π°Π²Ρ Π΄Π»Ρ Π²ΡΠ΄ΡΠ΅Π½ΡΡΠΎΠ²ΠΈΡ
Π»ΠΎΠΏΠ°ΡΠ΅Π²ΠΈΡ
ΡΠ° Π²ΠΈΡ
ΡΠΎΠ²ΠΈΡ
Π³ΡΠ°Π½ΡΠ»ΡΡΠΎΡΡΠ² Π· ΡΡΠ°Ρ
ΡΠ²Π°Π½Π½ΡΠΌ Π²ΠΏΠ»ΠΈΠ²Ρ ΠΎΡΠΎΠ±Π»ΠΈΠ²ΠΎΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΡΡ ΡΡ
Π²Π½ΡΡΡΡΡΠ½ΡΡ
ΠΏΡΠΈΡΡΡΠΎΡΠ² Π½Π° Π³ΡΠ΄ΡΠΎΠ΄ΠΈΠ½Π°ΠΌΡΠΊΡ ΡΡΡ
Ρ ΡΠ° ΠΏΡΠΎΡΠ΅Ρ Π΄ΡΠΎΠ±Π»Π΅Π½Π½Ρ ΡΡΡΡΠΌΠ΅Π½Ρ ΡΡΠ΄ΠΈΠ½ΠΈ, ΡΠΎΠ·Π³Π»ΡΠ½ΡΡΡ ΠΌΠΎΠΆΠ»ΠΈΠ²ΠΎΡΡΡ ΡΠ΅Π³ΡΠ»ΡΠ²Π°Π½Π½Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·ΠΏΠ°Π΄Ρ ΡΠ΅ΡΡΡ Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ Π·ΠΎΠ²Π½ΡΡΠ½ΡΡ
Π·Π±ΡΡΠ΅Π½Ρ, Π²ΠΈΡΠ²Π»Π΅Π½Ρ ΠΎΡΠ½ΠΎΠ²Π½Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ ΠΊΠΎΠ½ΡΡΡΡΡΠ²Π°Π½Π½Ρ Π³ΡΠ°Π½ΡΠ»ΡΡΠΎΡΡΠ², ΡΡΠ²ΠΎΡΠ΅Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ° ΡΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ·ΡΠ°Ρ
ΡΠ½ΠΊΡ.
ΠΡΠΈ ΡΠΈΡΡΠ²Π°Π½Π½Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠΉΡΠ΅ ΠΏΠΎΡΠΈΠ»Π°Π½Π½Ρ http://essuir.sumdu.edu.ua/handle/123456789/448