Il programmatore fa tutti i test che puo' fare ... il cliente fa i suoi (che sono piu' attendibili perche' effettuati "in produzione") e il programmatore "assicura" che tutti i bug siano eliminati al piu' presto.

Per il pagamento, secondo me non c'e' una regola ma vale solamente l'accordo (preferibilmente scritto) che dovevate avere messo in opera "prima" di iniziare il lavoro.