Contenido
De acuerdo al ciclo de vida de las pruebas del Modelo General V propuesto por (Barry W., 1979), existen 4 etapas de en las cuales se pueden aplicar pruebas de acuerdo al grado de avance del proyecto de manera secuencial.
En cada etapa se pueden aplicar los diferentes tipos de pruebas indicados en el punto 2.6 sin embargo, esto depende del tipo de marco de referencia que se quiera aplicar, el tipo de software, la cultura organizacional del grupo de desarrollo y sobre todo el presupuesto asignado al proyecto.
También llamadas pruebas unitarias, se ejecutan en la primera etapa donde los desarrolladores ya cuentan con los componentes del sistema desarrollados. Regularmente cada desarrollador prueba que sus componentes funcionen de acuerdo a lo esperado. Los componentes pueden ser dependiendo del lenguaje que se esté usando: módulos, unidades y clases en el caso de programación orientada a objetos.
Para estas pruebas regularmente se usan herramientas de depuración donde el programador va revisando línea a línea el comportamiento del código, al momento de detectar algún defecto procede a analizarlo y a resolverlo.
Las pruebas de componentes son las primeras pruebas a las que se somete el software.
Se ejecutan una vez concluidas las pruebas de componentes se ejecutan pruebas teniendo todos o la mayor parte de componente integrados, para verificar que todos operen correctamente de manera conjunta. Se valida el software a través de varias interfaces y casos de uso tomando en cuenta que la salida de un componente es la entrada de otro.
En sistemas de tamaño medio a grande, estas pruebas regularmente son ejecutadas por los especialistas en pruebas con apoyo de los desarrolladores, requieren de una entidad que juegue el papel de mediador entre los diversos grupos que participan en estas pruebas.
A diferencia de las pruebas unitarias, las pruebas de integración, requieren una mejor estructura y organización, requiere al menos de un plan de pruebas.
Sirven para validar que todas las funciones y componentes del sistema colaboran correctamente. Estas pruebas se ejecutan una vez concluidas las pruebas de componentes y las de integración, a diferencia de estas 2 pruebas, las pruebas de sistemas se realizan desde el punto de vista del usuario y validan en su totalidad los requerimientos del usuario especificados e incluso aquellos no especificados u olvidados que afectan el funcionamiento del sistema.
Según (Bourne, 1997), al inicio de las pruebas de sistema sólo se han completado la mitad de los trabajos de control de calidad y pruebas, en especial cuando se habla de un sistema cliente-servidor. Esto da evidencia de la necesidad de estas pruebas.
Antes de la liberación del software en el ambiente productivo es altamente recomendable que el usuario final valide el producto. El objetivo de estas pruebas es validar que el proveedor entendió y desarrolló lo que el usuario solicitó.
De acuerdo con (Spillner, Linz, & Schaefer, 2014) existen 4 tipos de pruebas de aceptación:
El cliente prueba junto con el proveedor del sistema y con ello se decide si el sistema está listo para su liberación a producción o si requiere alguna modificación o corrección. Los criterios de aceptación sólo son los incluidos en el contrato del desarrollo pactado entre el proveedor del sistema y el cliente. Estas pruebas se deben de ejecutar en el ambiente real (productivo).
Se recomienda cuando el usuario es diferente al cliente. El cliente suele organizar esta prueba y seleccionar los escenarios de uso típico. Se toma en cuenta el punto crítico del usuario.
Busca la aceptación del sistema por parte de los administradores que le darán soporte. Se pueden validar la generación y restauración de copias de seguridad, recuperación de desastres, gestión de usuarios y controles de seguridad.
Se consideran pruebas de campo controladas y son usadas especialmente cuando existen diferentes entornos de usuarios incluso algunos de ellos inexplorados previamente. Se recomienda cuando el sistema está pensado para el mercado en general por ejemplo las aplicaciones de dispositivos móviles disponibles para todo el público. Un grupo selecto de usuarios utilizan el sistema o la aplicación y reportan los problemas que se les van presentando.
Como se vio en el punto 2.1.1 existen diversos tipos de pruebas los cuales se aplican de acuerdo al proyecto, en un mundo ideal deberíamos aplicar siempre todos los tipos de prueba, sin embargo, estos se deberán de seleccionar de acuerdo al tipo de proyecto.
Todos los tipos de prueba pueden aplicarse en las etapas mencionadas anteriormente pero no es obligatorio aplicarlas todas dado que su ejecución depende de:
Los principales tipos de pruebas de acuerdo a su tipo y subtipo son los siguientes:
Validan que los requerimientos funcionales especificados se cumplan y operen conforme a lo esperado.
Validan funcionalidades específicas con base a las reglas de negocio. Estas pruebas se ejecutan interactuando con la aplicación mediante una interfaz de usuario y validando las entradas contra las salidas obtenidas. Son el tipo de pruebas más común.
Evalúan que la aplicación se ejecute correctamente en diferentes configuraciones de hardware y software. Por ejemplo, diferentes sistemas operativos, navegadores de internet, resoluciones de pantalla.
Verifican que la aplicación pueda ser instalada y actualizada correctamente y valida que no se produzcan fallos al tener condiciones anormales, como falta de espacio, falta de permisos. También se incluye la validación de rutinas de desinstalación. Regularmente estas pruebas aplican para aplicaciones que se distribuyen para que el usuario final las instales en sus dispositivos, no aplica en aplicaciones basadas en la web.
Validan que la aplicación se recupera exitosamente de una variedad de problemas de hardware, software y red sin perder datos o su integridad, garantizando así la alta disponibilidad del servicio que brinda la aplicación.
Se realizan para disminuir el riesgo de sufrir un ataque de usuario malintencionados. Generalmente este tipo de pruebas son ejecutadas por compañías especializadas que cuentan con herramientas y listas de vulnerabilidades.
Validan que las rutinas programadas en la base de datos o APIs funcionen correctamente, de manera independiente de la interface que las explote.
Validan que se cumplan todos los requerimientos no funcionales relacionados al rendimiento de la aplicación, para ejecutar estas pruebas se requiere el uso de herramientas que ayuden a simular las condiciones a validar.
Es una prueba de desempeño que somete al sistema a cargas variables para medir y evaluar su desempeño y su habilidad para continuar funcionando adecuadamente bajo diferentes cargas de trabajo. El objetivo es determinar y asegurar que el sistema funciona correctamente más allá de la carga máxima esperada para el sistema. Adicionalmente, evalúa las características de desempeño como: tiempos de respuesta, flujo de transacciones y otros aspectos sensibles al tiempo.
Es un tipo de prueba de desempeño implementada y ejecutada para encontrar errores debidos a la falta de recursos o la competencia por ellos. La falta de memoria, espacio en disco o uso de CPU, pueden revelar defectos en el sistema que bajo condiciones normales pueden no ser evidentes. Otros defectos pueden resultar de la competencia por recursos compartidos como el ancho de banda o accesos simultáneos a los mismos registros de la base de datos. Se puede también utilizar para identificar la máxima carga que puede soportar el sistema. A diferencia de las pruebas de concurrencia, en las pruebas de estrés se varían las condiciones del ambiente donde se encuentra el sistema.
Somete al sistema a grandes cantidades de datos para determinar que continúe operando correctamente. En algunos manejadores de base de datos se presentan problemas de rendimiento cuando existen cientos o miles de registros cargados previamente. Por ejemplo, si el sistema está procesando un conjunto de registros para generar un reporte, una prueba de volumen usa un conjunto de datos grande y verifica que el sistema se comporta normalmente y produce el reporte correcto en el tiempo indicado.
Somete al sistema durante un determinado tiempo una carga constante de transacciones la cual puede ser una carga moderada o la carga máxima identificada en las pruebas de concurrencia. Estás pruebas pueden durar más de 24 horas en ejecutarse, permiten identificar problemas que degradan el rendimiento de la aplicación con el tiempo como el uso de memoria y liberación de recursos.
Validan que las interfaces proporcionan al usuario la navegación y el confort necesario para todas y cada una de las funcionalidades de la aplicación, en estas pruebas se incluyen validaciones para evitar que el usuario cometa errores por ejemplo que ingrese letras en un campo donde sólo se pueden aceptar números.
Un ingeniero de pruebas de software es un profesional que se encarga de asegurar la…
En el área de Ingeniería de Software, metodología (Pressman, 2005) se refiere a un marco de…
¿Qué es un defecto? Es un desperfecto en algún componente del sistema que ocasiona que…
También se le conoce como Pruebas de software. Se encarga de mejorar la calidad del…
Todo desarrollo de productos de software independientemente de la metodología que se está implementando, es…
Las pruebas de sistema buscan diferencias entre la especificación funcional del sistema y su comportamiento…
View Comments
Me encantó este post, buen trabajo.
Capo como no vas a poner para copiarlo
excelente Explicacion muy detallada
Nous sommes une imprimerie professionnelle de livres (manuels) avec un équipement complet et une livraison rapide. L'impression, le marquage à chaud, le gaufrage, etc. peuvent vous faire économiser beaucoup d'argent.
Visitez la page d'accueil de l'impression de livres pour plus de détails.