Garantiza la ejecución de los distintos niveles de pruebas del o los sistemas a probar.
En el caso del servicio que ofrece CasandraSoft los especialistas diseñan los casos de prueba y definen un Plan de Pruebas para liberar el producto de software según los criterios y atributos de calidad definidos (requeridos por el cliente y recomendados por nuestros especialistas en calidad).
Se utilizan técnicas y normas internacionales recomendadas así como la automatización de pruebas en los primeros niveles de prueba. Para solicitar información sobre nuestros servicios Contáctenos.
El término QA se refiere a Quality Assurance, es decir al aseguramiento de la calidad. Esto puede ser aplicado a productos y servicios que sean manufacturados o prestados. Sin embargo un aseguramiento de la calidad va más allá de una supervisión de procesos como se pudiera pensar.
Las pruebas de software (en inglés software testing) son las investigaciones empíricas y técnicas cuyo objetivo es proporcionar información objetiva e independiente sobre la calidad del producto a la parte interesada o stakeholder. Existen distintos modelos de desarrollo de software, así como modelos de pruebas.
QA Tester (Quality Assurance) es un asegurador de la calidad. Es un perfil profesional orientado principalmente a la medición de la calidad de los procesos utilizados para crear un producto de calidad y del producto en sí (software en nuestro caso), todas ellas encaminadas a la prevención de errores durante el proceso de desarrollo del producto y a la detección posterior al desarrollo del producto.
Uno de los objetivos de la fase de pruebas del sistema es verificar que el comportamiento externo del sistema software satisface los requisitos establecidos por los clientes y futuros usuarios del mismo.
Utilizamos dos modelos de prueba fundamentales. Para contratar este servicio usted debe especificar el (los) modelo (s) que desea contratar y en dependencia de su elección será el coste, el tiempo, los especialistas asignados y la metodología de trabajo. El proceso en sí se basa en una adaptación del estándard ISO/IEC 25000 (SquaRE). Es usado como base metodológica para la evaluación del producto software. En sus diferentes etapas, establece un marco de trabajo para evaluar la calidad de los productos de software proporcionando, además, métricas y requisitos para los procesos de evaluación de los mismos.
En este modelo nuestros especialistas pasan a formar parte de su equipo de desarrollo aunque sea de forma remota. Desde el comienzo de su proyecto se asigna el o los especialistas dependiendo de la magnitud del proyecto. Deben estar al tanto del análisis, diseño y desarrollo del proyecto y pueden ser citados a participar (de no ser posible de forma presencial por videoconferencia) en las reuniones del proyecto donde se traten temas de impacto para el proceso de pruebas.
Como parte de este modelo, a partir del momento en que se comiencen a levantar los primeros requisitos el Tester QA comenzará a diseñar e instalar todo el entorno de pruebas promoviendo la automatización para las pruebas unitarias de los desarrolladores, la integración continua y la automatización de pruebas funcionales, de carga y estrés.
Luego de la especificación detallada de los requisitos se encargará de diseñar los casos de prueba funcionales o de aceptación dependiendo de la metodología de desarrollo. Al finalizar entregas, sprint, iteraciones se ejecutarán estas pruebas manuales como filtro final a nivel funcional. En las últimas fases se procederá a diseñar los casos de pruebas no funcionales y a ejecutarlos.
En este modelo se garantiza la prevención de gran cantidad de errores así como la detección y corrección de incidencias durante el desarrollo, pero no constituye un certificado o evaluación de calidad final.
Este modelo se basa en definir un conjunto de niveles y tipos de prueba para validar el producto o software entregable cumpla con los criterios de calidad definidos en una norma o estándar.
Tenemos tres evaluaciones incluidas en el servicio basado en este modelo:
Son aquellas ejecutadas por el tester de forma manual siguiendo un caso de prueba previamente diseñado y documentando las incidencias detectadas.
Son aquellas ejecutadas por una herramienta para pruebas automáticas que usualmente se encargan además de registrar las incidencias detectadas y brindar reportes de ejecución.
Javier Garzás en su blog nos ayuda a decidir cuándo usar cada tipo de prueba y aquí les dejo una imagen orientativa al respecto:
Las pruebas de caja blanca (también conocidas como pruebas de caja de cristal o pruebas estructurales) se centran en los detalles procedimentales del software, por lo que su diseño está fuertemente ligado al código fuente. El ingeniero de pruebas escoge distintos valores de entrada para examinar cada uno de los posibles flujos de ejecución del programa y cerciorarse de que se devuelven los valores de salida adecuados (Más en Wikipedia).
En pruebas de software, conociendo una función específica para la que fue diseñado el producto, se pueden diseñar pruebas que demuestren que dicha función está bien realizada. Dichas pruebas son llevadas a cabo sobre la interfaz del software, es decir, de la función, actuando sobre ella como una caja negra, proporcionando unas entradas y estudiando las salidas para ver si concuerdan con las esperadas (Más en Wikipedia).
Podemos considerar el proceso de pruebas funcionales como un proceso donde se va probando inicialmente lo de más bajo nivel y se van integrando y probando paulatinamente componentes hasta lograr un sistema completo totalmente probado. Por eso se dice que hay distintos niveles de prueba. Se empieza por las pruebas unitarias, luego las pruebas de Integración, luego las de pruebas de sistema, las de humo, las alpha, las beta y finalmente las de aceptación.
Las pruebas de regresión se puede considerar como la ejecución (normalmente automática) de las pruebas ya realizadas hasta el momento.
Una prueba funcional es una prueba basada en la ejecución, revisión y retroalimentación de las funcionalidades previamente diseñadas para el software (requisitos funcionales). Hay distintos tipos como por ejemplo:
Una prueba no funcional es una prueba cuyo objetivo es la verificación de un requisito que especifica criterios que pueden usarse para juzgar la operación de un sistema (requisitos no funcionales) como por ejemplo la disponibilidad, accesibilidad, usabilidad, mantenibilidad, seguridad, rendimiento. Podemos clasificar las pruebas no funcionales según el tipo de requisito no funcional que abarcan:
En resumen, el testing QA es un proceso crítico para garantizar la calidad del software y es esencial para garantizar el éxito de cualquier proyecto de software.