SlideShare una empresa de Scribd logo
1 de 31
Desarrollo de software e Ingeniería de calidad
Conceptos e
Introducción
• Ingeniero en Sistemas – CAECE.
• +10 años de experiencia en calidad
• QA Manager Engee IT
nicolas.pintos@engee.com.ar
www.linkedin.com/in/NicolasPintosBarreto/ Auditor interno
ISO 9001:2008
Nicolás Pintos Barreto
Nosotros
andres.grosso@engee.com.ar
ar.linkedin.com/in/andresgrosso
Auditor interno
ISO 9001:2008
Andrés Grosso
Nosotros
• Analista de Sistemas de Computación – O.R.T.
• +10 años de experiencia en software
• Creador del patrón criteria
• COO en Engee IT
twitter.com/yairgrosso
Según IEEE standard 1999. “El testing de software
es el proceso de analizar un producto de
software para detectar las diferencias entre el
comportamiento real con el pedido, y para evaluar
las funcionalidades y características no
funcionales del software”.
O sea, es el proceso que compara “lo que es” con
“lo que debería ser”.
Conceptos
Testing
 Aptitud del producto o servicio para satisfacer las
necesidades del usuario.
 Propiedad o conjunto de propiedades inherentes
a algo, que permiten juzgar su valor.
 Cualidad de un producto de software
 Un buen nivel de calidad implica un diseño
correcto y un producto de acuerdo con su diseño.
Conceptos
Calidad
 Mito
 Las tareas de testing muchas veces son mal
llamadas como QA (Aseguramiento de la calidad),
cuando en realidad estas tareas son de QC (Control
de Calidad).
 Aseguramiento de la calidad (QA)
 Plantear, organizar, dirigir y controlar la calidad en
un sistema con el objetivo de dar al cliente
productos con la calidad adecuada.
 Control de calidad (QC)
 Mecanismos, acciones y herramientas que se
utilizan para detectar la presencia de errores.
¿QA o QC?
En otras palabras, QA es proactivo ya que trata
sobre los procesos y cómo prevenir defectos.
Mientras que QC es reactivo, ya que trata sobre
los productos y como encontrar defectos .
En criollo
Etapas de un proyecto de Testing
Startup
Preparación
ambiente
Definición
casos
EJECUCIÓN
Seguimiento
de incidentes
 Error : Equivocación cometida por un humano durante el proceso
de desarrollo.
 Defecto (defect o fault): Consecuencia de un error: están presentes
en un producto de software. La presencia de un defecto diferencia
un producto correcto de uno incorrecto.
 Fallo (failure): Manifestación del defecto: diferencia entre los
resultados esperados y reales.
Definiciones
 Un error lleva a uno o más defectos,
que están presentes en el código.
 Un defecto lleva a cero, una o más
fallas.
 La falla es la manifestación del
defecto.
 Una falla tiene que ver con uno o
más defectos.
Relación entre
error, defecto
y falla
 Testear : Ejecutar un programa con el objeto de identificar fallos, comparando el resultado
esperado con el resultado obtenido a partir de la ejecución.
 Axiomas del testing:
 “El Testing solo puede mostrar la presencia de defectos, no su ausencia”. (Dijkstra)
 El objetivo del testing es encontrar errores.
 Un test solo es exitoso si encuentra errores.
 Cuando cumplimos el rol de Tester debemos ser creativos… pero para destruir.
 Bug cero = falacia
Definiciones
 Cobertura o Cubrimiento
 Es una medida de qué tan completo fue el testing (en función de una
estrategia particular).
 Toda estrategia tiene asociado su concepto de cobertura.
 Casos de prueba
 Descripciones de qué se va a probar.
 Crear casos es un proceso creativo.
 Datos de prueba
 Lotes de datos necesarios para ejecutar un caso de test.
 Crear datos de test es un proceso laborioso, y muy poco creativo.
Definiciones
 Test Limpio (o positivo): Intenta mostrar que el producto satisface sus
requerimientos.
 Test Sucio (o negativo): El objetivo es romper el sistema.
 Test de regresión: Luego de agregar una nueva funcionalidad, se vuelven a
probar (casos más importantes) de las funcionalidades ya existentes.
Definiciones
¿Por qué siempre
hay que volver a
probar?
public static int binarySearch(int[] a, int key) {
int low = 0;
int high = a.length - 1;
while (low <= high) {
int midVal = a[mid];
if (midVal < key)
low = mid + 1
else if (midVal > key)
high = mid - 1;
else
return mid; // key found
}
return -(low + 1); // key not found.
}
Joshua Bloch–JDK (java.util.Arrays):
int mid = (low + high) / 2;
Buscan fallas sobre el sistema en reposo.
Se puede aplicar sobre artefactos de
requerimientos, análisis, diseño y código.
Técnicas: Revisiones, Inspecciones,
Walkthrough y Auditorías de calidad.
Técnicas de Testing
Estático
Se ejecuta y observa el comportamiento
de un producto.
Estímulo  Proceso  Respuesta
Tipos
 Caja Negra: Requerimientos
 Caja Blanca: Código
DinámicoE D
 Tipos de problemas que se
encuentran
 Indefiniciones
 Inconsistencias
 Qué revisar
 Requerimientos
 Diseños
 Casos de pruebas
 Planes de proyecto
Revisión de la
documentación
Testing EstáticoE
Walkthroughs
- Presentador
- Sin preparación de los
participantes
- Gran cantidad de
participantes
- Sin informe
Técnicas
Testing EstáticoE
Inspecciones (peer-reviews)
- Presentador
- Con preparación de los
participantes
- Informe
- Generalmente 2 a 4
participantes
Auditorías
- Preparada
- Sin presentador
- Auditor y auditado
- Informes
Break
5 minutos
 De Unidades: Pruebas de módulos,
funcionalidades, etc. de forma unitaria
 De Integración: Pruebas de módulos,
funcionalidades, etc. de forma conjunta
 De Aceptación del Usuario: Verifican que el
sistema/módulo esté listo para su uso
 De Usabilidad: Verifican la calidad de uso
Testing DinámicoD
Niveles de
Testing
 De Volumen: Verifican que el sistema soporte
grandes volúmenes de datos
 De Performance: Verifican que el sistema se
encuentre dentro de los parámetros de performance
definidos
 Stress: Verifican que el sistema soporte grandes
cargas de procesamiento
 Del Sistema (o Sub-Sistema): Pruebas enfocadas a
los requerimientos originales
Testing DinámicoD
Niveles de
Testing
 Partición de equivalencias
 Particiona el dominio de entrada en un conjunto de clases de entrada (o inputs) que
tienen comportamientos similares .
 Luego se selecciona un valor representativo de cada partición para ser testeado.
 Análisis de condiciones de borde
 Variación de la técnica de partición de equivalencias, que se focaliza en los bordes de
cada clase de equivalencia: por arriba y por debajo de cada clase.
 Test de robustez
 Es una variación de la técnica de análisis de borde.
 Consiste en ingresar no un valor apenas superior al máximo, valor sino muchísimo
mayor, y un valor muchísimo inferior al mínimo valor.
Técnicas de derivación de casos de prueba
Testing DinámicoD
 Escribir programas para que realicen pruebas que se harían manualmente.
 Ventajas
 Ejecuta más pruebas en menos tiempo.
 Efectúa pruebas muy difíciles de realizar manualmente.
 Integración continúa y despliegue continuo.
 Desventajas
 No reemplazan las pruebas manuales, las complementan.
 Encuentran menos defectos que las pruebas manuales.
 Aplicarlo bien, requiere un gran esfuerzo.
 ¡Hay que saber dónde y cuanto aplicarlo!
Técnicas automatizado
Testing DinámicoD
Herramientas
Testing DinámicoD Automatización
Otras Herramientas
Testing DinámicoD Automatización
Testing Independiente
 El que desarrolla no prueba.
 Mayor experiencia y concentración.
 Nadie está motivado para encontrar sus propios errores.
Test exploratorio
 Definir y ejecutar el testing al mismo tiempo (testing intuitivo).
Risk-based Testing
 Priorizar los componentes y los tipos de testing más críticos.
Testing de Contenidos
 Ortografía.
 Gramática.
Testing manual – Algunos Nombres
Testing DinámicoD Automatización
 Testing de Compatibilidad
 Verificar que la aplicación funciona en distintas plataformas existentes en el
mercado (browsers, SOS, etc.).
 Delivery Testing
 Testear el website en un ambiente real o con sus condiciones.
 Fuzz Testing
 Automatizada o semi-automatizada.
 Provee ingreso de datos inválidos, inesperados y aleatorios en búsqueda de
excepciones y caídas.
 Utilizado comumente para detectar problemas de seguridad o robustez.
Testing manual – Algunos Nombres
Testing DinámicoD Automatización
 Smoke Testing
 Primer test realizado después de un release (pruebas básicas).
 Determina si es posible continuar con el testing (pruebas más intensas).
 Generalmente utilizado para validar un pasaje al ambiente de testing.
 Sanity Testing
 Generalmente utilizado después de un smoke test. Valida también un pasaje a test.
 Ejecución de un pequeño conjunto de funcionalidades.
 Determina si la lógica de funcionamiento del programa es correcta.
 Pairwise Testing
 Para cada par de parámetros prueba todas las combinaciones posibles
Testing manual – Algunos Nombres
Testing DinámicoD Automatización
Detección tardía
 Analítico
 Perfeccionista
 Creativo
 Capacidad de abstracción y
modelado
 Facilidad de comunicación
 Pensamiento crítico
 Pragmatismo
 Aptitudes para el trabajo en
equipo
Perfil del Tester
Nuestro objetivo es
desarrollar un software
con 0 bugs.
Pagaré un bono de 10
dólares por cada bug que
encuentren y arreglen.
¡¡Somos ricos!! Espero que esto conlleve
al comportamiento
correcto.
Me “escribiré” una nueva
minivan esta tarde!
¿Preguntas?

Más contenido relacionado

La actualidad más candente

Taller TestingUy 2019 - Técnicas de diseño de pruebas de caja negra
Taller TestingUy 2019 - Técnicas de diseño de pruebas de caja negraTaller TestingUy 2019 - Técnicas de diseño de pruebas de caja negra
Taller TestingUy 2019 - Técnicas de diseño de pruebas de caja negraTestingUy
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de softwarerogergene
 
Pruebas de aplicaciones web
Pruebas de aplicaciones webPruebas de aplicaciones web
Pruebas de aplicaciones webpaulinaaillon
 
Métricas de calidad de software
Métricas de calidad de softwareMétricas de calidad de software
Métricas de calidad de softwaredaners08
 
Metricas Tecnicas Del Software
Metricas Tecnicas Del SoftwareMetricas Tecnicas Del Software
Metricas Tecnicas Del Softwarejuic
 
Basic software-testing-concepts
Basic software-testing-conceptsBasic software-testing-concepts
Basic software-testing-conceptsmedsherb
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test AutomationNaveen Kumar Singh
 
Fundamentos de Pruebas de Software - Capítulo 3
Fundamentos de Pruebas de Software - Capítulo 3Fundamentos de Pruebas de Software - Capítulo 3
Fundamentos de Pruebas de Software - Capítulo 3Professional Testing
 
Taller TestingUy 2019 - ¿Ágil o tradicional? TMMI un marco metodológico todo ...
Taller TestingUy 2019 - ¿Ágil o tradicional? TMMI un marco metodológico todo ...Taller TestingUy 2019 - ¿Ágil o tradicional? TMMI un marco metodológico todo ...
Taller TestingUy 2019 - ¿Ágil o tradicional? TMMI un marco metodológico todo ...TestingUy
 
Selenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And AnswersSelenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And AnswersAjit Jadhav
 
Manual testing concepts course 1
Manual testing concepts course 1Manual testing concepts course 1
Manual testing concepts course 1Raghu Kiran
 
Software Testing Life Cycle – A Beginner’s Guide
Software Testing Life Cycle – A Beginner’s GuideSoftware Testing Life Cycle – A Beginner’s Guide
Software Testing Life Cycle – A Beginner’s GuideSyed Hassan Raza
 

La actualidad más candente (20)

Taller TestingUy 2019 - Técnicas de diseño de pruebas de caja negra
Taller TestingUy 2019 - Técnicas de diseño de pruebas de caja negraTaller TestingUy 2019 - Técnicas de diseño de pruebas de caja negra
Taller TestingUy 2019 - Técnicas de diseño de pruebas de caja negra
 
Component testing with cypress
Component testing with cypressComponent testing with cypress
Component testing with cypress
 
Testing methodology
Testing methodologyTesting methodology
Testing methodology
 
Testing
TestingTesting
Testing
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Pruebas de aplicaciones web
Pruebas de aplicaciones webPruebas de aplicaciones web
Pruebas de aplicaciones web
 
Métricas de calidad de software
Métricas de calidad de softwareMétricas de calidad de software
Métricas de calidad de software
 
Metricas Tecnicas Del Software
Metricas Tecnicas Del SoftwareMetricas Tecnicas Del Software
Metricas Tecnicas Del Software
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
 
Basic software-testing-concepts
Basic software-testing-conceptsBasic software-testing-concepts
Basic software-testing-concepts
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
 
Fundamentos de Pruebas de Software - Capítulo 3
Fundamentos de Pruebas de Software - Capítulo 3Fundamentos de Pruebas de Software - Capítulo 3
Fundamentos de Pruebas de Software - Capítulo 3
 
Taller TestingUy 2019 - ¿Ágil o tradicional? TMMI un marco metodológico todo ...
Taller TestingUy 2019 - ¿Ágil o tradicional? TMMI un marco metodológico todo ...Taller TestingUy 2019 - ¿Ágil o tradicional? TMMI un marco metodológico todo ...
Taller TestingUy 2019 - ¿Ágil o tradicional? TMMI un marco metodológico todo ...
 
Types of testing
Types of testingTypes of testing
Types of testing
 
Selenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And AnswersSelenium Automation Testing Interview Questions And Answers
Selenium Automation Testing Interview Questions And Answers
 
Manual testing concepts course 1
Manual testing concepts course 1Manual testing concepts course 1
Manual testing concepts course 1
 
Software Testing Life Cycle – A Beginner’s Guide
Software Testing Life Cycle – A Beginner’s GuideSoftware Testing Life Cycle – A Beginner’s Guide
Software Testing Life Cycle – A Beginner’s Guide
 
QACampus PPT (STLC)
QACampus PPT (STLC)QACampus PPT (STLC)
QACampus PPT (STLC)
 
Introduction to Software Test Automation
Introduction to Software Test AutomationIntroduction to Software Test Automation
Introduction to Software Test Automation
 

Similar a software testing

Similar a software testing (20)

Pruebas del software
Pruebas del softwarePruebas del software
Pruebas del software
 
Pruebas del software
Pruebas del softwarePruebas del software
Pruebas del software
 
Pruebas del software
Pruebas del softwarePruebas del software
Pruebas del software
 
Pruebas
PruebasPruebas
Pruebas
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de software
 
Doo 13-testing
Doo 13-testingDoo 13-testing
Doo 13-testing
 
Vuelta_a_los_origines_Testing.pdf
Vuelta_a_los_origines_Testing.pdfVuelta_a_los_origines_Testing.pdf
Vuelta_a_los_origines_Testing.pdf
 
ejemplos.pdf
ejemplos.pdfejemplos.pdf
ejemplos.pdf
 
Pruebas-OCW.pdf
Pruebas-OCW.pdfPruebas-OCW.pdf
Pruebas-OCW.pdf
 
S9-DAW-2022S1.pptx
S9-DAW-2022S1.pptxS9-DAW-2022S1.pptx
S9-DAW-2022S1.pptx
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Calidad de software y TDD
Calidad de software y TDDCalidad de software y TDD
Calidad de software y TDD
 
Pruebas De Software
Pruebas De SoftwarePruebas De Software
Pruebas De Software
 
La auditoría de software
La auditoría de softwareLa auditoría de software
La auditoría de software
 
La auditoría de software
La auditoría de softwareLa auditoría de software
La auditoría de software
 
La auditoría de software
La auditoría de softwareLa auditoría de software
La auditoría de software
 
La auditoría de software
La auditoría de softwareLa auditoría de software
La auditoría de software
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de software
 
Act 4.3 pruebas de software
Act 4.3 pruebas de softwareAct 4.3 pruebas de software
Act 4.3 pruebas de software
 
Act 4.3 pruebas de software
Act 4.3 pruebas de softwareAct 4.3 pruebas de software
Act 4.3 pruebas de software
 

Más de Andrés Grosso

Más de Andrés Grosso (10)

Engee IT - Institucional
Engee IT - InstitucionalEngee IT - Institucional
Engee IT - Institucional
 
Esemap
EsemapEsemap
Esemap
 
Introducción al análisis y relevamiento
Introducción al análisis y relevamientoIntroducción al análisis y relevamiento
Introducción al análisis y relevamiento
 
SOLID
SOLIDSOLID
SOLID
 
CQRS
CQRSCQRS
CQRS
 
Patrón de diseño Criteria
Patrón de diseño CriteriaPatrón de diseño Criteria
Patrón de diseño Criteria
 
Transicionkanban
TransicionkanbanTransicionkanban
Transicionkanban
 
Taller definición bugs
Taller definición bugsTaller definición bugs
Taller definición bugs
 
Taller casos de prueba
Taller casos de pruebaTaller casos de prueba
Taller casos de prueba
 
Scrum
ScrumScrum
Scrum
 

Último

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 

Último (16)

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 

software testing

  • 1. Desarrollo de software e Ingeniería de calidad
  • 3. • Ingeniero en Sistemas – CAECE. • +10 años de experiencia en calidad • QA Manager Engee IT nicolas.pintos@engee.com.ar www.linkedin.com/in/NicolasPintosBarreto/ Auditor interno ISO 9001:2008 Nicolás Pintos Barreto Nosotros
  • 4. andres.grosso@engee.com.ar ar.linkedin.com/in/andresgrosso Auditor interno ISO 9001:2008 Andrés Grosso Nosotros • Analista de Sistemas de Computación – O.R.T. • +10 años de experiencia en software • Creador del patrón criteria • COO en Engee IT twitter.com/yairgrosso
  • 5. Según IEEE standard 1999. “El testing de software es el proceso de analizar un producto de software para detectar las diferencias entre el comportamiento real con el pedido, y para evaluar las funcionalidades y características no funcionales del software”. O sea, es el proceso que compara “lo que es” con “lo que debería ser”. Conceptos Testing
  • 6.  Aptitud del producto o servicio para satisfacer las necesidades del usuario.  Propiedad o conjunto de propiedades inherentes a algo, que permiten juzgar su valor.  Cualidad de un producto de software  Un buen nivel de calidad implica un diseño correcto y un producto de acuerdo con su diseño. Conceptos Calidad
  • 7.  Mito  Las tareas de testing muchas veces son mal llamadas como QA (Aseguramiento de la calidad), cuando en realidad estas tareas son de QC (Control de Calidad).  Aseguramiento de la calidad (QA)  Plantear, organizar, dirigir y controlar la calidad en un sistema con el objetivo de dar al cliente productos con la calidad adecuada.  Control de calidad (QC)  Mecanismos, acciones y herramientas que se utilizan para detectar la presencia de errores. ¿QA o QC?
  • 8. En otras palabras, QA es proactivo ya que trata sobre los procesos y cómo prevenir defectos. Mientras que QC es reactivo, ya que trata sobre los productos y como encontrar defectos . En criollo
  • 9. Etapas de un proyecto de Testing Startup Preparación ambiente Definición casos EJECUCIÓN Seguimiento de incidentes
  • 10.  Error : Equivocación cometida por un humano durante el proceso de desarrollo.  Defecto (defect o fault): Consecuencia de un error: están presentes en un producto de software. La presencia de un defecto diferencia un producto correcto de uno incorrecto.  Fallo (failure): Manifestación del defecto: diferencia entre los resultados esperados y reales. Definiciones
  • 11.  Un error lleva a uno o más defectos, que están presentes en el código.  Un defecto lleva a cero, una o más fallas.  La falla es la manifestación del defecto.  Una falla tiene que ver con uno o más defectos. Relación entre error, defecto y falla
  • 12.  Testear : Ejecutar un programa con el objeto de identificar fallos, comparando el resultado esperado con el resultado obtenido a partir de la ejecución.  Axiomas del testing:  “El Testing solo puede mostrar la presencia de defectos, no su ausencia”. (Dijkstra)  El objetivo del testing es encontrar errores.  Un test solo es exitoso si encuentra errores.  Cuando cumplimos el rol de Tester debemos ser creativos… pero para destruir.  Bug cero = falacia Definiciones
  • 13.  Cobertura o Cubrimiento  Es una medida de qué tan completo fue el testing (en función de una estrategia particular).  Toda estrategia tiene asociado su concepto de cobertura.  Casos de prueba  Descripciones de qué se va a probar.  Crear casos es un proceso creativo.  Datos de prueba  Lotes de datos necesarios para ejecutar un caso de test.  Crear datos de test es un proceso laborioso, y muy poco creativo. Definiciones
  • 14.  Test Limpio (o positivo): Intenta mostrar que el producto satisface sus requerimientos.  Test Sucio (o negativo): El objetivo es romper el sistema.  Test de regresión: Luego de agregar una nueva funcionalidad, se vuelven a probar (casos más importantes) de las funcionalidades ya existentes. Definiciones
  • 15. ¿Por qué siempre hay que volver a probar? public static int binarySearch(int[] a, int key) { int low = 0; int high = a.length - 1; while (low <= high) { int midVal = a[mid]; if (midVal < key) low = mid + 1 else if (midVal > key) high = mid - 1; else return mid; // key found } return -(low + 1); // key not found. } Joshua Bloch–JDK (java.util.Arrays): int mid = (low + high) / 2;
  • 16. Buscan fallas sobre el sistema en reposo. Se puede aplicar sobre artefactos de requerimientos, análisis, diseño y código. Técnicas: Revisiones, Inspecciones, Walkthrough y Auditorías de calidad. Técnicas de Testing Estático Se ejecuta y observa el comportamiento de un producto. Estímulo  Proceso  Respuesta Tipos  Caja Negra: Requerimientos  Caja Blanca: Código DinámicoE D
  • 17.  Tipos de problemas que se encuentran  Indefiniciones  Inconsistencias  Qué revisar  Requerimientos  Diseños  Casos de pruebas  Planes de proyecto Revisión de la documentación Testing EstáticoE
  • 18. Walkthroughs - Presentador - Sin preparación de los participantes - Gran cantidad de participantes - Sin informe Técnicas Testing EstáticoE Inspecciones (peer-reviews) - Presentador - Con preparación de los participantes - Informe - Generalmente 2 a 4 participantes Auditorías - Preparada - Sin presentador - Auditor y auditado - Informes
  • 20.  De Unidades: Pruebas de módulos, funcionalidades, etc. de forma unitaria  De Integración: Pruebas de módulos, funcionalidades, etc. de forma conjunta  De Aceptación del Usuario: Verifican que el sistema/módulo esté listo para su uso  De Usabilidad: Verifican la calidad de uso Testing DinámicoD Niveles de Testing
  • 21.  De Volumen: Verifican que el sistema soporte grandes volúmenes de datos  De Performance: Verifican que el sistema se encuentre dentro de los parámetros de performance definidos  Stress: Verifican que el sistema soporte grandes cargas de procesamiento  Del Sistema (o Sub-Sistema): Pruebas enfocadas a los requerimientos originales Testing DinámicoD Niveles de Testing
  • 22.  Partición de equivalencias  Particiona el dominio de entrada en un conjunto de clases de entrada (o inputs) que tienen comportamientos similares .  Luego se selecciona un valor representativo de cada partición para ser testeado.  Análisis de condiciones de borde  Variación de la técnica de partición de equivalencias, que se focaliza en los bordes de cada clase de equivalencia: por arriba y por debajo de cada clase.  Test de robustez  Es una variación de la técnica de análisis de borde.  Consiste en ingresar no un valor apenas superior al máximo, valor sino muchísimo mayor, y un valor muchísimo inferior al mínimo valor. Técnicas de derivación de casos de prueba Testing DinámicoD
  • 23.  Escribir programas para que realicen pruebas que se harían manualmente.  Ventajas  Ejecuta más pruebas en menos tiempo.  Efectúa pruebas muy difíciles de realizar manualmente.  Integración continúa y despliegue continuo.  Desventajas  No reemplazan las pruebas manuales, las complementan.  Encuentran menos defectos que las pruebas manuales.  Aplicarlo bien, requiere un gran esfuerzo.  ¡Hay que saber dónde y cuanto aplicarlo! Técnicas automatizado Testing DinámicoD
  • 26. Testing Independiente  El que desarrolla no prueba.  Mayor experiencia y concentración.  Nadie está motivado para encontrar sus propios errores. Test exploratorio  Definir y ejecutar el testing al mismo tiempo (testing intuitivo). Risk-based Testing  Priorizar los componentes y los tipos de testing más críticos. Testing de Contenidos  Ortografía.  Gramática. Testing manual – Algunos Nombres Testing DinámicoD Automatización
  • 27.  Testing de Compatibilidad  Verificar que la aplicación funciona en distintas plataformas existentes en el mercado (browsers, SOS, etc.).  Delivery Testing  Testear el website en un ambiente real o con sus condiciones.  Fuzz Testing  Automatizada o semi-automatizada.  Provee ingreso de datos inválidos, inesperados y aleatorios en búsqueda de excepciones y caídas.  Utilizado comumente para detectar problemas de seguridad o robustez. Testing manual – Algunos Nombres Testing DinámicoD Automatización
  • 28.  Smoke Testing  Primer test realizado después de un release (pruebas básicas).  Determina si es posible continuar con el testing (pruebas más intensas).  Generalmente utilizado para validar un pasaje al ambiente de testing.  Sanity Testing  Generalmente utilizado después de un smoke test. Valida también un pasaje a test.  Ejecución de un pequeño conjunto de funcionalidades.  Determina si la lógica de funcionamiento del programa es correcta.  Pairwise Testing  Para cada par de parámetros prueba todas las combinaciones posibles Testing manual – Algunos Nombres Testing DinámicoD Automatización
  • 30.  Analítico  Perfeccionista  Creativo  Capacidad de abstracción y modelado  Facilidad de comunicación  Pensamiento crítico  Pragmatismo  Aptitudes para el trabajo en equipo Perfil del Tester
  • 31. Nuestro objetivo es desarrollar un software con 0 bugs. Pagaré un bono de 10 dólares por cada bug que encuentren y arreglen. ¡¡Somos ricos!! Espero que esto conlleve al comportamiento correcto. Me “escribiré” una nueva minivan esta tarde! ¿Preguntas?

Notas del editor

  1. Engee es una empresa de calidad, desarrollo y consultoría de software.
  2. Institute of Electrical and Electronics Engineers (Instituto de Ingenieros Electrónicos y Eléctricos)
  3. QA: ej.: definición de procesos, entrenamiento, auditorías, etc. QC: ej.: testing, revisiones por pares, inspecciones, etc.
  4. En el startup se define la estrategia de testing, los recursos, los distintos niveles a realizar, las técnicas a utilizar, herramientas, la cobertura, funcionalidades, etc. La preparación de ambiente se refiere a generar un ambiente de testing, el cual debe asemejarse lo más posible al ambiente de producción y sobre el cual se realizarán las pruebas de la aplicación. En la definición de casos, en base a la planificación y prioridad determinadas en el startup, se comienzan a definir lo que se va a probar y como se probará. La ejecución es donde se ejecutan los casos de prueba definidos en el ambiente de testing configurado. No es posible comenzar la ejecución sin haber pasado por las etapas anteriores. En el Seguimiento de incidentes se administran todos los defectos que tiene el sistema. Generalmente se utiliza alguna herramienta de seguimiento de incidencias (issue tracker). 
  5. La primer búsqueda binaria fue desarrollada en 1946. En 1962 se desarrolló la primera versión estable. En 1986 Jon Bentley la depuró y encontró un error. Se tardó 20 años en encontrarlo. Lo que se muestra en negrita es el bug que se encontró; al sumar dos números “int” muy grandes, la suma da un número negativo, rompiendo el algoritmo de búsqueda binaria. Este falla surgió mucho tiempo después, ya que en el momento de realizar este algoritmo era impensado utilizar números enteros tan elevados.
  6. Indefinición: Vaguedad en las definiciones. Inconsistencia: Las definiciones no concuerdan con las reglas de negocio.
  7. Input: Es lo como se llama al cuadro de entrada de texto.
  8. A tener en cuenta: el esfuerzo de automatizar los test funcionales debe compensarse con la cantidad de veces que utilizaremos los scripts (se calculan necesarias más de 8 regresiones).
  9. Aclaración: Python y Ruby son lenguajes de programación, no son herramientas de test automatizado. Pero tienen un frecuente uso en las automatizaciones web. Cucumber: runs automated acceptance tests written in a behavior-driven development (BDD) style. Phantomjs: a headless WebKit scriptable with a JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG. UI Automator: UI Automator is a UI testing framework suitable for cross-app functional UI testing across system and installed apps. Appium: Automatización para Aplicaciones Móviles AutoIt : lenguaje freeware multipropósito y de automatización para Microsoft Windows
  10. Capacidad de abstracción y modelado para entender y simular el comportamiento del sistema bajo prueba. Facilidad de comunicación oral y escrita para interactuar con desarrolladores y usuarios. Creatividad para generar ideas e imaginar los problemas que podrían existir. Pensamiento crítico para evaluar las ideas, hacer deducciones y vincular lo observado con los criterios de calidad de la empresa. Pragmatismo para poner en práctica las ideas y adecuar las técnicas y el esfuerzo al alcance del proyecto. Aptitudes para el trabajo en equipo, de manera de poder interactuar con los desarrolladores y otros testers, y lograr el máximo beneficio en esta interacción.