CCL: W:Re:Test driven development/XP etc. in scientific software
- From: "Chas Simpson" <csimpson _
- Subject: CCL: W:Re:Test driven development/XP etc. in scientific
Sent to CCL by: "Chas Simpson" [csimpson_-_hydrogen.cem.uct.ac.za]
Thanks to Geoff Hutchison for pointing out my fairly sweeping generalisation on
the quality and number of development tools available for Fortran and C/C++.
Apologies, I was referring to the testing tools and I'm not really in a position
to comment on quality of these products for Fortran or C++.
What Im interested in are the testing techniques employed by coders in the CCL.
As far as I recall, the likes of Charmm, Gaussian, GAMES-US, Namd, and DL_Poly
do not employ unit tests. I could be completely wrong. However, as Geoff pointed
out, a lot of packages do provide test simulations to ensure the overall build
is correct. None that I know of come with testing mechanisms for the individual
critical components, nevermind at the individual function/procedure/method
My questions stem from the fact that in business software development there is a
growing enthusiasm and support for test driven development (see testdriven.com
write unit test first, write code so that the unit test passes, refractor, write
next test ). I was wondering if this is catching on in the scientific community?
Secondly, does anyone actively employ testers, perhaps undergraduate students in
academia and fully fledged QA departments in industry? Finally, are other modern
software practices being investigated, such as the use of specific software
patterns, Agile development (agilemanifesto.org) and Extreme Programming
With regards to the non-testing related tools (IDEs/source control/code
generation etc) I'm interested in which are the most popular and how widely
these are employed. Personally, Ive found that some of the IDEs are glorified
text editors and hamper development more than anything else. Source control,
debugger and compiler integration is often poor or non-existent (another
Apologies if my generalisations caused any offence - none was intended.