scispace - formally typeset
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

Beck
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.
Proceedings ArticleDOI

Applying Test Driven Development in the Big Data Domain – Lessons From the Literature

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

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

Kim R. Fowler
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

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

Kent Beck
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

Beck
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)