у меня есть специальный скипт для тестирования модулей. в специальную папочку tests/ я складываю по мере написания модулей специальные файлы с расширением .test, в которых описывается:
1) какой модуль подключать для тестирования;
2) затем идет список вызовов методов и функций модуля с различными наборами параметров, моделирующими все возможные "граничные значения" (если такое понятие вообще применимо для php); тут же эти методы и функции вызываются с неверным количеством параметров, неверными типами параметров и т.п.
3) потом идет собственно описание процедуры тестирования; оно представляет собой набор строк вида:
<номер вызова>:<описание действия>:<одидаемый результат: 0 или 1>:<список переменных, которые нужно вывести после вызова (через запятую)>:<действия, выполняемое до вызова>:<действия, выполняемое после вызова>
Любой из последних 3 параметров указывать не обязательно. Действия - это блоки кода, которым назначается номер; они хранятся в отдельном файле с расширением .actions (его может и не быть). Короче это выглядит например так:
PHP:
@1
// имитируем отсутствие значения
$tmp = $some_test_var;
unset($some_test_var);
@2
// Воcстанавливаем исходное значение
$some_test_var = $tmp;
И в описании процедуры будет такая запись:
PHP:
[1]:Описание действия:1:$result:@1:@2
a описание вызова будет выглядеть так:
PHP:
[1]:$some_object->some_method($some_test_var);
Вообщем, это позволяет быстро прогонять тест для каждого из модулей после внесений небольших изменений, и контролировать совпадение ожидаемых результатов теста с полученными. Методология XP, понимаешь..
Хотя прога сырая - написана буквально за 2-3 часа..