Introduction to Automation Testing Prepared By:Mona Mohammad Abd El-Rahman.(QC Engineer at Ibtikar Technologies Co.)
AgendaWhat is Automation testing ?Why Automation testing is important ?Levels of automation testing.Automation testing Framework.Framework approaches.Automation lifecycle.How to choose automation tool ?Types of automation testing tools.When to automate and by whom ?Supporting practices.Skills to be learned.
What is Automation Testing ?The use of special software (separate from the software beingtested) to control the execution oftestsand the comparison of actual outcomes with predicted outcomes. Why Automation Testing is important ?
Why Automation Testing is important ? Automated Software Testing Saves Time and Money. Testing Improves Accuracy. Increase Test Coverage. Automation Does What Manual Testing Cannot. Automated QA Testing Helps Developers and Testers. Team Morale Improves.
Levels of automation testing:Code Driven test automation is usually performed by development team (Unit tests, TDD).Code Driven test automation is prompted in Agile software method as test driven development method.6 Automation testing framework:An integrated solution that sets the rule of automation of specific product. It integrates the function libraries, test data sources, object details and various reusable models.Data FileDriver ScriptActual OutputExpected OutputCompare7 Framework approaches: Record and Playback. Linear scripting. Modular scripting. Data Driven approach. Keyword Driven approach. Record and PlaybackCapture interactions with the system and replay it.Popular approach among commercial tool.
BenefitsProblemsVery easy and fast to create initially.No programming skills needed.Single change in UI breaks all the test.Hard to maintain.(Plenty of separate test scripts)System must be ready before automation starts.(Doesnt accept acceptance test driven development).Linear scriptingNon-structured scripts interacts directly with SUT.Can use any programming language.Also produced by capture and replay tools.
test Script 1test Script 2SUTBenefitsProblemsFast to create initially.Flexible.Can use common scripting languages.No license cost.
Creating tests requires programming skill.One change in the system may break all the test.Hard to maintain.(Plenty of test scripts).No reuse of code.Adequate for simple tasks.Never a good basis for large scale automation.
11Modular scriptingDriver script drive test execution.Interaction with SUT done by functions in test library.
SUTDriver Script 1Driver Script 2Test LibraryFunction 1Function 2Function 3BenefitsProblemsReuse of code.Creating new tests gets faster.Easy to maintain.(Changes in the system will cause changes in small areas in test code)Drivers scripts are simple.Novice programmers can easily edit in drivers scripts.Building test library requires initial efforts.Requires High programming skills (to create test library).Test data embedded into scripts.New tests requires new driver scripts.Data driven approachTest data taken out of test scripts.One driver script can execute multiple similar tests.New driver script still needed for different kind of tests. SUTTest LibraryFunction 1Function 2Function 3Driver Script 1Driver Script 2TestData 1TestData 2ParserBenefitsProblemsTest libraries provide modularity.Creating and editing existing tests are very easy.Maintenance responsibilities can be divided:a) Non programmers maintain test data.B) Programmers maintain automation test code.Test cases are similar.New kinds of tests requires new test scripts.Creating driver script requires programming skills.Initial effort creating parsers and other reusable components are big.Keyword driven approachNot only test data but also directives (keywords) telling how to use the data taken out of the test scripts.Keywords and test data associated with them drive test execution.SUTTest LibraryKeyword 1Keyword 2Keyword 3TestFrameworkTestData 1TestData 2TestData 316BenefitsProblemsAll same benefits as data driven testing.Tests can be constructed freely from keywords.All tests can be executed by one framework.Initial efforts in really big.But, there is online open source tools available. Automation testing lifecycle : How to choose automation tool ?Imagine your self the tool decision maker and purchaser How will you think ?
How to choose automation tool ?Do you have necessary skilled resource to allocate for automation tasks?
What is your budget?
Does the tool satisfy your testing needs? Is it suitable for the project environment and technology you are using? Does it support all tools and objects used in the code? How to choose automation tool ?Does the tool provide you the free trial version so that you can evaluate it before making a decision? Also does the tool have all features available in trial version?
Is the current tool version stable? Is the vendor company established with good customer support as well as online help resources and user manual?
How is the tool learning curve? Is the learning time acceptable for your goals? How to choose automation tool ?Do you want automation tool for only your project needs or you are looking for a common tool for all projects in your company?
Which testing types does it support? Tool which supports maximum testing types (Unit, functional, regression etc.) is always a better choice.
Does the tool support easy interface to create and maintain test scripts? How to choose automation tool ?How easy it is to provide input test data for complex or load tests?
Does it provide the powerful reporting with graphical interface? Clear and concise reports will always help you to conclude the test results quickly.
Does it integrate well with your other testing tools like project planning and test management tools.
Is the vendor provide initial training.
Types of automation testing tools:Commercial toolsGood ones tends to be expensive.
Often hard to integrate with:- Other automation tools.- Version control and continuous integration tools.
Hard or impossible to customize.
Risk of product or company discontinuation.
Ex. Quick test professional (HP), Functional tester (IBM), SilkTest, TestComplete, Testdroid etc.Open source toolsLarge variety.(Some are great other are not).
Normally easy to integrate with other tools.
Can be customized freely.
Can never die.
Ex. Selenium, Robotium, Jmeter, SoapUI etc. When to automate and by whom ? Supporting practices:Can also have scheduled test runs.26Skills to be learned:Scripting languages.Regular expressions.(A must when parsing textual outputs)Xpath and CSS Selectors.(A must when doing web testing)SQL.(A must with databases)Using version control.
Feel free to contact anytime email@example.com