The Future of Software Development - Devin AI Innovative Approach.pdf
High Performing QA with Automated Testing, CI/CD
1. Creating a high performing QA function… Simples
By Carl Bruiners
2. Presumptions
• Continuous Integration (CI) environmental at an embryotic stage
• No Continuous Delivery (CD) model
• No or limited reporting around QA
• Certain aspects around Development / Agile has been omitted to keep the
focus on QA
3. Note: This should form part of the teams definition of done
Team QA Vision
4. What is high performing QA
• Testing an integral part of the team
• Automated testing
• Continuous integration / delivery
• Reducing escaping defects
• Eliminating debt
• Reduce uncertainty
• Compliance – Accessibility, W3C, etc…
• Coding standards, practices and patterns
• Improving code base through refactoring
• Features / functions delivered are aligned to commercial requirements
• Hi-visibility of failing tests – i.e. CI / defect information radiators
• Team take shared responsibility for failed tests
• Guaranteed environment up time – Managed through SLA’s
6. Customer
• Increased frequency of new feature deliveries
• Improved customer experience by reducing likelihood of encountering
a defect
• Improved ability to test granular level functions without impacting on
the product (in combination with A/B or multi-variant testing).
• Improved flexibility to react to competitors
7. Product
• Reduced time spent on fixing defects = More time spent working on
product features
• Teams work on small incremental feature / function deliveries so that
new features ready for production are not held back by other
unfinished features
• Base product improvement will help extensibility and scalability
• Feature areas are modular, encapsulated independent features which
lessens any escaping defects impacting on other features / areas of
the product
• A/B / Multi-variant testing feedback helps commercial make customer
driven decisions
8. Financials
• Average daily cost of £58 p/p
• Average effort time per defect 2 days
• Average weekly incoming defect rate 10
Weekly Monthly Annual Target Cost in days
Base £1,160 £4,640 £55,680 n/a 960
1st
Year £696 £2,784 £33,408 40% 576
2nd
Year £11.60 £46.40 £556.80 99% 9.5
12. • QA integrated within the team
• Refactoring as the team goes along
• Test Driven Development (TDD)
• Pair Programming – to reduce SPOF’s
• GUI / Functional automated testing
• Set a sensible BAU percentage – 20%-30%
• Development practices / patterns – i.e. OO, MVC, patterns, etc..
• Defects reviewed on a daily basis by the PO and team
• Testers validate defects – ensure reproducible steps
• Defining a commercial focused MMFS (Minimal Marketable Feature Set)
• Quality gates in swim lane – Peer review and ready for acceptance (on stage)
Development
13. Defects
•Testers review incoming defects
•Ensuring defects have enough information supplied
•Identifying priority / severity of defect/s based on commercial value
•Frequently review defects
•Minimise escalations
•PM / PO's to be inclusive of prioritisation of defects
Testing
•Define smoke testing areas on the product
•Adopt Test Driven Development (TDD)
•Introducing Quality Control Gates (QC) into Sprints
Managing Risk
14. Continuous Integration
Automated testing
•Automated unit testing
•Automated smoke testing
Environment
•Integration server
•SCM – All project deliverables stored under source control i.e. images,
SQL scripts, documentation, etc…
•Builds should happen as frequently as possible
•Continuous visible feedback on testing
•Configuration management
18. Deliverable goals – Year 1
• Reduce escaping defects through implementing QC gates
• Reduce incoming defects
• Implement / improve CI environment
• Implement CD (inc. fully automated testing)
• Ensure features / functions delivered are aligned to commercial
drivers
• Introduce Quality Controls into Agile process
• Work with teams to ensure correct defects are targeted
• Work with teams on correct best practice development practices
• Measure success rates of defects and improve when needed
• Promote X-team development through sharing each others journeys
• Measure escaping defects
22. My role
• Reshape teams to be more test driven / orientated – Testers embedded in the teams
• Ensure features being delivered on are returning health ROI
• Ensuring commercial alignment;
• Create Scrum of Scrums not only amongst the teams – I attend
• Daily Scrum of Scrums between myself and other Senior Management – Prioritised defect list shared
• Protect the teams from external influences
• Reviewing defect backlogs to ensure that defects being worked on are aligned to commercial alignment
• Stopping enhancements by reviewing the defect backlogs
• Spot review stories to ensure stories are using I.N.V.E.S.T
• Measure escaping defects
• Mitigation of SPOFs
• Ensuring Operations / IT have environments up against a ILSA
• Bring in ISLA’s
• Manage ISLA’s
• Define, manage and negotiate rollback plans
• Define, manage and negotiate dependency reductions – self sufficient teams / department
• Managing other senior managers expectations – transparency / honesty
• Protect teams from external factors that are out of scope
• Manage scope creep
• Resource management – Alignment of staff to peek periods or demands required to meet commercial goals.
• Building strongest equal teams
• Carry out an annual Agile assessment (incorporates QA)
• Organising the introduction of hi-visibility information radiators
• Reduce aged defects over x days old
• CI our QA strategy
• Reduce cost of QA through improved process and productivity improvements
Work with HR on SM roles – Not having a independent dedicated Scrum Master in the team is like having a football match without a referee, the players know the rules, but we all know that they are unlikely to adhere to them. Back to basics – Some of teams have over complicated their Agile model and lost sight of some of the core values of some of our Scrum ceremonies. This includes all area’s of our model, writing INVEST’ed / SMART User Stories, creating backlog that can be grouped under a release as feature. Improve our training / coaching capabilities – Working with Linda to create a program suite of training development; from the introduction through to advanced Agile. This will include CSM’s, PO training, User Story creation and identifying suitable candidates for training, and also highlighting SPOF removal through training. My view is that all RM’s and SM’s attend the Cohn CSM course and PO’s the CPO course, only after doing the external training then do they sit the GE Agile course (use note about Epic management being incorrect). Improve our CI environments – Get everyone using the same tool Improve our consistency – Create a baseline Agile model and then allow teams to ‘sensibly evolve’, CI will be supported, change for the sake of change won’t be. Understanding a need or identifying a fault will be needed to help justify change Measuring our CI is vital, at present changes are made without any evidence of either need or their success Changing the negative culture concerning Agile – Improve our reporting capabilities – Anyone should be able to generate reports as and when they need without the dependency of another individual. On the fly, real-time reporting.
Decreased delivery cycles – Our delivery cycles are no longer set over years, instead we release incremental value feature releases Deliver meaningful releases aligned to features – Instead of having a fixed release pattern (i.e. every 6 weeks) we shall have variable releases against a features CD including all tests - Our CD environment includes all automated tests, this will also require all manual tests to be replaced by automated testing Fully TDD – Each team becomes test orientated, increasing our QA and reducing the number of escaping defects Improve our consistency using our Tools – Consolidating our tool base, improving integration between tools, etc…