"uuid","repository link","title","author","contributor","publication year","abstract","subject topic","language","publication type","publisher","isbn","issn","patent","patent status","bibliographic note","access restriction","embargo date","faculty","department","research group","programme","project","coordinates"
"uuid:61b67c6b-ba61-49d9-830e-750efc2c5e4e","http://resolver.tudelft.nl/uuid:61b67c6b-ba61-49d9-830e-750efc2c5e4e","The Effect of “Good First Issue” Indicators upon Newcomer Developers: Identifying Improvements for Newcomer Task Recommendation","Alderliesten, David (TU Delft Electrical Engineering, Mathematics and Computer Science; TU Delft Software Engineering)","Zaidman, Andy (mentor); Bidarra, Rafael (graduation committee); Gousios, Georgios (graduation committee); Delft University of Technology (degree granting institution)","2020","The recommendation of tasks for newcomers within a software project throughgood first issues is being done within the domain of software development, such as onGithubplatform. These issues aim to help newcomers identify tasks that are suitablefor them and their level of expertise within the project. This thesis report investigatesthe effectiveness regarding developer onboarding and task completion ofgood firstissues by data mining a set of 105 repositories and manually analyzing at most 30good first issues and 30 initial commits per sampled project. It was found that, althoughgood first issues are effective at developer onboarding, and developers perceivegoodfirst issues as being useful, changes can be made to the types of tasks suggested asgood first issues to match the types of initial contributions made by newcomers. It wasalso found that developers with less than a year of experience favoreddocumentation-related contributions for their first commit to a project.","Good First Issues; Software Engineering; Task Recommendation; Developer Onboarding; Newcomer Task Recommendation","en","master thesis","","","","","","","","","","","","Computer Science","",""
"uuid:c58343a1-3700-42c4-bc81-aacca9f54248","http://resolver.tudelft.nl/uuid:c58343a1-3700-42c4-bc81-aacca9f54248","Inferring Personality from GitHub Communication Data: Promises & Perils","van Mil, Frenk (TU Delft Electrical Engineering, Mathematics and Computer Science)","Zaidman, Andy (mentor); Rastogi, Ayushi (graduation committee); Delft University of Technology (degree granting institution)","2020","Personality plays a significant role in our lives; it does not only influence what we think, feel, and do, but also affects what we say about what we think, feel, and do. In software engineering (SE), it might help in improving team composition through a combination of personalities within a team, and it could help explain work preferences and work satisfaction. Earlier studies in the field of software engineering have focused on extracting personality from developers with the use of questionnaires and automatic tools such as psycholinguistic tests. Psycholinguistic tests infer personality based on the words people use. As taking questionnaires is time-consuming, the interest in automated tools has grown. However, there is a lack of studies comparing different psycholinguistic models on actual SE data to validate to what extent these tools apply to software engineering. In this study, we compare two well-established academical models proposed by Yarkoni and Golbeck et al. and the popular industrial model Personality Insights by IBM. We use the three models to infer personality from comments on open-source projects on GitHub and compare the found scores to a ground-truth obtained through a questionnaire among software developers. In this study, we establish a baseline and compare three models on their performance to this baseline. We show three methods to perform almost equally when mean-centered, indicating the three methods may work on different scales. We show log-transformations to improve LIWC category scores found by reducing the effect of outliers and give recommendations for thirteen preprocessing steps to improve the inference on SE data. We found 600 to 1200 words per person to provide sufficient accuracy while remaining resource-aware and recommend a minimum of a hundred words for all three methods. Furthermore, we do not find enough evidence for discrimination by all three methods for people proficient in English compared to those who found themselves non-proficient in English. We find existing psycholinguistic models to be most useful for software engineering when used on a group or team level. When used on an individual level, one should take into account possible inaccuracies and consider the potentially harmful impact the misuse or misinterpretation of scores may have on an individual.","Software Engineering; personality inference; psycholinguistic models","en","master thesis","","","","","","Related dataset 4TU.ResearchData http://doi.org/10.4121/uuid:6b648676-26f4-4eb1-89dc-050810909b3b","","","","","","Computer Science","",""
"uuid:6d8a1835-9054-4e4a-a85f-99ac592978da","http://resolver.tudelft.nl/uuid:6d8a1835-9054-4e4a-a85f-99ac592978da","Unit test generation for common and uncommon behaviors","Evers, Björn (TU Delft Electrical Engineering, Mathematics and Computer Science)","Zaidman, Andy (mentor); Panichella, Annibale (graduation committee); Lofi, Christoph (graduation committee); Devroey, Xavier (graduation committee); Derakhshanfar, Pouria (graduation committee); Delft University of Technology (degree granting institution)","2020","Various search-based test generation techniques have been proposed to automate the process of test generation to fulfill different criteria (e.g., line coverage, branch coverage, mutation score, etc.). Despite these techniques' undeniable accomplishments, they still suffer from a lack of guidance coming from the data gathered from the production phase, which makes the generation of complex test cases harder for the search process. Hence, previous studies introduced many strategies (such as dynamic symbolic execution or seeding) to address this issue. However, the test cases created by these techniques cannot assure the full coverage of the execution paths in software under test. Therefore, this thesis introduces common and uncommon behavior test generation (CUBTG) for search-based unit test generation. CUBTG uses the concept of commonality score, which is a measure of how close an execution path of a generated test case is from reproducing the same common and uncommon execution patterns observed during the real-world usage of the software. To evaluate the performance of CUBTG, we implemented it in EvoSuite and evaluated it on 150 classes from JabRef, an open-source application for managing bibliography references. We found that CUBTG managed to cover more common behaviors than plain MOSA in 75% of the cases, and more uncommon behaviors in 60% of the cases. In up to 10% of the cases CUBTG managed to find more mutants seeded by PIT by using method sequences that plain MOSA did not find.","Search-Based Software Testing; Automated Unit Testing; Common Paths Coverage","en","master thesis","","","","","","","","","","","","Computer Science","",""
"uuid:26da088e-25e1-4de4-bfc2-6935e32646ab","http://resolver.tudelft.nl/uuid:26da088e-25e1-4de4-bfc2-6935e32646ab","Fit2Crash: Specialising Fitness Functions for Crash Reproduction","Xiang, Shang (TU Delft Electrical Engineering, Mathematics and Computer Science; TU Delft Software Technology)","Zaidman, Andy (mentor); Panichella, Annibale (graduation committee); Cockx, Jesper (graduation committee); Devroey, Xavier (mentor); Derakhshanfar, Pouria (mentor); Delft University of Technology (degree granting institution)","2020","Software applications inevitably crash, and it is time-consuming to recreate the crash conditions for debugging. Recently, researchers have developed frameworks relying on genetic algorithms, e.g. Botsing, for automated crash reproduction. However, the existing approaches process exceptions of different types as if they were the same. In this thesis, we study how the four most common types of Java exceptions are thrown and define specialised fitness functions for them. We have extended Botsing and carried out an evaluation against 52 real-world crashes from seven various open-source software applications. Our results show that our proposed fitness functions influence both the effectiveness and efficiency, negatively or positively depending on the type of the target exception. This thesis demonstrates how tailoring the fitness functions according to the exception type can improve search-based crash reproduction.","Search-Based Software Testing; Search-Based Crash Reproduction; Genetic Algorithms; Fitness Function","en","master thesis","","","","","","","","","","","","Computer Science","STAMP-project | Botsing",""
"uuid:575477d4-c723-48d5-9fd3-d503ea10dd56","http://resolver.tudelft.nl/uuid:575477d4-c723-48d5-9fd3-d503ea10dd56","Determining the viability for consumers of autogenerated Software Development Kits for Web APIs","de Leeuw, Jean (TU Delft Electrical Engineering, Mathematics and Computer Science)","Zaidman, Andy (mentor); Leonard, Philip (mentor); Chen, Lydia (graduation committee); Delft University of Technology (degree granting institution)","2019","In this age of web APIs serving as the backbone of millions of services on the Internet, the developers aiming to make use of these existing services have to adapt to the developers providing these services. Whenever the services change, the users of the service have to change accordingly in order to keep using them. As the amount of third-party services used by an application grows, the more this process of adapting whenever something changes becomes more and more infeasible. One of the solutions to this problem is the usage of autogenerated Software Development Kits (SDKs). In this thesis we explore and determine the viability of these SDKs from the perspective of the consumer. We accomplish this by conducting an experiment that lets the participants solve tasks using a web API both with and without an SDKs. Their opinions were collected and manually analysed. Several of the participants were also invited for an in-depth interview regarding their opinions on the SDKs. We concluded that autogenerated SDKs are suitable for internal use in situations with low customization of settings. We also concluded that autogenerated SDKs are not suitable for third-party use.","Software Development Kit; Web API; Autogeneration; OpenAPI; Picnic","en","master thesis","","","","","","","","","","","","Computer Science","",""
"uuid:2c4dc983-eff0-4300-ab52-3eee37011cb2","http://resolver.tudelft.nl/uuid:2c4dc983-eff0-4300-ab52-3eee37011cb2","Building a scalable development cluster at Adyen","Weterings, Gijs (TU Delft Electrical Engineering, Mathematics and Computer Science; TU Delft Software Technology; TU Delft Software Engineering)","Finavaro Aniche, Mauricio (mentor); Zaidman, Andy (mentor); Pawelczak, Przemek (graduation committee); Wolters, Bert (graduation committee); Delft University of Technology (degree granting institution)","2019","Software systems today are growing to incredible proportions. Software impacts everything in our society today, and its impact on the world keeps growing every day. However, developing large software systems is becoming an increasingly complex task, due to the immense complexity and size. For a software engineer to stay productive, it is vital they can work effectively on a system, being able to focus on the problem at hand. However, large software systems throw up a lot of roadblocks on the way, with complex and slow build processes impacting the developer's productivity to higher and higher degrees as the software system grows. To help developers stay productive, we need new, more powerful ways of assisting them during their activities.
In this thesis, we present our development cluster as a part of the solution to developing software at scale. The cluster provides a high-performance infrastructure that can be used by developers to build and deploy their applications during development. By moving these build and deploy processes to a cluster during development, we can benefit from more powerful computing resources which help developers work more effectively. We evaluate our development cluster in a number of different categories, comparing build speed, system startup and general developer workflows. Additionally, we evaluate how well our solution scales and what the impact on network load is for a company integrating with this system.
This move to cloud-based development brings along new challenges, but also many new possibilities in terms of tooling, developer collaboration and software engineering research. We are convinced our cluster can help scale software development efforts in industry, as well as bring new ways of doing research on software engineering.
The final product is a web application that solves the main issues of decreasing the workload and time spent on translating.","Web application; String translations; Crowdsourcing","en","bachelor thesis","","","","","","","","","","","","","",""
"uuid:117e828b-ba09-4b7e-96b3-cf52bcbf5460","http://resolver.tudelft.nl/uuid:117e828b-ba09-4b7e-96b3-cf52bcbf5460","Usage of Static Analysis Tools in the Integrated Development Environment","van der Lippe, Tim (TU Delft Electrical Engineering, Mathematics and Computer Science)","Zaidman, Andy (mentor); Beller, Moritz (mentor); Delft University of Technology (degree granting institution)","2018","Developers make use of automation to perform repetitive and potentially error- prone tasks. One such automation can be categorised as, which aims to analyse program properties. The particular focus of this investigation are so-called ASATs (Automatic Static Analysis Tools). These ASATs are readily available for many programming languages and can be used to check coding style guidelines, elements of functional correctness and maintainability related issues. Previous studies on static analysis involved qualitative developer interviews and quantitative repository mining studies. This thesis uses automated telemetry to carry out a field study within the Integrated Development Environment (IDE), to obtain fine-grained data on developer behavior with regard to the actual use of ASATs. In addition, we have carried out a survey to validate the observed patterns. The field study is based on the Eclipse and IntelliJ plugin WatchDog, for which we elaborate upon an extensive investigation of static analysis observation techniques in the IDEs. Based on the quantitative data, we conclude the majority of all observed static analysis IDE events originate from few categories of warnings.
Moreover, most of the warnings are resolved within one minute, with warnings related to type resolution being resolved the quickest.
Developers corroborate these findings, but also confirm perceptions of earlier research that warnings contain large numbers of false positives.
Based on both datapoints, we envision a data-driven future of static analysis tooling to optimize for usefulness for the developer rather than absolute correctness of tool implementations.
The Android platform has become very popular over the years but is relatively new in terms of scientific research. This research investigates the detection perfor- mance of existing detectors, that were not designed with Android in mind, on a dataset of Android apps. In addition, multiple smell detectors and source code metrics are combined in a machine learning approach to develop an Android-specific smell detector.","code smell; detection; android","en","master thesis","","","","","","","","","","","","Computer Science","",""
"uuid:1bdd8861-6720-43c0-a13f-d7ad0f8df35d","http://resolver.tudelft.nl/uuid:1bdd8861-6720-43c0-a13f-d7ad0f8df35d","The impact of type systems and test tooling on codified testing strategies: an exploratory multi-method approach","van Hesteren, Patrick (TU Delft Electrical Engineering, Mathematics and Computer Science)","Zaidman, Andy (mentor); Witteveen, Cees (graduation committee); Gousios, Georgios (graduation committee); Delft University of Technology (degree granting institution)","2017","Software testing has been around for decades and many tools exist to aid developers in their testing process. However, little is known about the rate at which developers test their projects, the tools they use for these purposes and the impact of type systems on testing practices. Our work is the first of its kind to identify and classify available test tooling for programming languages Java, C, JavaScript and Ruby. By conducting a large scale automated analysis on open-source software projects, we show that both available test tooling and type systems have significant impact on codified testing strategies. Our observations are strengthened by targeted interviews and a large-scale survey among developers working with both statically and dynamically typed programming languages. The soft typing system seems like a promising solution, allowing developers to work with the great flexibility less strict type systems provide, while simultaneously benefiting from strict type checks that help reduce the amount of testing required to ensure the correctness of a piece of software. However, future research is needed to estimate the feasibility of such a type system. To help better aid developers in their testing process and to reduce some of the testing burden many developers seem to cope with, we propose a list of test tooling improvements based on our observations.","Software Engineering; Software testing; Type systems; Test tooling","en","master thesis","","","","","","","","","","","","","",""