際際滷

際際滷Share a Scribd company logo
Curso: Aseguramiento de la
Calidad del Software
Parte I - Introducci坦n
Prof. Renato R. Gonzalez Disla
Octubre del 2018
Version 3.0 Mayo 2019
Objetivos del Curso
Este curso discute t坦picos relacionados con el aseguramiento de
calidad y las pruebas de software.
 Define el concepto de Calidad, de Aseguramiento de la Calidad del Software
(SQA) y sus componentes.
 Explica el concepto de software, su complejidad y su m辿trica y establece los
diferentes modelos y atributos de calidad que rigen hoy en d鱈a la pr叩ctica de
SQA.
 Estudia los fundamentos de las pruebas de software y la garant鱈a de calidad,
incluida la terminolog鱈a, las pr叩cticas de documentaci坦n, los procesos de
control y las diferentes metodolog鱈as y t辿cnicas de prueba.
 Explica el papel del SQA Team, el tester y del inspector o asegurador de
calidad en el desarrollo de software y el ciclo de prueba.
2Curso SQA Prof. Renato R. Gonzalez D.
Objetivos del Curso
Este curso discute t坦picos relacionados con el aseguramiento de
calidad y las pruebas de software (Cont.)
 Orienta la pr叩ctica de t辿cnicas creaci坦n de los casos de prueba y el examen de
modelos de desarrollo de prueba de verificaci坦n y validaci坦n del software.
 Explora los procesos de prueba de software en una variedad de contextos de
la industria y las pr叩cticas de estudio aplicables a los entornos empresariales y
web.
 Explorar la interacci坦n entre el aseguramiento de calidad y los procesos de
gesti坦n de la calidad y configuraci坦n del software.
3Curso SQA Prof. Renato R. Gonzalez D.
CONTENIDO
 Tema 1: Introducci坦n
 Tema 2: M辿tricas de Complejidad y Modelos de Calidad del Software
 Tema 3: Plan de Calidad y Prueba del Software
 Tema 4: Inspecciones y Revisiones
 Tema 5: Validaci坦n de Software
 Tema 6: Construcci坦n de Casos de Prueba
 Tema 7: Verificaci坦n de Software
 Tema 8: Procesos de Gesti坦n del Aseguramiento de la Calidad
An叩lisis de Requerimientos del Software-Parte I 4
Estrategias de ense単anza
 Exposici坦n en clases de temas fundamentales de parte del profesor
 Sesiones remotas con material de estudio colocado por el profesor
 Pr叩cticas en grupos (tareas)
 Exposiciones de temas por parte de los estudiantes
 Examen de medio t辿rmino
 Proyecto final en grupo
 Talleres de Laboratorio sobre herramientas de software de gesti坦n de
requerimientos, especificaci坦n y configuraci坦n del software.
An叩lisis de Requerimientos del Software-Parte I 5
Evaluaci坦n
An叩lisis de Requerimientos del Software-Parte I 6
Evaluaci坦n
Estrategia Semanas o fecha Puntaje
Pr叩cticas Medio Termino (en equipo): tareas asignadas a
los estudiantes en el medio t辿rmino.
6 20
Examen Medio Termino 6 20
Proyecto final + Exposici坦n: trabajo en equipo para
demostrar la adquisici坦n de las competencias impartidas
durante el trimestre
11 40
Examen Final 11 20
Total Puntos Entrega de notas 12 100
Referencias Bibliogr叩ficas
 Software Testing and Continuous
Quality Improvement, Second
Edition; William E. Lewis,
Gunasekaran Veerapillai, Technical
Contributor; AUERBACH
PUBLICATIONS, 2005.
 Practical Guide to Software Quality
Management, Second Edition
by John W. Horch ISBN:1580535275
Artech House 息 2003.
 Managing Software Quality and
Business Risk - Oct 29, 1999 by
Martyn A. Ould. Wiley
7Curso SQA Prof. Renato R. Gonzalez D.
Curso: Aseguramiento de la
Calidad del Software:
Parte I- Introducci坦n
Prof. Renato R. Gonzalez Disla
Mayo del 2017
Objetivos del Modulo
 Define el concepto de
Calidad, de Aseguramiento
de la Calidad del Software
(SQA) y sus componentes.
 Explica el concepto de
software, su complejidad y
su m辿trica y establece los
diferentes modelos y
atributos de calidad que
rigen hoy en d鱈a la pr叩ctica
de SQA.
What is Quality?
 Quality in manufacturing, a measure of:
 Excellence of products
 A state of
being free from defects, deficiencies and significant
variations.
 Consistent commitment to certain standards
that achieve uniformity of a product in order to satisfy
specific customer or user requirements.
10Curso SQA Prof. Renato R. Gonzalez D.
What is Quality?
 ISO 8402-
1986 standard defines quality
as "the totality
of features and characteristics
of a product
or service that bears its ability
to satisfy stated or
implied needs."
http://www.businessdictionary.com/definition/quality
.html#ixzz3HJhsqwfG
11Curso SQA Prof. Renato R. Gonzalez D.
Quality of Conformance
 Level
of effectiveness of
the design and product
ion functions in
affecting
the product manufactu
ring requirements and
process specifications,
while meeting process
control limits,
product tolerances,
and production targets
.
Product
Needs
Process
Capacity
Specifications
Design
Process
Control
Process to
Product
Conformance
Product
Quality
12
Curso SQA Prof. Renato R. Gonzalez D.
Cost of Quality
 Cost of Poor Quality:
 Disruption to
production
 Time and resources
spent correcting
mistakes
 Materials energy
wasted
 Warranty claims
 Poor customer
relations
 Cost of Good Quality
 Recovery costs
 Market appraisal
13Curso SQA Prof. Renato R. Gonzalez D.
Cost of Quality
 Prevention versus Detection
 The total cost of effective quality
management is the sum of four
component
 prevention, inspection, internal
failure, and external failure.
 Prevention costs consist of
actions taken to prevent defects
from occurring in the first place.
 Inspection costs consist of
measuring, evaluating, and
auditing products or services for
conformance to standards and
specifications.
Curso SQA Prof. Renato R. Gonzalez D. 14
Cost of Quality
 Internal failure costs are those
incurred in fixing defective
products before they are
delivered.
 External failure costs consist of
the costs of defects discovered
after the product has been
released.
Curso SQA Prof. Renato R. Gonzalez D. 15
Quality Management
 Quality management ensures
that an organization, product
or service is consistent.
 It has four main components:
quality planning, quality
control, quality assurance and
quality improvement.
 Quality management is focused
not only on product and service
quality, but also the means to
achieve it (process and
resources).
16Curso SQA Prof. Renato R. Gonzalez D.
Quality Management
Questions Tools
Can we make it OK? Process capability analysis a
quality assurance
Are we making OK? Statistical Process Control
Have we made it Ok? Acceptance sampling
Could we make it better? Quality Continual Improvement
17Curso SQA Prof. Renato R. Gonzalez D.
Quality History
 Quality and Craftsman
 Industrial Revolution and mass production (XVII and XIX Centuries)
 Taylor scientific management (1910)
 Statistical Quality Control (SQC) W. Shewhart (1931)
 Deming and Juran and the TCM (1946)
 Quality Assurance (QA) NATO 1960
 Reliability Engineering 1961
 BS5750 and ISO 9000 1970
 Quality Circle, Zero Defect, Total Quality Control (Ishikawa), continuous
quality improvement and Quality Engineering (Taguchi) 1960-1970
Curso SQA Prof. Renato R. Gonzalez D. 18
Quality Assurance (QA)
 Quality Assurance (QA): In developing products
and services, quality assurance is any systematic
process of checking to see whether a product or
service being developed is meeting specified
requirements.
 Quality Control (QC): Quality control is the
process by which product quality is compared
with applicable standards and the action taken
when nonconformance is detected.
19Curso SQA Prof. Renato R. Gonzalez D.
Quality Assurance (QA)
 Auditing is the inspection/assessment
activity that verifies compliance with
plans, policies, and procedures.
 ISO 9000 is an international standard
that many companies use to ensure
that their quality assurance system is
in place and effective.
 Conformance to ISO 9000 is said to
guarantee that a company delivers
quality products and services.
20Curso SQA Prof. Renato R. Gonzalez D.
Quality Assurance (QA)
 Continuous Improvement through the
Plan, Do, Check, Act Process (PDCA)
 The control in quality control means
defining the objective of the job, developing
and carrying out a plan to meet that
objective, and checking to determine if the
anticipated results are achieved.
 Continuous improvement is an ongoing
effort to improve products, services or
processes. These efforts can seek
incremental improvement over time or
breakthrough improvement all at once.
 PDCA Deming is the most widely used tools
for continuous improvement.
Curso SQA Prof. Renato R. Gonzalez D. 21
Software Production
 The production of software is
different from the production
of manufactured goods in
that the former is information
and knowledge intensive
while the latter is material
and energy intensive.
 The process produces a
marketable software intangible
asset at a time as product and
service.
22Curso SQA Prof. Renato R. Gonzalez D.
Product
Needs
Process
Capacity
Product
Specifications
Product
Design
Process
Control
Process to
Product
Conformance
Product
Quality
What is Software?
SOFTWARE = PROGRAMS (Algorithms) +
DATA STRUCTURES + DOCUMENTATION
23Curso SQA Prof. Renato R. Gonzalez D.
What is Software?
 Computer Programs: are
logical procedures or
algorithms implemented
using a programming
language in a specific
operating environment
(computer, operating
system, networking, etc.)
having as input data
(input) to produce new
information or action
(output).
24An叩lisis de Requerimientos del Software-Parte I
What is Software?
 Data Structures: Are
logical relations of
data entities or object
implemented on a
data management
environment
(databases).
25An叩lisis de Requerimientos del Software-Parte I
What is Software?
Documentation is
divided in two types:
 External: describing
specifications, functionality,
operation and management
software.
 Internal: describing the
architecture of the software
system and the logical and
physical structure of
components, devices,
programs, algorithms and
data structures.
26An叩lisis de Requerimientos del Software-Parte I
Software Characteristic and Factors
 Product Intangible: knowledge
intensive
 Logic machine (process,
interfaces, input and output
are information)
 Evolution and Innovation
based in Specifications
 Ubiquitous product
 Productivity Crisis
 Complexity domains
An叩lisis de Requerimientos del Software-Parte I 27
 Internal
 Complexity of user and system
requirements (Semantic)
 Complexity of Algorithms and Data
Structures (computational)
 Complexity of Language and Programs
Structures (syntax).
 People
 Skills
 Knowledge
 Experience
 External
 Demands of quality control: do it right
 Demands of Users: Do it on time
 Demands of finance: Do it within budget
 Demands of Market: Do it in the Net in
secure way
 Tools: IDE, software requirements
management, software configuration
management, testing and SQA tools
28An叩lisis de Requerimientos del Software-Parte I
SE Complexity Factors to be Engineered
Software System
 A software system is a system of
intercommunicating components based on software forming part of
a computer system.
 It "consists of a number of separate programs, configuration files, which are
used to set up these programs, system documentation, which describes the
structure of the system, and user documentation, which explains how to use
the system.
Sommerville, Ian (2007). "1.1.1; What is software?". Software Engineering (8th ed.). Addison-Wesley. pp. 5
6. ISBN 978-0-321-31379-9.
Curso SQA Prof. Renato R. Gonzalez D. 29
Software Engineering
 According to the Institute of Electrical and Electronics Engineers
(IEEE), software engineering means applying the principles of
engineering to the software development field.
 Software engineering differs from other branches of engineering in
that professionals are building an intangible structure and not a
tangible one.
 Since software is embedded in the machines used in various
industries, though, malfunctioning software can actually have
tangible effects.
Curso SQA Prof. Renato R. Gonzalez D. 30
 SE consist of concepts, tools,
techniques, methods and
generalized technical
structures that software
engineers use to create
software intensive systems
that meet stated technical,
economic, and social
objectives (Peter Freeman).
31An叩lisis de Requerimientos del Software-Parte I
Software Engineering Definition
 Life Cycle and Process
 Having some defined and
manageable process for process
development is much better
than not having one at all.
 Software process: A set of
partially ordered steps intended
to reach a goal.
 In software engineering the
goal is to build a quality
software product or to enhance
an existing one.
32An叩lisis de Requerimientos del Software-Parte I
Software Engineering Definition
Software Process:
 SE is based in fundamental
concepts that together
constitute a viable discipline,
despite the rapid changes in
Information Technology and
software development.
 Provides rigorous guidance
for the process of
management the complexity
of problems, application
systems and technology in
organization.
33An叩lisis de Requerimientos del Software-Parte I
Software Engineering Definition
SE Fundamental Concepts
 Software Engineering
Methods, Process life
cycle and Notations
 Standards process:
 Waterfall Model
 Rational Unified Process (RUP)
 Agiles Methodology: Scrum, RAD
 Microsoft Solution Framework
(MSF)
34An叩lisis de Requerimientos del Software-Parte I
SE Fundamental Concepts
 Software Engineering
Methods, Process and
Notations
 Standard Methods:
 Structured Analysis, Design and
Programming (1980s).
 Object Oriented Analysis, Design and
Programming (OO)- 1990  present.
 Unified Model Language (UML) as a
standard language for
communications in SE.
35An叩lisis de Requerimientos del Software-Parte I
 Modularity and Architecture- Different
approaches:
 Functional modular
decomposition, based primarily
on assigning functions to modules.
 Data Oriented decomposition,
based on external data structures
 Event oriented decomposition
based on events that the system
must handle.
 Outside-in design, based on user
inputs to the system, and
 Object oriented design, based on
classes of objects and their
interrelationships.
36An叩lisis de Requerimientos del Software-Parte I
SE Fundamental Concepts
Software Quality Assurance (SQA)
 SQA es la colecci坦n de actividades y
funciones utilizadas para monitorear
y controlar un proyecto de software
para lograr objetivos de calidad
deseados de un producto dentro de
un nivel de confianza espec鱈fico.
 Es un esfuerzo planeado de la
Ingenier鱈a de del Software para
asegurar la calidad de un producto de
software.
Curso SQA Parte II 37
Causes of Poor Software Quality
 Human factor
 Communication failure
 Unrealistic development timeframe:
 Lack of Software measurement
factors
 Poor design logic
 Poor coding practices
 Lack of version control and
configuration
 Buggy third-party tools
 Lack of skilled testing
 Last minute changes
Consequences of Poor Software Quality
 Determining Cost of
Poor Quality in Software
Engineering is how
Quality Assurance and
Test organizations can
value their efforts and
ultimately take charge of
the software
engineering process,
end-to-end
Cost of fixing software
Pareto Law in Software Quality
Pareto Law: 80% of contributions come from 20% of
taxpayers:
 20% of the modules contribute 80% of the costs
 20% of the modules contribute 80% of the errors.
 20% of the errors consume 80% of the repair costs.
 20% of the code consumes 80% of the execution time
Boehms key software quality issues
 Finding and fixing a software problem after being released is 100 times
more expensive than finding it and repairing it in the requirements, design
and development phases.
 For every dollar invested in software development, $ 2 is spent on
maintenance.
 The development and maintenance costs are mainly based on the
complexity of the product.
 The variety of people in a software project determine the greatest
differences in productivity.
 Only 15% of the development effort of a software product is spent on
coding.
 Software system products cost three times more per instruction than
individual programs.
SQA Questions
 What to assure?
 When must assure?
 Who must assure?
 Which methodology?
 What measures or metrics use?
Curso SQA Prof. Renato R. Gonzalez D. 43
SQA Componentes
Curso SQA Parte II 44
 La mayor鱈a de las
actividades de
aseguramiento de la
calidad del software
pueden clasificarse en
Pruebas, es decir,
verificaci坦n y validaci坦n,
configuraci坦n Gesti坦n y
control de calidad.
 Pero el programa de
aseguramiento tambi辿n
depende de una colecci坦n
coherente de normas,
Pr叩cticas, convenciones y
especificaciones.
SQA Components
 Software testing is a popular risk management strategy. It is used to
verify that functional requirements were met. The limitation of this
approach, however, is that by the time testing occurs, it is too late to
build quality into the product.
 Tests are only as good as the test cases, but they can be inspected to
ensure that all the requirements are tested across all possible
combinations of inputs and system state
Curso SQA Prof. Renato R. Gonzalez D. 45
SQA Components
 Quality control is defined as the
processes and methods used to
monitor work and observe whether
requirements are met. It focuses on
reviews and removal of defects
before shipment of products.
 While QA Verification and
Validation (Testing) is oriented
towards prevention, SQC is oriented
towards detection.
Curso SQA Prof. Renato R. Gonzalez D. 46
SQA Components
 Software testing is considered as
verification and validation process, that
is, a life cycle phase.
 Verification is proving that a product
meets the requirements specified during
previous activities carried out correctly
throughout the development life cycle.
 Answer the question, are we building the
product correctly?
 Validation checks that the system meets
the customers requirements at the end
of the life cycle.
 Answer the question: is the product
developed correct?
 It is called dynamic testing and is done
after the coding of the product.
Curso SQA Prof. Renato R. Gonzalez D. 47
SQA Components
 The V&V Process Model:
When verification is
incorporated into testing,
testing occurs
throughout the
development life cycle.
 For best results, it is
good practice to
combine verification
with validation in the
testing process.
Curso SQA Prof. Renato R. Gonzalez D. 48
QA and PDCA Cycle
49Curso SQA Prof. Renato R. Gonzalez D.
Testing Technique Category
 Black-Box Testing (Functional)
 White-Box Testing (Structural)
 Gray-Box Testing (Functional
and Structural)
 Manual versus Automated
Testing
 Static versus Dynamic Testing
Curso SQA Prof. Renato R. Gonzalez D. 50
Testing Technique Category
Curso SQA Prof. Renato R. Gonzalez D. 51
SQA Components
 Software configuration
management is concerned with
labeling, tracking, and
controlling changes in the
software elements of a system.
 It controls the evolution of a
software system by managing
versions of its software
components and their
relationships.
Curso SQA Prof. Renato R. Gonzalez D. 52
Software Quality Assurance (SQA) Plan
 The objectives of software
quality are typically achieved by
following a software quality
assurance plan that states the
methods the project will employ
to ensure the documents or
products produced and reviewed
at each milestone are of high
quality.
Curso SQA Prof. Renato R. Gonzalez D. 53
SQA Plan
 Step 1. Document the
Plan
 Step 2. Obtain
Management
Acceptance
 Step 3. Obtain
Development
Acceptance
 Step 4. Plan for
Implementation of the
SQA Plan
 Step 5. Execute the SQA
Plan
Curso SQA Prof. Renato R. Gonzalez D. 54
 Cognitive Metrics:
 How is the skills and knowledge of people
involved?
 Software Process Metric:
 How Many resources and time we spend?.
 Technical Product Complexity
Metrics:
 How big is the software?.
 Software Quality Metrics:
 How good is the final product?.
People
Development
Process
Product
Structure
Product
Operation
Software Complexity Measurements: How is the
people skills, How big, how many, and how good
GRACIAS POR SU
ATENCION
P&R
56Curso SQA Prof. Renato R. Gonzalez D.

More Related Content

Software quality assurance (sqa) parte i -introduccion v3.0

  • 1. Curso: Aseguramiento de la Calidad del Software Parte I - Introducci坦n Prof. Renato R. Gonzalez Disla Octubre del 2018 Version 3.0 Mayo 2019
  • 2. Objetivos del Curso Este curso discute t坦picos relacionados con el aseguramiento de calidad y las pruebas de software. Define el concepto de Calidad, de Aseguramiento de la Calidad del Software (SQA) y sus componentes. Explica el concepto de software, su complejidad y su m辿trica y establece los diferentes modelos y atributos de calidad que rigen hoy en d鱈a la pr叩ctica de SQA. Estudia los fundamentos de las pruebas de software y la garant鱈a de calidad, incluida la terminolog鱈a, las pr叩cticas de documentaci坦n, los procesos de control y las diferentes metodolog鱈as y t辿cnicas de prueba. Explica el papel del SQA Team, el tester y del inspector o asegurador de calidad en el desarrollo de software y el ciclo de prueba. 2Curso SQA Prof. Renato R. Gonzalez D.
  • 3. Objetivos del Curso Este curso discute t坦picos relacionados con el aseguramiento de calidad y las pruebas de software (Cont.) Orienta la pr叩ctica de t辿cnicas creaci坦n de los casos de prueba y el examen de modelos de desarrollo de prueba de verificaci坦n y validaci坦n del software. Explora los procesos de prueba de software en una variedad de contextos de la industria y las pr叩cticas de estudio aplicables a los entornos empresariales y web. Explorar la interacci坦n entre el aseguramiento de calidad y los procesos de gesti坦n de la calidad y configuraci坦n del software. 3Curso SQA Prof. Renato R. Gonzalez D.
  • 4. CONTENIDO Tema 1: Introducci坦n Tema 2: M辿tricas de Complejidad y Modelos de Calidad del Software Tema 3: Plan de Calidad y Prueba del Software Tema 4: Inspecciones y Revisiones Tema 5: Validaci坦n de Software Tema 6: Construcci坦n de Casos de Prueba Tema 7: Verificaci坦n de Software Tema 8: Procesos de Gesti坦n del Aseguramiento de la Calidad An叩lisis de Requerimientos del Software-Parte I 4
  • 5. Estrategias de ense単anza Exposici坦n en clases de temas fundamentales de parte del profesor Sesiones remotas con material de estudio colocado por el profesor Pr叩cticas en grupos (tareas) Exposiciones de temas por parte de los estudiantes Examen de medio t辿rmino Proyecto final en grupo Talleres de Laboratorio sobre herramientas de software de gesti坦n de requerimientos, especificaci坦n y configuraci坦n del software. An叩lisis de Requerimientos del Software-Parte I 5
  • 6. Evaluaci坦n An叩lisis de Requerimientos del Software-Parte I 6 Evaluaci坦n Estrategia Semanas o fecha Puntaje Pr叩cticas Medio Termino (en equipo): tareas asignadas a los estudiantes en el medio t辿rmino. 6 20 Examen Medio Termino 6 20 Proyecto final + Exposici坦n: trabajo en equipo para demostrar la adquisici坦n de las competencias impartidas durante el trimestre 11 40 Examen Final 11 20 Total Puntos Entrega de notas 12 100
  • 7. Referencias Bibliogr叩ficas Software Testing and Continuous Quality Improvement, Second Edition; William E. Lewis, Gunasekaran Veerapillai, Technical Contributor; AUERBACH PUBLICATIONS, 2005. Practical Guide to Software Quality Management, Second Edition by John W. Horch ISBN:1580535275 Artech House 息 2003. Managing Software Quality and Business Risk - Oct 29, 1999 by Martyn A. Ould. Wiley 7Curso SQA Prof. Renato R. Gonzalez D.
  • 8. Curso: Aseguramiento de la Calidad del Software: Parte I- Introducci坦n Prof. Renato R. Gonzalez Disla Mayo del 2017
  • 9. Objetivos del Modulo Define el concepto de Calidad, de Aseguramiento de la Calidad del Software (SQA) y sus componentes. Explica el concepto de software, su complejidad y su m辿trica y establece los diferentes modelos y atributos de calidad que rigen hoy en d鱈a la pr叩ctica de SQA.
  • 10. What is Quality? Quality in manufacturing, a measure of: Excellence of products A state of being free from defects, deficiencies and significant variations. Consistent commitment to certain standards that achieve uniformity of a product in order to satisfy specific customer or user requirements. 10Curso SQA Prof. Renato R. Gonzalez D.
  • 11. What is Quality? ISO 8402- 1986 standard defines quality as "the totality of features and characteristics of a product or service that bears its ability to satisfy stated or implied needs." http://www.businessdictionary.com/definition/quality .html#ixzz3HJhsqwfG 11Curso SQA Prof. Renato R. Gonzalez D.
  • 12. Quality of Conformance Level of effectiveness of the design and product ion functions in affecting the product manufactu ring requirements and process specifications, while meeting process control limits, product tolerances, and production targets . Product Needs Process Capacity Specifications Design Process Control Process to Product Conformance Product Quality 12 Curso SQA Prof. Renato R. Gonzalez D.
  • 13. Cost of Quality Cost of Poor Quality: Disruption to production Time and resources spent correcting mistakes Materials energy wasted Warranty claims Poor customer relations Cost of Good Quality Recovery costs Market appraisal 13Curso SQA Prof. Renato R. Gonzalez D.
  • 14. Cost of Quality Prevention versus Detection The total cost of effective quality management is the sum of four component prevention, inspection, internal failure, and external failure. Prevention costs consist of actions taken to prevent defects from occurring in the first place. Inspection costs consist of measuring, evaluating, and auditing products or services for conformance to standards and specifications. Curso SQA Prof. Renato R. Gonzalez D. 14
  • 15. Cost of Quality Internal failure costs are those incurred in fixing defective products before they are delivered. External failure costs consist of the costs of defects discovered after the product has been released. Curso SQA Prof. Renato R. Gonzalez D. 15
  • 16. Quality Management Quality management ensures that an organization, product or service is consistent. It has four main components: quality planning, quality control, quality assurance and quality improvement. Quality management is focused not only on product and service quality, but also the means to achieve it (process and resources). 16Curso SQA Prof. Renato R. Gonzalez D.
  • 17. Quality Management Questions Tools Can we make it OK? Process capability analysis a quality assurance Are we making OK? Statistical Process Control Have we made it Ok? Acceptance sampling Could we make it better? Quality Continual Improvement 17Curso SQA Prof. Renato R. Gonzalez D.
  • 18. Quality History Quality and Craftsman Industrial Revolution and mass production (XVII and XIX Centuries) Taylor scientific management (1910) Statistical Quality Control (SQC) W. Shewhart (1931) Deming and Juran and the TCM (1946) Quality Assurance (QA) NATO 1960 Reliability Engineering 1961 BS5750 and ISO 9000 1970 Quality Circle, Zero Defect, Total Quality Control (Ishikawa), continuous quality improvement and Quality Engineering (Taguchi) 1960-1970 Curso SQA Prof. Renato R. Gonzalez D. 18
  • 19. Quality Assurance (QA) Quality Assurance (QA): In developing products and services, quality assurance is any systematic process of checking to see whether a product or service being developed is meeting specified requirements. Quality Control (QC): Quality control is the process by which product quality is compared with applicable standards and the action taken when nonconformance is detected. 19Curso SQA Prof. Renato R. Gonzalez D.
  • 20. Quality Assurance (QA) Auditing is the inspection/assessment activity that verifies compliance with plans, policies, and procedures. ISO 9000 is an international standard that many companies use to ensure that their quality assurance system is in place and effective. Conformance to ISO 9000 is said to guarantee that a company delivers quality products and services. 20Curso SQA Prof. Renato R. Gonzalez D.
  • 21. Quality Assurance (QA) Continuous Improvement through the Plan, Do, Check, Act Process (PDCA) The control in quality control means defining the objective of the job, developing and carrying out a plan to meet that objective, and checking to determine if the anticipated results are achieved. Continuous improvement is an ongoing effort to improve products, services or processes. These efforts can seek incremental improvement over time or breakthrough improvement all at once. PDCA Deming is the most widely used tools for continuous improvement. Curso SQA Prof. Renato R. Gonzalez D. 21
  • 22. Software Production The production of software is different from the production of manufactured goods in that the former is information and knowledge intensive while the latter is material and energy intensive. The process produces a marketable software intangible asset at a time as product and service. 22Curso SQA Prof. Renato R. Gonzalez D. Product Needs Process Capacity Product Specifications Product Design Process Control Process to Product Conformance Product Quality
  • 23. What is Software? SOFTWARE = PROGRAMS (Algorithms) + DATA STRUCTURES + DOCUMENTATION 23Curso SQA Prof. Renato R. Gonzalez D.
  • 24. What is Software? Computer Programs: are logical procedures or algorithms implemented using a programming language in a specific operating environment (computer, operating system, networking, etc.) having as input data (input) to produce new information or action (output). 24An叩lisis de Requerimientos del Software-Parte I
  • 25. What is Software? Data Structures: Are logical relations of data entities or object implemented on a data management environment (databases). 25An叩lisis de Requerimientos del Software-Parte I
  • 26. What is Software? Documentation is divided in two types: External: describing specifications, functionality, operation and management software. Internal: describing the architecture of the software system and the logical and physical structure of components, devices, programs, algorithms and data structures. 26An叩lisis de Requerimientos del Software-Parte I
  • 27. Software Characteristic and Factors Product Intangible: knowledge intensive Logic machine (process, interfaces, input and output are information) Evolution and Innovation based in Specifications Ubiquitous product Productivity Crisis Complexity domains An叩lisis de Requerimientos del Software-Parte I 27
  • 28. Internal Complexity of user and system requirements (Semantic) Complexity of Algorithms and Data Structures (computational) Complexity of Language and Programs Structures (syntax). People Skills Knowledge Experience External Demands of quality control: do it right Demands of Users: Do it on time Demands of finance: Do it within budget Demands of Market: Do it in the Net in secure way Tools: IDE, software requirements management, software configuration management, testing and SQA tools 28An叩lisis de Requerimientos del Software-Parte I SE Complexity Factors to be Engineered
  • 29. Software System A software system is a system of intercommunicating components based on software forming part of a computer system. It "consists of a number of separate programs, configuration files, which are used to set up these programs, system documentation, which describes the structure of the system, and user documentation, which explains how to use the system. Sommerville, Ian (2007). "1.1.1; What is software?". Software Engineering (8th ed.). Addison-Wesley. pp. 5 6. ISBN 978-0-321-31379-9. Curso SQA Prof. Renato R. Gonzalez D. 29
  • 30. Software Engineering According to the Institute of Electrical and Electronics Engineers (IEEE), software engineering means applying the principles of engineering to the software development field. Software engineering differs from other branches of engineering in that professionals are building an intangible structure and not a tangible one. Since software is embedded in the machines used in various industries, though, malfunctioning software can actually have tangible effects. Curso SQA Prof. Renato R. Gonzalez D. 30
  • 31. SE consist of concepts, tools, techniques, methods and generalized technical structures that software engineers use to create software intensive systems that meet stated technical, economic, and social objectives (Peter Freeman). 31An叩lisis de Requerimientos del Software-Parte I Software Engineering Definition
  • 32. Life Cycle and Process Having some defined and manageable process for process development is much better than not having one at all. Software process: A set of partially ordered steps intended to reach a goal. In software engineering the goal is to build a quality software product or to enhance an existing one. 32An叩lisis de Requerimientos del Software-Parte I Software Engineering Definition
  • 33. Software Process: SE is based in fundamental concepts that together constitute a viable discipline, despite the rapid changes in Information Technology and software development. Provides rigorous guidance for the process of management the complexity of problems, application systems and technology in organization. 33An叩lisis de Requerimientos del Software-Parte I Software Engineering Definition
  • 34. SE Fundamental Concepts Software Engineering Methods, Process life cycle and Notations Standards process: Waterfall Model Rational Unified Process (RUP) Agiles Methodology: Scrum, RAD Microsoft Solution Framework (MSF) 34An叩lisis de Requerimientos del Software-Parte I
  • 35. SE Fundamental Concepts Software Engineering Methods, Process and Notations Standard Methods: Structured Analysis, Design and Programming (1980s). Object Oriented Analysis, Design and Programming (OO)- 1990 present. Unified Model Language (UML) as a standard language for communications in SE. 35An叩lisis de Requerimientos del Software-Parte I
  • 36. Modularity and Architecture- Different approaches: Functional modular decomposition, based primarily on assigning functions to modules. Data Oriented decomposition, based on external data structures Event oriented decomposition based on events that the system must handle. Outside-in design, based on user inputs to the system, and Object oriented design, based on classes of objects and their interrelationships. 36An叩lisis de Requerimientos del Software-Parte I SE Fundamental Concepts
  • 37. Software Quality Assurance (SQA) SQA es la colecci坦n de actividades y funciones utilizadas para monitorear y controlar un proyecto de software para lograr objetivos de calidad deseados de un producto dentro de un nivel de confianza espec鱈fico. Es un esfuerzo planeado de la Ingenier鱈a de del Software para asegurar la calidad de un producto de software. Curso SQA Parte II 37
  • 38. Causes of Poor Software Quality Human factor Communication failure Unrealistic development timeframe: Lack of Software measurement factors Poor design logic Poor coding practices Lack of version control and configuration Buggy third-party tools Lack of skilled testing Last minute changes
  • 39. Consequences of Poor Software Quality Determining Cost of Poor Quality in Software Engineering is how Quality Assurance and Test organizations can value their efforts and ultimately take charge of the software engineering process, end-to-end
  • 40. Cost of fixing software
  • 41. Pareto Law in Software Quality Pareto Law: 80% of contributions come from 20% of taxpayers: 20% of the modules contribute 80% of the costs 20% of the modules contribute 80% of the errors. 20% of the errors consume 80% of the repair costs. 20% of the code consumes 80% of the execution time
  • 42. Boehms key software quality issues Finding and fixing a software problem after being released is 100 times more expensive than finding it and repairing it in the requirements, design and development phases. For every dollar invested in software development, $ 2 is spent on maintenance. The development and maintenance costs are mainly based on the complexity of the product. The variety of people in a software project determine the greatest differences in productivity. Only 15% of the development effort of a software product is spent on coding. Software system products cost three times more per instruction than individual programs.
  • 43. SQA Questions What to assure? When must assure? Who must assure? Which methodology? What measures or metrics use? Curso SQA Prof. Renato R. Gonzalez D. 43
  • 44. SQA Componentes Curso SQA Parte II 44 La mayor鱈a de las actividades de aseguramiento de la calidad del software pueden clasificarse en Pruebas, es decir, verificaci坦n y validaci坦n, configuraci坦n Gesti坦n y control de calidad. Pero el programa de aseguramiento tambi辿n depende de una colecci坦n coherente de normas, Pr叩cticas, convenciones y especificaciones.
  • 45. SQA Components Software testing is a popular risk management strategy. It is used to verify that functional requirements were met. The limitation of this approach, however, is that by the time testing occurs, it is too late to build quality into the product. Tests are only as good as the test cases, but they can be inspected to ensure that all the requirements are tested across all possible combinations of inputs and system state Curso SQA Prof. Renato R. Gonzalez D. 45
  • 46. SQA Components Quality control is defined as the processes and methods used to monitor work and observe whether requirements are met. It focuses on reviews and removal of defects before shipment of products. While QA Verification and Validation (Testing) is oriented towards prevention, SQC is oriented towards detection. Curso SQA Prof. Renato R. Gonzalez D. 46
  • 47. SQA Components Software testing is considered as verification and validation process, that is, a life cycle phase. Verification is proving that a product meets the requirements specified during previous activities carried out correctly throughout the development life cycle. Answer the question, are we building the product correctly? Validation checks that the system meets the customers requirements at the end of the life cycle. Answer the question: is the product developed correct? It is called dynamic testing and is done after the coding of the product. Curso SQA Prof. Renato R. Gonzalez D. 47
  • 48. SQA Components The V&V Process Model: When verification is incorporated into testing, testing occurs throughout the development life cycle. For best results, it is good practice to combine verification with validation in the testing process. Curso SQA Prof. Renato R. Gonzalez D. 48
  • 49. QA and PDCA Cycle 49Curso SQA Prof. Renato R. Gonzalez D.
  • 50. Testing Technique Category Black-Box Testing (Functional) White-Box Testing (Structural) Gray-Box Testing (Functional and Structural) Manual versus Automated Testing Static versus Dynamic Testing Curso SQA Prof. Renato R. Gonzalez D. 50
  • 51. Testing Technique Category Curso SQA Prof. Renato R. Gonzalez D. 51
  • 52. SQA Components Software configuration management is concerned with labeling, tracking, and controlling changes in the software elements of a system. It controls the evolution of a software system by managing versions of its software components and their relationships. Curso SQA Prof. Renato R. Gonzalez D. 52
  • 53. Software Quality Assurance (SQA) Plan The objectives of software quality are typically achieved by following a software quality assurance plan that states the methods the project will employ to ensure the documents or products produced and reviewed at each milestone are of high quality. Curso SQA Prof. Renato R. Gonzalez D. 53
  • 54. SQA Plan Step 1. Document the Plan Step 2. Obtain Management Acceptance Step 3. Obtain Development Acceptance Step 4. Plan for Implementation of the SQA Plan Step 5. Execute the SQA Plan Curso SQA Prof. Renato R. Gonzalez D. 54
  • 55. Cognitive Metrics: How is the skills and knowledge of people involved? Software Process Metric: How Many resources and time we spend?. Technical Product Complexity Metrics: How big is the software?. Software Quality Metrics: How good is the final product?. People Development Process Product Structure Product Operation Software Complexity Measurements: How is the people skills, How big, how many, and how good
  • 56. GRACIAS POR SU ATENCION P&R 56Curso SQA Prof. Renato R. Gonzalez D.