![Page 1: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/1.jpg)
Software
Quality Management
Kerli Rungi
Quality Assurance Manager
Playtech Estonia, Casino Unit
![Page 2: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/2.jpg)
Agenda
• Quality definition
• Software quality management
• Software quality attributes
• Software standards
• Software measurement
• Software improvement
![Page 3: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/3.jpg)
![Page 4: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/4.jpg)
What is Quality?
• Quality is ...
... Degree to which a set of inherent characteristics fulfills
requirements [ISO 9000]
... Degree to which a component, system or process meets
specified requirements and/or user/customer needs and
expectations [IEEE 610]
... Value to someone [Gerald Weinberg]
... Fitness for purpose
![Page 5: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/5.jpg)
What is Quality?
• Quality in the context of software engineering:
– Functional quality – how well the product complies to a
given design, based on functional requirements or
specifications
– Structural quality – how well the product meets non-
functional requirements that support the delivery of
functional requirements
• Broadly, functional requirements define what a system is
supposed to do and non-functional requirements define how a
system is supposed to be.
![Page 6: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/6.jpg)
What is Quality?
• Common problems for software systems:
– Tension between customer quality requirements and
developer quality requirements
– Difficult to specify requirements in an unambiguous way
– Specifications are usually incomplete and often inconsistent
• How to „ensure“ quality?
![Page 7: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/7.jpg)
What is Quality Management?
• Concerned with ensuring that the required level of
quality is achieved in a software product
• Focus on:
– A quality product which meets the requirements and
satisifes the user
– A quality culture in the organisational environment where
quality is viewed as everyone’s responsibility (e.g. standard
processes, best practices, tools)
![Page 8: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/8.jpg)
What is Quality Management?
• 4 main components/layers:
– Quality assurance
– Quality planning
– Quality control
– Quality improvement
• Independent quality team
• Particularly important for large, complex systems
![Page 9: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/9.jpg)
Quality Management & SDLC
![Page 10: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/10.jpg)
Quality Management & SDLC
• Support the whole SDLC:
– Collecting requirements and defining scope > test strategy
– Designing the solution > test plan
– Solution implementation > test cases, test reports
– Change management > changes in test cases
– Closing the project > QA sign-off to rollout
– ...
![Page 11: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/11.jpg)
Software quality attributes
• Quality plan defines the most important quality
attributes and ways of assessing their presence
• It’s not possible for any system to be optimized for all
of these attributes > analysis for tradeoffs
Safety Understandability Portability
Security Testability Usability
Reliability Adaptability Reusability
Resilience Modularity Efficiency
Robustness Complexity Learnability
![Page 12: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/12.jpg)
What are the attributes of good software?
![Page 13: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/13.jpg)
What are the attributes of good software?
![Page 14: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/14.jpg)
Quality Assurance activities in Playtech
• Code review
• Unit testing
• Functional testing
• Usability testing
• Failover and recovery testing
• Performance testing
• Compliance testing
• Continuous integration
• „Lessons learned“ activities
![Page 15: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/15.jpg)
Software Standards
• Standards define the required attributes of a product
or process:
– Product standards define characteristics that all software
components should exhibit e.g. a common programming
style
– Process standards define how the software process should
be followed
• Standards may be international, national,
organizational or project standards
![Page 16: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/16.jpg)
Software Standards - Importance
• Standards play an important role in quality
management:
– Encapsulation of best practice – avoids repetition of past
mistakes
– They are a framework for defining what quality means in a
particular setting i.e. that organization’s view of quality
– They provide continuity – new staff can understand the
organisation by understanding the standards that are used
– Baseline for indicating maturity (certifications)
![Page 17: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/17.jpg)
Product and Process Standards
Product standards Process standards
Design review form Design review conduct
Requirements document
structure
Submission of new code for
system building
Method header format Version release process
Java programming style Project plan approval process
Project plan format Change control process
Change request form Test recording process
![Page 18: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/18.jpg)
Software Standards - Problems
• They may not be seen as relevant and up-to-date by
software engineers
• They often involve too much bureaucratic form filling
• If they are unsupported by software tools, tedious
form filling work is often involved to maintain the
documentation associated with the standards
• Find the proper balance!
![Page 19: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/19.jpg)
Software Quality Standards
• ISO 9000 quality management systems
• ISO/IEC 9126 quality model
• IEEE 730 standard for software quality assurance plans
• CMMI, TMMi Maturity models
• ISTQB professional certification
• Especially important in areas where people’s lives are
at risk (e.g. Safety-critical systems)
![Page 20: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/20.jpg)
Certifications in Playtech
• ISO 27001:2005 information security management
• PCI:DSS data security standard
• ISTQB certified QA engineers
• Playtech products regulatory compliance in various
gambling jurisdictions – Italy, Spain, Denmark,
Alderney, Finland, ...
![Page 21: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/21.jpg)
Software measurement – Motivation
• Measuring software quality is motivated by at least
two reasons:
– Risk management
– Cost management
– ...
![Page 22: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/22.jpg)
Software measurement
• Software measurement is concerned with deriving a
numeric value for an attribute of a software product
or process
• Allows for objective comparisons between techniques
and processes
![Page 23: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/23.jpg)
Software measurement
• Metric – any type of measurement which relates to a
software system, process or related documentation
– Code coverage
– Number of lines of code
– Bugs per line of code
– Cyclomatic complexity
• May be used to predict product attributes or to
control the software process
![Page 24: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/24.jpg)
Software measurement
• Use of measurements:
– To assign a value to system quality attributes
– To identify the system components whose quality is sub-
standard
– To predict project cost and help in project
planning/scheduling
• More common in academic and governmental
organisations
![Page 25: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/25.jpg)
Software measurement
• Relationship between internal and external attributes
![Page 26: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/26.jpg)
Software measurement - problems
• It is impossible to quantify the return on investment
of introducing an organizational metrics program
• Introducing measurement adds additional overhead
to processes
• In many companies, software processes are not
standardized and are poorly defined and controlled
• Should be used with „common sense“
![Page 27: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/27.jpg)
Software Quality Improvement
• There’s always room for improvement!
• Motivation:
– Cost reduction
– Quality increase
– ...
• Measure, learn and improve mentality
![Page 28: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/28.jpg)
Software Quality Improvement
![Page 29: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/29.jpg)
Software Quality Improvement
• Software process improvement frameworks and
standards:
– CMMI
– TMMI
– ISO/IEC 15504 a.k.a. SPICE
– ISO 9000 family
– IDEAL
– Bootstrap
– Six Sigma
![Page 30: Software Quality Management - Arvutiteaduse instituut · 2014-11-28 · Software Standards - Importance •Standards play an important role in quality management: –Encapsulation](https://reader034.vdocuments.mx/reader034/viewer/2022042117/5e953798ac7c7c1a9d127504/html5/thumbnails/30.jpg)
Lesson take-aways
• Quality is fitness for purpose
• Producing good software is not only a matter of good
programming skills
• Quality Assurance processes throughout the whole
SDLC
• Follow standards, mixed with a dose of „common
sense“
• Always seek to improve