Grig Gheorghiu - Testing tools wiki
BY: testbrowser not currently Zope-centric. Useful for functional tests. Built on top of mechanize. Important that you can read the test and tell what it is doing.
BD: py.test, minimal api. Goal: no api, just use assert. py.test now has a release, previously only svn possible. Automatic test discovery discovers, full doctest.
TC: Absence of windows testing tools. Make tests easy to run from a gui.
MT: TI has silos of test automation. Try to standardize on a testing language using python. Replace Testdirector with python api to talk to (Testopia, testlink... or one he hopes to write). Has approval to release as open source. Hoping to release some time this year.
KM: Building an ETL system in python. Made a module called "fixture" which loads in data sets at the beginning of tests. Colleague wrote "nose" (Jason Pellerin).
IB: Was interested in Fitnesse testing. Write fitloader, then decided that fitnesse was stupid too. Minimock was a test to see how small he could get it. I hate unittest and want it to leave the stdlib.
NN: Testing should be done to prevent bugs. Pychecker tries to find bugs. Work at Google is to promote testing internally.
JY: Mock objects let you separate your units of code from the rest of the program. Not easy to mock out results of generators. Still a lot of work to do with it, error checking, reporting, playback utilities.
CW: Testosterone is manly testing interface. I'm addicting to dots. Attempt to put some sanity on top of it.
TB: Twill is similar to zope.testbrowser and paste.fixture. Built on mechanize. Useful for testing and monitoring websites. Doesn't have zope or wsgi in the name anywhere.
BY: Write tests and prose first (documentation driven design). One day the bullet whizzed passed my head, and I've been addicted since them.
BD: Unittesting. Specifically test first.
TC: Depends on where you are in the organization.
MT: Most effective is API testing. Above unit testing. Around 2 million testcase.
CW: That's A LOT OF DOTS. (laughs)
KM: TDD made sense at first but made my head hurt. Makes sense to write functional level test first. Some of our code doesn't have unittests because we test at a higher level.
IB: I've sometimes tested too much. Lots of low level, and very few high level. I hate that you can loop over strings. (Don't know if it's a list sometimes)
NN: Lots of unittests like Ian. Need some level of system tests.
JY: Don't do much function or integration testing at my work.
CW: Tried TDD but didn't convert. Testing mindset different than design and coding. I enjoy more being in the creative design mindset. Will get code out first but later put in unittests to satisfy the dot addiction.
TB: Don't agree with Chad. Kevin Kelley, Fast, Cheap and out of control. Describes coding and testing style. I don'd do TDD, I do Stupidedly driven testing. Just test.
IB: I wanted to test for a long time and hated the tools. Once I found (built) the tools, I was happy (and enabled to test).
TB: I don't have standards.
CW: More important to code and get your ideas out than test.
JY: All the time I don't meet my standards, then the code slaps me hard and I have to go back.
NN: Dashboard at Google for test results. Only unit tests were written no system level. And that's sufficient. Be pragmatic and do what you need.
IB: I don't test well when I don't understand the problem I'm trying to solve. Really need to write it once, test and then re-write if you don't understand problem.
KM: Most important thing is having a regression test suite. You know when you break something.
MT: Confession, I don't write enough tests for my test framework
TC: Haven't talked about manual testing much, but it's very useful.
BY: If you are prototyping you probably don't need to test. When I'm in "hack" mode, code doesn't get tested.
BY: Zope.testing, also not zope.testing
BD: py.test, doctest
TC: py.test, doctest
MT: Abbot (for java swing)
KM: Buildbot
IB: py.test, nose, twill
NN: unittest, but I don't like it
IB: unittest, idea and eclipse, refactoring in java is nice
CW: nose
TB: nose, buildbot, paste.lint
Great summary, Matt. Thanks for putting that up. I would have loved to
get into code coverage ... or test maintenance, or buildbot, or integration
testing, mock objects, and so on. We needed at least an hour. I think the
juices just started to flow towards the end but, oh well, Grig said he
asked for an hour and they couldn't provide it.
Thanks for the detailed notes, Matt. You're right, coverage is an important
topic, and, like Kumar, I wish we had more time to talk about it. Maybe we
can give some feedback to the organizers to allocate more time for this
kind of panels. I bet people would put up with sitting in their chairs for
1 hour or even 1.5 hours, if the topics are interesting enough.
Grig- Thanks for doing this! I thought it went off very well.
Thanks a bunch for putting this up. I'm still kind of a newbie with python,
having mostly just dabbled with it over the last 4-5 years. Your initial
point about coverage I find especially close to my own heart. After writing
some code over the past few weeks I sometimes would not find a type error,
until some data eventually forced the code to run over that section. After
those experiences I started looking for coverage tools. I found
coverage.py, but I'm not sure it is right solution for me.