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