Web Testing - How TestComplete Keeps Up with Firefox
This year, Mozilla Foundation has taken the Web world on a surprise journey by releasing three major versions of their Firefox browser within five months. According to the Firefox rapid release schedule, new major releases of Firefox will appear every 6 weeks. This decisively agile strategy has stirred a lot of discussion on the Web, and many companies developing or supporting Web applications are still scrambling to support the Firefox schedule, adjusting their development and validation approaches.
From the end-user’s standpoint it is certainly a benefit to have the most recent and most secure version of a web browser. Yet, it is a significant challenge for the software vendors to implement the support for the latest browsers in proper time. It becomes hard to keep our technology up to date with a browser changing colors every 6 weeks. In a sense, however, vendors almost have no choice, as end users en masse get upgraded to a new version of Firefox automatically, and possibly without even noticing it, and expect that all their favorite apps will continue to run in the new browser without issues.
As you likely know, SmartBear TestComplete is one of the market leaders in automating functional testing of web applications. So, we had to take this challenge head on in order to continuously provide our users with ability to verify their applications and test their sites under the most recent versions of the browser. The spring release of Firefox 4 appeared to be “business as usual” and we added support for it in TestComplete 8.5, along with support for the much slower moving Internet Explorer 9.
After that, Firefox 5 and 6 Beta came out, and we realized that we are compelled to play for “hounds” in the “Fox and hounds” game: the browser vendor seemed invariably one or more steps ahead. But the Bear is not about to be outrun. To match Mozilla’s rapid release plans, we have updated our development, QA and production processes to be more agile:
- We established a continuous development cycle to support Firefox starting with available public Betas. Having six weeks of Beta availability helps, but we can still get surprises because of browser code changes between beta and final release, which can significantly impact the interface with a test tool.
- Our testers test the newly created functionality more often (to ensure that it works as intended to), and include the latest supported browser versions into automated regression tests (to verify the compatibility within a browser family).
- To be able to release browser support to our users in a more timely fashion, we introduced public patch releases. These are fully regression tested and verified, and ready to go.
- The flexible branching feature of our source control system has quickly proven to be an advantage. Our dev team is now able to work on Firefox support separately from the creative mess that typically results from concurrent development of features, and merge the code changes to the appropriate point in the source tree, strictly controlling the code changes that go into a patch or a minor version. This affords our developers and testers more safety and allows them to react quicker to forthcoming Firefox releases.
The latest release of TestComplete 8.6 included support for Firefox 5 and 6. The new patch for TC 8.6 supports Firefox 7.
An added challenge with supporting a new browser version is the desired cross-browser compatibility. TestComplete has always had the ability to run tests developed for older browsers in the browser family under new versions without changes, to minimize the test maintenance cost. Our developers did their best to make tests recorded as far back as Firefox 3.6, compatible with version 6 and later. In most cases this is attainable. Here is a screenshot of web page elements displayed in different versions of Firefox:
As you can see, the child objects of the Page objects are alike, which makes the test scripts compatible. However, the browser itself evolves from version to version, and this inevitably results in changes of internal object hierarchy. For example, since Firefox 4 the modal dialogs are displayed as XUL vbox objects rather than Window objects.
And once a web-test interacts with modal dialogs, it should take these changes into account. To learn about possible ways to handle dialogs in various versions of browsers, read the “Cross-Browser Testing With TestComplete” article. It was lately updated to reflect the recent browser releases.
SmartBear TestComplete is certainly staying up with the browser race. That will undoubtedly require even more agility as we introduce support for Google Chrome later this year, and take on the challenge of transparent cross-browser testing. Stay tuned for the new race updates!
Not yet taking advantage of TestComplete for your projects? Download a free 30-day trial today.