Software Quality Assurance & Testing Stack Exchange is a question and answer site for software quality control experts, automation engineers, and software testers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've just started automating all the tests our team has (~5000). I'm using Telerik Test Studio for the Silverlight automation. I have some tests written, but I'm quickly realizing that with each test it's becoming harder to maintain. Here are some things I'm wondering:

  1. In Telerik, each test seems to have its own Elements Page, even though they're testing the same Silverlight page. Can I not just reference another test's Elements Page? That would make copy/pasting steps a lot easier, since then I wouldn't have to add the elements to each test's Element Page individually.

  2. Does automation allow for running tests on different computers? We have some tests that find folders through a SL directory browser dialog, but even though I'm navigating to tests through object name (not by point/click mouse movement) if I run these tests on another computer it won't properly navigate to that directory.

  3. Are there any good books that can help a beginner learn best practices so I don't create 5k automated tests that aren't maintainable?

share|improve this question
Thanks to both of you for your help. I think these resources will help greatly in educating me about automation. – user1097108 Sep 13 '12 at 16:14
See also – Michael Durrant Nov 8 '15 at 12:30
up vote 11 down vote accepted

I presented to the Portland Selenium Users group about creating maintainable, reliable and self documenting UI automation and I think there's a lot in there that would be relevant regardless of whether you're using Selenium or not. The presentation slide deck and more importantly the code sample are both posted at the meetup web site.

In a nutshell, in the code example I implement the same test case 7 times, each time applying a step that help you build better UI automation. The steps are:

  1. Remove sleeps and replace with polling
  2. Add Logging and Comments
  3. Move code to a driver or abstraction layer
  4. Move code to startup/cleanup methods and config class
  5. Move element initialization to a page class
  6. Create helper functions in the page class for common activities
  7. Use data to drive the tests

In the example the lines of code used to implement a test case starts at 85 lines of code, jumps up to 164 lines of code and dramatically ends at only 10 lines of code with most of the functionality abstracted away into helper functions, or the initialize functions.

share|improve this answer
+1 for Slide 6 in presentation. The Evolution of (my) UI Automation - Strikingly similar learning path :) – Siva Jun 18 '14 at 4:30

I generally focus on three principles for maintainable automated tests:

  • Hide incidental details
  • Name every important idea
  • Eliminate duplication

Here is a paper where I describe these principles in more detail and apply them to a difficult-to-change test:

The paper uses one particular test tool (Robot Framework), but the principles are likely applicable in other test tools as well. Here is a nice 15-minute video where Robert Martin's applies these principles using FitNesse:

I've never used Telerik, so I don't know how well Telerik supports the kinds of abstractions I normally use. But if you write tests using some kind of general-purpose programming language, the principles in my paper apply.

Of course there's a lot more to test automation than these three principles. But if you master those, your tests will be more maintainable than most.

share|improve this answer

Today, Automated software testing is considered as one of the most trending term in the field of software testing, as it is considered as one of the efficient as well as effective software methodology, making the overall software development/testing life cycle better and taking it to some different level.

To begin with Automation testing, there are few good Test automation tools which are available in online market. Some of the well known and widely used test automation tools are:

  1. Selenium,

  2. TestingWhiz,

  3. TestComplete,

  4. Ranorex,

  5. Sahi.

These tools provide best testing functionality through automation, hence will help you to get the better knowledge of automated testing. These tools allows you to verify the various functioning of your web applications and deliver efficient and effective web interfaces that meet user expectations.

Among these, tools like Testingwhiz and Selenium are considered as multi-funtionality test automation tools, as they provide multiple solutions like Web test automation, cross-browser testing, mobile testing, etc. I would suggest to go with Testingwhiz by downloading its Free Enterprise version to start learning automated testing.

Also you can refer to some of the widely followed blogs related to automated software testing like:

  • Software Testing Help,
  • Testingwhiz,
  • Gallop,
  • uTest,
  • Software Testing Club,
  • Automation Beyond,
  • QA Journal.
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.