PRUEBAS ESTÁTICAS
Revisiones de requerimientos de software
Se revisa el grado de madurez de la definición, especificación y administración de los requerimientos de software.
El objetivo es asegurar el entendimiento común entre el cliente y el grupo de desarrollo.
Se dan recomendaciones sobre los siguientes criteros:
- Identificación de requerimientos funcionales y no funcionales
- Calidad en la definición y especificación de requerimientos
- Gestión de los requerimientos en el ciclo del desarrollo
- Práctica de mantenimiento de la hoja de ruta del producto
- Administración de controles de cambio
- Mecanismos de medición de requerimientos
Revisiones de diseño
Se verifica la arquitectura y utilización de patrones en el diseño.
El objetivo es detectar e identificar no conformidades y aspectos de mejoramiento en el diseño antes de pasar a la codificación.
Inspecciones de código
Identificación de no conformidades en el código fuente.
El objetivo es detectar e identificar anomalías de software, incluyendo errores y desviaciones de estándares y especificaciones.
Se muestra a los desarrolladores los beneficios de la utilización de estándares y como evitar defectos sistemáticos.
Se define del conjunto de criterios a evaluar y se generan recomendaciones a los grupos de desarrollo acerca de:
- Lógica de programación
- Estándar de codificación
- Documentación de código (headers, comments)
- Imports
- Inicialización
- Parámetros de llamada a métodos
- Uso de estructuras de anidamiento
- Modularidad
- Mecanismo reutilización de código
- Manejo de errores
PRUEBAS DINÁMICAS
Pruebas funcionales de software
Contamos con una metodología propia que utiliza técnicas especializadas para elaborar diseños de requerimientos de prueba reutilizables, que permiten verificar si este satisface las necesidades de los usuarios y su comportamiento frente a entradas no esperadas. Se hacen mediante el funcionamiento experimental del producto e incluye pruebas de las rutas de excepción.
Smoke Test
- Este tipo de prueba se usa para validar los cambios del código que vienen en una nueva versión, un release, o un patch, antes de que estos se incorporen a la línea base de producto. Después de las revisiones de código, la prueba smoke es la más útil para identificar defectos en software.
- Se diseñan para confirmar que los cambios en el código funcionan según lo esperado y no desestabilizan una estructura entera.
Pruebas de Regresión
Se trata de ejecutar nuevamente las pruebas, o un subconjunto de ellas, a una versión actualizada del software para asegurar la calidad después de añadir nuevas funcionalidades. Su propósito es asegurar que:
- Se han corregido los defectos identificados en la ejecución anterior de la prueba.
- Los cambios realizados no han introducido nuevos defectos o reintroducido defectos anteriores.
Pruebas integrales a nivel de sistema
El objetivo de estas pruebas es evaluar la fluidez del sistema desde el punto de inicio del proceso hasta la finalización, incluyendo generación de reportes e indicadores de los procesos más representativos. Este tipo de pruebas permite evaluar integralmente con un solo set de datos la recepción, validación, procesamiento, consolidación y publicación de información.
Pruebas de usabilidad
La norma ISO 9126-1 define usabilidad como la capacidad de un producto software de ser entendido, aprendido, usado y atractivo para el usuario.
GreenSQA asegura que se identifiquen y corrijan a tiempo los fallos en la interfaz de usuario de las aplicaciones.
Además de pruebas en escenarios reales, GreenSQA ofrece pruebas de usabilidad aplicando paradigmas de diseño establecidos por la industria.
Pruebas de integración
Son las pruebas necesarias para comprobar que son correctas las interfaces entre los módulos de una solución integrada en un solo producto.
GreenSQA ha incorporado en su metodología las tres estrategias de pruebas de integración más conocidas en la industria y aplica en cada caso la que más se ajusta a las necesidades del proyecto:
De arriba a abajo (top-down):
- Consiste en empezar la integración y la prueba por los módulos que están en los niveles superiores de abstracción, e integrar incrementalmente los niveles inferiores.
De abajo a arriba (bottom-up):
- Consiste en empezar la integración y la prueba por los módulos que están en los niveles inferiores de abstracción, e integrar incrementalmente los niveles superiores.
De big-bang:
- Consiste en integrar y probar todo al mismo tiempo.
GreenSQA realiza pruebas de comunicaciones a través de dispositivos remotos, y dispositivos locales, dependiendo las condiciones del proyecto, para determinar que las interfaces entre los componentes del sistema funcionan adecuadamente.
PRUEBAS DE ACEPTACIÓN
Su objetivo es validar la integridad del sistema a través de la ejecución de pruebas de los flujos de negocio (básico y/o complejos). Se realizan junto con los usuarios funcionales.
PRUEBAS NO FUNCIONALES
Pruebas de concurrencia
Estas pruebas permiten simular transacciones de modo concurrente y asegurar la calidad del producto en situaciones extremas de uso.
Pruebas de Stress
- Simulación concurrente de transacciones durante periodos de tiempo definidos en el diseño de pruebas.
Pruebas de compatibilidad
Su objetivo es garantizar la transparencia de la operación desde los diferentes dispositivos e interfaces (navegadores, por ejemplo) que se deben considerar en el desarrollo. Aplica también a los reportes.
Pruebas de carga
Su objetivo es evaluar la conformidad de un sistema o componente con requerimientos de desempeño específicos, por ejemplo tamaño del los archivos que transitan. Normalmente esto se lleva a cabo usando una herramienta de prueba automática para simular un gran número de usuarios, carga y volumen de información y para monitorear el desempeño del hardware.
Pruebas de migración
Este tipo de pruebas tiene dos perspectivas:
Migración de datos:
- Este tipo de pruebas se realizan para brindar apoyo al proceso de migración de datos, verificando que los datos en el lugar de destino, cumplen con las especificaciones definidas. Normalmente incluye la maduración de datos, lo cual implica verificar el comportamiento de los datos migrados al nuevo sistema, prueba que se realiza después de haber certificado la estabilidad funcional del sistema.
Migración de aplicaciones:
- Consiste en probar la migración de las funcionalidades de un sistema de información a otro diferente, validando que se mantenga el comportamiento esperado. Esto implica realizar en el nuevo sistema, pruebas funcionales que fueron diseñadas para el otro sistema de información.
Análisis de Rendimiento – Profiling de Aplicaciones
El Análisis de rendimiento, también conocido como Profiling, es la medición del desempeño de una aplicación en un ambiente, mediante la información recolectada durante su ejecución. Su objetivo principal es identificar cuellos de botella y determinar cuales componentes se podrían optimizar con el fin de mejorar los tiempos de respuesta, el consumo de la memoria, la carga del procesador, entre otras.
El Profiling se usa durante el desarrollo del software como método de prueba para identificar de forma temprana, potenciales fallas o errores de diseño, cuya corrección en una etapa avanzada del proceso de desarrollo o mientras el sistema se encuentra en producción, sería más costosa en esfuerzo y dinero.
Este proceso se hace en tres pasos fundamentales:
- Medición inicial del rendimiento de la aplicación.
- Análisis de problemas potenciales (de código, de consumo de memoria, de procesamiento, etc.)
- Medición de los umbrales de rendimiento que la aplicación puede alcanzar.
Principales tipos de pruebas para Análisis de rendimiento:
- Pruebas de Carga (Load Testing)
Se mide el comportamiento de una aplicación frente a situaciones normales y situaciones atípicas de demanda de recursos en cantidad, frecuencia o volúmenes de datos. Los resultados permiten determinar: el tiempo de respuesta, carga de procesamiento, trabajo por unidad de tiempo y utilización de recursos. - Pruebas de Picos (Spike Testing)
Esta prueba mide el comportamiento de una aplicación frente a cambios drástico en la carga por aumento en la concurrencia de usuarios. - Prueba de Estrés (Stress Testing)
Esta prueba se usa para identificar el “punto de quiebre” de una aplicación, aumentando sistemáticamente la concurrencia de usuarios. El objetivo es garantizar el correcto funcionamiento de la aplicación en condiciones extremas de concurrencia o de recursos computacionales. - Prueba de Estabilidad (Soak Testing)
El objetivo de esta prueba es determinar la capacidad de una aplicación para soportar la carga esperada en forma continua y garantizar que puede comportarse exactamente como se espera durante una cantidad de tiempo determinado sin presentar fugas de memoria.
Automatización de Pruebas
Consiste en la utilización de software para automatizar la ejecución de pruebas (ya diseñadas) de forma desatendida (sin intervención del ingeniero de pruebas). Aplica especialmente para situaciones en que la misma prueba manual debe ser repetida con frecuencia por mantenimiento y/o escalabilidad del Sistema de Información.
Para la elaboración de casos automatizados de pruebas, se propone el modelo genérico de pruebas definido por GreenSQA S.A que se basa en el diseño de «scripts» de pruebas que sean mantenibles y reutilizables para facilitar la elaboración de “suites” de pruebas destinadas a regresión.
Los diferentes enfoques utilizados:
- Capture/ Playback
- Data Driven
- Keyword Driven
- Modularity Testing
Contacto
COLOMBIA
Carrera 85b N° 1446.
PBX:(602) 4896956
El Ingenio II – Cali -Valle
USA
1809 W Jetton Av 33606
Tampa Florida