6. FirePHP
FirePHP extends the aforementioned Firebug's capabilities to the server side, allowing you to easily log messages and other data hailing from a PHP script. This can be tremendously useful when debugging Ajax-driven features, or when you simply want to inspect the contents of an object or array without having to repeatedly insert and delete
echo or
var_dump statements.
Like Firebug, FirePHP is also a Firefox extension. However you'll also need to install a simple PHP library on the server running your PHP-driven website. This script serves as the bridge for communications between the server and Firebug/FirePHP. Learn more at
the official website, and be sure to check out the Developer.com article
Firebug: Add Browser-based Debugging to Your Ajax Development.
7. Watir
As its name implies,
Watir ("Web Application Testing in Ruby") has its roots in the Ruby community, but it can be used in conjunction with a wide variety of programming languages, PHP included. The toolkit allows you to write scripts that automate browser-based tasks in order to determine whether both your Web interface and server-side application are performing as expected. These tests are written in Ruby's always easily understandable code and can perform tasks such as testing a website's login interface, as demonstrated here:
require 'rubygems'
require 'watir'
browser = Watir::Browser.new
browser.goto "http://www.example.com/account/login"
browser.text_field(:name, "email").set("test@example.com")
browser.text_field(:name, "password").set("secret")
browser.button(:value, "Login").click
if browser.contains_text("Welcome back, Jason")
puts "Test passed. Test user login successful."
else
puts "Test failed. Test user did not successfully login."
end
Although originally natively capable of testing only Internet Explorer, numerous extensions allow you to automate testing within all of the major browsers, including Firefox, Safari, and Google Chrome. Further, you can automate the execution of your Watir tests just as you can with PHPUnit using Ruby's
Test::Unit framework.
8. Selenium
Like Watir,
Selenium is a testing solution that allows you to verify the proper operation of your website from the user's perspective. In addition to providing developers with the ability to write scripted tests, an impressive Firefox extension known as
Selenium IDE allows test developers to record tests directly from within Firefox simply by interacting with the website. These actions will then be converted into the scripts that Selenium will use to execute the tests. Scripting capabilities are supported for all of the other major browsers.
To learn more about Selenium, check out
the official website.
9. Human-powered Testing with UserTesting.com
Most small businesses or open source projects lack the funding necessary to hire a full- or even part-time quality assurance team. Yet those of you in search of feedback from your fellow humans aren't out of luck, because quite a few online usability testing services can offer extremely detailed and frank feedback at a surprisingly low cost.
One such service is
UserTesting.com, which for just $39 will provide you with both video and written summaries of their testing panel's experience interacting with your website. UserTesting.com's services are so popular that globally recognized companies such as Amazon.com, Staples and Cisco have relied upon the service for unbiased third-party feedback.
10. Bug Tracking with Bugzilla
With all of these great testing and debugging utilities at your disposal, you're going to need some effective way to keep track of the problems you uncover, not to mention assign them to various team members. One of the most popular issue tracking solutions is
BugZilla, an open source project used to manage issues within not only high-profile project initiatives such as the Mozilla Foundation and the Apache Software Foundation but also organizations such as NASA, Facebook and The New York Times.
Bugzilla supports all of the features you might expect in a high-quality issue tracking solution, including the ability to track the status of reported bugs, assign and change the status of bugs, and create useful reports analyzing metrics such as bug reporting frequency. Although not written in PHP, it's a Perl-based project meaning you'll be able to run it on any server capable of supporting PHP.
Learn more about Bugzilla by heading over to
its official website, where you can also experiment with a
Bugzilla test installation.
About the Author
Jason Gilmore is the founder of the publishing and consulting firm WJGilmore.com. He also is the author of several popular books, including "Easy PHP Websites with the Zend Framework", "Easy PayPal with PHP", and "Beginning PHP and MySQL, Fourth Edition". Follow him on Twitter at @wjgilmore.