2. Adtech Mobile Web Advertising
Customer‘s mobile
website Adtech Mobile AdServer Features
Screen Size Detection (based on 5 standardised categories):
S (120px), M (168px), L (216px), XL(300px), XXL(320px)
Manufacturer and Device Targeting (e.g. Apple iphone 4)
OS Targeting (e.g. Android 4)
Carrier Targeting (e.g. O2 UK)
Unique User Detection
3. Functional Testing Tools I
• Firefox browser used to verify ad delivery & click-thru
• Plugins used with Firefox:
• User Agent Switcher
• X-Forwarded-For Spoofer
• Modify Headers
• Cookie Manager+
• Firebug or HttpFox (for analysing
HTTP traffic: headers, cookies, etc.)
• Device Anywhere (real device in the
cloud)
4. Functional Testing Tools II - Varnish
• Varnish Cache is high performance web accelerator (caching HTTP reverse proxy)
• used to relay production traffic to test server running new build
• post analysis of logs files allows comparison of:
• device detection (manufacturer and model), e.g. verify wurfl upgrade
• OS detection
• carrier detection, e.g. verfiy quova upgrade
5. Moving towards automated testing
• Selenium 2.0 to automate functional browser tests:
• setPreference() method to enable/disable JS and cookies via Firefox profile
• add plugins (e.g. Modify Headers) to profile using addExtension() method
• Embedded Http proxy (BrowserMob) to rewrite request headers → more scalable
• Screenshots via getScreenshotAs() method
• PHP (e.g. curl) or Java Http Client to test device, OS and carrier detection
6. Adtech Mobile SDK for Apps
• SDK for iOS and Android to support ad delivery within apps
• Supports image and rich media ads
• Caching & Offline delivery
• Full screen overlays with close function
• Test application provided for QA
7. Android Automation Tools for apps: Robotium & Testdroid
• Robotium - “It's like Selenium, but for Android”:
• Black box test framework (Java based) for Android applications
• Handles multiple Android activities automatically
• Robotium has full support for Activities, Dialogs, Toasts &
(Context) Menus
• Integrates with Maven or Ant to run tests as part of CI
• Future features (Remote control, cucumber integration,
screenshots on failure)
• Testdroid cloud:
• Tests recorded with Testdroid Recorder (eclipse plugin)
• Generates Robotium code
• Upload app & tests: tests run on real devices in the cloud
8. iOS Automation Tools for Apps
• MonkeyTalk (formerly FoneMonkey)
• Record and playback functionality on both iOS & Android
• Testing with Frank
• write ‘given/when/then’ tests with cucumber
• add Frank Server to your iOS app
• uses UISpec testing library to interact with elements
• KIF (Keep It Functional)
• iOS integration test framework (tests written in Objective C)
• leverages accessibility attributes for visually impaired to allow automation
• aims to mimic real user
10. Android app Automation: Other Tools Investigated
• monkeyrunner:
• API for writing J/Python-based programs that control an Android device or emulator
• can run one or more test suites across multiple devices/emulators
• provide input values with keystrokes or touch events
• view the results as screenshots
• MonkeyTalk (formerly FoneMonkey):
• Record and playback functionality on both iOS & Android
• Calabash - both iOS & Android
11. iOS app Automation: Other Tools Investigated
• UI Automation Reference Collection
• part of iOS developer library
• Javascript based tests that call UI Automation API to simulate user interaction
• Calabash - both iOS & Android