Time to Automate

Automated testing has always been the subject of a lot of criticism. This has been due to the fact that automation loses it’s meaning when the software is constantly changing. On top of that there is always the challenge of debugging these scripts when they fail due to a false positive. This is when the script fails not because of a bug in the software, but because these is a problem in the automated test framework. Possibly in the script, or maybe there is a problem with the proxy setting.

Therefore, it’s very crucial to all QA people to know when it is the right time to automate. The best and easiest to even think about if something can be automated would be when the functional requirements have been truly stabilized.
After deciding that this is the case there are a file things I would certainly consider before makin the decision.

1. Is this test repeatable? Can I execute the same script repeatedly and will this function that I am testing have to be tested over and over again where I will have to execute this script on a continuous basis.
2. What is the ROI or return on investment (time wise ), when you want to automate the test? I say time wise because there are many open-source automation tools available that are of no cost so if anything will be wasted; it will be time.
3. Script Death. If I am executing these scripts repeatedly and they fail on a regular basis because of some minor change to the software, it may not be worth the hassle of having to maintain and debug your scripts.
4. Is this script reusable. If we were moving a release from multiple environments during a deployment, then the tests that we are executing can be reused in these different deployment environments. Also, can this code that is not going to change, also be used to help your developers unit test their code? For example, a developer may not want to fill out a five-page form when unit testing that data transmitted through Web Services is functioning as expected.
5. The most easiest way to determine this if you are really not sure is to ask yourself; Has this manual test that I have been performing on a regular basic when regression testing become so tedious and repetitive that it literally becomes painful performing the test manually.

This is where automation seems like the a really good choice. Automating your functional tests will allow you to:
a)Test your Site
b)Write your scripts
c)Execute your scripts
d) Generate all of your Test Script pass/fail documentation, including screenshots, using third-party libraries specifically created for reporting test results in your chosen programming language and all done across different platforms and also cross browser to boot. This cuts your time by more than 80%.

These libraries also provide the programming support that allows you to run commands from a program of your own design.

After reports are generated, you can then set up a review where you might involve IT, your project manager, and Creative to view the results of your tests. Now you have your full QA functional tests and also you regression test and a way to re-export all of these reports again during upcoming release reviews.

Here are some free tools to get you started:

1) Selenium FireFox Plugin – http://seleniumhq.org/projects/ide/
2) Firebug – http://getfirebug.com/whatisfirebug -Firebug integrates with Firefox to put a wealth of web development tools at your fingertips. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page.
2) Selenium Remote Control – http://code.google.com/p/selenium/downloads/detail?name=selenium-server-standalone-2.0b3.jar&can=2&q= – is a test tool that allows you to write automated web application UI tests in any programming language against any HTTP website using any mainstream JavaScript-enabled browser. It can automatically launch and kill browsers.
3) JUnit – https://github.com/KentBeck/junit/downloads – JUnit is a simple, open source framework to write and run repeatable tests
4) Eclipse IDE for Java Developers – http://www.eclipse.org/downloads/ – Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, Ruby (including Ruby on Rails framework) Scala, Clojure, and Scheme.
5) Selenium Java Client Driver – http://selenium.googlecode.com/files/selenium-java-2.0b3.zip – In order to create scripts that interact with the Selenium Server (Selenium RC, Selenium Remote Webdriver)or create local Selenium WebDriver scripts, you need to make use of language-specific client drivers. There are other client drivers available on the Selenium downloads Page.

Happy Testing


Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: