Зависит от степени сложности разработки, иногда можно и на своем сервере, можно на сервере клиента на копии для разработки, как правило работаю через IDE с автоматической заливкой файла. CVS желательно, а в большинстве случае обязательно. Тестирование от обычного в браузере по мере разработки, до автоматических модульных и функциональных тестов, через Countinous Integration системы с автоматической выкладкой результатов из репозиториев и тд, в общем все зависит от проекта и фантазии.