How to reduce the cost of software testing
Let's face it, most of us have done pretty lousy job when it comes to software testing. It's no real surprise, software testing is hard. In fact, I believe its one of the tougher challenges in delivery product. Software Testing is expensive! Every test has a cost in design, building, execution and maintenance. Resulting work from finding bugs can blow out any on track project. In an attempt to reduce the cost of software testing, we've resorted to outsourcing and/or test automation. However, this hasn't given us the gains we had hoped for. We still have expensive, brittle, hard to maintain tests that typically take to long to execute and seem to offer little value. What's more, faced with shorter delivery times and the need to experiment rapidly, we simply cannot afford to have long testing lifecycles.
What are we doing wrong, and more importantly, what can we do to fix it?
This talk looks at Quality Engineering to reduce dependency on software testing, create faster feedback loops and build product in a more robust way despite uncertainty. A quality approach that allows teams to remain flexible and reactive to change.
It explores Quality in four key areas, Product, People, Practice and Technology. Using the concepts found in Lean and Context Driven Testing it describes how we can improve quality by reducing waste in our systems in a way that is valuable to a team.
It also explores the topic of metrics in relation to quality. Many of us in quality have been burnt by metrics in the past. Test case counts and test coverage have done little to help improve quality and have done a lot to develop undue process that inhibits rapid change. Is there a way we can explore metrics at a team level to help us make informed decisions?
As 'Quality everyone's responsibility', this talk is for everyone, heads of engineering, architects, developers, testers and ops. This talk dispels myths around testing and quality and provides a practical way forward to improving quality in your teams.
Outline/structure of the Session
What quality engineering is and how it relates to IoT
Traditional Quality & Testing practices and how they let us down and no longer work for us.
Contemporary philosophies on Quality (e.g Quality is everyone's responsibility, and Quality at pace).
Practical application of these philosophies such as reducing build time, tools to make testing easier, developers owning features, devops, testing CI/CD Infrastructure
Discussion on metrics and the challenges around metrics and quality
Ways to attempt to measure quality using a quality operating model
Quality and Testing are not the same. I will explain the difference
A definition of Quality that outlines the subjective nature of quality (Quality is value to some person)
An approach to quality suitable for contemporary development methodologies that benefits from uncertainty and change.
Quality Engineering practices, such as quality workshops, and the quality operating model.
A model developed to explore metrics and quality
Head of Engineering, Software Developers, Testers , Operations, Product Owners