A talk given at the Microsoft CTO breakfast club on Nov 7th 2016 which described how we designed and built the Applitools server which can be deployed and run on-prem as well as an Azure Cloud Service.
3. Automating visual software testing
AGENDA
• About Applitools
• Why Azure?
• Applitools’ universal server
• Q&A
4. Automating visual software testing
WHAT IS VISUAL TESTING?
A quality assurance activity aimed to verify that a
Graphical User Interface appears correctly to users
7. Automating visual software testing
THE WORKFLOW
Drive the AUT and take screenshots
Compare screenshots with baseline images
Report differences
Update the baseline
9. Automating visual software testing
AGENDA
• About Applitools
• Why Azure?
• Applitools’ universal server
• Q&A
10. Automating visual software testing
OPERATIONAL REQUIREMENTS
• A 30K tenant public cloud
• 5M CPU and memory intensive tests / month
• Multiple single tenant dedicated clouds
• On-Prem installations
• Massive image uploads that are rarely fully downloaded
• 1Y data retention
• Permanent availability
• Growing 50% Q/Q
11. Automating visual software testing
SYSTEM ARCHITECTURE
API Server
Tests, Image processing,
Tasks, Auth, Admin,
Externals, App
APP Server
Tests, Image processing,
Tasks, Auth, Admin,
Externals, App
SDK
Data
+
State
Eyes Server (On-Prem / Azure Web-Role) User
APP
Tests
12. Automating visual software testing
AZURE WEB-ROLE
A collection of identical, auto-managed, load-balanced VMs that
run IIS compatible web-applications
• Same web-apps (binaries and resources)
• Same configuration
13. Automating visual software testing
WHY AZURE WEB-ROLE?
• Infinite scale and high availability
• Extremely reliable
• No hardware / OS maintenance concerns
• Rolling deployments
• Immediate emergency rollback to staging
• A thin wrapper around a standard IIS web-site (VS Project)
• .NET
14. Automating visual software testing
AGENDA
• About Applitools
• Why Azure?
• Applitools’ universal server
• Q&A
30. Automating visual software testing
FRAMEWORK SERVICES
• Framework services are built on top of the storage abstraction
• Access control
• Counters
• Named locks
• Notifications
• Long running tasks
32. Automating visual software testing
TESTABILITY
• Run any version of the server on your local machine with a
simple SVN update command.
• Execute thousands of API tests in less than a minute by using
in-memory storage.
• Easily debug local code changes step-by-step running against
production data.