Software Quality
Milan Hradil
Software Quality?
What is Software Quality?
see ISO/IEC 9126 and ISO 25000:2005
- Functionality
- Reliability
- Usability
- Efficiency
- Maintainability
- Portability
tl;dr
Software must works, good looking and be usable
How to ensure quality?
Quality assurance!
Concerned with
- how defects are found
- how those defects are prevented
- process quality - how well we are doing the work
Software Quality in Agile
One of key principle in Lean software development is Build Quality In
Software Quality in Agile
We are trying to find balance between flexibility, maintainability, efficiency and responsiveness.
Practices:
- Pair programming (XP)
- Test driven development (XP)
- Constant feedback
- Minimise time between stages
- Frequent integration
- Automation
Pair programming
- Happy programmer
- Code quality & productivity
Test driven development
- TDD is a strategy for applying unit tests as a project is being built.
- Pressure to minimize testing
- Tests provide specification
Constant feedback
- Short development iteration cycles
- The shorter the iterations, the better the learning and communication within the team
- Feedback is the KEY!
- Continuous integration
- Daily meetings
- Code/Design reviews
Minimise time between stages
- Minimise time between development, testing and bug fixing
- Rather than logging bugs, deal with them immediately!
- Logging bugs is waste (in most cases)
- Long gap between stages results in a loss of continuity (delays, knowledge gaps, lack of focus)
Automation
Automation
Let's make better apps
Software Quality - introduction
By Milan Hradil
Software Quality - introduction
- 481