viernes, 8 de noviembre de 2019

Aseguramiento de la Calidad - Casos de Uso

El aseguramiento de la calidad es uno de los temas más importantes para las organizaciones que se dedican al desarrollo de software y como tal es una actividad que muchas veces no se le presta la importancia necesaria trayendo resultados devastadores al momento de poner en producción un software en alguna organización.
Para ello, en el presente blog se va a desarrollar el proceso de ciclo de vida del aseguramiento de la calidad mediante el uso de casos de uso y pruebas de calidad a través del software SoapUI.

Casos de uso

A continuación, se muestran dos casos de uso correspondientes a funcionalidades una basada en la creación, modificación, eliminación y consulta de playlist de Youtube, además de un caso de uso acerca del registro de pedidos desde un sistema.


- Playlist Youtube


Caso de uso CRUD Playlist Youtube                                                                CU-001
Prioridad
Must
Actor Principal
Encargado de Marketing
Interesados
Encargado de Marketing
Precondiciones
  • El usuario debe iniciar sesión en la plataforma de YouTube
  • Los videos que se deseen agregar a la playlist deben encontrarse cargados en la plataforma de YouTube
Pos condiciones
CRUD de playlist YouTube
Escenario principal crear playlist
Acción de los actores
Respuesta del sistema
1) El encargado ingresa a la sección de mercadeo  del sistema

2) El encargado elige el nombre y otros datos opciones (descripción, nivel de privacidad y tags) que será asignado a la playlist para mercadeo.






3) El sistema consulta la API de YouTube para validar los datos ingresados por el usuario.

4) El sistema crea la playlist con los datos ingresados por el usuario.
Flujo alterno: 
3a. El API de YouTube no logra validar los videos seleccionados por el usuario
   3.a.1. El sistema envía un mensaje de error al usuario
   .a.2. Se vuelve al punto 1
Escenario alterno Consultar playlist
Acción de los actores
Respuesta del sistema
1) El encargado ingresa a la sección de mercadeo  del sistema

2) El encargado elige la playlist que desea visualizar.                                                                                   






3) El sistema consulta la API de YouTube para encontrar las playlist creadas por el usuario.

4) El sistema muestra la playlist seleccionada por el usuario.
Flujo alterno: 
3.a. El API de YouTube no logra encontrar la playlist seleccionada
 por el usuario
Escenario alterno Modificar playlist
Acción de los actores
Respuesta del sistema
1) El encargado ingresa a la sección de mercadeo  del sistema

2) El encargado elige la playlist que desea modificar.   

3) El usuario selecciona e ingresa los datos que desea cambiar de la playlist                                                                               



6)El usuario acepta la alerta enviada por el sistema







4) El sistema consulta la API de YouTube para realizar los cambios indicados por el usuario

5) El sistema envía una alerta de confirmación de la modificación




7) Se realiza la modificación.
Flujo alterno:
3a. El API de YouTube no permite la modificación de la playlist
   3.a.1. El sistema envía un mensaje de error al usuario
   .a.2. Se vuelve al punto 1
Escenario alterno eliminar playlist
Acción de los actores
Respuesta del sistema
1) El encargado ingresa a la sección de mercadeo  del sistema

2) El encargado elige la playlist que desea eliminar.   








3) El sistema consulta la API de YouTube para encontrar las playlist indicada por el usuario.

4) El sistema por medio de la API de YouTube elimina la playlist indicada por el usuario





- Realizar pedido




Caso de uso Realizar pedido                                                                              CU-002
Prioridad
Must
Actor Principal
Encargado de registrar pedidos
Interesados
Encargado de registrar pedidos
Precondiciones
  • El usuario debe tener la sesión iniciada
  • El proveedor debe estar registrado en el sistema.
Pos condiciones
Pedido realizado
Escenario principal
Acción de los actores
Respuesta del sistema
1) El encargado elige la opción de realizar un pedido del módulo “compras e inventario”.

3) El encargado selecciona uno de los  proveedores de la lista mostrada.


5) El encargado ingresa los datos solicitados del producto (identificador, descripción, fecha prevista, cantidad, unidad de medida del producto, precio unitario, impuestos, subtotal)



8) El encargado confirma el  envío del correo.


*Los pasos 4 al 6 se repiten hasta que el encargado decida terminar.
2) El sistema muestra en una ventana la lista de proveedores registrados.


4) El sistema solicita los datos del producto (identificador, descripción, fecha prevista, cantidad, unidad de medida del producto, precio unitario, impuestos, subtotal)

6) El sistema verifica que los datos sean correctos




7) El sistema consulta al usuario si desea enviar correo al proveedor


9) El sistema notifica que se realizó el pedido con éxito.

Flujo alterno
7.a Los datos no se llenaron o son incorrectos
         7.a.1 El sistema notifica que los datos son incorrectos o incompletos
         7.a.2 Se vuelve al flujo 2

Aseguramiento de la calidad - Estrategia para desarrollar un plan de pruebas

En esta sección se explica con detalle el desarrollo de un Plan de Pruebas. Este blog incluye el desarrollo del documento del plan y en otra de sus entradas puede consultarse la implementación del mismo



El plan de pruebas es una herramienta utilizada para la validación de los requerimientos del usuario del sistema. A continuación, se detalla el plan de pruebas desarrollado para la validación de los casos de uso definidos por el equipo. Cabe recalcar que la estructura de esta estrategia es basada en las practicas propuestas por el Instituto Profesional CIISA.

  1. Introducción

Proyecto
Tipo de proyecto
Software Empresarial
Desarrollo de software
Documentos relacionados
  • Caso de uso CRUD playlist youtube 
  • Caso de uso realizar pedido


1.1 Propósito 


El propósito de este documento es realizar una revisión detallada de los requerimientos del usuario, específicamente los casos de uso de realizar pedidos y CRUD playlist youtube. Definir las métricas y herramientas por las cuales se validarán las funcionalidades y entregar un software que cumpla las necesidades de los interesados. A continuación, se detalla la información general de los requerimientos que se analizarán en este documento de plan de pruebas:

Código
Descripción
Interesado
CU-001
Caso de uso CRUD playlist youtube
Encargado de Marketing
CU-002
Caso de uso Realizar pedido
Encargado de registrar pedidos


  1. Plan de pruebas

2.1 Características que se probarán

A continuación, se detallan las características del software que se validarán con el plan de pruebas y los responsables de ejecutarlas:
Tipo de prueba
Detalle
Etapa 
Responsable
Pruebas de caja blanca
Ejecución de pruebas unitarias y pruebas de integración
Desarrollo
Code Review
Pruebas de rendimiento
Pruebas de carga
Pruebas de estrés
Pruebas de estabilidad
Pruebas
QA
Pruebas Funcionales
Establecer casos de uso mediante técnicas de estimación y especificación
Pruebas de funcionalidad del API
Pruebas
QA
Pruebas de aceptación
Pruebas basadas en la expertis del usuario, en el uso cotidiano del software
Pruebas
Usuario dueño del proceso

2.2 Criterios de aprobación

Para estos casos de uso, se van a probar las siguientes funcionalidades:
CU-001  Caso de uso CRUD playlist youtube
Funcionalidad
Prueba
Create
Verificar que el API de YouTube permita la creación de playlist de videos
Read
Verificar que el API de YouTube permita la consulta de playlist de videos
Update
Verificar que el API de YouTube permita la modificación de la playlist de videos
Delete
Verificar que el API de YouTube permita eliminar playlist de videos


2.3 Requerimientos para el desarrollo de las pruebas

Ambiente de Desarrollo
Este es el ambiente en el que se desarrolla el sistema, una vez que se finaliza dicho desarrollo, se procede a pasar de ambiente de acuerdo a los criterios y pruebas definidas con anterioridad.
Ambiente de Pruebas
Este es el ambiente diseñado para realizar todas las pruebas relacionadas al desempeño del software y casos de pruebas definidos con usuarios finales y dueños del desarrollo.
Metodología y procedimientos de prueba
La metodología seleccionada para los casos de uso es agile testing, la cual sigue los principios de desarrollo ágil, donde se involucra a todos los miembros del equipo. En este caso,  dicha aplicación se va a basar principalmente en realizar pruebas durante el desarrollo, sin esperar finalizar la solucion por completo.
  1. Casos de Prueba
En esta sección se incluyen aspectos relacionados a la estimación de las pruebas que se van a realizar sobre el sistema. A continuación, se presenta una tabla que contiene cada uno de los casos de prueba tomados en cuenta de acuerdo a los casos de uso seleccionados.

CU-001  Caso de uso Caso de uso CRUD playlist youtube

En esta sección se detallan los casos de prueba para el caso de uso CRUD playlist youtube



CP001
Crear playlist
Caso de uso relacionado
CU-001  Caso de uso CRUD playlist youtube 
Tipo de prueba
Funcional
Descripción del caso de prueba
Verificar que cuando se solicite la creación de una playlist entonces el API de youtube responda correctamente la solicitud mediante un archivo JSON
Especificación de entrada
  • Nombre de la playlist
Especificación de salida
JSON de respuesta de la creación de la playlist
Instrucciones
  • Identificar la funcionalidad del API que realiza la creación del playlist.
  • Desarrollar el script para probar la funcionalidad del API 
  • Ingresar los valores requeridos para verificar 
  • Ejecutar el script de verificación 
Necesidades externas
  • Sesión iniciada en la plataforma YouTube
  • Contar con el acces token
  • recurso /yputube/v3/playlist (part, snipped)


CP002
Consultar playlist
Caso de uso relacionado
CU-001  Caso de uso CRUD playlist youtube 
Tipo de prueba
Funcional
Descripción del caso de prueba
Verificar que cuando se solicite la consulta de una playlist entonces el API de youtube responda correctamente la solicitud mediante un archivo JSON.
Especificación de entrada
  • Atributo part y id del recurso creado en “crear playlist”
Especificación de salida
JSON de respuesta de la playlist consultada
Instrucciones
  • Identificar la funcionalidad del API que realiza la consulta del playlist.
  • Desarrollar el script para probar la funcionalidad del API 
  • Ingresar los valores requeridos para verificar 
  • Ejecutar el script de verificación 
Necesidades externas
  • Sesión iniciada en la plataforma YouTube
  • Contar con el acces token
  • recurso /yputube/v3/playlist (part, snipped)
  • Atributo part y id del recurso




CP003
Modificar playlist
Caso de uso relacionado
CU-001  Caso de uso CRUD playlist youtube 
Tipo de prueba
Funcional
Descripción del caso de prueba
Verificar que cuando se solicite la modificación de una playlist entonces el API de youtube responda correctamente la solicitud mediante un archivo JSON.
Especificación de entrada
  • Atributo id del recurso creado en “crear playlist”
  • Propiedades del snippet
  • Atributos a modificar
Especificación de salida
JSON de respuesta de la playlist modificada
Instrucciones
  • Identificar la funcionalidad del API que realiza la consulta del playlist.
  • Desarrollar el script para probar la funcionalidad del API 
  • Ingresar los valores requeridos para verificar 
  • Ejecutar el script de verificación 
Necesidades externas
  • Sesión iniciada en la plataforma YouTube
  • Contar con el acces token
  • recurso /yputube/v3/playlist (part, snipped)
  • Conocer los atributos a modificar


CP004
Borrar playlist
Caso de uso relacionado
CU-001  Caso de uso CRUD playlist youtube 
Tipo de prueba
Funcional
Descripción del caso de prueba
Verificar que cuando se solicite la eliminación de una playlist entonces el API de youtube responda correctamente la solicitud  mediante un archivo JSON.
Especificación de entrada
  • Atributo id del recurso creado en “crear playlist”
Especificación de salida
JSON de respuesta de la playlist eliminada
Instrucciones
  • Identificar la funcionalidad del API que realiza la consulta del playlist.
  • Desarrollar el script para probar la funcionalidad del API 
  • Ingresar los valores requeridos para verificar 
  • Ejecutar el script de verificación 
Necesidades externas
  • Sesión iniciada en la plataforma YouTube
  • Contar con el acces token
  • recurso /yputube/v3/playlist (part, snipped)


CU-002  Caso de uso Realizar Pedido


En esta sección se detallan los casos de prueba para el caso de uso realizar pedido





CP001
Realizar Pedido
Caso de uso relacionado
CU-002  Caso de uso Realizar Pedido 
Tipo de prueba
Funcional
Descripción del caso de prueba
Verificar que cuando se realiza el pedido del encargado entonces se pueda validar su creación al realizar la consulta del pedido en el sistema.
Especificación de entrada
  • Datos del producto (identificador, descripción, fecha prevista, cantidad, unidad de medida del producto, precio unitario, impuestos, subtotal).
Especificación de salida
Registro del pedido realizado.
Instrucciones
  1. Ingresar al software empresarial.
  2. Iniciar sesión como usuario encargado de recursos humanos.
  3. Ir al módulo “compras e inventario”.
  4. Seleccionar al proveedor correspondiente para el pedido de la lista.
  5. Ingresar los datos del pedido.
  6. Presionar el botón de “realizar pedido”.
Necesidades externas
  • Datos de prueba para pedido.
  • Habilitar el rol de encargado de recursos humanos para el usuario de pruebas.

CP002
Validación de campos de texto
Caso de uso relacionado
CU-002  Caso de uso Realizar Pedido 
Tipo de prueba
Funcional
Descripción del caso de prueba
Verificar que cuando se ingresen los campos de texto entonces el sistema valide el contenido de los mismo según el archivo de validaciones generales.
Especificación de entrada
  • Datos del producto (identificador, descripción, fecha prevista, cantidad, unidad de medida del producto, precio unitario, impuestos, subtotal).
  • Archivo de validaciones generales.
Especificación de salida
  • Mensajes de alerta para validación del texto ingresado.
  • Campos de texto validados.
Instrucciones
  1. Ingresar al software empresarial.
  2. Iniciar sesión como usuario encargado de recursos humanos.
  3. Ir al módulo “compras e inventario”
  4. Ingresar los datos del producto de manera incorrecta.
    1. El sistema envía alerta de error.
  5. Corregir los datos del producto.
  6. Presionar el botón de “realizar pedido”.
Necesidades externas
  • Acceso al archivo de validaciones generales para conocer las validaciones de los datos a ingresar en el sistema.
  • Datos de prueba para el pedido.
  • Habilitar rol de encargado de recursos humanos para el usuario. de pruebas

CP003
Envío de correo
Caso de uso relacionado
CU-002  Caso de uso Realizar Pedido 
Tipo de prueba
Funcional
Descripción del caso de prueba
Verificar que cuando se envíe el correo de confirmación este sea recibido por el proveedor.
Especificación de entrada
  • Correo con los datos del producto (identificador, descripción, fecha prevista, cantidad, unidad de medida del producto, precio unitario, impuestos, subtotal).
Especificación de salida
  • Mensajes de confirmación para enviar el correo.
Instrucciones
  1. Ingresar al software empresarial.
  2. Iniciar sesión como usuario encargado de recursos humanos.
  3. Ir al módulo “compras e inventario”.
  4. Ingresar los datos del producto de manera correcta.
  5. El sistema consulta si desea enviar el correo.
    1. El encargado rechaza el envío de correo.
  6. El sistema envía alerta de pedido no realizado.
  7. Confirmar correo de envío.
  8. El sistema notifica que se envío correctamente creando el pedido.
Necesidades externas
  • Datos de prueba para el envió de correo del pedido.
  • Habilitar rol de encargado de recursos humanos para el usuario de pruebas.
CP004
Pruebas Rendimiento
Caso de uso relacionado
CU-002  Caso de uso Realizar Pedido 
Tipo de prueba
Rendimiento-Carga
Descripción del caso de prueba
Verificar que el sistema soporte 100 registros de pedido por hora de manera concurrente para 5 usuarios, con un tiempo de respuesta no superior a 2 segundos.
Especificación de entrada
  • Datos del producto (identificador, descripción, fecha prevista, cantidad, unidad de medida del producto, precio unitario, impuestos, subtotal).
Especificación de salida
Mensaje de confirmación para enviar el correo.
Instrucciones
  1. Crear el script de automatización de la prueba.
  2. Ejecutar el script.
  3. Realizar el análisis de los resultados.
Necesidades externas
  • Datos de prueba para los diferentes pedidos.
  • Datos de acceso para los diferentes usuarios.
  • Habilitar rol de encargado de recursos humanos para el usuario.
Tipo de prueba
Rendimiento-Estrés
Descripción del caso de prueba
Verificar la carga total que soporta el sistema por encima de los límites establecidos en la prueba de carga.
Especificación de entrada
  • Datos del producto (identificador, descripción, fecha prevista, cantidad, unidad de medida del producto, precio unitario, impuestos, subtotal).
Especificación de salida
Mensaje de confirmación para enviar el correo.
Instrucciones
  1. Crear el script de automatización de la prueba.
  2. Ejecutar el script sobrepasando en diferentes fechas para validar el comportamiento del sistema.
  3. Realizar el análisis de los tiempos de respuesta obtenidos.
Necesidades externas
  • Datos de prueba para los diferentes pedidos.
  • Datos de acceso para los diferentes usuarios.
  • Habilitar rol de encargado de recursos humanos para el usuario.
Tipo de prueba
Rendimiento-Estabilidad
Descripción del caso de prueba
Verificar que la funcionalidad del sistema trabaje sin interrupciones 24/7.
Especificación de entrada
  • Datos del producto (identificador, descripción, fecha prevista, cantidad, unidad de medida del producto, precio unitario, impuestos, subtotal).
Especificación de salida
Mensaje de confirmación para enviar el correo.
Instrucciones
  1. Crear el script de automatización de la prueba.
  2. Ejecutar el script sobrepasando en diferentes fechas para validar el comportamiento del sistema.
  3. Realizar el análisis de los tiempos de respuesta obtenidos.
Necesidades externas
  • Datos de prueba para los diferentes pedidos.
  • Datos de acceso para los diferentes usuarios.
  • Habilitar rol de encargado de recursos humanos para el usuario.
Referencias bibliográficas

  1. https://jmpovedar.files.wordpress.com/2014/03/ejemplo-plan-de-pruebas.pdf