Best Practices for
Implementing Continuous Web
App Testing
Olga Petrova
Agenda
• Why to Test?
• How do we test Ext JS Framework?
• Best practices of Continuous Testing
• Sencha Test in DevOps process
• Demo
Why to Test?
Good Application Quality …
• … increases customer satisfaction
• … decreases time to market
• … increases longevity of the application
• … boosts team morale
• … boosts value of business
Decisions to make
• Set Business Quality Goals
• Time to Market
• Application Longevity
• Repercussions of No-Automation
Strategic
• Define ROI
• Timeline
• Test Design
• Choose a Tool
Tactical
How do we test
Ext JS Framework?
Ext JS Framework Testing
Total number of tests executed across different framework
versions
420,000 (approximately)
Types of tests executed Unit, Integration, End-to-End
Total number of virtual machines (VM) used for test execution
in parallel
50
Execution infrastructure Sauce Labs
Test Execution Time 20 Minutes – 1 Hour*
Tests Executed Every PR, Every Continuous Build, Nightly
CI tool TeamCity
Test Framework Used Jasmine, Selenium with Test Runner built in-house
(grandfather of stc)
Developer
submits PR
Bot
monitors for
source
code
changes
Kicks off
tests by
merging PR
against
branch
Approve
PR if no
failure
Repeat
actions for
PRs from
all
developers
Run
continuous
build once
PRs are
merged
with the
master
Sencha Process
Best Practices
Test Execution Tips
• Run concurrent tests to speeds up test execution
• Split up tests into smaller chunks into multiple VMs
• Aggregate results at the end of execution
Types of Tests
• Correct Price is Displayed
• Grid Shows the Right Value
• Form Displays the Correct Content
• Workflow Progression
Business Logic
• Rendered
• Visible
• EnabledDisabled
• Visual Testing
UI Components
Finding Elements
• ID
• XPath
• CSS Selector
Common Traps
• xtype
• itemId
• title/fieldLabel*
• cls/iconCls*
Ext JS
Continuous Testing
Sencha Test in DevOps
• Run tests directly from Jenkins, TeamCity or other CI
• Execute tests unattended after every PR
• Run tests on browser farms leveraging multiple machines (internal or cloud-based)
• Store results in centralized location
• Analyze results in a matrix format
• Publish defects directly to the JIRA project
Demo
Sencha Test
http://sencha.com/products/test/
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing

Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing

  • 2.
    Best Practices for ImplementingContinuous Web App Testing Olga Petrova
  • 3.
    Agenda • Why toTest? • How do we test Ext JS Framework? • Best practices of Continuous Testing • Sencha Test in DevOps process • Demo
  • 4.
  • 5.
    Good Application Quality… • … increases customer satisfaction • … decreases time to market • … increases longevity of the application • … boosts team morale • … boosts value of business
  • 6.
    Decisions to make •Set Business Quality Goals • Time to Market • Application Longevity • Repercussions of No-Automation Strategic • Define ROI • Timeline • Test Design • Choose a Tool Tactical
  • 7.
    How do wetest Ext JS Framework?
  • 8.
    Ext JS FrameworkTesting Total number of tests executed across different framework versions 420,000 (approximately) Types of tests executed Unit, Integration, End-to-End Total number of virtual machines (VM) used for test execution in parallel 50 Execution infrastructure Sauce Labs Test Execution Time 20 Minutes – 1 Hour* Tests Executed Every PR, Every Continuous Build, Nightly CI tool TeamCity Test Framework Used Jasmine, Selenium with Test Runner built in-house (grandfather of stc)
  • 9.
    Developer submits PR Bot monitors for source code changes Kicksoff tests by merging PR against branch Approve PR if no failure Repeat actions for PRs from all developers Run continuous build once PRs are merged with the master Sencha Process
  • 10.
  • 11.
    Test Execution Tips •Run concurrent tests to speeds up test execution • Split up tests into smaller chunks into multiple VMs • Aggregate results at the end of execution
  • 12.
    Types of Tests •Correct Price is Displayed • Grid Shows the Right Value • Form Displays the Correct Content • Workflow Progression Business Logic • Rendered • Visible • EnabledDisabled • Visual Testing UI Components
  • 13.
    Finding Elements • ID •XPath • CSS Selector Common Traps • xtype • itemId • title/fieldLabel* • cls/iconCls* Ext JS
  • 14.
  • 15.
    Sencha Test inDevOps • Run tests directly from Jenkins, TeamCity or other CI • Execute tests unattended after every PR • Run tests on browser farms leveraging multiple machines (internal or cloud-based) • Store results in centralized location • Analyze results in a matrix format • Publish defects directly to the JIRA project
  • 16.
  • 17.