User:BogdanIstrate/sandbox

Automation testing

What is automation testing? Test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes.

Test Automation is the best way to increase the effectiveness, test coverage, and execution speed in software testing. Automated software testing is important due to the following reasons: -testing all workflows, all fields, all negative scenarios is time and money consuming -difficult to test for multilingual sites manually -test Automation in software testing does not require Human intervention. You can run automated test unattended (overnight) -test Automation increases the speed of test execution

Automation is recommended in the following cases: -High Risk - Business Critical test cases -Test cases that are repeatedly executed -Test Cases that are very tedious or difficult to perform manually -Test Cases which are time-consuming

Automated Testing Process has 5 steps: 1)Test Tool Selection 2)Define scope of Automation 3)Planning, Design and Development 4)Test Execution 5)Maintenance

There are four types of frameworks used in automation software testing: 1)Data Driven Automation Framework 2)Keyboard Driven Automation Framework 3)Modular Automation Framework 4)Hybrid Automation Framework

Types of automated testing: : Smoke Testing, Unit Testing, Integration Testing, Functional Testing, Keyword Testing, Regression Testing, Data Driven Testing, Black Box Testing.

Open automation tools : Ranorex Studio, Kobiton, ZAPTEST, LambdaTest, Selenium, etc.

Automation benefits: -70% faster than the manual testing -Wider test coverage of application features -Reliable in results -Ensure Consistency -Saves Time and Cost -Improves accuracy -Human Intervention is not required while execution -Re-usable test scripts -Better speed in executing tests

Manual Testing vs Automation Testing Automated testing is done through an automation tool, so more time can be spent on higher value tasks, such as exploratory tests while automating time-consuming tests, such as regression tests. While you do need spend time maintaining test scripts overall, you will increase your test coverage and scalability.

The benefit of manual testing is that it allows a human mind to draw insights from a test that might otherwise be missed by test automation. Automated testing is well-suited for large projects, projects that require testing the same areas over and over, and projects that have already been through an initial manual testing process.

The test automation pyramid strategy calls for automating tests at three different levels. Unit testing represents the base and biggest percentage of this test automation pyramid. Next comes, service layer, or API testing. And finally, GUI tests sit at the top.

Testing in these short Agile iterations often necessitates a “shift left” approach. This shift left in agile development process means testing starts much earlier in the application lifecycle.

When evaluating a testing solution, it’s important to have a tool that fits the needs of all of the different team members who will be involved in the testing process. These include: manual testers, automation engineers, developers.

The manual testing is more preferable over automation testing in following cases: If UI of the system under test is changing more frequently, tight release deadlines and no enough time to automate the system; if you do not have enough programming skills.

In case of automation testing, testers always get different tools with testing software which makes them to work fast with increasing efficiency.

Automation testing process is helpful for those web applications where millions of users interact together. So, to test those web applications go for load automation testing and create virtual users to check load capacity of the web application.

Automated software testing more focus on the depth and scope of tests which increases the quality of software. Automated software testing process works on thousands of different complex test cases which is not possible with manual testing. This testing process is capable to check the application inner database, data table, memory, and file containing the application to determine the application is performing as estimated.

Conclusions

For testing software, neither automation nor manual approaches are going to work individually. The best approach is to prepare a mix of both. Delivery teams should automate as many test cases as possible and use manual testing as a way to randomly check the most critical scenarios. While the initial setup of an automated test suite involves a lot of initial effort, it benefits the entire delivery process in the long run. Automation helps to save time and budget and manual testing helps to give an intermittent push to the quality assurance. Manual testing lays the process down that can be automated subsequently. Both of the testing approaches are complementary to each other.