This year, Adium has accepted three student proposals for Google Summer of Code. One will add a valuable new feature, while two relate to automated testing, which will both improve Adium’s reliability and allow us to spend more time working on new features and less time fixing regressions. Why two projects related to testing? Part of it is just that both students were pretty amazing, but there are strategic reasons as well.
Branton’s project will take the relatively conservative path of extending our existing testing infrastructure; this may include creating Mock Objects for much of Adium’s internals. A difficult task, but one that will almost certainly be beneficial. At the same time as extending our test system, Branton will also be documenting our code, which should make it more accessible to new contributors and easier for us to work with.
Contrasting with this, Arcadio intends to take a different approach; creating a brand new testing framework implementing the Behavior Driven Development approach, and applying it to Adium. If successful, it will give us and other Mac software projects an entirely new set of tools to approach testing with, but it is a somewhat riskier project.
For our only non-testing related project this year, Geoffrey plans to create a framework implementing something similar to Apple’s data detectors feature in Leopard. This will do textual analysis of all messages and use that information to provide contextually relevant actions you can do. Even better, the plan is to make this framework usable in other apps, so this functionality should begin showing up all over the place.