Pruebas de software

Las pruebas de software (en inglés software testing) son las investigaciones empíricas y técnicas cuyo objetivo es proporcionar una devolución sobre el funcionamiento de un programa de software. Es una actividad más en el proceso de desarrollo de software, usualmente parte del control de calidad.
Las pruebas son básicamente un conjunto de actividades dentro del desarrollo de software. Dependiendo del tipo de pruebas, estas actividades podrán ser implementadas en cualquier momento de dicho proceso de desarrollo. Existen distintos modelos de desarrollo de software, así como modelos de pruebas. A cada uno corresponde un nivel distinto de involucramiento en las actividades de desarrollo.
Definición
Un caso de pruebas es una breve declaración de algo que debería ser probado. Es el mecanismo, manual o automático, que verifica si el comportamiento del sistema es el deseado o no.1?
Historia
El objetivo de las pruebas es presentar información sobre la calidad del producto a las personas responsables de éste. Las pruebas de calidad presentan los siguientes objetivos: encontrar defectos o bugs, aumentar la confianza en el nivel de calidad, facilitar información para la toma de decisiones, evitar la aparición de defectos.
Teniendo esta afirmación en mente, la información que puede ser requerida es de lo más variada. Esto hace que el proceso de pruebas sea completamente dependiente del contexto en el que se desarrolla.2?
El ambiente ideal de las pruebas es aquel que es independiente del desarrollo del software, de esta manera se logra objetividad en las pruebas.
A pesar de lo que muchos promueven, no existen las "mejores prácticas" como tales. Toda práctica puede ser ideal para una situación, pero completamente inútil o incluso perjudicial en otra.
Por esto, las actividades técnicas, documentación, enfoques y demás elementos que condicionarán las pruebas a realizar deben ser seleccionadas y utilizadas de la manera más eficiente según contexto del proyecto.
Proceso de desarrollo de software
Tenemos el proceso de desarrollo en cascada, se denomina de este modo, ya que a cada salida de una etapa cae en la siguiente, es decir, las etapas se llevan a cabo una a continuación de la otra. Una de las peculiaridades de este proceso, es que no está previsto volver a una etapa anterior, es decir si se olvidó relevar algún requerimiento al comienzo, no tiene una alternativa para considerar este caso. Este proceso supone cada etapa independiente de las etapas anteriores.
También tenemos el desarrollo iterativo y creciente, se tiene las mismas etapas que en el Proceso de Desarrollo en Cascada, sin embargo, en este proceso, la etapa de relevamiento se divide en distintos subconjuntos y cada uno de estos sub conjuntos se construye de la misma forma que con el ciclo de vida en cascada. Se van desarrollando por partes que luego se integran, una vez finalizadas las mismas.
Otro Proceso de Desarrollo que tenemos es el Iterativo, en este tenemos las mismas etapas de desarrollo que los procesos anteriores, pero trabajamos sobre el todo, no necesariamente conocemos al comienzo todos los detalles del producto que queremos construir.
Y por último tenemos el desarrollo ágil de software, este es un proceso iterativo e incremental, se caracteriza por contar con iteraciones cortas y por no tener fases lineales, tipo cascada en cada iteración. Existen distintas metodologías Ágiles, que entre las más conocidas y utilizadas encontramos "Scrum" y "XP: Extreme Programming".
Pruebas estáticas
[editar]Son el tipo de pruebas que se realizan sin ejecutar el código de la aplicación.
Puede referirse a la revisión de documentos, ya que no se hace una ejecución de código. Esto se debe a que se pueden realizar "pruebas de escritorio" con el objetivo de seguir los flujos de la aplicación.
Pruebas dinámicas
[editar]Todas aquellas pruebas que para su ejecución requieren la ejecución de la aplicación.
Las pruebas dinámicas permiten el uso de técnicas de caja negra y caja blanca con mayor amplitud. Debido a la naturaleza dinámica de la ejecución de pruebas es posible medir con mayor precisión el comportamiento de la aplicación desarrollada.
Si aún no está listo, le invitamos a asesorarse correctamente con un experto en esta área de nuestro Departamento Comercial y empecemos juntos a mejorar la relación que actualmente usted mantiene con sus clientes.
Contáctenos
Alejandro es especialista en la implementación de estrategias comerciales para el uso de programas de lealtad y fidelización para diversas empresas de varias industrias, siempre con el objetivo principal de generar mayor crecimiento en los negocios.
Alejandro Sevilla Leiva
Director Comercial
