You are on page 1of 25

Automation Testing

Choose the tool


Main Questions
• Why?
• What?
• When?
• Who?

• HOW?
• What next?
Why?
• Fast Test Execution
• Reproducibility
• Improve Quality
What?
• Regression Tests
• Load, Performance, Stress Tests
• Unit and Non-UI Functional Tests
• Compatibility Tests
When?
Who?
How?
• Existent frameworks
• Specialized API and libraries
• Develop custom test tools
UI Testing Tools

• Capture based tool.

• DOM based tool.


Capture Tool
• Image Capturing.
• Absolutely positioning.
• Easy to script.
• Easy to learn.
• Fast implementation.
Screen Capture based Tool
Image Capturing
• Real time/On demand
• Customizable quality
• Full screen, rectangular regions
Absolutely positioning
• 12 functions to emulate User actions
• High/Low -level emulation
Easy to script
• Recording User Actions
Easy to learn
Verification and Analysis of Test
Results
• Image Comparison
• Optical character recognition
Fast implementation
• Readability
• Extensibility, agility
• Maintainability
• Simplicity
• Readability, Clarity
• Testability
• Reusability
Smart design
DOM Tool
• Object positioning.
• Scripting Language.
• Big set of predefined objects and
actions.
• Flexible way to create big test sets.
DOM Tool
Predefined Objects
• UIAActionSheet • UIANavigationBar • UIAStatusBar
• UIAActivityIndicator • UIAPageIndicator • UIASwitch
• UIAAlert • UIAPicker • UIATabBar
• UIAApplication • UIAPickerWheel • UIATableCell
• UIAButton • UIAPopover • UIATableGroup
• UIAEditingMenu • UIAProgressIndicator • UIATableView
• UIAElement • UIAScrollView • UIATarget
• UIAElementArray • UIASearchBar • UIATextField
• UIAKey • UIASecureTextField • UIAToolbar
• UIAKeyboard • UIASegmentedControl • UIAWebView
• UIALink • UIASlider • UIAWindow
• UIALogger • UIAStaticText
Predefined Actions
• Tap Options
• Touch And Hold • Scroll To Visible
• Double Tap • Check Is Valid
• Two Finger Tap • Wait For Invalid
• Tap With Options • …
• Drag Inside With
Options
• Flick Inside With
Test Scripts
Test Scripts
#import "Lib/TestSet.js";
#import "Lib/Logger.js";
#import "Tests/SmokeTest.js";

//Logger Init
var log = new Logger(true, false);
log.start("Smoke Test");

//Test Set filling


var testSet = new TestSet();
testSet.addTests(new SmokeTest(), log);

//Test Results
tests = testSet.getTestSet();

for(test in tests)
if (tests[test].getResult()) log.pass(tests[test].getName());
else log.fail(tests[test].getName());

if(testSet.getResult()) log.message("Test Set has completed successfully.");


else log.message("Test Set has completed unsuccessfully.");
Capture?
What Next

• Test Sets
• CIT
• Coverage
• Refactoring
•…

You might also like