Testing is a process of executing the program with intent to finding the bugs
Testing is the set of processes which ensure that the functionality and performance planned through design has been delivered through the system.
Testing is required to improve the quality of the product before handling over the product to the customer.
Type of testing
Traditional form of testing
Slow , tedious , boring
Costly , more time & effort
Difficult to Manage
(A lot have been said about the Slow and tediousness of the manual testing but it’s the flexibility that it provides that overshadows all other points. With the frequent change in the software its not viable to change the test script regularly. So when changes are brought into the software regularly, the manual testing is the best option).
Automation and its Need
Automation is done to reduce repeated and redundant testing. Automation maintains a single standard of quality for your application over time — across releases, platforms, and networks.
It is used to replace or supplement manual testing with a suite of test programs. Benefits include increased software quality, improved time and resource efforts , repeatable test procedures, and reduced testing costs.
Myths about Automated testing
Find more bugs:- In most places the test cases are written by test engineers who are familiar with the application they are testing. From test cases to test scripts, automation does not add anything in the process to find more bugs. The test scripts will work only as good as the test cases when comes to finding bugs.
Eliminate or reduce manual testers:-For the stable application we can say this, but for an application that required any change this is totally a myth. As said earlier that the test scripts are as good as the test cases itself so for the new test cases manual tester will definitely be required.
Automated Testing doesn't mean Automatic Testing …. It means Computer aided testing
Advantages of Automated testing
Ease the testing process
Quicken the testing, by reducing the time and effort involved in manual testing . A typical automated test suite will run in less than 24 hours, without any human intervention required. For a sophisticated product, manual testing may require dozens of staff months to perform the same testing
Maintain consistency – After a new drop is taken, the same script would be run against the same data, thereby eliminating the chances of any inconsistency. With a complex testing process manual testing often yields inconsistent coverage and results depending on the staff and schedule employed. An automated test suite ensures the same scope and process is used repeatable each time testing is performed.
Accelerate release schedule by testing at any point in the development cycle
IMPROVED TESTING PRODUCTIVITY. With its much shorter execution time an automated test suite can be run multiple times over the course of a product development cycle. By testing earlier and more often bugs are detected and corrected earlier and at much reduced expense.
IMPROVED PRODUCT QUALITY. The sum of improved test procedures and testing productivity is a substantial improvement in product quality. Automated testing detects functional and performance issues more efficiently, allowing test staff to focus on quality in areas such as documentation, installation, hardware compatibility, etc.
Reuses test across platforms
Encourage more thorough testing without straining manual resources
Advantages of Automated testing
Cost effective - Automated testing has an upfront cost to develop, but over the lifetime of a product it will offer substantial net savings. An average automated test suite development is 3-5 times the cost of a complete manual test cycle. Over multiple product releases with multiple cycles per release, this cost is quickly recouped.
Decrease the product’s time to market and prevent QA from being the bottleneck in product delivery
Improve coverage of regression testing
Improve the quality of testing by reducing the human error
Make test cycle more maintainable, consistent and thorough
Improve the reusability of tests
Provide the organized, detailed test log and audit trail of executed tests
Simplifies the debugging by allowing the exact test case to be replicated
Allows cross-referencing of automated test cases against bug logged in the bug tracking system.
Starting with Automation…
The tester works begin once the developer is ready with the software. On an average effort require to automate 1 test case is equivalent to effort required for executing the test case 8 times manually.
There are several factors to consider before anyone go for the automated testing.
Cost effectiveness of the automation.
Reusability of the automated test script.
Typical Automated testing process
Create a test plan
Record a test script ( Use agreed norms )
Customise Code , Use Reusable components and functions
Programmers quickly create application using GUI tools which has lead to increase in their productivity
Pressure on Testers
Test more and more code in less time
Improve their productivity
Move towards automation for GUI , CLI and API based application
Test Tools – a misnomer
Lack of Programming skills
Record and play back scripts , very sensitive to change
How to effectively Design , Develop and maintain automated suites?
Who should Automate Tests
Good Testing and development skills
Understand Testing Requirements and situations Testers face.
Testers who want to be programmers ?
Automate 100 % testing ?
A test automator needs to know how to develop software. He needs to be particularly aware of issues such as maintenance and reliability. Making the system easy to update with changes to the product under test should be the priority.
Independent contractors . Who will maintain tests after they have left ?
Rejects from Development or Testing as Automators ?
What and When to Automate
Is 100 % automation possible ?
Testing is the art of pragmatic – Good software testing requires good judgment
The area where one spends a lot of time testing manually
Don’t focus on areas that might otherwise go untested ( Difficult to maintain )
Rigorous Manual testing of the functionality before
Very Strong Manual Testing Process and Procedures
Automating everything to make job exciting ? Problems associated
Test automation takes 8 times the time to test manually
What and When to Automate
Desire to be a programmer
Maintainability should be the top priority – Aim to run tests unattended
Usage of Reusable components and distribution of work
First run on test and then build test suite – Focus not on how much code has been written but how many test set have been automated and how reliable and maintainable they are .
All areas that are run frequently should be automated .
Don’t automate everything .. Look for parts that are big paybacks.
Introduction of Automation in Development cycle – Timing is important.