Hi, This is a high level summary of tools I have become used to, that help me in everyday testing and debugging of my web sites. As I am primarily a Mac person, so are my tools. However most of them are available for Windows and LINUX as well. At least it will give you an idea of how to leverage certain tools. Good luck! Oliver Ratzesberger (aka fxstein) ====== Useful Tools for investigating Problems ====== Dynamic websites based on an CMS and its associated plugins and modules can be tricky to debug. Quite often problems are isolated to specific browser/os versions or a combination of multiple modules interfering with each other. So how does one go about identifying the root cause of a problem? ==== Firefox ==== To start with I highly recommend you take a look at Firefox and some of the plugins available to aid in the search for those nasty buggers. Whether you are on Windows or Mac, there are versions available. They can be downloaded [[http://www.mozilla.com/en-US/firefox/|here]] Once you have got yourself a version of Firefox installed, go get some plugins to help with the root causing finding mission. ==== WebDeveloper ==== The first one to get would be [[https://addons.mozilla.org/en-US/firefox/addon/60|Web Developer]]. A very feature rich plugin that let you look under the cover of any website, helps with nasty CSS issues and makes error tracking a whole lot easier. This is not the place to give you a full tutorial about Web Developer but it should get you started. ==== Firebug ==== The second tool to get would be [[https://addons.mozilla.org/en-US/firefox/addon/1843|Firebug]]. There is some overlap between the two tools but I find them both very useful. ==== JoomlaPack ==== Then there is [[http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,1606/Itemid,35/|JoomlaPack]]. A very useful backup solution for any Joomla install. Not only does it allow you to backup and entire Joomla site and its database, it also comes with the neat little feature to restore such a backup onto a different server - in my case my test server. It makes it possible to move and entire site with the latest data and files to the test environment within a few minutes. A must have to perform much needed testing locally, without interfering with your users. ==== LAMP - MAMP - WAMP ==== Test server? Huch!? Where are we going to run that one? Well, the best choice would be the same system you do you everyday development or test work on. In my case its my daily laptop. Nothing beats a fully integrated solution that you can take with you. I am running a MacBook Pro with OS X and the #1 solution for my webserver needs is called: [[http://www.mamp.info/en/index.php|MAMP]]. MAMP stands for Mac-Apache-MySql-PHP - just what we need to run a full Joomla install. There is a free version of it if you are happy with a single virtual host or a Pro version that allows unlimited vhost on the same server. Same thing for Windows [[http://www.wampserver.com/en/|WAMP]] and LINUX [[http://lamphowto.com/|LAMP]] ==== BBEdit ==== Last but not least you want a solid editor, that allows you to do some Regular Expression searching. There are many out there. My favorite one on the Mac is [[http://www.barebones.com/products/bbedit/index.shtml|BBEdit]]. Sorry - its not free, so others might chime in with alternatives. Anyway a solid editor will help in multiple ways. ===== ===== Equipped with these basic tools we can start attacking those nasty issues like java script incompatibilities. ===== How to spot potential Java Script Problems ===== By now you might have seen discussions about collisions between different versions of Jquery or mootools. What's that all about? Without wanting to explain the full breath of potential java script issues, let me say so much: The java script frameworks are notoriously known for colliding with each other and even themselves if multiple versions of the same framework are present on a single page. How can that happen? Once you install Joomla, a custom template, a few components, mambots and plugins, you have mixed together a cocktail of code that - in many cases - all comes with its own java script framework. Some come with mootools, others with jquery, some others with ufo. To make matters worse, you might be running an old mambot with an outdated version of one of these frameworks. The result? The site behaves strange: e.g. all the quick replies are open all the time. ==== A web browser and an editor to fight JS crime ==== So how can these tools aid you in finding the problem in that deadly mix of versions and incompatible code? The first step is to identify what is going on. Open the webpage in question n Firefox or you favorite web browser. Once open, view the page source code. In Firefox you will find that in >>View>>Page Source. You should get a whole bunch of HTML source code. NOTE: Every page on your website will contain significantely different HTML code. Not only will the obvious screen elements be different, the list of plugins and scripts will vary whether you are on the home page, the forum or your PM system. So make sure you check them out one at a time. Once you are at the source view, I usually copy and paste the entire page (might be multiple pages of code) into my favorite editor. It allows me to do more sophisticated stuff that possible in a web browser. The first thing to do is to find all instances of java scripts present on that page. To do so I like to use a little regex search that matches a very simple pattern.