Neste post vamos abordar o Test Driven Development (TDD) em PHP, que é um dos principios core do XP e está disponivel nativo para linguagem java no netbeans. Entretanto, para habilitar essa ferramenta para o PHP no ambiente Windows devemos fazer algumas configurações no ambiente que seguem:
- 
Instalar o NetBeans; 
- 
Instalar o Xampp; 
- 
Configurar o PHPUnit pelo pear no xampp com os seguintes comandos: 
- 
Abrir o Shell; 
- 
Digitar “pear config-set auto_discover 1” 
- 
Digitar “pear install pear.phpunit.de/PHPUnit” 
- 
Agora o PHPUnit já está configurado na pasta c:\xampp\php\ 
- 
- 
- 
Salvar os dois arquivos em c:\xampp\php\ 
- 
Para configurar o phpunit no netbeans faça o seguinte: 
- 
Vá em ferramentas; 
- 
Em opções aponte os arquivos conforme as imagens abaixo: 
 
Agora o NetBeans já está configurado para aceitar projetos com a criação de classes de testes. A proxima etapa é criar um novo projeto PHP. Com o projeto criado deve-se criar a classe PHP que será desenvolvida a partir de testes. Agora deve-se criar os testes. Clique com o botão direito sobre a pasta “Arquivos de Código-Fonte” ir em “Ferramentas” e depois “Criar Testes”.
Deve-se criar uma pasta de testes dentro do projeto, onde serão geradas as classes de testes pelo skelgen, e durante o assistente de criação dos testes assinalar a opção de utilizar o PHPUnit.
O ultimo passo é criar a classe de testes, que é criada automaticamente clicando com o botão direito em cima do arquivo da classe PHP, que foi criada anteriormente e onde serão desenvolvidos os métodos,  ir em “Ferramentas” e depois “Criar Testes”.
Agora o arquivo o testes já foi criado, só tem que ter cuidado de sempre começar o método de testes começando com “testAlgumaCoisa”, segue abaixo uma sugestão de código para as classes onde estarão os métodos e onde estarão os testes:
Salario.php
<?php
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 * Description of Salario
 *
 * @author GUSTAVO
 */
class Salario {
    //put your code here
    
    public function index($bonus = null){
        $salario =  1500.35;
        
        if($bonus){
            $salario += $bonus;
        }
        
        return $salario;
    }
    
    public function desconto($salario){
        
        $desconto = 8;
        
        if(($salario > 1317.07) and ($salario < 2195.13)){
            $desconto = 9;
        } elseif($salario > 2195.12){
            $desconto = 11;
        }
        
        return $desconto;
    }
    public function descontoINSS($salario) {
        
        if($salario > 4390.24){
            $salario = 4390.24;
        }
        
        $percentual = $this->desconto($salario);
        
        $desconto = $salario * $percentual / 100;
        
        return number_format($desconto, 2);
    }
}
SalarioTest.php
<?php
require_once "../Salario.php";
/**
 * Generated by PHPUnit_SkeletonGenerator on 2014-10-21 at 14:01:05.
 */
class SalarioTest extends PHPUnit_Framework_TestCase
{
    /**
     * @covers Salario::index
     * @todo   Implement testIndex().
     */
    public function testIndex(){
        $salario = new Salario();
        $this->assertEquals(1500.35, $salario->index());
    }
    
    public function testIndexComBonus(){
        $salario = new Salario();
        $this->assertEquals(1550.35, $salario->index(50));
    }
    public function testDesconto(){
        $salario = new Salario();
        $this->assertEquals(11, $salario->desconto(10000));
    }
    
    public function testValorINSSMinimo(){
        $salario = new Salario();
        $this->assertEquals(80, $salario->descontoINSS(1000));
    }
    
    public function testValorINSSMedio(){
        $salario = new Salario();
        $this->assertEquals(180, $salario->descontoINSS(2000));
    }
    
    public function testValorINSSAlto(){
        $salario = new Salario();
        $this->assertEquals(440, $salario->descontoINSS(4000));
    }
    
    public function testValorINSSTeto(){
        $salario = new Salario();
        $this->assertEquals(482.93, $salario->descontoINSS(9390.24));
    }
}