• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 21
  • 2
  • Tagged with
  • 24
  • 24
  • 16
  • 13
  • 10
  • 6
  • 5
  • 4
  • 4
  • 4
  • 3
  • 3
  • 3
  • 3
  • 3
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
11

Towards Collaborative GUI-based Testing

Bauer, Andreas January 2023 (has links)
Context:Contemporary software development is a socio-technical activity requiring extensive collaboration among individuals with diverse expertise. Software testing is an integral part of software development that also depends on various expertise. GUI-based testing allows assessing a system’s GUI and its behavior through its graphical user interface. Collaborative practices in software development, like code reviews, not only improve software quality but also promote knowledge exchange within teams. Similar benefits could be extended to other areas of software engineering, such as GUI-based testing. However, collaborative practices for GUI-based testing necessitate a unique approach since general software development practices, perceivably, can not be directly transferred to software testing. Goal:This thesis contributes towards a tool-supported approach enabling collaborative GUI-based testing. Our distinct goals are (1) to identify processes and guidelines to enable collaboration on GUI-based testing artifacts and (2) to operationalize tool support to aid this collaboration. Method:We conducted a systematic literature review identifying code review guidelines for GUI-based testing. Further, we conducted a controlled experiment to assess the efficiency and potential usability issues of Augmented Testing. Results:We provided guidelines for reviewing GUI-based testing artifacts, which aid contributors and reviewers during code reviews. We further provide empirical evidence that Augmented Testing is not only an efficient approach to GUI-based testing but also usable for non-technical users, making it a promising subject for further research in collaborative GUI-based testing. Conclusion:Code review guidelines aid collaboration through discussions, and a suitable testing approach can serve as a platform to operationalize collaboration. Collaborative GUI-based testing has the potential to improve the efficiency and effectiveness of such testing.
12

Exploring the Encounter of ContinuousDeployment and the Financial Industry

FRIE, FELIX, HAMMMARLUND, GUSTAV January 2016 (has links)
The digitisation of the financial markets has led to IT becoming a vitalpart of financial institutions. The principles and practices of ContinuousDeployment (CD) are utilised to increase innovation through flexibilityand swiftness at many IT companies. This thesis explores the encounterof CD and the financial industry through participant observations andsemi-structured interviews with developers.We find in our study that practitioners in the financial industry usepractices that are part of a CD process. The specialisation of the systemsthat is evident in the industry could be considered a barrier for theadoption of a CD process. However, improved transparency that maycome as a result of CD is well aligned with the demands that are evidentin the industry. Furthermore, the requirement for code reviews mightimpact the ability to attain a continuous process, as it must be a manual.
13

Towards Measuring & Improving Source Code Quality

Iftikhar, Umar January 2024 (has links)
Context: Software quality has a multi-faceted description encompassing several quality attributes. Central to our efforts to enhance software quality is to improve the quality of the source code. Poor source code quality impacts the quality of the delivered product. Empirical studies have investigated how to improve source code quality and how to quantify the source code improvement. However, the reported evidence linking internal code structure information and quality attributes observed by users is varied and, at times, conflicting. Furthermore, there is a further need for research to improve source code quality by understanding trends in feedback from code review comments. Objective: This thesis contributes towards improving source code quality and synthesizes metrics to measure improvement in source code quality. Hence, our objectives are 1) To synthesize evidence of links between source code metrics and external quality attributes, & identify source code metrics, and 2) To identify areas to improve source code quality by identifying recurring code quality issues using the analysis of code review comments. Method: We conducted a tertiary study to achieve the first objective, an archival analysis and a case study to investigate the latter two objectives. Results: To quantify source code quality improvement, we reported a comprehensive catalog of source code metrics and a small set of source code metrics consistently linked with maintainability, reliability, and security. To improve source code quality using analysis of code review comments, our explored methodology improves the state-of-the-art with interesting results. Conclusions: The thesis provides a promising way to analyze themes in code review comments. Researchers can use the source code metrics provided to estimate these quality attributes reliably. In future work, we aim to derive a software improvement checklist based on the analysis of trends in code review comments.
14

Investigating the Impact of Personal, Temporal and Participation Factors on Code Review Quality

Cao, Yaxin 07 1900 (has links)
La révision du code est un procédé essentiel quelque soit la maturité d'un projet; elle cherche à évaluer la contribution apportée par le code soumis par les développeurs. En principe, la révision du code améliore la qualité des changements de code (patches) avant qu'ils ne soient validés dans le repertoire maître du projet. En pratique, l'exécution de ce procédé n'exclu pas la possibilité que certains bugs passent inaperçus. Dans ce document, nous présentons une étude empirique enquétant la révision du code d'un grand projet open source. Nous investissons les relations entre les inspections des reviewers et les facteurs, sur les plans personnel et temporel, qui pourraient affecter la qualité de telles inspections.Premiérement, nous relatons une étude quantitative dans laquelle nous utilisons l'algorithme SSZ pour détecter les modifications et les changements de code favorisant la création de bogues (bug-inducing changes) que nous avons lié avec l'information contenue dans les révisions de code (code review information) extraites du systéme de traçage des erreurs (issue tracking system). Nous avons découvert que les raisons pour lesquelles les réviseurs manquent certains bogues était corrélées autant à leurs caractéristiques personnelles qu'aux propriétés techniques des corrections en cours de revue. Ensuite, nous relatons une étude qualitative invitant les développeurs de chez Mozilla à nous donner leur opinion concernant les attributs favorables à la bonne formulation d'une révision de code. Les résultats de notre sondage suggèrent que les développeurs considèrent les aspects techniques (taille de la correction, nombre de chunks et de modules) autant que les caractéristiques personnelles (l'expérience et review queue) comme des facteurs influant fortement la qualité des revues de code. / Code review is an essential element of any mature software development project; it aims at evaluating code contributions submitted by developers. In principle, code review should improve the quality of code changes (patches) before they are committed to the project's master repository. In practice, the execution of this process can allow bugs to get in unnoticed. In this thesis, we present an empirical study investigating code review of a large open source project. We explore the relationship between reviewers'code inspections and personal, temporal and participation factors that might affect the quality of such inspections. We first report a quantitative study in which we applied the SZZ algorithm to detect bug-inducing changes that were then linked to the code review information extracted from the issue tracking system. We found that the reasons why reviewers miss bugs are related to both their personal characteristics, as well as the technical properties of the patches under review. We then report a qualitative study that aims at soliciting opinions from Mozilla developers on their perception of the attributes associated with a well-done code review. The results of our survey suggest that developers find both technical (patch size, number of chunks, and module) and personal factors (reviewer's experience and review queue) to be strong contributors to the review quality.
15

[pt] REVELANDO AS FACETAS SOCIAIS E TÉCNICAS DA DEGRADAÇÃO DO DESIGN NA REVISÃO DE CÓDIGO MODERNA / [en] UNVEILING SOCIAL AND TECHNICAL FACETS OF DESIGN DEGRADATION IN MODERN CODE REVIEW

ANDERSON GONCALVES UCHOA 08 October 2021 (has links)
[pt] O design de software é uma preocupação fundamental na revisão de código, por meio da qual os desenvolvedores discutem ativamente e melhoram cada mudança de software. No entanto, a revisão de código é uma tarefa colaborativa influenciada por aspectos técnicos e sociais. Consequentemente, esses aspectos podem desempenhar um papel fundamental em como o design de software se degrada. Eles podem contribuir para acelerar ou reverter a degradação do design durante o processo de revisão de cada mudança. No entanto, há pouco entendimento sobre: (i) o impacto da revisão do código e suas práticas na degradação do design ao longo do tempo; e (ii) em que medida os aspectos sociais e técnicos estão relacionados com a redução ou aumento da degradação do design. Abordamos essas limitações motivadas por dois objetivos. Nosso primeiro objetivo é fornecer uma caracterização de como as revisões de código modernas afetam a degradação do design durante a manutenção do software. Consideramos vários aspectos técnicos e sociais para estudar o impacto das revisões de código, utilizando técnicas de aprendizado de máquina. Nosso segundo objetivo é explorar o papel dos aspectos técnicos e sociais em distinguir e predizer mudanças de design (não) impactantes durante as revisões de código. Uma mudança de design é considerada impactante quando varia a densidade e a diversidade dos sintomas de degradação (ou seja, cheiros de código). Esses objetivos foram abordados em dois estudos empíricos. Nosso primeiro estudo relata uma caracterização do impacto das revisões de código na evolução dos sintomas de degradação ao longo de cada revisão de código. Também levamos em consideração quando havia um objetivo explícito ou discussões sobre design de software. Nosso segundo estudo relata uma análise dos aspectos técnicos e sociais que influenciam as mudanças ao longo de todas as revisões em uma única revisão de código. Então, pudemos observar o papel dos aspectos sociais em distinguir e predizer mudanças impactantes no design. Nossos resultados mostram que a maioria das revisões de código tem pouco ou nenhum impacto na degradação, mesmo com discussões explícitas de design. Longas discussões e uma alta taxa de discordância dos revisores aumentam o risco de degradação. Os aspectos sociais e técnicos são capazes de distinguir mudanças de design (não) impactantes. Em resumo, nossos resultados nos forneceram uma melhor compreensão dos aspectos influentes que nos ajudam a derivar diretrizes para mitigar a degradação durante as revisões de código. Nossos resultados também fornecem insights para projetar novas ferramentas de revisão de código, também capazes de alertar os desenvolvedores com antecedência sobre o impacto prejudicial do design ao longo das revisões de código. / [en] Software design is a key concern in code review through which developers actively discuss and improve each software change. Nevertheless, code review is a collaborative task influenced by technical and social aspects. Consequently, these aspects can play a key role in how software design degrades. They can contribute to accelerating or reversing design degradation during the process of each single change s review. However, there is little understanding about: (i) the impact of code review and their practices on design degradation over time; and (ii) to what extent social and technical aspects are related to the reduction or increase of design degradation.We addressed these limitations driven by two goals. Our first goal is to provide a characterization of how modern code reviews impact design degradation during software maintenance. We consider various technical and socials aspects to study the code reviews impact. Our second goal is to explore the role of technical and social aspects in distinguishing and predicting (un)impactful design changes during code reviews, using machine learning techniques. A design change is considered impactful when it varies the density and diversity of degradation symptoms (i.e., code smells). These goals were addressed with two empirical studies. Our first study reports a characterization of the impact of code reviews on the evolution of degradation symptoms along each code review. We also took into consideration when there was an explicit goal or discussions around software design. Our second study reports an analysis of technical and social aspects influencing changes along all the revisions within a single code review. Then, we could observe the role of social aspects in distinguishing and predicting design impactful changes. Our results show that the majority of code reviews have little or no impact on degradation, even with explicit design discussions. Long discussions and a high rate of reviewers disagreement increase the risk of degradation. Both social and technical aspects are able to distinguish design (un)impactful changes. In summary, our results provided us with a better understanding of influential aspects that help us in deriving guidelines to mitigate degradation during code reviews. Our results also provide insights to design a new code review tool salso able to warn developers early about the harmful design impact along code reviews.
16

The impact of maturity, scale and distribution on software quality : An industrial case study

Vaka, Kranthi, Narla, Karthik January 2017 (has links)
Context. In this ever-changing world of software development, the process of organizations adopting distributed development is gaining prominence. Implementing various development processes in such distributed environment is giving rise to numerous issues which affects the quality of the product. These issues could be due to the involvement of architects across national borders during the process of development. In this research, the focus is to improve software quality by addressing the impact of maturity and scale between teams and its affect on code review process. Further to identify the issues behind the distribution between teams separated by geographical, temporal and cultural distances. Objectives. The main objective of this research is to identify how different factors such as maturity on quality of deliverables, scale and distribution that impacts the code review process affecting software quality. Based on code review comments in data set, the factors that were examined in this research are evolvability of defects and difference in the quality of software developed by mature and immature teams within code review process. Later on, the issues related to the impact of geographical, temporal and cultural distances on the type of defects revealed during distributed development are identified. Methods. To achieve these objectives, a case study was conducted at Ericsson. A mixed approach has been chosen that includes, archival data and semi-structured interviews to gather useful data for this research. Archival data is one of the data collection method used for reviewing comments in data set and gather quantitative results for the study. We employed approaches such as descriptive statistics, hypothesis testing, and graphical representation to analyze data. Moreover, to strengthen these results, semi-structured group interview is conducted to triangulate the data and collect additional insights about code review process in large scale organizations. Results. By conducting this research, it is inferred that teams with a lower level of maturity produce more number of defects. It was observed that 35.11% functional, 59.03% maintainability, 0.11% compatibility, 0.028% security, 0.73% reliability, 4.96% performance efficiency, 0.014% portability of defects were found from archival data. Majority of defects were of functional and maintainability type, which impacts software quality in distributed environment. In addition to the above-mentioned results, other findings are related to evolvability of defects within immature teams which shows that there is no particular trend in increase or decrease in number of defects. Issues that occur due to distribution between teams are found out in this research. The overall results of this study are to suggest the impact of maturity and scale on software quality by making numerical assumptions and validating these finding with interviews. Interviews are also used to inquire information about the issues from dataset related to the impact of global software engineering (GSE) distances on code review process. Conclusions. At the end of this research it is concluded that in these type of projects, immature teams produce more number of defects than mature teams. This is because when large-scale projects are distributed globally, it is always harder to share and acquire knowledge between teams, increase group learning and mentor teams located in immature sites. Immature developers have problems of understanding the structure of code, new architects need to acquire knowledge on the scope and real time issues for improving quality of software. Using results presented in this thesis, researchers can find new gaps easily to extend the research on various influences on code review process in distributed environment.
17

Continuous Integration Pipelines to Assess Programming Assignments : Test Like a Professional

Strand, Anton January 2020 (has links)
Examiners of programming assignments in higher education and people in the software industry both need to test and review code. However, the assessing techniques used are often quite different. The IT industry often uses agile work methods like continuous integration and automated tests, while examiners either do manual assessments or rely on code grading tools. The students will most likely become developers and work using agile processes. Therefore, there are possible benefits of universities trying to imitate the work processes of the software industry. The purpose of this study was to develop a workflow for programming assignments inspired by continuous integration, Scrum, and GitLab flow. The workflow was developed based on the requirements of Linnaeus University and tested on one of their programming assignments. It showed that a simplified agile work process is suitable for programming assignments since the demonstration fulfilled all of the predefined requirements. However, examiners might miss some of the workflow’s benefits if the programming assignment can not be tested automatically since it will require more manual work while grading.
18

Challenges working from home and its impact on Code reviews - Multiple Case Study

Tallari, Rohith Girikshith, Kataray, Ravi Theja January 2022 (has links)
Background: COVID-19 is a dangerous contagious infection which was declared as a global pandemic by World Health Organisation (WHO) in March 2020. It was rapidly spreading worldwide, forcing the world to move into isolation and the software developing companies to change their work settings into remote working. Quality of the software is a significant attribute that determines the success of a project. Code reviews are an essential software development practice and are the first step towards improving the quality of the software. Objectives: The main objective of this research study is to list the challenges that the developers are facing while working from home and investigate the impact of challenges on code review practices. Methods: A multiple case study has been conducted in 5 organizations to understand and analyze the effect of transition on the code review process. We achieved this by conducting semi-structured interviews and participant observation with developers involved in code review practices of each organization considered for the study and qualitatively analyzed the gathered data using thematic analysis. Results: The results indicated challenges concerning team collaboration, infrastructure, productivity and burnout in the early stages of the pandemic. However, later, organizations’ mitigating strategies have helped them cope with the situation, and no significant impact due to working from home were observed on the code review process. Conclusions: Our findings highlight that there is no considerable impact of the challenges factored in due to working from home on the code review process. The major reasons behind that was the modernization of the tools used for code reviews and timely implementation of mitigation strategies by organizations. Based on the mitigation strategies taken by the organisations we formulated guidelines, which can be taken into consideration by the organisations still suffering with the transition to work from home.
19

Refaktoring při vývoji software / Refaktoring in Software Development

Dilík, Ján January 2008 (has links)
This paper deals with the subject of refactoring usage in the development of object-oriented applications. It outlines the refactoring theory and the properties that influence the software project development. Prior to refactorization, the system has to be covered with tests. The actual refactoring can be applied during the development process as bug fixing, code review or the refactoring of the whole system. Presented in this work are the impacts of refactorization of OKsystem's company OKbase product and the evaluation with respect to the refactoring concepts of object-oriented applications.
20

Summarizing the Results of a Series of Experiments : Application to the Effectiveness of Three Software Evaluation Techniques

Olorisade, Babatunde Kazeem January 2009 (has links)
Software quality has become and persistently remains a big issue among software users and developers. So, the importance of software evaluation cannot be overemphasized. An accepted fact in software engineering is that software must undergo evaluation process during development to ascertain and improve its quality level. In fact, there are too many techniques than a single developer could master, yet, it is impossible to be certain that software is free of defects. Therefore, it may not be realistic or cost effective to remove all software defects prior to product release. So, it is crucial for developers to be able to choose from available evaluation techniques, the one most suitable and likely to yield optimum quality results for different products - it bogs down to choosing the most appropriate for different situations. However, not much knowledge is available on the strengths and weaknesses of the available evaluation techniques. Most of the information related to the techniques available is focused on how to apply the techniques but not on the applicability conditions of the techniques – practical information, suitability, strengths, weaknesses etc. This research focuses on contributing to the available applicability knowledge of software evaluation techniques. More precisely, it focuses on code reading by stepwise abstraction as representative of the static technique, as well as equivalence partitioning (functional technique) and decision coverage (structural technique) as representatives of the dynamic technique. The specific focus of the research is to summarize the results of a series of experiments conducted to investigate the effectiveness of these techniques among other factors. By effectiveness in this research, we mean the potential of each of the techniques to generate test cases capable of revealing software faults in the case of the dynamic techniques or the ability of the static technique to generate abstractions that will aid the detection of faults. The experiments used two versions of three different programs with seven different faults seeded into each of the programs. This work uses the results of the eight different experiments performed and analyzed separately, to explore this fact. The analysis results were pooled together and jointly summarized in this research to extract a common knowledge from the experiments using a qualitative deduction approach created in this work as it was decided not to use formal aggregation at this stage. Since the experiments were performed by different researchers, in different years and in some cases at different site, there were several problems that have to be tackled in order to be able to summarize the results. Part of the problems is the fact that the data files exist in different languages, the structure of the files are different, different names is used for data fields, the analysis were done using different confidence level etc. The first step, taken at the inception of this research was to apply all the techniques to the programs used during the experiments in order to detect the faults. This purpose of this personal experience with the experiment is to be familiarized and get acquainted to the faults, failures, the programs and the experiment situations in general and also, to better understand the data as recorded from the experiments. Afterwards, the data files were recreated to conform to a uniform language, data meaning, file style and structure. A well structured directory was created to keep all the data, analysis and experiment files for all the experiments in the series. These steps paved the way for a feasible results synthesis. Using our method, the technique, program, fault, program – technique, program – fault and technique – fault were selected as main and interaction effects having significant knowledge relevant to the analysis summary result. The result, as reported in this thesis, indicated that the functional technique and the structural technique are equally effective as far as the programs and faults in these experiments are concerned. Both perform better than the code review. Also, the analysis revealed that the effectiveness of the techniques is influenced by the fault type and the program type. Some faults were found to exhibit better behavior with certain programs, some were better detected with certain techniques and even the techniques yield different result in different programs. / I can alternatively be contacted through: qasimbabatunde@yahoo.co.uk

Page generated in 0.1158 seconds