Programmer Tests as Agile Documentation talk at St. Louis OOSIG last night

I gave another talk on this subject last night at the St. Louis OOSIG meeting. Not a huge crowd, as the announcement came a little late (that’s my story and I’m sticking to it :)). Presentation went really well I thought, and I’m really getting my thoughts and ideas in focus around this subject. I do think there is a tool and a technique missing from my bag of tricks that would make life easier when using tests as docs.

There has got to be a way to navigate from a source method to the list of tests for that method. I believe that this map should be build by annotating the tests with the name(s) of the method(s) that it is exercising. And I believe that the documentation generators should build a map that lists all the methods of an application class as hotlinks. Choosing one of these hotlinks takes you to another page with a list of tests that go along with that method.

I think that would make life a lot easier when it came time to find out how to use a particular method.

Anyway, here is a link to the slides I used last night. As always, comments are appreciated.

— bab

5 thoughts to “Programmer Tests as Agile Documentation talk at St. Louis OOSIG last night”

  1. I like the test map idea. Also, the tests telling the "what" and not the "why" is a good point. I was talking about tests as documentation with some people the other night. One problem that was raised was related to tests telling the "what" and not the "why" with an example of tests for calculations. The tests may not describe the actual calculation. If it is a common calculation, people who have used it before might recognize it from the tests, but others might not. It might be hard for those who don’t recognize the calculation in the code from the patterns used in the test, so in that case even the "what" would be hard for some to realize.

  2. I think you’re on a roll. I can think of ways to build cross-references, using both static and dynamic (run time) analysis of the code. But attributes are a good, simple, cheap way to start. It’s the simplest thing that could possibly work.

    I think you’re on the right track.

  3. http://www.greatestjournal.com/users/aochuang1/504.html ????

    http://www.greatestjournal.com/users/aochuang1/693.html ????

    http://www.greatestjournal.com/users/aochuang1/832.html ????

    http://www.greatestjournal.com/users/aochuang1/1211.html ????

    http://www.greatestjournal.com/users/aochuang1/1393.html ????

    http://www.greatestjournal.com/users/aochuang1/1727.html ????

    http://www.greatestjournal.com/users/aochuang1/1892.html ????

    http://www.greatestjournal.com/users/aochuang1/2178.html ????

    http://www.greatestjournal.com/users/aochuang1/2401.html ????

    http://www.greatestjournal.com/users/aochuang1/2672.html ????

    http://www.greatestjournal.com/users/aochuang1/2867.html ????

    http://www.greatestjournal.com/users/aochuang1/3114.html ????

    http://www.greatestjournal.com/users/aochuang1/3450.html ????

    http://www.greatestjournal.com/users/aochuang1/3638.html ???

    http://www.greatestjournal.com/users/aochuang1/3981.html ????

    http://www.greatestjournal.com/users/aochuang1/4142.html ????

    http://www.greatestjournal.com/users/aochuang1/4533.html ????

    http://www.greatestjournal.com/users/aochuang1/4669.html ????

    http://www.greatestjournal.com/users/aochuang1/5076.html ????

    http://www.greatestjournal.com/users/aochuang1/5219.html ??????

    http://www.blogstudio.com/aochuang1/ac25.htm ??????

    http://www.blogstudio.com/aochuang1/ac01.htm ????

    http://www.blogstudio.com/aochuang1/ac02.htm ???

    http://www.blogstudio.com/aochuang1/ac03.htm ????

    http://www.blogstudio.com/aochuang1/ac04.htm ????

    http://www.blogstudio.com/aochuang1/ac05.htm ????

    http://www.blogstudio.com/aochuang1/ac06.htm ????

    http://www.blogstudio.com/aochuang1/ac07.htm ????

    http://www.blogstudio.com/aochuang1/ac08.htm ????

    http://www.blogstudio.com/aochuang1/ac09.htm ????

    http://www.blogstudio.com/aochuang1/ac10.htm ????

    http://www.blogstudio.com/aochuang1/ac11.htm ????

    http://www.blogstudio.com/aochuang1/ac12.htm ????

    http://www.blogstudio.com/aochuang1/ac13.htm ????

    http://www.blogstudio.com/aochuang1/ac14.htm ????

    http://www.blogstudio.com/aochuang1/ac15.htm ????

    http://www.blogstudio.com/aochuang1/ac16.htm ????

    http://www.blogstudio.com/aochuang1/ac17.htm ????

    http://www.blogstudio.com/aochuang1/ac18.htm ????

    http://www.blogstudio.com/aochuang1/ac19.htm ????

    http://www.blogstudio.com/aochuang1/ac20.htm ????

    http://www.blogstudio.com/aochuang1/ac21.htm ????

    http://www.blogstudio.com/aochuang1/ac22.htm ????

    http://www.blogstudio.com/aochuang1/ac023.htm ????

    http://www.greatestjournal.com/users/uk111/449.html ????

    http://www.greatestjournal.com/users/uk111/729.html ????

    http://www.greatestjournal.com/users/uk111/957.html ????

    http://www.greatestjournal.com/users/uk111/1083.html ????

    http://www.greatestjournal.com/users/uk111/1326.html ????

    http://www.greatestjournal.com/users/uk111/1776.html ????

    http://www.greatestjournal.com/users/uk111/2036.html ????

    http://www.greatestjournal.com/users/uk111/2122.html ????

    http://www.greatestjournal.com/users/uk111/2334.html ????

    http://www.greatestjournal.com/users/uk111/2776.html ????

    http://www.greatestjournal.com/users/uk111/2920.html ????

    http://www.greatestjournal.com/users/uk111/3111.html ????

    http://www.greatestjournal.com/users/uk111/3460.html ????

    http://www.greatestjournal.com/users/uk111/3720.html ????

    http://www.greatestjournal.com/users/uk111/4028.html ????

    http://www.greatestjournal.com/users/uk111/4220.html ????

    http://www.greatestjournal.com/users/uk111/4469.html ???

    http://www.greatestjournal.com/users/uk111/4648.html ??????

    http://www.greatestjournal.com/users/uk111/5040.html ????

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.