Aseguramiento de la Calidad: Proceso y Ejemplos de Darwoft

Darwoft
lunes, 15 de agosto de 2022

En Darwoft, cada proceso que tenemos implementado está creado para asegurar que desarrollemos el mejor producto con la más alta calidad. Nuestro proceso de aseguramiento de calidad es el ingrediente clave que nos permite cumplir con esta promesa cada vez.
¿Qué es la garantía de calidad?
La garantía de calidad (QA) es un método para prevenir errores y defectos en productos manufacturados y evitar problemas al entregar productos o servicios a los clientes. Hay una diferencia entre garantía de calidad y control de calidad, siendo este último un proceso por el cual las entidades revisan la calidad de todos los factores involucrados en la producción.
¿Cómo define Darwoft la calidad?
Un producto de calidad es aquel que cumple con los altos estándares de nuestro equipo. Establecemos estándares específicos para cada nuevo proyecto y luego medimos cada producto en función de esos estándares.
¿Cuál es el propósito y el resultado de nuestro proceso de QA?
Durante la QA, definimos cuál será el proceso que, en última instancia, ayudará al usuario final a percibir la alta calidad de este producto. Nuestro proceso de QA es cómo podemos asegurarnos de que entregamos el mejor producto con la mejor calidad.
¿Cómo es el proceso de QA de Darwoft?
En Darwoft, trabajamos en sprints de dos semanas mientras desarrollamos un producto, y aplicamos nuestro proceso de QA a cada sprint para que siempre podamos entregar un producto que se pueda enviar al final de cada sprint.
Hay cuatro pasos en nuestro proceso de QA:
Plan de Pruebas: Determinar los diversos elementos que necesitamos probar, incluyendo cómo los probamos, quién es responsable de las pruebas y qué tipo de pruebas utilizaremos.
Diseño: Crear los diferentes escenarios o casos de prueba que necesitamos probar.
Ejecutar: Ejecutar los casos de prueba diseñados en el paso anterior, ya sea manual o automáticamente. (Más sobre los beneficios de la prueba automatizada a continuación.)
Informe: Informar sobre la calidad actual del producto, incluyendo dónde se encuentran las áreas problemáticas actuales.
¿Por qué usamos la ejecución de pruebas automatizadas?
Las pruebas automatizadas tienen muchos beneficios. Nos permiten obtener una pequeña visión de la calidad y el estado de la aplicación mientras se integra dentro del proceso existente para entregar esa aplicación. Nuestro sistema nos permite cargar una aplicación a un entorno y automatizar todo el proceso y las pruebas desde allí. Podemos medir la calidad de la aplicación entre diferentes entornos y entre diferentes etapas del proceso de una manera que no es posible con la ejecución manual.
¿Cómo creamos la arquitectura detrás de las pruebas automatizadas?
Basado en las necesidades específicas de cada producto, necesitamos encontrar la herramienta adecuada que sea la más eficiente. Nuestro equipo desarrolla y utiliza diseños de paquetes con varias herramientas posibles que se pueden aplicar para facilitar y hacer más eficiente el proceso de automatización. Por ejemplo, la creación de informes y las API de registro pueden estar ya integradas en un diseño de paquete para que se puedan ejecutar automáticamente sin necesidad de trabajo manual adicional por parte de nuestros desarrolladores.
Profundicemos en cada paso del proceso de QA:
1. Creando un Plan de Pruebas
Cómo vamos a medir la calidad para definir cómo y qué mediremos con el fin de determinar si estamos entregando un producto de alta calidad. Usamos ciertos indicadores para medir la calidad, y estos indicadores se diseñan cuando creamos nuestro plan de pruebas. Estos indicadores incluyen tanto un porcentaje de Cobertura de Requisitos como un porcentaje de Cobertura de Ejecución de Pruebas.
El porcentaje de Cobertura de Requisitos analiza el número total de funcionalidades del backlog (una lista ideal de funcionalidades que se incluirán en el producto) en comparación con el número total que realmente se ha incluido en el producto. Por ejemplo, podemos determinar que “La calidad significa que vamos a cubrir el 90% del número total de requisitos.” Esto significa que si hay 10 funcionalidades deseadas, necesitamos cubrir al menos nueve para considerar esto un producto de alta calidad.
La Cobertura de Ejecución de Pruebas se refiere al número de casos de prueba ya ejecutados en comparación con el número total de casos de prueba a ejecutar. Por ejemplo, podríamos considerar un producto de calidad aquel que cubra el 70% del total de casos de prueba a ejecutar.
Es importante señalar que estos porcentajes no son fijos. Más bien, definimos nuevos estándares para cada producto en función de las necesidades específicas de ese cliente y proyecto. Un proyecto de prueba de concepto, por ejemplo, no necesita cumplir con el mismo nivel de estándares que un producto final que se pueda enviar.
El objetivo clave del plan de pruebas es definir cómo al final de nuestro proceso vamos a medir la calidad del producto y asegurarnos de que todo el equipo esté de acuerdo.
2. Diseñando los Casos de Prueba
El equipo de QA comienza a trabajar en el diseño de los casos de prueba en paralelo con los desarrolladores que trabajan en la construcción de características. Cada caso de prueba estará vinculado a una historia de usuario específica.
Siempre probamos contra un Camino Feliz, lo que significa que todo va bien para el usuario. Esta es la experiencia ideal del usuario dentro de la aplicación. Además, probamos contra múltiples Casos de Falla, en los cuales las cosas van mal. Estas son experiencias de usuario inadecuadas. Los Casos de Falla son los escenarios más importantes para probar porque necesitamos explorar y abordar todas las posibles alternativas a un Camino Feliz.
Al final de este paso, nuestro equipo tendrá una Lista de Casos de Prueba para guiar el proceso de ejecución en el siguiente paso. La Lista de Casos de Prueba incluye campos para la prioridad y el creador de cada prueba.
3. Ejecutando Pruebas
Cuando ejecutamos una prueba, tenemos dos opciones para llevarla a cabo: manualmente o automáticamente. La ejecución manual es muy directa, en la que vamos a una página, ejecutamos la prueba y comparamos las pruebas. La ejecución automatizada implica desarrollar los casos de prueba y programarlos para que se ejecuten automáticamente en segundo plano.
Comenzamos con un número determinado de casos de prueba que fueron creados durante la fase de Diseño, pero esta no es la lista final de casos de prueba que vamos a ejecutar. En su lugar, a medida que se agregan más historias de usuario o funciones, agregamos nuevos casos de prueba. La ejecución automatizada nos permite agregar más casos de prueba de manera eficiente, sin agregar una cantidad exorbitante de tiempo y trabajo para nuestro equipo. El proceso de pruebas automatizadas de Darwoft es una de nuestras mejores prácticas para garantizar calidad y entregar un producto a tiempo.
Nuestro proceso de prueba automatizada incluye tres etapas:
Análisis del Plan de Pruebas
Desarrollo de Pruebas Automatizadas
Ejecución de Pruebas Automatizadas
Con el Análisis del Plan de Pruebas, nuestro equipo diseña todo el proceso automatizado. Tomamos Suites de Pruebas como entrada y generamos pruebas automáticas de Smoke y Regresión como salida con sus informes. Las pruebas de Smoke son uno de nuestros grupos más esenciales de casos de prueba, y aseguran que la aplicación no se rompa cuando se usa. Tanto las pruebas de Smoke como las de Regresión se ejecutan en el entorno inferior, es decir, en el entorno de desarrollo o en un entorno de integración.
La estrategia de pruebas automatizadas se basa en el Patrón de Modelo de Objetos de Página, que comienza a desarrollarse en la etapa temprana del proceso de QA para obtener un entorno mantenible para comenzar a escribir pruebas automatizadas.
Para nuestro Desarrollo de Pruebas Automatizadas, nuestro equipo utiliza un entorno preparado para nuestras pruebas. Utilizamos Cypress para nuestros scripts de automatización, y generamos informes en consecuencia. Cypress es un marco de pruebas de extremo a extremo para la automatización de pruebas web. Permite a nuestros desarrolladores front-end y a los ingenieros de automatización de pruebas escribir pruebas automatizadas para la web en JavaScript, el lenguaje principal utilizado para desarrollar sitios web.
El proceso de desarrollo de pruebas automatizadas incluye:
Definir los entornos para las pruebas automatizadas
Diseño de Objetos de Página de acuerdo con el diseño del software
Traducir los casos de prueba en pasos de JavaScript a través de Cypress para usar Objetos de Página
Para comenzar la Ejecución de Pruebas Automatizadas, se ejecutan todas las pruebas manuales convertidas a automatización con el fin de obtener un resultado del sistema liberado. Esto nos permite obtener errores de manera más rápida y eficiente o repetir las pruebas y hacer todo el proceso más confiable y medible.
Este proceso genera un informe que proporciona información sobre la ejecución en sí, el entorno, el tipo de prueba y todas las fallas.
Consideramos que los Informes de Pruebas son una de las mayores ventajas de las pruebas automatizadas. Nuestro equipo puede recuperar información sobre cada ejecución, entorno y parámetros de prueba, y luego hacer un análisis inmediato del estado general del software después de una prueba de Regresión automatizada.
Los Informes de Pruebas incluyen una gran cantidad de información valiosa:
Pruebas Ejecutadas
Pruebas Aprobadas
Pruebas Fallidas/Total de Pruebas
Estadísticas por pruebas y por suite
Datos del entorno
Además, tenemos el Panel de Control de Cypress para guardar registros de las pruebas, con detalle completo de las ejecuciones, integrado en GitHub y plataformas CI.
A lo largo del proceso de ejecución de pruebas automatizadas, dividimos las pruebas con la intención de cubrir el mayor número posible de pruebas de la aplicación. Hacemos esto integrando casos de prueba en nuestro proceso de integración continua. Esto significa que cada vez que un desarrollador integra nuevo código, un conjunto de casos de prueba se ejecuta automáticamente, informando al desarrollador si el nuevo código está rompiendo algo o no. Además, se realizan pruebas diarias para garantizar un ciclo de pruebas regular incluso si no se ha subido nuevo código.
4. Informando sobre la Calidad
Nos esforzamos por mantener un alto nivel de calidad para nuestros productos en Darwoft. Esto significa entregar productos sin problemas críticos. Utilizamos nuestro sistema de informes para informar sobre problemas descubiertos durante las pruebas, y no lanzamos un producto hasta que nuestros informes muestren que el producto ha cumplido con todos nuestros estándares de calidad.
Nuestro panel de control de QA incluye varios informes con información sobre cómo el producto está funcionando frente a diferentes indicadores de calidad, brindando a nuestro equipo y a nuestros clientes una instantánea del estado actual del producto. Estos informes incluyen:
Lista de Casos de Prueba: incluye una clave y resumen, ranking de prioridad, nombre del creador, fecha de creación y estado. Este informe ayuda a medir el número de casos de prueba diseñados por nuestro analista de garantía de calidad.
Informe de Progreso de Ejecución de Pruebas: muestra el número de casos de prueba que han pasado nuestros estándares y ayuda a medir la cobertura de ejecución de pruebas.
Informe de Errores: informa sobre un caso de prueba fallido y ayuda a medir el porcentaje de errores por estado, el porcentaje de errores por severidad y el porcentaje de errores críticos o de mayor severidad. Los errores de mayor severidad son aquellos que realmente están causando que el producto se caiga. Este informe indica cuán cerca estamos de entregar un producto. Nuevamente, no lanzamos un producto si tiene problemas críticos.
Informe de Trazabilidad: mide la cobertura de requisitos y la cobertura de casos de prueba por historia de usuario. Este informe nos indica si estamos cubriendo todos los escenarios y casos de prueba para una historia de usuario.
Informe de Cobertura de Automatización: ayuda a medir la cobertura de pruebas automatizadas. Proporcionamos este informe porque cada vez más de nuestros clientes quieren tener casos de prueba automatizados para incluir todo en su máquina de integración continua. El proceso automatizado significa que cada vez que nuestros clientes integran nuevo código, se ejecuta una prueba automáticamente para asegurarse de que todo sigue funcionando correctamente.
Resumen de Pruebas para Clientes: proporciona toda la información sobre un lanzamiento próximo, incluyendo la lista de casos de prueba.
El proceso de QA de Darwoft nos ayuda a asegurarnos de que siempre entregamos el producto de la más alta calidad posible. Establecemos estándares increíblemente altos para nuestro equipo y nuestros productos, y no lanzamos un nuevo producto hasta que ha cumplido con estos estándares. La garantía de calidad hace posible que podamos garantizar el rendimiento y entregar productos que escalen. Por eso nuestros clientes nos ven como un socio confiable para llevar sus ideas al mercado una y otra vez.
