Tug of War between BA’s and QA…Guess who gets stuck?

I have always wondered what the core responsibility of a business analyst is.
Googling it, which is not a great idea, threw up hundreds of responses! The more I analyzed, I realized that they form the bridge between business and technology – translating technical explanations into something that business understands and vice versa. On the one hand, a proficient business analyst performs testing better than those with a strong technology background, and on the other hand they are able to write use cases which can be easily understood by the technical team. They lose credibility if one side is favored against the other, even if it is because they come with one dominant background walking into the BA role. Due to this unique combination of skills, good business analysts are a ‘high in demand’ rare genre.

Since Quality Assurance is a big part of what BAs do, wouldn’t it be wonderful to have some tools which use business vocabulary instead of technical? Most QA related tools like Selenium and QTP demand technical knowledge which business analysts often lack. So much for the rapid progress of technology! What BAs need is a framework that deskills the entire process of test automation! Easier said than done, right?

Well, I have done some research on that front and while I have not come across a dedicated tool for BA’s, I have been exposed to some automation frameworks that use the concept of business scenarios based test case creation using an graphical interface. These frameworks claim automating testing at a click of button by dragging/ dropping business flows. They combine different approaches of automation like functional decomposition and keyword driven to give friendly user interface, are easy to maintain, and allow reuse scaling the entire testing operation. In fact some of them even claim to eliminate the need to maintain huge automation staff once the Business Scenario, Component and Utility layers are ready.

With such frameworks BA’s can focus on ensuring that high quality tests are designed and executed thereby mitigating business risks. I wish there is more research and investment to address issues such as these and help improve the overall productivity of both business and IT.

Have you had similar experiences and come across a solution? I will be more than happy to share my research and discuss on the frameworks.

Aparna Katre

Director Strategy | Zen Test Labs

Implementing Object Repository in Selenium

Selenium (http://seleniumhq.org/) has now emerged as one of the top contenders to take on QTP in the test automation tools space. Our teams at Zen Test Labs (www.zentestlabs.com) were one of the early adopters of this automation tool and have built up a decent level of expertise in automating test scripts using selenium. We recently also presented a tutorial on this topic at STARWEST, California in October 2011.

While both tools have their advantages and disadvantages, object repositories are one area that I have found to be important but not supported by Selenium. An object repository is a centralized place for storing properties of objects available in the application under test (AUT) to be used in scripts. QTP comes with its own object repository where one can record and store objects.

Over the course of a recent project I have tried to implement object repository in and it worked really well. I am listing below, how I went about doing this.

1. Create an interface of a name you want to give to your object repository as follows,
Interface ObjectRepository
{
// Now here you can store properties of the object in variable
Static String ddCategory = “id=ctl00_MainContent_ddlCategory”;
Static String btnSave = “”id=ctl00_MainContent_btnSave””;
}

2. Implement the interface into your class and you are good to use objects in your functions
Class TestLibrary implements ObjectRepository
{
public String testFuntion()
{
//here you can your object to perform actions or validations
selenium.select(ddCategory, “Testing”);
if (selenium.isElementPresent(btnSave)
selenium.click(btnSave);
}

}
In the above example, I have implemented it in java and have also tried it in C#. Thus, using OOPS concepts I feel that this can be implemented in any object oriented language supported by Selenium.
What is important to note is that one can also connect to excel or any database and store values. Thus in the event of changes in the application or changes in properties of any object; a simple change in the excel file or DB will reflect across all instances of the object.

Some of the advantages of doing this include:

1. Easily maintain your tests or components when an object in your application changes
2. Manage all the objects for a suite of tests or components in one central location
3. Code becomes more readable & easy to write when user defined objects name are used instead of complex and long property name & value.

These have been some of the approaches that have worked for me and my learning’s. Would be great to get to know other people’s experiences in implementing object repositories within Selenium

Hemant Jadhav | Senior Consultant | ZenTest Labs