En la actualidad existe una gran cantidad de empresas y freelancer dedicados al desarrollo del software. Esto genera una gran competencia, lo que exige que los productos tengan una mayor calidad cada día. Para lograr la calidad requerida en los programas, es necesario la realización de pruebas de software.
La prueba de software es el proceso de evaluar y verificar que un producto o aplicación de software hace lo que se supone que debe hacer.
La detección temprana de fallos críticos puede ahorrar tiempo y dinero a su empresa. Las pruebas de software se deben realizar desde el comienzo del proyecto hasta su terminación, en todas las fases de su desarrollo. Las pruebas pueden ser manuales o automáticas.
Existen muchos tipos de pruebas de software, en dependencia de lo que se desee evaluar y comprobar en cada momento.
Los tipos de pruebas de acuerdo a su objetivo, se clasifican en Pruebas Funcionales y Pruebas No Funcionales.
Las pruebas funcionales, a su vez, se clasifican en Pruebas de caja Negra, y Pruebas de caja Blanca.
Las pruebas de caja negra son aquellas que se realizan desde la interfaz del usuario. Valida el funcionamiento de la aplicación de acuerdo a los requisitos del sistema, teniendo en cuenta el conjunto de datos de entrada y el conjunto de datos de salida esperado.
Las pruebas de caja blanca comprueban el código y ayudan a ganar la mayor cobertura posible de las pruebas. Generalmente son realizadas por desarrolladores e ingenieros de software, pues se necesitan conocimientos técnicos para hacerlas.
Las pruebas unitarias se les hace a pequeñas partes del código. Es necesario dividir el sistema en pequeñas unidades, funcionalidades o módulos, para facilitar la verificación de cada funcionalidad de manera independiente. De esta forma es más fácil detectar problemas puntuales en cada unidad. Son las primeras pruebas que se realizan durante la fase de desarrollo del software. Verifican que el sistema funcione de acuerdo a lo establecido en el documento de Levantamiento de requisitos funcionales. Son ejecutadas por el equipo de desarrollo.
¿Qué ventajas tienen las pruebas unitarias?
Una aplicación de software está formada por diferentes submódulos que trabajan juntos para diferentes funcionalidades. La función de las pruebas de integración es verificar la integración de los diferentes componentes o módulos y detectar los errores y problemas relacionados con estos. Esta prueba se realiza después de las pruebas unitarias. En ocasiones una funcionalidad independiente funciona bien y cuando se integra con otra, generan algún error.
Las buenas prácticas de QA indican que estas pruebas a diferencia de las unitarias, que son realizadas por los desarrolladores, deben ser ejecutadas por equipos especializados en Aseguramiento de Calidad de Software.
¿Qué ventajas tienen las pruebas de integración?
Las pruebas de humo son pruebas que verifican la funcionalidad básica de una aplicación. Deben ser pruebas rápidas de ejecutar y tienen como objetivo afirmar que los procesos básicos del sistema funcionan como se espera.
Estas pruebas se deben realizar cuando sacamos una nueva versión del producto o software, para decidir si se ejecutarán otras pruebas más específicas. También es necesario realizarlas justo después de un proceso de deployment, para verificar que la aplicación está funcionando adecuadamente en el nuevo entorno desplegado.
Más detalles sobre los smoke tests:
Antes de comenzar a trabajar en el desarrollo del proyecto, el equipo de responsables del mismo debe definir, junto al cliente, los requisitos y criterios de aceptación del mismo. Durante el desarrollo de la misma pueden existir variaciones en esos criterios y deben quedar reflejados por escrito para su posterior evaluación.
Las pruebas de aceptación son pruebas formales, ejecutadas para verificar si un sistema satisface sus requerimientos de negocio.
Estas pruebas requieren que el sistema se encuentre en funcionamiento, y se centran en replicar el comportamiento de los usuarios, con la finalidad de rechazar cambios si no se cumplen los objetivos. Estos objetivos pueden ir más allá de obtener una respuesta específica, y medir el rendimiento del sistema.
Las pruebas de aceptación por lo general son varias pruebas manuales que se realizan luego de que una fase de desarrollo ha finalizado (de modo que se pueda volver rápidamente e iterar si algo no está correcto). Además, verifican que las características del software cumplen con todas las especificaciones iniciales y criterios de aceptación.
Las pruebas de regresión son aquellas que se les realizan a funcionalidades ya probadas y que funcionaban correctamente. Tienen el objetivo de verificar que una modificación en esa funcionalidad no generara un bug.
Este tipo de pruebas de regresión son las más utilizadas a medida que avanza un proyecto, pues se realizan para validar que las correcciones o modificaciones del código no hayan impactado negativamente las funcionalidades existentes del producto. De esta forma verifican que el producto continúa desempeñándose correctamente con las nuevas funcionalidades, arreglos de fallos o cualquier cambio en la función existente.
Por lo general, se recomienda que sean automatizadas para reducir tiempos y esfuerzo en su ejecución.
Las pruebas de rendimiento son un tipo de prueba no funcional, que se realiza para determinar la velocidad, estabilidad y escalabilidad de una aplicación de software. Como su nombre indica, el objetivo general de esta prueba es verificar el rendimiento de una aplicación contra los diferentes puntos de referencia del sistema y la red, como la utilización de la CPU, la velocidad de carga de la página, el manejo del tráfico máximo, la utilización de recursos del servidor, etc.
Las pruebas de carga, de resistencia, estrés, volumen, picos y escalabilidad son consideradas pruebas de rendimiento.
Con la realización de estas pruebas de software se pueden identificar los cuellos de botella para realizar mejoras de rendimiento. De esta forma podemos optimizar el sistema para así garantiza la fiabilidad del sitio web bajo una gran carga.
Antes de dar por terminado el proceso de desarrollo de un software es necesario comprobar cuánta tensión puede soportar antes de que se produzca algún error. Con ese obetivo, se envía mucha más información de lo habitual para comprobar en qué punto se satura el sistema. Por lo general, esas pruebas se realizan con herramientas especializadas en ello.
Las pruebas de seguridad de aplicaciones son un proceso de identificación, análisis y corrección de las vulnerabilidades de seguridad de una aplicación web. El proceso consiste en probar el código de la aplicación y su entorno para detectar fallos de seguridad y posibles vulnerabilidades. Una vez identificados, los problemas se abordan y solucionan.
Las pruebas de seguridad de las aplicaciones pueden realizarse manualmente o con herramientas automatizadas.
Son aquellas pruebas no funcionales que permiten determinar el grado de escalabilidad que tiene un sistema. Se entiende como escalable la capacidad que tiene el sistema para que, sin aplicar cambios drásticos en su configuración, pueda soportar el incremento de demanda en la operación.
Como hemos mencionado con anterioridad, las pruebas se pueden hacer de forma manual o automatizadas.
Las pruebas manuales son realizadas por personas, quienes a su vez pueden cometer un error y equivocarse u omitir algún paso de la misma. Además del tiempo que debe dedicar a preparar el entorno correcto para la prueba y a su vez a las pruebas.
Las pruebas automatizadas son realizadas ya sea por herramientas o programas específicos para cada tipo de prueba, en el caso de las pruebas no funcionales.
Para conocer más sobre las herramientas de automatización de pruebas puedes leer nuestro artículo
Herramientas de automatización de pruebas de software
Estas pruebas son más rápidas y confiables que las que se llevan a cabo manualmente. Sin embargo, la calidad de estas pruebas automatizadas depende de qué tan bien escritos se encuentren los “tests scripts” (código que determina qué es lo que se hará en la prueba).
La realización de pruebas durante todo el proceso de desarrollo de un software es de vital importancia para la optimización de los procesos del mismo y para garantizar su calidad. Cada sistema y grupos de trabajo tienen sus propias características, a los que deben ajustarse las pruebas en cada momento. Ya sean automáticas o manuales, lo fundamental es que se realicen con la calidad requerida y logren su objetivo, un sistema con alta calidad.
Evelyn Berezin fue una pionera en el mundo de la informática. Es considerada la creadora…
Cuando comencé a investigar sobre esta mujer nunca pensé que me resultarían tan divertidas sus…
Entre los sistemas de gestión de contenidos (CMS) más populares y usados de todo internet…
Delphi es un entorno de desarrollo visual de tipo RAD (Rapid Application Development). Es un…
Un navegador web, también llamado navegador de Internet o simplemente "navegador", es un programa informático…
En este artículo veremos paso por paso cómo se realiza la instalación de GNU Linux…