Developing and Delivering
Quality Code, Frequently
Neil Manvar
Solutions Architect, Sauce Labs
AGENDA
Agile In
• Small Iterative Changes
• Rapid response to change
• Agile = Automation
• Focus on business logic
Continuous Integration
• “merging all developer working copies
with a shared mainline…”
• CI Tools
• Pipelines
CD
• Continuous Delivery
• Continuous Deployment
• Code is like “inventory”
Automated Testing
Selenium WebDriver
• Controls browser
• Open source
• Language-specific bindings
• Grid
Appium – Functional/UI Testing for Mobile Applications
Pipeline
Running Nightlys or when master changes
11
QA Build
(UT and Func Tests)
PR /
Commit(s)
PR /
Commit(s)
Problems - Running when master changes
• Rollbacks
• Debug build
• Need to pinpoint offending commit
• Late developer feedback
• “Act and React”
• Blocked Pipeline
12
Role of QA
• Fix and debug build - “Act and React”
• Write automated tests for new features and existing functionality
• Manual testing
• Certifying and signing off on build
13
Testing in Isolation – Pull Request Build
14
PR Build
(UT and Func Tests)
QA Build
(UT and Func Tests)
PR
PR
PR Build
Kick of build
against branch
Safe to merge?
Only review and merge
if masked as safe
Benefits of PR Build
• Developer feedback + enforcement mechanism
• Clean and deployable master
• Enable Continuous Delivery -> Leverage Agile
• Leverage Agile
• New features and bug fixes released regularly, with quality and confidence
15
CD Pipeline
16
PR Build
(UT and Func Tests)
QA Build
PR
PR
PR Build
Staging Prod
Kick off build
against PR
branch
Safe to review / merge?
Merge if A/C
satisfied
Role of QA (after)
• QA playing “enablement” role
- Focused on scaling testing and improving quality
• Developers developing (both source and test code)
• Focus on improving coverage (untested flows, browsers + devices)
• Accountability – New standard of quality
17
Enforce, not police
Questions?
SenchaCon 2016: Developing and Delivering Quality Code, Frequently - Neil Manvar

SenchaCon 2016: Developing and Delivering Quality Code, Frequently - Neil Manvar

  • 1.
    Developing and Delivering QualityCode, Frequently Neil Manvar Solutions Architect, Sauce Labs
  • 2.
  • 3.
    Agile In • SmallIterative Changes • Rapid response to change • Agile = Automation • Focus on business logic
  • 4.
    Continuous Integration • “mergingall developer working copies with a shared mainline…” • CI Tools • Pipelines
  • 5.
    CD • Continuous Delivery •Continuous Deployment • Code is like “inventory”
  • 6.
  • 8.
    Selenium WebDriver • Controlsbrowser • Open source • Language-specific bindings • Grid
  • 9.
    Appium – Functional/UITesting for Mobile Applications
  • 10.
  • 11.
    Running Nightlys orwhen master changes 11 QA Build (UT and Func Tests) PR / Commit(s) PR / Commit(s)
  • 12.
    Problems - Runningwhen master changes • Rollbacks • Debug build • Need to pinpoint offending commit • Late developer feedback • “Act and React” • Blocked Pipeline 12
  • 13.
    Role of QA •Fix and debug build - “Act and React” • Write automated tests for new features and existing functionality • Manual testing • Certifying and signing off on build 13
  • 14.
    Testing in Isolation– Pull Request Build 14 PR Build (UT and Func Tests) QA Build (UT and Func Tests) PR PR PR Build Kick of build against branch Safe to merge? Only review and merge if masked as safe
  • 15.
    Benefits of PRBuild • Developer feedback + enforcement mechanism • Clean and deployable master • Enable Continuous Delivery -> Leverage Agile • Leverage Agile • New features and bug fixes released regularly, with quality and confidence 15
  • 16.
    CD Pipeline 16 PR Build (UTand Func Tests) QA Build PR PR PR Build Staging Prod Kick off build against PR branch Safe to review / merge? Merge if A/C satisfied
  • 17.
    Role of QA(after) • QA playing “enablement” role - Focused on scaling testing and improving quality • Developers developing (both source and test code) • Focus on improving coverage (untested flows, browsers + devices) • Accountability – New standard of quality 17
  • 18.
  • 19.

Editor's Notes

  • #2 Importance of delivering working code/features + frequent product updates
  • #3 Agile CI / CD Automated Testing Pipeline. Leverage automated testing First approach (nightlys and changes on master) Second approach (PR Build and Testing in isolation Role of QA Changing
  • #7 Huggins (2004), Hammant, Webdriver is making its way into W3 spec
  • #11 Show how to leverage AT in pipeilne First example will be of a common paradigm that is problem Then show solution and how it solves problem, and allows DDQCF
  • #15 Show path for src code only -> CC Path for show src code + UT -> No func test Show when complete / done Enforcement mechansim for all types of code (src, test, build, etc.)