This document discusses developing and delivering quality code through continuous integration, continuous delivery, and automated testing. It recommends:
- Implementing continuous integration by having developers commit code changes frequently and merging them into a shared codebase, with CI tools running automated tests on each change.
- Practicing continuous delivery by making code deployable at any time using techniques like feature toggles and deploying to staging.
- Leveraging pull request builds that run automated tests against a branch before code is merged to main to catch issues early and provide developer feedback.
- Having QA focus on enabling scaling of testing through improved test coverage and automation, rather than "acting and reacting" to fix broken builds. This allows for
11. Running Nightlys or when master changes
11
QA Build
(UT and Func Tests)
PR /
Commit(s)
PR /
Commit(s)
12. Problems - Running when 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 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
16. 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
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
Importance of delivering working code/features + frequent product updates
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
Huggins (2004), Hammant,
Webdriver is making its way into W3 spec
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
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.)