• Home
  • RSS Feed
  • Log in

Cirilo Wortel

Introduction to Xebium
Posted by Cirilo Wortel in the late afternoon: May 4th, 2011

Introduction

When testing web interfaces, it’s convenient to use an intuitive tool like Selenium IDE, it’s easy to use and can be used by non-technical people, but it is solely meant for record and playback of test-scripts. One of its limitations is that it misses sufficient options for documenting and managing tests. Furthermore it misses an interface with the backend of the system under test (SUT), to setup preconditions for a test or for instance to manipulate or read from a database.
Fitnesse is a great tool to do just that, it has the Wiki to manage tests and it by default has a setup and teardown mechanism, it’s easy to add non invasive testfixtures to interface directly with your SUT. The downside is that it is incapable of doing webtests.

We now have the glue that combines the two, it’s called Xebium!

On several projects I’ve tried to find a way to combine the two, because both tools are free of use and both have their individual charm, but it seems combined they would master practically any situation. As a tester I miss the development skills to come up with a satisfying solution and I never convinced my team members to help me out in a satisfactory manner.

At our company we recently started app-incubator, a new form of knowledge exchange, in the form of mini projects, anyone can pitch a project idea and when enough colleagues sponsor the project, we can spend up to three days collaborating on it.  My pitch caught fire and with about five people we brainstormed on the solution. For me a prerequisite was that it should be possible to use the test scripts two directional, so record them with Selenium IDE, run and edit them in Fitnesse and playback from Selenium IDE again. During this first project session we came up with additional requirements, it should support data-driven testing and variable substitution. We wanted to keep it as simple as possible, no new DSL’s should be introduced and it should not require conversions between the two products. We explored some existing solutions such as Fitnium and Selenesse but came to the conclusion these (at the time) were fully based on their own DSL’s and did not support exchanging files between Selenium IDE and Fitnesse. So we decided to created something far more simple.

The Result

After several attempts we discovered that Webdriver (Selenium 2.0) would be the best engine for running our tests. It seems more future proof, turned out to be a lot more stable than Selenium Testrunner and its commands are more compatible with Selenium IDE than Selenium RC.
We introduced a Selenium IDE formatter which output can be directly copied into the Wiki. We created a Fitnesse fixture that is capable of running the pre-formatted scripts without additional interpretations of the Selenium commands.

The additional features we had in mind, the data-driven testing and variable substitution turned out to be standard Fitnesse features. What we did not realize when we started was that Fitnesse would introduce a mechanism which, in my opinion, added mind-blowing power to project: Scenario tables, which now enables us to create abstractions on top of our testscripts.

Conclusion

Xebium enables us to use both Selenium IDE (low learning curve) and FitNesse (ease of maintenance) to it’s fullest and provides a complete solution when it comes to automated web testing.

Share

Tags: Acceptance Testing, Agile Testing, fitnesse, Selenium, Webtesting, Xebium
Filed under Testing, Tools, Xebium | 5 Comments »



5 Responses to “Introduction to Xebium”



    Maxime Says:
    Posted at: May 26, 2011 at 3:08 pm

    Hi Cirilo,

    Nice post, thanks a lot ! Xebium seems to be a very powerfull solution for automated web testing. I installed it and made some tests but got some problems. Is there anything like a mailing list or something to get some support ? Or should I directly contact someone ?

    Thanks in advance and thanks to the xebia’s team who developped this tool.

    Maxime

    Reply


      Cirilo Wortel Says:
      Posted at: May 26, 2011 at 4:48 pm

      Hi Maxime,

      Thanks for trying out Xebium! It is really valuable to us to gain more information on user experiences, I would be glad to help out with your problems. In order to do so we have created a google support group, please mail your questions to xebium@googlegroups.com

      Regards,

      Cirilo

      Reply


    Albert Says:
    Posted at: May 8, 2012 at 10:39 pm

    I have 2 part question

    In Xebium how do I rename or remove Test Case from a Suite..

    If I have test case A that logs into google.com and test case B that clicks on the Inbox link. When I put test case A and B into a Suite and try to run them together
    Test Case B doesn’t run because it doesn’t have a part of the script that logs into google.

    Thank you…

    Reply


      Cirilo Wortel Says:
      Posted at: May 9, 2012 at 1:20 am

      Hi Albert,
      FitNesse runs the testcases in a suite sequentially based on the alphabetical order of the testcase name, so if the testcase are really named TestCaseA and TestCaseB is should work as you expect (if you do not open or close the browser in between). I would try to avoid though to make the testcases dependent upon each other as much as possible and would try to put both actions in one testcase. This results in more robust and standalone testcases.
      If the goal is to save time by not opening and closing the browser with each testcase, my preferred approach would be creating a SuiteSetUp page containing the “open browser” command and a SuiteTearDown page containing the “stop browser” command, and having all self containing testcases in your suite (using the same browser instance).

      * The SuiteSetUp and SuiteTearDown are FitNesse special page types that run only one for an individual test or an entire testsuite.
      Hope this is a satisfying answer to your question. Please also be aware of the Xebium discussion group which is meant for answering questions like yours.

      Regards,

      Cirilo

      Reply


        Cirilo Wortel Says:
        Posted at: May 9, 2012 at 1:23 am

        Renaming, Deleting or Moving testcases can be done through the Refactor functionality of FitNesse

        Reply


Leave a Reply

Click here to cancel reply.


Xebia Sites

  • Xebia Corporate
  • Xebia France
  • Xebia India
  • XebiCon 2012

Categories

  • Java (312)
  • Agile (192)
  • General (141)
  • Scrum (70)
  • Testing (65)
  • Architecture (65)
  • Performance (47)
  • Middleware (59)
    • Deployment (40)
  • Xebia Labs (41)
  • SOA (31)
  • Project Management (31)
  • Podcast (31)
  • Tools (28)
  • Uncategorized (24)
  • lean architecture (20)
  • Quality Assurance (19)
  • Articles (15)
  • Requirements Management (14)
  • Virtualization (21)

Tag Cloud

    Architecture Scrum agile architectuur ACT product owner Grails Lean lean architecture Flex Xebia Scala XML Hibernate Spring Javascript Groovy Java Frameworks Eclipse JPA Oracle Agile SOA Maven JPA implementation patterns Ajax Concurrency Control Moving to India lean architectuur TDD

Archives

  • May 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • December 2011
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
Avatars by Sterling Adventures