I had fun this weekend at the PHP London Test Fest, it was a great opportunity to learn something new and meet some great programmers.
The tests our team took on were based around the SPL iterators I hadn’t used this part of PHP before and it was a great way to learn about it, especially as many of the functions we tested aren’t documented yet.
What we did was :
- Take a copy of PHP source code
- extract this and run ./configure
- create a short script to run tests
- and another to run the checked out version of PHO
- Check the test coverage reports
- Find an untested section of code (in red)
- Figure out what it does
- Write a test to run this part of code
- go to 5
More details on how to write tests are at http://qa.php.net/write-test.php
I found the hardest bit was interpreting the C source code of PHP - this was made much easier by the mentors at the test fest, and once pointed in the right direction we were able to get going easily enough.
One thing I didn’t figure out on the day - in order to regenerate the coverage reports and check that the new tests do add coverage I needed to
aptitude install lcov
make lcov TESTS=./path-to tests
NB you can either run all tests or just a subdirectory
The script to run tests was
export TEST_PHP_EXECUTABLE=/path-to/php5.3-200905081030/sapi/cli/php $TEST_PHP_EXECUTABLE /path-to/php5.3-200905081030/run-tests.php $*
I also created an alias to sapi/cli/php so that I could run the tests as simple PHP scripts