PHP Debugging & Testing
Maciej Żukiewicz
Debuggowanie
Proces systematycznego redukowania liczby błędów w oprogramowaniu bądź systemie mikroprocesorowym, który zazwyczaj polega na kontrolowanym wykonaniu programu pod nadzorem debuggera.
(Wikipedia)
Xdebug
Xdebug jest rozszerzeniem do PHP, które pozwala nam na analizę naszego kodu krok po kroku.
Xdebug - konfiguracja

Wersja dla Windowsa - prosty wybór ;)
Oznaczenia
VC - wersja kompilatora (Microsoft Visual C++)
TS - Thread Safe (alternatywa to Non Thread Safe)
Xdebug - konfiguracja
# php.ini
[XDebug]
zend_extension = "c:\xampp\php\ext\php_xdebug-2.9.2-7.4-vc15-x86_64.dll"
xdebug.remote_autostart = 1
xdebug.profiler_append = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "c:\xampp\tmp"
;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_log = "c:\xampp\tmp\xdebug.txt"
xdebug.remote_port = 9000
xdebug.trace_output_dir = "c:\xampp\tmp"
;36000 = 10h
xdebug.remote_cookie_expire_time = 36000"pełna" konfiguracja php.ini
Xdebug - konfiguracja dla NetBeans
# php.ini
[XDebug]
zend_extension = "c:\xampp\php\ext\php_xdebug-2.9.2-7.4-vc15-x86_64.dll"
xdebug.idekey = netbeans-xdebug
xdebug.remote_autostart = 0
xdebug.profiler_append = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "c:\xampp\tmp"
;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_log = "c:\xampp\tmp\xdebug.txt"
xdebug.remote_port = 9000
xdebug.trace_output_dir = "c:\xampp\tmp"
;36000 = 10h
xdebug.remote_cookie_expire_time = 36000Testowanie
Proces związany z wytwarzaniem oprogramowania mający na celu poprawienie jakości wytwarzanego oprogramowania poprzez weryfikację i walidację czy spełnia ono oczekiwania użytkownika i czy nie zawiera błędów.
TDD
Test Driven Development - technika tworzenia oprogramowania, która kładzie nacisk na tworzenie oprogramowania wg. kroków:
1. napisanie testu sprawdzającego dodawaną funkcjonalność
2. implementacja funkcjonalności spełniającej założenia testu
3. refaktoryzacja napisanego kodu funkcjonalności (spełniającej założenia testu), aby spełniał oczekiwane standardy
Piramida testów
manualne
wydajnościowe
akceptacyjne
funkcjonalne
integracyjne
jednostkowe
Testy jednostkowe
PHP Debugging & Testing
By Maciej Żukiewicz
PHP Debugging & Testing
- 152