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 = 36000

Testowanie

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