Showing posts with label Automation. Show all posts
Showing posts with label Automation. Show all posts

Tuesday, December 30, 2014

General Automation Process In Real Time Industries

                 





1. Requirement Gathering.
In this stage Test Engineers will collect the requirement documents and review the documents and they analyse the documents from where to automate it.
2.Identify the Best tool to fit.
In this stage Test engineers will analyse which tool is the best to automate the application.
3.Proof of Concept
Here Test engineers will give a proof how to automate the software to the client.
Some times client may give end to end scenarios or we may add end-to-end scenarios.
4.Feasibility Analysis
It is detailed study of the requirements in order to check whether all the requirements are possible are not.
Test Engineers will check where to automate the application and for example cmd prompt test cases will not be automated.
5.Estimation
*Based on Man hours we calculate Man days
6.Frame works
There are different types of frame works and test lead will decide the best frame work for the software.
Frame works are Keyword Frame work, Linear Frame work, Modular Frame work, Data driven Frame work, Hybrid Frame Work.
7.Develop Automation Scripts
Here the Test Engineers will develop the scripts by Knowing the requirement document, when the build is released then they debug the scripts and execute it
8.Failure Analysis
Here we should plot the data how it is failed
Why the script is failing?
Reasons for failures
Data issues
Application may synchronise
Object identification Issues
Run time errors,Defects
9.Defect Tracking
Test Engineers will track the defect where it is failed.
10.Publish Results
We should give proper Reason where it is failed and in which part it is effecting.

Tuesday, June 04, 2013

One easy solution for all your software testing needs

TELERIK-TEST STUDIO 

Functional Testing
In-depth functional web and desktop testing! Test HTML5, AJAX, Silverlight and WPF apps, JavaScript calls, Telerik controls, dynamic page synchronization, client-side behaviors, UI virtualizations and XAML animations

Load Testing
An intuitive load testing solution that's affordable too. Use functional tests or Fiddler logs to create your load tests or capture them yourself. Leverage a single VU license type to cover a range of technologies and protocols

Performance Testing
Construct web performance tests that offer an unparalleled insight into the performance metrics of your app. Run a functional test as a performance test and start gathering data on server processing time, network latency, and client rendering time.

Mobile Testing and Feedback
The real deal automated testing tool for your iOS apps is here! Test native, web and hybrid apps. iPad, iPhone, and iPod are supported – no jailbreak needed. Easily record and run tests, sync them across devices; get real-time user feedback and crash reports.


Functional Testing

Visual Studio plugin for coding pro’s:

Test Studio ships with a developer-focused solution that gives you maximum control over your code and tests. It's where you need it most - tightly integrated in Visual Studio. The powerful built-in test recorder can convert your tests to .NET code which can be further customized or extended in Visual Studio if needed.

Manual testing within Test Studio


Forget about spreadsheets! Put all your automated and manual tests in one place. Test Studio’s Manual Test Type makes manual test creation and execution more organized, productive and faster than before. Speed up the execution time of your manual tests by automating time-consuming repetitive tasks.

Exploratory testing
  

Test Studio Explore is an in-browser extension that helps you report bugs directly from your application. Attach screenshots, ideas, and annotations, while browsing. Share your feedback via email, or export it to Word and PDF. All this with a simple click of a button – no additional installations are needed.


Much more efficient regression testing


Test maintenance is smoother with Test Studio. We don’t use absolute coordinates which guarantees your tests will not break if the application layout changes. Better yet, all elements are stored in the "Elements repository". If there are multiple tests that use the same element, it will be referenced from the "Elements Explorer" instead of being duplicated in the test.

Test scheduling, execution and reporting


Leverage multiple machines to execute test runs in parallel saving vast amounts of execution time. Test Studio allows you to schedule and execute tests across the entire testing environment. Automatically collect results into a centralized repository and then analyze them on your local machine! Get email notifications upon run completion.

Powerful test recorder
 

Test Studio introduces a next-gen approach to test recording with its built-in recording surface. Not only are you able to create your tests with point-and-clicks, you can easily add conditional logic without writing a single line of code, or extract a value from a page element to be used later in the test.


Saturday, June 01, 2013

HP Unified Functional Testing (UFT 11.5) – QTP’s Latest Version

STEP 1 : What is HP UFT 11.5

HP released one new version with the name of UFT (Unified Functional Testing).
It is combination of QTP (Quick Test Professional) and Service Test (ST) Tools. We can automate GUI, API and Mobile applications functionality using this tool





STEP 2 : Earlier HP has 2 tools

1. QTP for GUI applications functional testing  
2. Service Test for web services Testing (GUI less testing)
In QTP 11.0 they have introduced a new concept that the service test script (written in service test) we can call in the middle of the QTP-script, so we can have GUI Test developed in QTP and GUI Less script developed in services test can run in the same Test.

STEP 3 : What's New in UFT 11.50

  • Overall UFT
  • GUI Testing
  • API Testing

Overall UFT

UFT now offers the following new features, which are relevant for both GUI and API testing:
  • One Unified Tool for Composite Apps Testing
  • Exciting New IDE
  • MDI: Edit Multiple Testing Documents Simultaneously
  • HP ALM Server-Side Test Runs

GUI Testing

  • UFT now offers the following new features, available when working with GUI testing assets:
  • Insight: Image-Based Object Identification
  • File Content Checkpoints
  • Support for MSAA-Based (Microsoft Office and Plug-in) Controls
  • Generate Automated GUI Tests from Sprinter Exploratory Tests
  • New GUI Testing Support for Qt and Adobe Flex Applications

API Testing

  • UFT now offers the following new features, available when working with API testing assets:
  • SAP IDoc and RFC Imports
  • JSON Document Testing
  • Reusable Actions for API Testing
  • Use API Tests in Continuous Integrations Testing
  • Debug Steps Using the Run Step Command
  • HP Service Virtualization Integration
  • Use Your soapUI Tests in UFT
  • Compare API Testing Assets
  • ALM Application Parameters for Test Runs
STEP 4: Updated IDE:-

HP UFT IDE (Integrated Development Environment) supports to work on multiple tests at the same time
HP Unified Functional Testing IDE  supports for editing more than one action at the same time
HP QTP 11.5 IDE has improved statement completion, improved dynamic lists of values, code folding and code snippets.

Object Identification

Insight Recording identify the object based on images like just as a human being   would
Image-based testing feature can allow us to test applications on non-windows operating system.

Check points(New and Improved)

PDF Checkpoint:  File Content checkpoint and File Content Output value: Checks the text in dynamically or accessed PDF file content

Bitmap Checkpoint Enhancement :-

Supports for including or excluding multiple areas within a bitmap
Supports for locating a bitmap area anywhere within the runtime bitmap.
Select External bitmap file  as the bitmap source

Mobile applications testing :
Install Perfect Mobile QTP Add-in (UFT Mobile) and automate Mobile applications. Get the more details from below link.

STEP 5 : HP UFT Supported Environments:
Active X-- ( FarPoint 8.0 COM), Flex-(Flex SDK 4.5.1, Adobe AIR 2.6), Delphi- Delphi 2009, Delphi 2010, XE, Java-SWT 3.6, Eclipse 3.6,Oracle Forms 11g, PeopleSoft 8.5,PowerBuilder 12.0,SAP GUI 7.20, Stingray Studio 10.4, VAST 8
Web: IE 64- bit, IE 9, IE Protected Mode, Chrome, FF 4-14, jQueryUI toolkit,Dojo toolkit 1.5.0, Yahoo UI toolkit 2.7
API: JRE Version 7u5

STEP 6 :Take a new Test in UFT














Monday, August 06, 2012

Telerik-Test studio Coding Prototype Book



                                                         Download This Link :- http://share.axure.com/MDJF05/
Build automated tests for your apps regardless of their underlying technology, complexity or interactivity. We are the first to support all the latest technologies - HTML5AJAXSilverlight and WPF! Test Studio is the one stop shop for testing JavaScript calls, Telerik controls, dynamic page synchronization, client-side behaviors, complex UI virtualizations and XAML animations.



PLEASE CLICK BELOW LINK AND VIEW AND DOWNLOAD HERE
password: ahamadqtp


Saturday, June 23, 2012

Automation testing Tools

 Test automation tools

Tool nameProduced byLatest version
QTPHP11.0
IBM IBM Rational8.1.0.3
Parasoft SOAtestParasoft9.0
RanorexRanorex GmbH3.0
Rational robotIBM Rational2003
SeleniumOpen source1.0.10
SilkTestMicro Focus2010 R2
TestCompleteSmartBear Software8.2
TestPartnerMicro Focus6.3
TOSCA TestsuiteTRICENTIS Technology & Consulting7.2.1
VSMicrosoft2010
WATIROpen source1.6.5
WebUI Test StudioTelerik, Inc.2010.3

Friday, December 09, 2011

Top 10 automation Testing Tools



Quick Test Professional(QTP)
HP QuickTest Professional software provides functional and regression test automation for software applications and environments.Part of the HP Quality Center tool suite, HP QuickTest Professional can be used for enterprise quality assurance
HP QuickTest Professional supports keyword and scripting interfaces and features a graphical user interface. It uses the Visual Basic Scripting Edition (VBScript) scripting language to specify a test procedure, and to manipulate the objects and controls of the application under test.
HP QuickTest Professional was originally written by Mercury Interactive. Mercury Interactive was subsequently acquired by Hewlett Packard (HP) in 2006.HP QuickTest Professional is currently available from HP Software Division.


IBM Rational Functional Tester 
IBM Rational Functional Tester is a tool for automated testing of software applications from the Rational Software division of IBM. It allows users to create tests that mimic the actions and assessments of a human tester.[1] It is primarily used by Software Quality Assurance teams to perform automated regression testing.



Selenium
Selenium is a portable software testing framework for web applications. Selenium provides a record/playback tool for authoring tests without learning a test scripting language (Selenium IDE). It also provides a test domain-specific language (Selenese) [1] to write tests in a number of popular programming languages, including C#, Java, Groovy, Perl, PHP, Python and Ruby. The tests can then be run against most modern web browsers. Selenium deploys on Windows, Linux, and Macintosh platforms.

TestComplete 
TestComplete is an automated testing tool, developed by SmartBear Software which aims to allow testers to create software quality tests. Tests can be recorded, manually scripted or created manually with keyword operations and used for automated playback and error logging.
TestComplete is used for testing many different application types including Web, Windows, WPF, Flash, Flex, Silverlight, .NET and Java .It automates front end UI/functional testing and back-end testing like database, and HTTP load testing


Telerik-Test Studio 
Test Studio [2] is used for testing all type of web applications without the need of writing code. The tool comes in two editions – a Visual Studio plug-in for software developers, and a standalone edition for QA professionals. Test Studio supports various web technologies such as HTML, AJAX, Silverlight, ASP.NET MVC, JavaScript

Visual Studio Test Professional 
Visual Studio Test Professional is an integrated testing toolset developed by Microsoft that delivers a complete plan-test-track workflow for in-context collaboration between testers and developers, in order to increase testers’ visibility to the overall project.


SilkTest
SilkTest is an automation tool for testing the functionality of enterprise applications in most versions of Windows, Solaris 9 and 10, and Red Hat Enterprise Linux WS 2.1 and 3.0.[1] It was produced by Segue Software which was acquired by Borland in 2006. Borland was acquired by Micro Focus International in 2009. SilkTest became the strategic product to eventually replace TestPartner, which was acquired by Micro Focus International from Compuware.
SilkTest offers various clients: - SilkTest Classic uses the domain specific 4Test language for automation scripting. It is an object oriented language similar to C++. It uses the concepts of classes, objects, and inheritance. - Silk4J allows to do automation in Eclipse using Java as scripting language - Silk4Net allows the same in Visual Studio using VB or C# - SilkTest Workbench allows automation testing on a visual level (similar to former TestPartner)


SOAtest 
Parasoft SOAtest is "a comprehensive testing and analysis tool suite for tailored to the unique testing and validation needs of Service Oriented Architectures." It helps testers test the message layer functionality of their services by automating their testing and supports numerous transport protocols including: HTTP 1.0, HTTP/1.1, JMS, MQ, RMI, SMTP, TIBCO, .NET WCF HTTP, .NET WCF TCP. Basic testing functionality include static analysis through WSDL testing, functional unit testing, regression testing, security testing, and load testing. Parasoft SOAtest introduced application behavior virtualization, which creates copies of applications or back-end systems that are otherwise difficult to access or exercise during development and testing. Application behavior virtualization was extended and is now available in Parasoft Virtualize. SOAtest is used by companies such as Sabre, Lufthansa Cargo AG, Siemens AG, MedicAlert, and AOL




TOSCA Test suite 
TOSCA Testsuite is a software tool for the automated execution of functional and regression software testing. In addition to test automation functions, TOSCA includes integrated test management, a graphical user interface (GUI), a command line interface (CLI) and an application programming interface (API). TOSCA Testsuite is developed by the Austrian software company TRICENTIS Technology & Consulting GmbH based in Vienna. In 2011, TOSCA was included in Gartner Inc.’s "Magic Quadrant for Integrated Software Quality Suites" report as a “visionary”.




Watir 
Web Application Testing in Ruby (or Watir, pronounced "water") is a toolkit used to automate browser-based tests during web application development. This automated test tool uses the Ruby (programming language) scripting language to drive Internet Explorer, Mozilla Firefox, Google Chrome, Opera and Safari, and is available as a RubyGems gem. Watir was primarily developed by Bret Pettichord and Paul Rogers.


Testing Anywhere 
Testing Anywhere is software produced by San Jose-based Automation Anywhere, Inc. (est. 2003). The software allows testers and developers to test applications, Web sites, objects, controls and GUI front-ends.The company has been featured in SD Times for its creation of "Object Avatars", and has over 25,000 customers.


                                             


Ranorex 
Ranorex is a Windows GUI test automation framework for testing many different application types including Web 2.0 applications, Win32, MFC, WPF, Flash/Flex, .NET and Java (SWT). Ranorex doesn't have a scripting language of its own. The user (e.g. the software tester) can use the functionalities of the programming languages like C# and VB.NET as a base, and enlarge it with the GUI automation functionality of Ranorex.



HTTP Test Tool (htt)
HTTP Test Tool (htt) is an open source scriptable protocol test tool for HTTP protocol based products like web servers, web browsers, web applications or ICAP.
Software products are per se not error free. Adding new features, fixing errors and upgrading library versions can all introduce new errors and security holes. A protocol test tool helps to detect errors within HTTP protocol based Software. It is very simple and can therefore do bad requests/response to emulate bad or malicious server/client software. There are many more protocol test tools for HTTP like OpenSTA, ApacheBench, Selenium... which also can do stress testing.


QF-Test 
QF-Test (the successor of qftestJUI, available since 2001) from Quality First Software is a cross-platform software tool for the GUI test automation limited to Java/Swing, SWT, Eclipse plug-ins and RCP applications, ULC, Java applets, Java Web Start and cross-browser test automation of web-based applications (HTML, AJAX, ExtJS, GWT, RAP, Qooxdoo, RichFaces).







Sunday, August 07, 2011

Benefit analysis - Manual versus Automated Testing


Problems with Manual Testing: Some of the problems with manual testing are:

  1. Less Reliable: Manual testing is not reliable, as there is no yardstick available to find out whether the actual and expected results have been compared. We just rely on the tester's words.
  2. 2) High Risk: A manual testing process is subject to high risks of oversights and mistakes. People get tired, they may be temporarily inattentive, they may have too many tasks on hand, they may be insufficiently trained and so on. Hence, unintentionally mistakes happen in entering data, in setting parameters, in execution and in comparisons.
  3. Incomplete Coverage: Testing is quite complex when we have mix of multiple platforms, O.S. Servers, clients, channels, business processes etc. Testing is non-exhaustive. Full manual regression testing is impractical.
  4. Time Consuming: Limited test resources makes manual testing simply too time consuming. As per a study done, 90% of all IT projects are delivered late due to manual testing.
  5. Facts and Fiction: The fiction is that manual testing is done while the fact is only some manual testing is done depending upon the feasibility.
  6. It is worth noting that the manual testing is used to do the documentation of tests, creating testing related guides according to data queries, providing structures for helping run the tests on temporary basis and measuring the test results. 
  7. Manual testing is considered to be costly and time-consuming; hence we use automated testing to cut down the time and cost.
Benefits of Automated Testing: On the contrary, Automated testing is having many benefits.
Automated testing is the process of automating the manual testing process. We use automated testing to substitute or provide a supplement to manual testing with the use of a comprehensive suite of testing tools. Automated testing tools assist software testers to evaluate the quality of the software by automating the mechanical aspects of the software testing task. The benefits of automation are better software quality, lesser time for marketing, repeatability of testing procedures & reduced cost of testing. We shall now list some more benefits of test automation. They are given below

  1. Automated execution of test cases is faster than manual execution. This saves time. This time can also be utilized to develop additional test cases, thereby improving the coverage of testing.
  2. Test automation can free test engineers from mundane tasks and make them focus on more creative tasks.
  3. Automated tests can be more reliable. This is because manually running the tests may result in boredom and fatigue, more chances of human error. While automated testing overcomes all these shortcomings.
  4. Automation helps in immediate testing, as it need not wait for the availability of test engineers. In fact,
  5. Automation = Lesser Person Dependence
  6. Test cases for certain types of testing such as reliability testing, stress testing, load and performance testing cannot be executed without automation. For example, if we want to study the behavior of a system with millions of users logged in, there is no way one can perform these tests without using automated tools.
  7. Manual testing requires the presence of test engineers but automated tests can be made to run round the clock, (24 x 7) environment. So, automated testing provides round the clock coverage.
  8. Tests, once automated, take comparatively far less resources to execute. A manual test suite requiring 10 persons to execute it over 31 days i.e., 31 x 10 = 310 man days, may take just 10 man-days for execution, if automated. Thus, a ratio of 1 : 31 is achieved.
  9. Automation produces a repository of different tests, which helps us to train test engineers to increase their knowledge.
  10. Automation does not end with developing programs for the test cases. Automation includes many other activities like selecting the right product build, generating the right test data, and analyzing results and so on.Automation should have scripts that produce test data to maximize coverage of permutations and combinations of input and expected output for result comparison. They are called as test data generators.
It is important for automation to relinquish the control back to test engineers in situations where further sets of actions to be taken are not known.
As the objective of testing is to catch defects early, the automated tests can be given to developers so that they can execute them as part of unit testing.
Drawbacks of Automated Testing: Despite of many benefits, pace of test-automation is slow.
Some of its disadvantages are as under:

  1. An average automated test suite development is normally 3-5 times the cost of a complete manual test cycle.
  2. Automation is too cumbersome. Who would automate? Who would train? Who would maintain? These issues complicates the matter.
  3. In many organizations, test automation is not even a discussion issue.
  4. There are some organizations where there is practically no awareness or only some awareness on test automation.
  5. Automation is not an item of higher priority for management. It does not make much difference to many organizations.
  6. Automation would require additional trained staff. There is no staff for the purpose. Automation actually allows testing professionals to concentrate on their real profession of creating tests and test cases, rather than doing the mechanical job of test execution.
Conclusion:
Test automation is a partial solution and not a complete solution. One does not go in for automation because it is easy. It is painful and resource-consuming exercise but once it is done, it has numerous benefits.

How to chose between Automated Testing & Manual Testing?


1) Based upon the frequency of use of Test Cases:
Automating a test case requires almost 3-4 times the effort as compared to manual execution of it once. To draw benefit out of significant investment in the automation tool, we should be able to execute the automation script the maximum number of times or at least 7-8 times. There is no worthwhile idea of going in for an automation tool for short-term product, which can be easily managed by manual means. For products involving many rounds of testing, the use of an automation tool is understandable.
2) Time comparison - Automated versus Manual Testing:
Generally an automation script runs much faster as compared to manual execution. However post execution activities are considerably time consuming. After running the automation script fully; time consuming activities are the analysis of test results & investigation or identification of actions causing failure at defined checkpoints. Whereas in case of manual execution of the test script, there is no need of any separate time for analysis of the results, since the actions causing failure at checkpoints become already known.
Hence automated testing is viable only if, the combined time spent on running the automation script as well as doing post automation analysis of test results is significantly less in comparison to the time spent on manual execution. However nicely developed automation scripts do not need constant monitoring and can run without any manual intervention. In such a case automation can be greatly productive & can cut down the time of running the scripts.
However when large number of regression issues are there after fixing the bugs, automation is the best alternative. Manual testing can be extremely time consuming in such cases.
3) Reusability of Automation Scripts:
The automated testing is viable in case automation scripts are reusable in future as well. One may be compelled to think again in favor of automation if considerable effort is expected to be made in upgrading the automation scripts. The return on investment made on the automation tool can be maximized by reusability of the automation scripts with small modifications.
4) Stability of the Product under Test:

Automation scripts are not advisable for use on software product, which itself is not adequately stable. Frequent changes in automation script are not desirable, thus unless the product acquires enough stability during its development cycle, there is no point in automation unless we are operating in an agile environment.
5) Adaptability of test cases for automation:

A statement that, "All test cases can easily be automated" – is not true. Many a times we land up with some type of test cases, which are not worth automating. Hence there is no point in wasting automation effort over such test cases. For complicated product with tightly integrated bunch of many applications, running the automation script again & again in the event of stoppage of the test case, can become a pain in the neck. In such cases tester would certainly prefer to run the script manually & save considerable amount of time as compared to running the automated script.
6) Exploitation of automation tool:
If we want to go in for automated testing of a product, we must draw full benefit out of the test tool to draw the maximum return on its investment. The automation tool should be deployed for performing less complicated / time consuming & repetitive tasks. This will help the test engineers in concentrating their time & energy on other significantly important tasks. There is no point in automating highly complex test cases, which can easily be executed manually.
Automation tool should be deployed to test the breadth of the application under test. However manual test engineers can handle the in-depth testing more efficiently.
Manual testing can not be totally eliminated in any way. Automation scripts have both advantage and disadvantages in the sense that they perform actions exactly in the way they are coded to perform without any deviation. For even a slight deviation, the script needs to be changed. Running the same automated script again & again will not detect more bugs. However to detect more & more bugs, we need to move across the side & have little deviation from the flow, & such actions can be better accomplished by manual testing.
When a test case is perfectly designed & made to execute from end to end automatically through the tool without, it automatically verifies all predefined check points without any manual intervention.
7) User simulation over large web application:
For simulation of several virtual / dummy users interacting over a large web application, load testing automated tools like LoadRunner etc. can be easily deployed to establish the load bearing functionality of the application. Such load testing by manual means is extremely difficult.


Introduction to automated testing:


"Automated Testing" means automating the manual testing process currently in use. The prime requirement is of presence of a formalized "manual testing process" in the organization.
Automation refers to the use of strategies & tools which augment or reduce the need of manual or human involvement in unskilled, repetitive or redundant tasks.
Automation process includes – Creation of detailed test cases, including predictable "expected results", which have been derived from Business Functional Specifications and other Design documentation.
A standalone Test Environment, including a Test Database that is restorable to a known constant, such that the test cases are able to be repeated each time there are modifications made to the application.
When to use the Automation tools:
Great effort is required in firstly automating the test cases and maintaining them thereafter. Hence some sort of cost-benefit analysis is quite helpful before investing money and putting efforts into it.
Automation is suited to following types of testing with specific intentions:
1) Functional Testing – on operations which perform as per the expectations.
2) Regression Testing – on the behavior of the system which has not been changed.
3) Exception or Negative Testing – thereby forcing error conditions in the system.
4) Stress Testing – to determine the absolute capacities of the application and operational infrastructure.
5) Performance Testing – to provide assurance that the performance of the system will be adequate for both batch runs and online transactions in relation to business projections and requirements.
6) Load Testing – to determine the points at which the capacity and performance of the system become degraded to the situation that hardware or software upgrades would be required.
Benefits of Automated Testing:
1) Reliable: Tests perform precisely the same operations each time they are run, thereby eliminating human error
2) Repeatable: You can test how the software reacts under repeated execution of the same operations.
3) Programmable: You can program sophisticated tests that bring out hidden information from the application.
4) Comprehensive: You can build a suite of tests that covers every feature in your application.
5) Reusable: You can reuse tests on different versions of an application, even if the user interface changes.
6) Better Quality Software: Because you can run more tests in less time with fewer resources
7) Fast: Automated Tools run tests significantly faster than human users.
8) Economical: As the number of resources for regression test are reduced.
Choosing the right tools for the job and targeting the right areas of the organization to deploy them can only realize these benefits. The right areas where the automation fit must be chosen. 
 Areas where Automation can be attempted first:
1. Highly redundant tasks or scenarios
2. Repetitive tasks that are boring or tend to cause human error
3. Well-developed and well-understood use cases or scenarios first
4. Relatively stable areas of the application over volatile ones must be automated.
Suggested guidelines for Automated Software Testers so as to draw maximum benefits from automation:
1) Concise: As simple as possible and no simpler.
2) Self-Checking: Test reports its own results; needs no human interpretation.
3) Repeatable: Test can be run many times in a row without human intervention.
4) Robust: Test produces same result now and forever. Tests are not affected by changes in the external environment.
5) Sufficient: Tests verify all the requirements of the software being tested.
6) Necessary: Everything in each test contributes to the specification of desired behavior.
7) Clear: Every statement is easy to understand.
8) Efficient: Tests run in a reasonable amount of time.
9) Specific: Each test failure points to a specific piece of broken functionality; unit test failures provide "defect triangulation".
10) Independent: Each test can be run by itself or in a suite with an arbitrary set of other tests in any order.
11) Maintainable: Tests should be easy to understand and modify and extend.
13) Traceable: To and from the code it tests and to and from the requirements. 
Disadvantages of Automation Testing:
Though the automation testing has many advantages, it has its own disadvantages too. Some of the disadvantages are:
1) Proficiency is required to write the automation test scripts.
2) Debugging the test script is major issue. If any error is present in the test script, sometimes it may lead to deadly consequences.
3) Test maintenance is costly in case of playback methods. Even though a minor change occurs in the GUI, the test script has to be re-recorded or replaced by a new test script.
4) Maintenance of test data files is difficult, if the test script tests more screens.


Understand the Best Practices in Test Automation


Why Automated Testing is Needed?: Today, rigorous application testing is a critical part of virtually all software development projects. As more organizations develop mission – critical systems to support their business activities, the need is greatly increased for testing methods that support business objectives. It is necessary to ensure that these systems are reliable, built according to specification and have the ability to support business processes. Many internal and external factors are forcing organizations to ensure a high level of software quality and reliability.
Why Automate the Software Testing Process?:
In the past, most software tests were performed using manual methods. This required a large staff of test personnel to perform expensive and time-consuming manual test procedures. Owing to the size and complexity of today’s advanced software applications, manual testing is no longer a viable option for most testing situations.
How to do Testing more Efficiently:
By definition, testing is a repetitive activity. The methods that are employed to carry out testing (manual or automated) remain repetitious throughout the development life cycle. Automation of testing processes allows machines to complete the tedious, repetitive work while human personnel perform other tasks. Automation eliminates the required "think time" or "read time" necessary for the manual interpretation of when or where to click the mouse. An automated test executes the next operation in the test hierarchy at machine speed, allowing test to be completed many times faster than the fastest individual. Automated test also perform load/stress testing very effectively.
Can Software Testing Costs be brought Down:
The cost of performing manual testing is prohibitive when compared to automated methods. The reason is that computers can execute instructions many times faster and with fewer errors than individuals. Many automated testing tools can replicate the activity of a large number of users (and their associated transactions) using a single computer. Hence, load / stress testing using automated methods requires only a fraction of the computer hardware that would be necessary to complete a manual test.
Replication of Testing over Variety of Platforms: Automation allows the testing organization to perform consistent and repeatable test. When applications need to be deployed across different hardware or software platforms, standard or benchmark tests can be created and repeated on target platforms to ensure that new platforms operate consistently.
Greater Application Coverage: The productivity gains delivered by automated testing allow and encourage organization to test more often and more completely. Greater application test coverage also reduces the risk if exposing users to malfunctioning or non-compliant software.
Effective Reporting of Test Results: Full-featured automated testing systems also produce convenient test reporting and analysis. These reports provide a standardized measure of test status and results, thus allowing more accurate interpretation of testing outcomes. Manual methods require the user to self-document test procedures and test results.
Clear Understanding of Testing Process:
The introduction of automated testing into the business environment involves far more than buying and installing an automated testing tool.
Typical Software Testing Steps: Most of the software testing projects can be divided into general steps like
Test Planning: This step determines like ‘which’ and ‘when’.
Test Design: This step determines how the tests should be built the level of quality.
Test Environment Preparation: Technical environment is established during this step.
Test Construction: At this step, test scripts are generated and test cases are developed.
Test Execution: This step is where the test scripts are executed according to the test plans.
Test evaluation: After the test is executed, the test results are compared to the expected results and evaluations can be made about the quality of an application.
Finding out the Tests best suitable for Automation: Most, but not all, types of tests can be automated. Certain types of tests like user comprehension tests test that run only once and tests that require constant human intervention are usually not worth the investment incurred to automate. The following are examples of criteria that can be used to identify tests that are prime candidates for automation.
High path frequency
– Automated testing can be used to verify the performance of application paths that are used with a high degree of frequency when the software is running in full production. Examples include: creating customer records.
Critical Business Processes
– Mission-critical processes are prime candidates for automated testing. Examples include: financial month-end closings, production planning, sales order entry and other core activities. Any application with a high –degree of risk associated with a failure is a good candidate for test automation.
Repetitive Testing
– If a testing procedure can be reused many times, it is also a prime candidate for automation
Applications with a Long Life Span
– If an application is planned to be in production for a long period of time, the greater the benefits are from automation.
Task Automation and Test Set-Up: In performing software testing, there are many tasks that need to be performed before or after the actual test. For example, if a test needs to be executed to create sales orders against current inventory, goods need to be in inventory. The tasks associated with placing items in inventory can be automated so that the test can run repeatedly. Additionally, highly repetitive tasks not associated with testing can be automated utilizing the same approach.
Who is ideally suited for doing Testing: There is no clear consensus in the testing community about which group within an organization should be responsible for performing the testing function. It depends on the situation prevailing in the organization.