From owner-chemistry@ccl.net Thu Oct 13 07:27:00 2005 From: "Chas Simpson csimpson||hydrogen.cem.uct.ac.za" To: CCL Subject: CCL: W:Re:Test driven development/XP etc. in scientific software development Message-Id: <-29584-051013072334-4054-bZ2YC8oVXe2wfVRmWypjqw^server.ccl.net> X-Original-From: "Chas Simpson" 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 level. 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 (www.extremeprogramming.org)? 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 sweeping generalisation?). Apologies if my generalisations caused any offence - none was intended. Thanks, Chas