SlideShare una empresa de Scribd logo
Taller de Testing
andres.grosso@engee.com.ar
Registro de bugs
Definiciones
• El testing es el proceso que compara “lo que es” con “lo que debería ser”.
• 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.
Recordando . . .
Más definiciones
• 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 sólo puede mostrar la presencia de defectos, no su ausencia”. (Dijkstra)
 Un test sólo es exitoso si encuentra errores.
 Cuando cumplimos el rol de Tester debemos ser creativos… pero para destruir.
• 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.
Recordando . . .
Más definiciones
• Casos de test
 Descripciones de qué se va a probar.
 Crear casos es un proceso creativo.
• Datos de test
 Lotes de datos necesarios para ejecutar un caso de test.
 Crear datos de test es un proceso laborioso, y muy poco creativo.
• 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).
Recordando . . .
Más 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
las funcionalidades ya existentes (casos más importantes).
Recordando . . .
Testing dinámico
• Se ejecuta y observa el comportamiento de un producto.
Estimulo  Proceso  Respuesta
• Tipos
 Caja Negra: Requerimientos
 Caja Blanca: Código
Recordando . . .
Técnicas de derivación de casos
de test
• 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.
Recordando . . .
Reporte de incidentes
• Comunicación hacia el equipo del proyecto sobre la calidad del producto.
• Información para evaluar y hacer seguimiento
• Los reportes útiles son aquellos que hacen que los defectos se corrijan.
• Los lineamientos que exponemos a continuación buscan:
 Uniformizar la manera en que se reportan los incidentes.
 Asegurar la calidad mínima de su contenido.
 Acelerar los tiempos de corrección y verificación
• ID de la incidencia
• Sección/módulo
• Ambiente
• Descripción
• Datos
• Pasos
• Estado
• Reportado por, resuelto por, cerrado por, etc.
• CP relacionado (tarea y requerimiento también si se puede)
Datos de una incidencia
Estados
• Abierto
• En progreso
• Resuelto
• No pudo reproducir
• No es bug
• En testing
• Anulado
• Re-abierto
• Cerrado
Descripción
• Ser claros, breves, simples.
• Estructurar la descripción de manera que resulte claro que
pantalla/funcionalidad se estaba probando (y en lo posible en que
contexto se produjo)
• Por ejemplo,
 Incorrecto: “Si se presiona grabar al dar de alta se produce un error.”
 Correcto: “Usuarios. Alta. Grabar. Error java script. ”
Lineamientos
Descripción - Estructura
Usuarios. Alta. Datos válidos. Grabar. No graba al usuario.
Contexto DesencadenadorPasos Resultado
Como opcional, puede ir el
resultado esperado.
Descripción
• Debe ser un buen resumen del problema que se esta reportando.
• No debería ser necesario más detalle para entenderlo a alto nivel.
• Incorrecto
 “Se produce un error (ver detalle) al realizar la baja (ver adjunto)”
• Correcto
 “Usuario. Baja. Perfiles asociados = 1. Error de javascript.”
• Incorrecto
• “No puede ingresar al sistema.”
• “No se puede loguear un usuario con algunos perfiles.”
• Correcto
• “Login. Jefe de ventas. No es posible ingresar al sistema. El sistema presenta un mensaje
de error”
Lineamientos
Descripción
• Identificación rápida y unívoca
 Debe contener las palabras clave que faciliten su búsqueda.
 No deben existir dos bugs con la misma descripción.
• Describir, en lo posible, la diferencia entre el resultado obtenido y el
esperado.
• Ejemplo:
 Incorrecto: “Si el profesional no tiene disponibilidad la celda se muestra amarilla.”
 Correcto: “Profesional sin disponibilidad. La celda se muestra amarilla. Debería mostrarse
en rojo. ”
Lineamientos
Descripción
• Evitar la ambigüedad, explicar claramente las
condiciones en las cuales se produce el problema.
 Incorrecto: “Alta. País Duplicado. Permite dar de alta un país
ya existente.”
 Correcto: “Alta. País Duplicado. No es case sensitive.”
Lineamientos
Descripción
• No personalizar incidentes
• La gramática y ortografía deben ser correctas
• Evitar apreciaciones subjetivas (¡ojo con el tono!)
• En el detalle de la incidencia especificar con los datos con los que se produjo
el incidente.
• Si es necesario indicar pasos para su reproducción.
Lineamientos
Criticidad
• Bloqueante: Errores que imposibilitan la ejecución de una o más funcionalidades.
• Crítico: Errores de criticidad “Alta” que imposibilitan la ejecución de un circuito “principal”.
• Alta: Errores graves que, en general imposibilitan la ejecución del caso de prueba al que están
asociados.
• Media: Errores graves, pero que no imposibilitan la ejecución del caso al que están asociados. (por
ejemplo, errores de validaciones de formato). La funcionalidad por lo general puede ser accesible a
través de caminos alternativos, aunque estos no sean óptimos.
• Baja: Errores menores, que no impiden mayormente la utilización del sistema. En general, pueden ser
problemas de ortografía o de interfaz gráfica del sistema.
Lineamientos
Generales
• No reportar dos problemas diferentes en el mismo incidente.
• Verificar que el incidente no se encuentre ya reportado.
• Aunque el incidente no se pueda reproducir, reportarlo.
• Siempre que valga la pena adjuntar captura de pantalla.
• Reportar el incidente apenas es detectado.
• No hay que subestimar la importancia de reportar correctamente.
Un incidente bien reportado es fácil de entender y reproducir.
Lineamientos
¿Preguntas?
Regresión: “Cuando arreglas un bug, introduces muchos nuevos.”

Más contenido relacionado

La actualidad más candente

Lenguaje Unificado de Modelado (UML)
Lenguaje Unificado de Modelado (UML)Lenguaje Unificado de Modelado (UML)
Lenguaje Unificado de Modelado (UML)
AndreaPumarejo
 

La actualidad más candente (20)

Casos de uso de negocios y sistemas
Casos de uso de negocios y sistemasCasos de uso de negocios y sistemas
Casos de uso de negocios y sistemas
 
Introducción a JUnit
Introducción a JUnitIntroducción a JUnit
Introducción a JUnit
 
Formato ieee830(srs lleno)
Formato ieee830(srs lleno)Formato ieee830(srs lleno)
Formato ieee830(srs lleno)
 
Principios del RUP
Principios del RUPPrincipios del RUP
Principios del RUP
 
Taller casos de prueba
Taller casos de pruebaTaller casos de prueba
Taller casos de prueba
 
Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
Caso De Uso
Caso De UsoCaso De Uso
Caso De Uso
 
Requerimientos funcionales y no funcionales
Requerimientos funcionales y no funcionalesRequerimientos funcionales y no funcionales
Requerimientos funcionales y no funcionales
 
Pruebas unitarias
Pruebas unitariasPruebas unitarias
Pruebas unitarias
 
BDD com Cucumber
BDD com CucumberBDD com Cucumber
BDD com Cucumber
 
MODELADO RUP UML
MODELADO RUP UMLMODELADO RUP UML
MODELADO RUP UML
 
Ejemplo pruebas de software
Ejemplo pruebas de softwareEjemplo pruebas de software
Ejemplo pruebas de software
 
Casos de uso
Casos de usoCasos de uso
Casos de uso
 
Lenguaje Unificado de Modelado (UML)
Lenguaje Unificado de Modelado (UML)Lenguaje Unificado de Modelado (UML)
Lenguaje Unificado de Modelado (UML)
 
Modelodecasosdeuso planillas
Modelodecasosdeuso planillasModelodecasosdeuso planillas
Modelodecasosdeuso planillas
 
Unidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoUnidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De Uso
 
MVC
MVCMVC
MVC
 
Cuestionario uml
Cuestionario umlCuestionario uml
Cuestionario uml
 
Clase 11 uml_casos_de_uso
Clase 11 uml_casos_de_usoClase 11 uml_casos_de_uso
Clase 11 uml_casos_de_uso
 
Pruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacionPruebas de sistemas y aceptacion
Pruebas de sistemas y aceptacion
 

Similar a Taller definición bugs

Verificacion --validacion
Verificacion --validacionVerificacion --validacion
Verificacion --validacion
eduardoao2
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
Jordi Llonch
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
Akamon Engineering
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
Jordi Llonch
 
oTema6 pruebas del software
oTema6 pruebas del softwareoTema6 pruebas del software
oTema6 pruebas del software
Silvia Guilcapi
 
Tema6 pruebas del software
Tema6 pruebas del softwareTema6 pruebas del software
Tema6 pruebas del software
Susita Paguay
 
Ra semana 14 2
Ra semana 14 2Ra semana 14 2
Ra semana 14 2
victdiazm
 
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...
Abstracta
 

Similar a Taller definición bugs (20)

software testing
software testingsoftware testing
software testing
 
Verificacion --validacion
Verificacion --validacionVerificacion --validacion
Verificacion --validacion
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
 
15_pruebaSW.ppt
15_pruebaSW.ppt15_pruebaSW.ppt
15_pruebaSW.ppt
 
oTema6 pruebas del software
oTema6 pruebas del softwareoTema6 pruebas del software
oTema6 pruebas del software
 
Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agiles
 
Calidad del software cap2
Calidad del software   cap2Calidad del software   cap2
Calidad del software cap2
 
Prueba del sistema (1) 1
Prueba del sistema (1) 1Prueba del sistema (1) 1
Prueba del sistema (1) 1
 
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
 
Seminario de Test Development Driven
Seminario de Test Development DrivenSeminario de Test Development Driven
Seminario de Test Development Driven
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de software
 
Curso calidad software
Curso calidad softwareCurso calidad software
Curso calidad software
 
Pruebas-OCW.pdf
Pruebas-OCW.pdfPruebas-OCW.pdf
Pruebas-OCW.pdf
 
Tema6 pruebas del software
Tema6 pruebas del softwareTema6 pruebas del software
Tema6 pruebas del software
 
Ra semana 14 2
Ra semana 14 2Ra semana 14 2
Ra semana 14 2
 
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...
Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para opt...
 
S9-DAW-2022S1.pptx
S9-DAW-2022S1.pptxS9-DAW-2022S1.pptx
S9-DAW-2022S1.pptx
 
Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
 

Más de Andrés Grosso (8)

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
 
Scrum
ScrumScrum
Scrum
 

Taller definición bugs

  • 2. Definiciones • El testing es el proceso que compara “lo que es” con “lo que debería ser”. • 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. Recordando . . .
  • 3. Más definiciones • 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 sólo puede mostrar la presencia de defectos, no su ausencia”. (Dijkstra)  Un test sólo es exitoso si encuentra errores.  Cuando cumplimos el rol de Tester debemos ser creativos… pero para destruir. • 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. Recordando . . .
  • 4. Más definiciones • Casos de test  Descripciones de qué se va a probar.  Crear casos es un proceso creativo. • Datos de test  Lotes de datos necesarios para ejecutar un caso de test.  Crear datos de test es un proceso laborioso, y muy poco creativo. • 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). Recordando . . .
  • 5. Más 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 las funcionalidades ya existentes (casos más importantes). Recordando . . .
  • 6. Testing dinámico • Se ejecuta y observa el comportamiento de un producto. Estimulo  Proceso  Respuesta • Tipos  Caja Negra: Requerimientos  Caja Blanca: Código Recordando . . .
  • 7. Técnicas de derivación de casos de test • 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. Recordando . . .
  • 8. Reporte de incidentes • Comunicación hacia el equipo del proyecto sobre la calidad del producto. • Información para evaluar y hacer seguimiento • Los reportes útiles son aquellos que hacen que los defectos se corrijan. • Los lineamientos que exponemos a continuación buscan:  Uniformizar la manera en que se reportan los incidentes.  Asegurar la calidad mínima de su contenido.  Acelerar los tiempos de corrección y verificación
  • 9. • ID de la incidencia • Sección/módulo • Ambiente • Descripción • Datos • Pasos • Estado • Reportado por, resuelto por, cerrado por, etc. • CP relacionado (tarea y requerimiento también si se puede) Datos de una incidencia
  • 10. Estados • Abierto • En progreso • Resuelto • No pudo reproducir • No es bug • En testing • Anulado • Re-abierto • Cerrado
  • 11. Descripción • Ser claros, breves, simples. • Estructurar la descripción de manera que resulte claro que pantalla/funcionalidad se estaba probando (y en lo posible en que contexto se produjo) • Por ejemplo,  Incorrecto: “Si se presiona grabar al dar de alta se produce un error.”  Correcto: “Usuarios. Alta. Grabar. Error java script. ” Lineamientos
  • 12. Descripción - Estructura Usuarios. Alta. Datos válidos. Grabar. No graba al usuario. Contexto DesencadenadorPasos Resultado Como opcional, puede ir el resultado esperado.
  • 13. Descripción • Debe ser un buen resumen del problema que se esta reportando. • No debería ser necesario más detalle para entenderlo a alto nivel. • Incorrecto  “Se produce un error (ver detalle) al realizar la baja (ver adjunto)” • Correcto  “Usuario. Baja. Perfiles asociados = 1. Error de javascript.” • Incorrecto • “No puede ingresar al sistema.” • “No se puede loguear un usuario con algunos perfiles.” • Correcto • “Login. Jefe de ventas. No es posible ingresar al sistema. El sistema presenta un mensaje de error” Lineamientos
  • 14. Descripción • Identificación rápida y unívoca  Debe contener las palabras clave que faciliten su búsqueda.  No deben existir dos bugs con la misma descripción. • Describir, en lo posible, la diferencia entre el resultado obtenido y el esperado. • Ejemplo:  Incorrecto: “Si el profesional no tiene disponibilidad la celda se muestra amarilla.”  Correcto: “Profesional sin disponibilidad. La celda se muestra amarilla. Debería mostrarse en rojo. ” Lineamientos
  • 15. Descripción • Evitar la ambigüedad, explicar claramente las condiciones en las cuales se produce el problema.  Incorrecto: “Alta. País Duplicado. Permite dar de alta un país ya existente.”  Correcto: “Alta. País Duplicado. No es case sensitive.” Lineamientos
  • 16. Descripción • No personalizar incidentes • La gramática y ortografía deben ser correctas • Evitar apreciaciones subjetivas (¡ojo con el tono!) • En el detalle de la incidencia especificar con los datos con los que se produjo el incidente. • Si es necesario indicar pasos para su reproducción. Lineamientos
  • 17. Criticidad • Bloqueante: Errores que imposibilitan la ejecución de una o más funcionalidades. • Crítico: Errores de criticidad “Alta” que imposibilitan la ejecución de un circuito “principal”. • Alta: Errores graves que, en general imposibilitan la ejecución del caso de prueba al que están asociados. • Media: Errores graves, pero que no imposibilitan la ejecución del caso al que están asociados. (por ejemplo, errores de validaciones de formato). La funcionalidad por lo general puede ser accesible a través de caminos alternativos, aunque estos no sean óptimos. • Baja: Errores menores, que no impiden mayormente la utilización del sistema. En general, pueden ser problemas de ortografía o de interfaz gráfica del sistema. Lineamientos
  • 18. Generales • No reportar dos problemas diferentes en el mismo incidente. • Verificar que el incidente no se encuentre ya reportado. • Aunque el incidente no se pueda reproducir, reportarlo. • Siempre que valga la pena adjuntar captura de pantalla. • Reportar el incidente apenas es detectado. • No hay que subestimar la importancia de reportar correctamente. Un incidente bien reportado es fácil de entender y reproducir. Lineamientos
  • 19. ¿Preguntas? Regresión: “Cuando arreglas un bug, introduces muchos nuevos.”

Notas del editor

  1. Solo registro de incidencias. Sin definición de Casos de Prueba.
  2. Un axioma es una proposición que se considera evidente y se acepta sin requerir demostración previa. Edsger Wybe Dijkstra fue un científico de la computación de los Países Bajos.
  3. Nota: Los tests de regresión no se ejecutan únicamente cuando se agrega nueva funcionalidad. También pueden ser cuando se modifique otra ya existente. El concepto, es simplemente, asegurarse de que lo que ya se desarrollo siga funcionando
  4. Input: Es lo como se llama al cuadro de entrada de texto.
  5. Abierto: El tester encuentra un bug y lo reporta. En progreso: El bug ha sido asignado a un desarrollador, y se encuentra en proceso de corrección. Resuelto: El desarrollador ha resuelto el problema en el ambiente de desarrollo. No pudo reproducir: El desarrollador no pudo reproducir el bug. Es trabajo del tester verificar que el error siga pasando y agregar información para que el desarrollador pueda reproducirlo y corregirlo. No es bug: El desarrollador cree que el defecto reportado no es un bug, y el mismo lo comenta con el líder, quien está de a cuerdo. Éste estado está acompañado de una descripción con los motivos. En caso de que el tester no está de acuerdo con el motivo del desarrollador, y cree que realmente es un defecto, puede poner el bug en el estado “Reabierto”. Ante conflictos es el líder quien decide. En Testing: El líder cambiara el estado a “En testing” una vez que se realice un nuevo pasaje a Testing. El tester ya puede verificar la corrección del bug. Anulado:  Si el bug fue mal cargado o está duplicado, se pasa a éste estado. Reabierto: Si al verificar una corrección el bug se sigue produciendo, se debe cambiar su estado actual a éste.  Cerrado: Una vez el tester ha verificado que el bug fue corregido y el mismo ya no ocurre, pasa la incidencia a éste estado.