A técnica do teste de mesa ajuda programadores de qualquer nível a compreender melhor a lógica empregada ao verificar o fluxo e mudanças de estados de varíavel no decorrer da execução de um programa.
Esta biblioteca pretende realizar leitura de scripts PHP a fim de executar o teste de mesa informando ao usuário cada passo que será tomado pelo processador de script, do início até a conclusão da execução do script.
Ainda estamos em desenvolvimento inicial, por isso a quantidade de recursos da linguagem que são suportados são poucos.
É necessário Composer para o gerenciamento das dependências.
$ git clone https://github.com/ifroariquemes/PHP-TestBed
$ cd PHP-TestBed
$ composer install
Script de teste:
<?php
for($i = 1; $i <= 2; $i++) {
    echo $i + 1;
}Saída:
Script iniciado
Linha 3: --- Entrou no laço FOR ---
Linha 3: A variável $i recebe o valor 1
Linha 3: A condição da estrutura retorna o valor true resultante da operação ($i <= 2) onde $i = 1
Linha 4: Imprime na tela o valor 2 resultante da operação ($i + 1) onde $i = 1
Linha 3: A variável $i tem seu valor incrementado para 2
Linha 3: A condição da estrutura retorna o valor true resultante da operação ($i <= 2) onde $i = 2
Linha 4: Imprime na tela o valor 3 resultante da operação ($i + 1) onde $i = 2
Linha 3: A variável $i tem seu valor incrementado para 3
Linha 3: A condição da estrutura retorna o valor false resultante da operação ($i <= 2) onde $i = 3
Linha 5: --- Saiu do laço FOR ---
Script finalizado
| Comando | Incluso na versão | 
| Estruturas condicionais | |
| If-Else | v0.1.0 | 
| Switch-Case-Default | v0.2.0 | 
| Laços de repetição | |
| For | v0.1.0 | 
| Foreach | v0.2.0 | 
| While | v0.1.0 | 
| Do-While | v0.1.0 | 
| Operações aritméticas | |
| Soma (`+`) | v0.1.0 | 
| Subtração (`-`) | v0.1.0 | 
| Multiplicação (`*`) | v0.1.0 | 
| Divisão (`/`) | v0.1.0 | 
| Resto da divisão (`%`) | v0.1.0 | 
| Deslocamento binário (`<<` e `>>`) | v0.1.0 | 
| Incrementação (`++`) | v0.1.0 (posterior) v0.2.0(anterior)  | 
    
| Decrementação (`--`) | v0.2.0 | 
| Operações lógicas | |
| Booleano E (`&&`) | v0.1.0 | 
| Booleano OU (`||`) | v0.1.0 | 
| Bitwise E (`&`) | v0.1.0 | 
| Bitwise OU (`|`) | v0.1.0 | 
| Bitwise OU EXCLUSIVO (`^`) | v0.1.0 | 
| Operações relacionais | |
| Igual (`==`) | v0.1.0 | 
| Idêntico (`===`) | v0.1.0 | 
| Diferente (`!=`) | v0.1.0 | 
| Não idêntico (`!==`) | v0.1.0 | 
| Maior (`>`) | v0.1.0 | 
| Maior ou igual (`>=`) | v0.1.0 | 
| Menor (`<`) | v0.1.0 | 
| Menor ou igual (`<=`) | v0.1.0 | 
| Nave espacial (`<=>`) | v0.1.0 | 
| Outros | |
| Echo | v0.1.0 | 
| Atribuição (`=`) | v0.1.0 | 
| Concatenação (`.`) | v0.1.0 | 
| Global | v0.2.0 | 
| Parada (`break`) | v0.2.0 | 
| Constantes | v0.2.0 (`const`) em breve (`define`)  | 
    
| Vetores e Matrizes (`array()` e `[]`) | v0.2.0 | 
| Try-Catch-Finally | v0.2.0 | 
| Throw | v0.2.0 | 
Ajude-nos a fazer esse software dar certo. Veja em milestones que funções essa biblioteca ainda precisa implementar. Ou então revise o que já existe para continuar melhorando a qualidade e desempenho.
Este trabalho está licenciado com uma Licença Creative Commons - Atribuição 4.0 Internacional
