I always thought that calling it extreme programming is a little goofy, it's just software engineering. I took a class on all these concepts. I agree we should try doing it. It's a great way to control the chances for errors and make sure individual parts work.
Here are some ideas we can employ in game development to better test our work:
- on a class-by-class basis, develop stress tests that flex the different features of each class
- test not only for errors but performance factors
- set up a testing suite that performs tests on all the components and generates a report
- perform regular tests on multiple platforms, and track reported results
- besides automated tests, human testing needs to be done on more "fuzzy" criterion, and reported in a uniform way
In order to get consistent information from user testing, I think we need to improve our documentation, and find a way to get users to give us more information. One possible way would be to use a bug tracker, thus they have a form they have to fill out, giving us plenty of info. Another way would be to develop better documentation telling people the information we need because all too commonly, we don't get enough. Personally I think a well set-up web bug tracker would really be the best solution, but that means the developers have to commit to using it. That probably means closing the bugs forum on the site and directing people to always go to the bug tracker site, and that sort of thing.
Anyway a bug tracker isn't directly necessary for good user testing, or good software engineering. It's just one tool that can be used towards that end.
I'd say as we work on things for the upcoming release we should develop some unit tests, and improve our documentation as much as possible. Not only the docs on the wiki, but we should also document our code better (right now it could be said that we do it "not at all"
), at least descriptions for what different functions and classes do.