Thursday, November 13, 2008

Automation Framework

Just imagine a car. We can make it move, turn, play music, reduce/ increase the temperature, slow down, stop, etc. How are all these things happening? It has many things in it which are "coordinating" with each other to make these happen. A car has a body, seats, steering wheel, engine, gear box and what not! All these things have been somehow "glued" together, enabling them to talk to each other; to form a single working system - a car.
A framework may be regarded as a "skeleton" upon which various parts are placed into to form a "system". In software sense, a framework may include support programs, code libraries, a scripting language, or other software to help develop and glue together the different components of a software project. Various parts of the framework may be exposed through APIs enabling communication among them.
Thinking on the same lines, Automation Framwork consists of an automation tool, test management tool, a driver script and may also have as additions library functions, supporting applications and a reporting mechanism.
A framework is formed by mainly studying the application under test - commonly referred to as AUT. Based on various factors the different aforementioned tools are selected and are interface tested before actual beginning of automating the testing proces.

Introduction to Automation

As we all know there is no product that is perfect. But any organization would strive to make it as defect free as possible. To ensure that we would have our processes in place and there is quality control. Testing is a process of finding bugs in a product. It promises that the bugs are limited within some percentage of the product. It definitely does not say that the product is defect free.
There are different types of testing. There is functional and the non functional testing. Automation falls into the latter category. Put in generic terms, automation is a process of making a certain things work automatically. Changing business requirements necessitates changes in software products. Whenever there is a change, there is a risk of exising functionalities getting affected. So every time there is a change, the application is to be tested right from the beginning in order to ensure the existing features are not affected. This is called regression testing and this is where Automation pitches in.
Automated testing is not a replacement for a manual testing. An automation application cannot replace a manual tester. Then what is automation for? Whenever manual testers test an application under crunched deadlines, there may be a fear that there some bugs may have gone undetected. When a type of work is done repeatedly there is a possiblity of human error of missing out on some steps or test cases. Automation avoids such risks:
1. Speeds up the process: It speeds up the testing process. When a change is introduced, regression testing can be done by automation which provides the results much faster.
2. Repeatable: The automated testing provides consitent results no matter how many times you test the application.
3. Programmable: The automation system is controlled by a language and it can always be programmed to fine tune or to scale the system to accomedate more test scenarios.
4. Reliable: The results are reliable simply because we know the exact flow of steps of testing followed by the automation system.
5. Re usable: The system can be re used for different versions of same application or else where in other projects.

Welcome

The objective of this site is to share the knowledge on Automation and QTP. As we all know that there is now a growing demand for specialized testing services. I have been part of automation as well as performance testing teams and I intend to share my experiences and case studies in the form of this self learning website on automation. I also plan to launch a similar blog on Performance testing after this is successfully deployed.
The first rule of any technology used in a business is that automation applied to an efficient operation will magnify the efficiency. The second is that automation applied to an inefficient operation will magnify the inefficiency.
~Bill Gates
Hope this will prove a good learning experience for you....