370 likes | 566 Views
Learn through Experience -- We differentiate our training and development program by delivering Role-Based training instead of Product-based training. Ultimately, our goal is to deliver the best IT Training to our clients. Attendees also learn: 1. Resume Preparation Guidelines and Tips 2. Mock Interviews and Interview Preparation Tips For more visit http://www.quontrasolutions.co.uk/selenium-training-classes/
E N D
Automated Software Testing Framework Presented By www.QuontraSolutions.co.uk IT Courses Online Training Call Us: 20-3734-1498 Email: info@quontrasolutions.com
Topics • Automated software testing. What? Why? • Automated vs. Manual • Common types of automated testing methods • Automated software testing framework • Summary
What is automated software testing? A process which covers: • the use of software to control the execution of tests • the comparison of actual outcomes to predicted outcomes • the setting up of test preconditions • other test control and test reporting functions.
Why automated testing? • A time savings translates directly into cost savings • Improves testing productivity • Improves accuracy • Increases test coverage • Does what manual testing cannot do
Effort and Cost • Let’s assume 6 test cases • Effort required to run all 6 manually => 10 min • Effort required to write unit tests for all 6 cases => 10 min • Effort required to run unit tests for all 6 cases => < 1 min • Number of testing iterations => 5 • Total manual testing time => 50 min • Total unit testing time => 10 min
Automated vs. Manual testing • Not all tests can be automated and most times is difficult to decide what to automate and what to manually test.
Common types of automated testing methods • Monkey testing • Capture / playback • Code-based (Unit) testing • Intelligent test automation
Monkey testing • Randomly selecting inputs from a large range of values and monitoring if exceptions are thrown. • For example, a monkey test can enter random strings into text boxes to ensure handling of all possible user input. • It applies not only for GUI or WEB testing, but also for Unit testing.
Tools example Monkey – Android testing tools. The simplest way to use the monkey is with the following command, which will launch the application and send 500 pseudo-random events to it. $ adb shell monkey -v -p your.package.name 500
Capture / playback • It’s a set of software programs that capture user inputs and stores it into a script for later replay. • Repeated testing can be performed quickly. • Does not require programming skills. • When the GUI changes, input sequences previously recorded may no longer be valid. • Difficult to determine location of bugs.
Tools example Autohotkey - Free keyboard macro program. Supports hotkeys for keyboard, mouse.
Code-based (Unit) testing • Individual units of source code are tested to determine if they fit for use. • Ideally, each test case is independent from the others • Bugs can be found in early development stage • Easy to test boundary cases • Not effective for the integrated system testing
Unit test-case generation method • Random • Genetic • Other…
Random • Input values generated randomly • Run with generated inputs • User checks output values (pass/fail) and saves them for later automatic checking (Oracle).
Genetic This methods approach is to combine JML (JAVA model language) and genetic algorithms. JUnit is used as a test execution platform.
Tools examples Parasoft Jtestis an automated Java testing and static code analysis product TestGen is a collection of open-source tools that automatically generates unit test cases.
Intelligent test automation • A model-based method for generating tests from a description of an application’s behavior (UML) • Models are simple to modify, so model-based tests are economical to maintain over the life of a project. • Most of these methods are researched only theoretically.
OCL + UML Constraints Inputs Inputs generator Tested software UML + OCL Oracle Outputs Constraints pass / fail Report
Automated testing framework • A framework is an integrated system that sets the rules of automation of a specific product. • This system integrates the function libraries, test data sources, object details and various reusable modules. • The framework provides the basis of test automation and simplifies the automation effort.
Common types of frameworks • Data-driven testing • Keyword-driven testing • Hybrid testing
Data-driven testing • Data-focused automation • User defines just data sets to run tests with • Data is defined in external data source and de-coupled from script • Good fit for a single application testing, featuring multi-environment, big datasets, and rarely changing Test Cases
Example Data set Test script
Keyword-driven testing • Good fit for a multi-application testing featuring multi-environment, big datasets, and a big number of short and straight Test Cases • Users de-compose test cases into reusable action keywords • Non-coders are able to author automated test cases with action keywords
Hybrid testing • Combines the best of data-driven and keyword-driven testing: • User defines data sets to run tests with • User also defines flow control through action keywords • Data is separated from script and stored in external data source with action keywords
Framework components • Test generation (data and script generators).Tools might create specialized data such as randomized email messages, or populate databases etc. • System configuration. Tools might preserve or reproduce system parameters. • Test execution. Tools might operate the software itself, either simulating a user working through the GUI and using an alternative testable interface. • Oracles. An oracle is any mechanism by which we detect failure or success. Tools might automatically detect certain kinds of error conditions in a product. • Activity recording & coverage analysis. Tools might watch testing as it happens and retrospectively report what was and was not tested. • Test management. Tools might record test results, organize test ideas or metrics.
Summary • Automated testing improves productivity, accuracy, increases test coverage, saves time and cost • Need to decide what to automate and what to manually test • The framework provides the basis of test automation and simplifies the automation effort.
More information • http://opuntia.cs.utep.edu/utjml/utest.html • http://www.ibm.com/developerworks/rational/library/591.html • http://www.satisfice.com/presentations/agileauto.pdf • http://automation-beyond.com/2009/05/30/test-automation-practices-recordplayback/ • http://en.wikipedia.org/wiki/Test_automation
Question ??? • What is the benefit of automated testing? • What are the common types of automated testing methods? • What are the common types of frameworks? • What components come to framework? • What are the examples of automated testing tools?