The Phalanx project: Improving Perl's tests
by Andy Lester
Related link: http://qa.perl.org/phalanx/
Phalanx is a Perl QA project created to provide a solid testing
base for Ponie, the next version of Perl 5 that will be based on
the Parrot virtual machine. By increasing the test coverage of
Perl modules and Perl itself, we will make Ponie the best-tested
version of Perl ever. We also hope to involve members of the Perl
community who might not have contributed to Perl before.
The first phase of Phalanx will update the tests in
100 of the
most-widely used modules on CPAN. A Phalanx team member, or hoplite,
will pick a distribution and, with the agreement and cooperation
of the module's author, start working on the improvements. There
may be one hoplite, or many, if the lead hoplite wants to bring
others into her part of the project. Along the way, the hoplites
will verify accuracy of the documentation, explore the depth and
breadth of the module, and make sure that everything that can be
tested is tested. Once changes are made, the lead hoplite will
feed her patches back to the author, who will update his distribution.
All changes are voluntary, and the author still retains full control
of his module.
There are three goals for Phalanx. The first is to provide an
excellent set of tests for the next version of Perl. Perhaps even
more important, we want to encourage participation from members of
the community who have never contributed back to Perl. It will be
easy to get involved, and your involvement can be as much or as
little as necessary. Prospective hoplites need not be part of
perl5-porters or any perceived "Perl cabal", or even know about
Perl internals. Finally, we're certain that we will uncover
undiscovered bugs, and we'll identify them for the author, if not
We hope that module authors will welcome the contributions of the
community, and that those who are interested in getting involved
with Perl and open source can make a contribution, no matter how
small. Even one
for a function, can be a big help.
After we've had some success in the first phase of Phalanx, we'll
expand the process to Perl 5 itself and the core modules. This
phase will be trickier, as we must work with the pumpkings and the
rest of perl5-porters. We hope to have enough good lessons learned
that it will be an easy transition.
Have you worked on a project like this before, either in terms of QA or scale?