Testing Methods & Tools
The IT industry is littered with project disasters costing companies millions. We're different and here's why...
Solid Processes
We have strict procedures in our development process that involves numerous people at all levels of the project. From individual developers to project managers, independent testers and outside lay people. Even more importantly we keep in constant contact with our customers and involve them every step of the way in the process.
- Code Reviews - All of our source code goes through weekly reviews during active development.
- Project Review Meetings - Its important to keep the big picture in mind so no focus is lost on the business and with weekly project meetings we make sure to stay on track.
- Regular Client Contact - We're storng believers in communication and our existing clients are all impressed with the time and effort we put into keeping them involved and in touch with what is their project.
Technologies
There's a range of testing frameworks we use at Essential to help us in tracking down those pesky bugs as early as possible. Here's just a small listing of those we use:
- Selenium IDE - this is a testing & reporting plugin for Firefox which automates user behaviour. With this we can cover all of the site and conduct regular integrity checks of major systems.
- Watir & Firewatir - both powerful Ruby libraries for automatiung browser activity and checking the functional behaviour of the site.
- Multi-Browser Testing - For our web applications we conduct usability tests on Opera, Firefox, Internet Explorer, Safari and for relevent sites the text browser Lynx.
- Puffin - A heavy-duty framework for performing dyanamic regression tests on the whole range of user interaction with the system.
- W3C Validator - The W3C provide an online tool for validating your sites HTML. Both developers and testers have built in tools for reporting, managing and testing sites on a regular basis. Although we aim to get 100% pass ratio its not always possible.
- W3C Link Validator - The W3C also provide a great link checker that can be used by all webmasters free of charge.
- Text Trust - Keeping with the theme of validity this is a great spell checking tool for your website.
- Funkload - Althoguh we use this mainly for load testing our sites and servers it can also be used for functional testing of sites.
- HTTPPerf - One of the original load testing suites.
- Nikto - Its important that once the system comes online that it doens't fall foul of hackers and other unsavoury internet characters. Thats where Nikto comes in handy for testing the security of your online app.
- Ratproxy - We recently blogged about this new testing tool by Google which sits between the browser and the server. It performs a variety of tests on sites to check for cross-site scripting vulnerabilities and JSON injection issues.
- Ruby (with scRubyt, Hpricot, Net, etc) - The Ruby scripting language provides a great range of libraries and tools for site analysis and screen scraping. Not only for the web but also other protocols. So Ruby can be used for highly speciliased testing of SMTP/POP, DNS, SSH and even Axis camera systems.
Language Specific
Each programming language comes with its own wide range of testing methods and libraries for conducting low level unit tests. Here's a quick listing of the ones we make most use of at Essential.
- PHPUnit - A PHP unit testing framework based on the original JUnit for Java.
- Doctest - a testing framework for Python which works by interpreting the source documentation for functions and classes to conduct tests on functionality. Great for keeping tests and docs up to date.
- Test::Unit - a comprehensive Ruby testing framework which is also based on the original JUnit.
Other Testing Suites
Some other testing and assesment tools we've used in the past:
- TestSmith - Starting to show its age but still has followers at Yahoo.
- HTTPUnit - Written in Java and able to manage javascript rich pages this also has compatibility with Java Servlets.
- PHPSpec - another respectable PHP testing framework but not quite as powerful as PHPUnit
- Sahi - a powerful proxy testing tool that sits between the browser and your app.
- WebInject - A powerful Perl tool for testing web functionality.
