Saturday, February 18, 2017

What is Automation Testing? | David Tzemach

Overview

Automated testing is another layer that we can use besides to the traditional manual testing, as we all know, manual testing is performed by testers that design and execute tests on a system manually and without any use of external tools. 

Automated testing means that engineers (QA/Developers) will use an automation framework/Tool to execute tests that they used to run manually, this is done when each step in the test scenario is scripted including the test data and the expected/actual results of the test.

In my opinion, both manual and automation testing should always be combined during a testing project, the true art is to determine the amount of effort to invest in which one of them based on the project complexity, deadlines, and Risks.

תוצאת תמונה עבור ‪automation testing‬‏

What are the objectives of using automation tools?

The following list will summarize the objectives that we aim to achieve when using automation tools:
  • Increase the return on investment (ROI) in the long-term.
  • Generate a reusable code for future projects.
  • Reduce the number of manual testers.
  • Improve the efficiency of the testing team (we will want to reduce the number of test cases that we run manually).
  • Improve the time to market.
  • Increase the test coverage.

What can we achieve using automation tools?

There are some major goals that we can achieve using automation tools:
  • Make testing more fun and allow the tester to contribute more to the quality effort.
  • Make an efficient test scheduling (Test can run at night via predefined schedule).
  • After the first implementation, we can remove the manual testers from the regression cycles (in Simulate test scenarios that we cannot achieve using manual tests.
  • We will be able to implement an automated “Continues integration” process.
  • Will help the engineering team to achieve an efficient resource utilization.
  • The best scenario, the entire regression cycle will be automated).
  • Run a large number of test cases in a narrow period of time.
  • Reduce the time effort to build the test environments.
  • We will be able to run the tests 24/7.
  • We can create and execute tests to validate application requirements and specifications.
  • We will get a fast feedback about the status of the application (Using automation reports),

What Test Automation is not?

Usually, using automation tools during the testing effort is essential no matter what is the scale of the project, once said, we still need to remember that automation testing will not:
  • Replace the need to plan, Design and write the test plan.
  • Automation is NOT testing! You will always need to add the eye of the human tester.
  • Be easy to maintain after a while. 
  • Pay off on the first testing project, but will remove the need to perform the same tests again.


Why may testing teams reject the implementation of automated tests?

Many companies are still using manual testing without carrying out an automated testing process, let’s review the commonest reasons that may explain why.


Job Security

It’s a simple and logical assumption, in many cases, manual testers that do not have experience in automated tools or coding will reject the idea to use automation because of they afraid that it will make them less relevant in the future.


Application Complexity

In some rare cases, the application being tested manually is just too complex for automated testing.


Costs

Although there are some great free tools that we can use to automate almost everything, in most projects we will buy a dedicated expensive tool, Sometimes, organizations will reject the investment in automation tools due to lack of budget.


Time

Implementing Automated process is a time-consuming task, testing teams will need to investigate what alternatives are available to replace the manual process, learn how to use the selected tool, writing the code and maintain it. 

All these tasks will take time that Sometimes the company cannot afford (Startups and small companies are a great example), therefore they will invest more time in development and continue to test manually until the product will become too big to test manually.

 

Common Types of Automated Testing Tools

Automated testing is relevant to all testing levels and testing types, I created this simple table as a reference to the most known and popular testing tools.

Test  
Automated Tool
Unit Testing
TestNG, NUnit,xUnit…
Security Testing
WireShark, WebInspect, fiddler….
Penetration testing
CORE impact, Metasploit, Nessus, Retina,Sqlmap,Sqlninja,beEF,Hydra, Nagios,Nmap…..
Performance Testing
JMeter, LoadRunner, WebLoad, NeoLoad,Qtest,Loadster,Wapt….
Regression Testing
TestCafe,QTP,vTest,Winrunner,TestComplete …
Web testing
SoapUI,Ranorex, Selenium, Browsershots, IE Tab, BrowserCam,Watir…
Mobile Testing
Frank (iOS), iOS UI Automation (iOS), Robotium (Android),Appium (Android/iOS)…
Cloud Testing
SaltStack,Fabric, Chef, Puppet, Juju…

1 comment:

  1. Hi, you have given really informative post. Thanks for sharing this post to our vision. Learn Hadoop Online Training will helps you to reach your goal.Selenium Online Training

    ReplyDelete

My Presentations