El proyecto PHPUnit es el estándar de facto para crear y ejecutar tests en aplicaciones PHP. Aunque se creó inicialmente para escribir tests unitarios, también se puede utilizar para los tests funcionales. Los tests se crean en clases PHP que extienden de la clase PHPUnit_Framework_TestCase y cuyos métodos se prefijan con la palabra test:

class ContactFormTest extends PHPUnit_Framework_TestCase
{
    public function testInitialPage()
    {
        // ...
    }
}

La idea de los tests es probar el estado de la aplicación mediante aserciones. Si suponemos que estamos probando un formulario de contacto, debemos crear una aserción para asegurarnos de que la página se ha cargado bien y contiene el formulario:

public function testInitialPage()
{
    $statusCode = ...
    $pageContent = ...

    $this->assertEquals(200, $statusCode);
    $this->assertContains('Contact us', $pageContent);
    $this->assertContains('<form', $pageContent);
}

El código anterior muestra algunas de las aserciones disponibles. Puedes acceder a la lista completa de aserciones en la sección Writing Tests for PHPUnit de la documentación de PHPUnit.