The Source for Java Technology Collaboration
User: Password:
Register | Login help    

Search

Online Books:
java.net on MarkMail:


View by: Most Recent | Topic | Community | Webloggers | James Gosling   
Monthly Archives:    

Blogs by topic Testing and user johnm

• Accessibility • Ajax • Blogging • Business • Community 
• Databases • Deployment • Distributed • Eclipse • Education 
• EJB • Extreme Programming • Games • Grid • GUI 
• IDE • Instant Messaging • J2EE • J2ME • J2SE 
• JavaOne • Jini • JSP • JSR • JXTA 
• LDAP • Linux • Mobility • NetBeans • Open Source 
• OpenSolaris • P2P • Patterns • Performance • Porting 
• Programming • Research • Security • Servlets • Struts 
• Swing • Testing • Tools • Virtual Machine • Web Applications 
• Web Design • Web Development Tools • Web Services and XML 


Testing

There's some interesting discussions taking place on the nature of tests. Brian Marick distinguishes between tests as specification vs. tests as examples. Michael Feathers asks if type systems in programming languages are really tests.

Kevin Lawrence (and the Agitar crew) talk about the philosophical contention between the notions of For All and There Exists. That is, the difference in mindset of existentialists vs. universalists. Looking at debates in e.g., the extreme programming world, there's a lot of confusion and arguments back and forth that stem from this constructivist vs. deconstructivist conflict.

The biggest tragedy in these debates, IMHO, is that people on both sides of the fence polarize and calcify in their self-righteous positions. The fact is that we need some amount of both approaches to succeed. For example, writing test-first leads to horrible code if you don't also refactor as you go. Accretive unit tests that aren't themselves refactored leads to big, ugly and unmaintainable test suites. More simply, positivist (aka "garden path") tests must be balanced with deconstructivst (test (to) destruction) tests.

Stepping up a level or three, it's even better if, rather than merely mitigating and ameliorating problems, we change the game such that it's hard/impossible to even articulate bad ways and trivial/easy to articulate the garden paths. That is one of the biggest benefits to taking a linguistic approach to development.

on Apr 22, 2006 | Permalink | Discuss
Software development is all about creating and manipulating languages. We ignore that at our own peril.
on Jan 12, 2005 | Permalink | Discuss