On the Varieties of Scientific Software Verification

Mr David Benn1

1CSIRO, Adelaide, Australia

Abstract:

Methods

Despite its importance, it is not always obvious to a Research Software Engineer (RSE) what kinds of testing make sense for particular types of applications in a research context. Both verification (building it correctly) and validation (building the right thing) must be addressed.

With a focus on verification, its scope includes system, integration and unit testing, methods such as test driven development (TDD), code coverage, static analysis, semi-formal methods, code review, language features, libraries and tools.

Concerns peculiar to scientific computing such as numerical tolerance, reproducibility, and the equivalence of a parallelised and serial codebase are also key.

Recommending best practices in terms of patterns, libraries, tools and case studies for commonly used scientific programming languages and application types are informed by practice and research.

Results

Resources for programming languages (e.g. C++, Python, R) have been collected. Experience-based case studies are being documented for development activities such as porting, parallelising, and the creation of scientific web applications in conjunction with particular methods such as  reference testing, TDD, and property-based testing.

A one day Python testing workshop was developed and delivered for the Ag & Food data school and subsequently a software carpentry style Python testing episode.

Conclusion

All software requires verification and validation of some kind. Determining the appropriate approach to verification is crucial to  the fitness, reliability and ongoing maintenance of scientific software. Organising a set of resources, training materials, and shared experience can only be of benefit to a community of software development practitioners and their beneficiaries.


Biography:

David is a member of CSIRO IM&T’s Scientific Computing Research Software Engineering team, working with scientists to enhance and accelerate research through software development and high performance computing.

He is interested in the intersection of Science and software development, the publication of research data and software, approaches to verification, reproducibility, and programming paradigms.

In his spare time, David is an amateur astronomer with an interest in variable star observing.

ABOUT AeRO

AeRO is the industry association focused on eResearch in Australasia. We play a critical coordination role for our members, who are actively transforming research via Information Technology. Organisations join AeRO to advance their own capabilities and services, to collaborate and to network with peers. AeRO believes researchers and the sector significantly benefit from greater communication, coordination and sharing among the increasingly different and evolving service providers.

Conference Managers

Please contact the team at Conference Design with any questions regarding the conference.
© 2019 Conference Design Pty Ltd