Journal ArticleDOI
Test-Driven Development in scientific software: a survey
Reads0
Chats0
TLDR
The results of this survey indicate the need for additional empirical evaluation of the use of TDD for the development of scientific software to help organizations make better decisions.Abstract:
Scientific software developers are increasingly employing various software engineering practices. Specifically, scientists are beginning to use Test-Driven Development (TDD). Even with this increasing use of TDD, the effect of TDD on scientific software development is not fully understood. To help scientific developers determine whether TDD is appropriate for their scientific projects, we surveyed scientific developers who use TDD to understand: (1) TDDs effectiveness, (2) the benefits and challenges of using TDD, and (3) the use of refactoring practices (an important part of the TDD process). Some key positive results include: (1) TDD helps scientific developers increase software quality, in particular functionality and reliability; and (2) TDD helps scientific developers reduce the number of problems in the early phase of projects. Conversely, some key challenges include: (1) TDD may not be effective for all types of scientific projects; and (2) Writing a good test is the most difficult task in TDD, particularly in a parallel computing environment. To summarize, TDD generally has a positive effect on the quality of scientific software, but it often requires a large effort investment. The results of this survey indicate the need for additional empirical evaluation of the use of TDD for the development of scientific software to help organizations make better decisions.read more
Citations
More filters
Book
Test Driven Development: By Example
TL;DR: Drive development with automated tests, a style of development called “Test-Driven Development” (TDD for short), which aims to dramatically reduce the defect density of code and make the subject of work crystal clear to all involved.
Journal ArticleDOI
Report on the Third Workshop on Sustainable Software for Science: Practice and Experiences (WSSSPE3)
Daniel S. Katz,Sou-Cheng T. Choi,Nancy Wilkins-Diehr,Neil Chue Hong,Colin C. Venters,James Howison,Frank J. Seinstra,Matthew B. Jones,Karen Cranston,Thomas Clune,Miguel de Val-Borro,Richard Littauer +11 more
TL;DR: The report includes a description of the keynote presentation of the workshop, which served as an overview of sustainable scientific software, and summarizes a set of lightning talks in which speakers highlighted to-the-point lessons and challenges pertaining to sustaining scientific software.
Proceedings ArticleDOI
Applying Test Driven Development in the Big Data Domain – Lessons From the Literature
Daniel Staegemann,Matthias Volk,Erik Lautenschlager,Matthias Pohl,Mohammad Abdallah,Klaus Turowski +5 more
TL;DR: In this article, the authors analyzed existing literature reviews on test driven development in the big data domain to extract insights from those sources of aggregated knowledge, which can be applied to this new setting.
Journal ArticleDOI
"Who Has Plots?": Contextualizing Scientific Software, Practice, and Visualizations
Drew Paine,Charlotte P. Lee +1 more
TL;DR: Findings from an ethnographic study of a cosmology group's collaborative scientific software production are presented, demonstrating how these cosmologists use plots to simultaneously test their software and analyze data while interrogating multiple layers of infrastructural components.
Book ChapterDOI
Dealing with Risk
TL;DR: In this article, the authors identify the various risks and analyze them, and then control risks by reducing, constraining, or transferring them by assessing the state of the risks by analyzing them again.
References
More filters
Journal ArticleDOI
Basics of qualitative research : grounded theory procedures and techniques
Anselm L. Strauss,Juliet Corbin +1 more
TL;DR: In this article, the authors discuss the uses of literature and open coding techniques for enhancing theoretical sensitivity of theoretical studies, and give guidelines for judging a grounded theory study.
Book
Design Patterns: Elements of Reusable Object-Oriented Software
TL;DR: The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns, which most experienced OOP designers will find out they've known about patterns all along.
Book
Extreme Programming Explained: Embrace Change
TL;DR: You may love XP, or you may hate it, but Extreme Programming Explained will force you to take a fresh look at how you develop software.
Book
Refactoring: Improving the Design of Existing Code
TL;DR: Almost every expert in Object-Oriented Development stresses the importance of iterative development, but how do you add function to the existing code base while still preserving its design integrity?
Book
Test Driven Development: By Example
TL;DR: Drive development with automated tests, a style of development called “Test-Driven Development” (TDD for short), which aims to dramatically reduce the defect density of code and make the subject of work crystal clear to all involved.
Related Papers (5)
Claims about the use of software engineering practices in science
Dustin Heaton,Jeffrey C. Carver +1 more
Software Engineering Practices and Principles to Increase Quality of Scientific Applications
Bojana Koteska,Anastas Mishev +1 more