SCG News

Test name recommendation — A study of the unit test naming and naming traditions

Christian Zürcher. Test name recommendation — A study of the unit test naming and naming traditions. Bachelor’s thesis, University of Bern, January 2020. Details.

Abstract

The name of a unit test is an essential part of it and helps the developers to understand its purpose and to identify tests inside test suites. And even though such names have a lot of benefits, many tests end without a descriptive name. This occurs not only in automatically generated tests but also in manually written ones. Automatically generating descriptive names is confronted with the challenge that there is a vast variety of tests, written by different developers with different conventions, or generated by different tools. In this thesis, we present an automated approach to generate descriptive names based on the test body by finding the focal method of the test, around which it was written. We compared our results to the original names and to other publications to find out that our approach provides good results for all kind of tests even though in specific scenarios, other approaches may work better. Finally, we found out, that the names created by developers, when done correctly, are still the most descriptive.

Posted by scg at 21 January 2020, 10:15 am comment link

On Demand Runtime Information — A language- and IDE-agnostic approach to provide runtime information

Rathesan Iyadurai. On Demand Runtime Information — A language- and IDE-agnostic approach to provide runtime information. Masters thesis, University of Bern, January 2020. Details.

Abstract

Understanding programs written in dynamically-typed languages can be difficult because of the lack of static type information. When reasoning about a function written in JavaScript for instance, developers often lack the information about parameter types and values, which is essential for understanding the implementation. Gathering runtime information and presenting it on-demand would assist developers in their program comprehension tasks. In this thesis we present AUDREY, a system that gathers runtime information for multiple languages and exposes the information to many development environments. AUDREY aims to be as language- and IDE-agnostic as the underlying infrastructure allows. We discuss the challenges of implementing AUDREY with state-of-the-art technologies for future work.

Posted by scg at 10 January 2020, 11:15 am comment link

Testability First!

M. Ghafari, M. Eggiman, and O. Nierstrasz. Testability First!. In 2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), p. 1-6, September 2019. Details.

Abstract

Background: The pivotal role of testing in high-quality software production has driven a significant effort in evaluating and assessing testing practices. Aims: We explore the state of testing in a large industrial project over an extended period. Method: We study the interplay between bugs in the project and its test cases, and interview developers and stakeholders to uncover reasons underpinning our observations. Results: We realized that testing is not well adopted, and that testability(i.e., ease of testing) is low. We found that developers tended to abandon writing tests when they assessed the effort to be high. Frequent changes in requirements and pressure to add new features also hindered developers from writing tests. Conclusions: Regardless of the debates on test first or later, we hypothesize that the underlying reasons for poor test quality are rooted in a lack of attention to testing early in the development of a software component, leading to poor testability of the component. However, testability is usually overlooked in research that studies the impact of testing practices, and should be explicitly taken into account.

Posted by scg at 11 December 2019, 1:14 pm comment link

VISON: An Ontology-Based Approach for Software Visualization Tool Discoverability

Leonel Merino, Ekaterina Kozlova, Oscar Nierstrasz, and Daniel Weiskopf. VISON: An Ontology-Based Approach for Software Visualization Tool Discoverability. In VISSOFT’19: Proceedings of the 7th IEEE Working Conference on Software Visualization, IEEE, 2019. Details.

Abstract

Although many tools have been presented in the research literature of software visualization, there is little evidence of their adoption. To choose a suitable visualization tool, practitioners need to analyze various characteristics of tools such as their supported software concerns and level of maturity. Indeed, some of such tools can be prototypes for which the lifespan is expected to be short, whereas some other tools can be fairly mature products that are maintained for a longer time. Although such characteristics are often described in papers, we conjecture that practitioners willing to adopt software visualizations require additional support to discover suitable visualization tools. In this paper, we elaborate on our efforts to provide such support. To this end, we systematically analyzed research papers in the literature of software visualization and curated a catalog of 70 available tools that employ various visualization techniques to support the analysis of multiple software concerns. We further encapsulate these characteristics in an ontology. VISON, our software visualization ontology, captures these semantics as concepts and relationships. We report on early results of usage scenarios that demonstrate how the ontology can support (i) developers to find suitable tools for particular development concerns, and (ii) researchers who propose new software visualization tools to identify a baseline tool for a controlled experiment.

Posted by scg at 11 December 2019, 1:14 pm comment link

The Impact of Developer Experience in Using Java Cryptography

M. Hazhirpasand, M. Ghafari, S. Krüger, E. Bodden, and O. Nierstrasz. The Impact of Developer Experience in Using Java Cryptography. In 2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), p. 1-6, September 2019. Details.

Abstract

Background: Previous research has shown that crypto APIs are hard for developers to understand and difficult for them to use. They consequently rely on unvalidated boilerplate code from online resources where security vulnerabilities are common.Aims and method: We analyzed 2,324 open-source Java projects that rely on Java Cryptography Architecture (JCA) to understand how crypto APIs are used in practice, and what factors account for the performance of developers in using these APIs.Results: We found that, in general, the experience of developers in using JCA does not correlate with their performance. In particular, none of the factors such as the number or frequency of committed lines of code, the number of JCA APIs developers use, or the number of projects they are involved in correlate with developer performance in this domain.Conclusions: We call for qualitative studies to shed light on the reasons underlying the success of developers who are expert in using cryptography. Also, detailed investigation at API level is necessary to further clarify a developer obstacles in this domain.

Posted by scg at 11 December 2019, 1:10 pm comment link
<< 1 2 3 4 5 6 7 8 9 10 >>
Last changed by admin on 21 April 2009