Las grandes compañías de software, como Google, tienen éxito a pesar de los errores de baja prioridad en su software, pero las empresas más pequeñas y las nuevas empresas no tienen ese lujo.
Los clientes esperan que los productos hagan lo que reclaman en la página de ventas o en la documentación. Con tantas opciones, no lo pensarán dos veces antes de abandonar el barco si el producto desperdicia su tiempo y dinero. Por lo tanto, el software se somete a pruebas rigurosas antes del lanzamiento para:
resaltar las diferencias entre el concepto original y el resultado final
verificar que el software funcione de la forma en que los diseñadores planearon
valide el producto final - el producto debe cumplir con los requisitos del cliente
evaluar características y calidad
Las pruebas siguen un plan estricto. Esto optimiza el uso de recursos valiosos: habilidades, tiempo y dinero, a la vez que proporciona a las partes interesadas información esencial para llevar adelante el producto. El objetivo es facilitar una buena experiencia del usuario final a través de un sólido programa de garantía de calidad . Con lo que está en juego, los gerentes de control de calidad son algunos de los que más ganan en tecnología. Generalmente, el control sigue estos pasos:
Análisis de requisitos donde los gerentes describen un plan para implementar una estrategia de prueba adecuada.
Las pruebas comienzan y los resultados se someten a análisis.
Cualquier defecto se corrige y el software pasa por pruebas de regresión, un sistema para verificar que el programa aún funcione después de las modificaciones.
Un informe de cierre de prueba luego detalla todo el proceso y los resultados.
Métodos de prueba de software
Estos son los diferentes métodos utilizados para juzgar el comportamiento y el rendimiento del producto.
Las pruebas de caja negra y caja blanca son los dos métodos fundamentales.
- Prueba de caja negra : también llamada prueba funcional o basada en especificaciones, este método se enfoca en la salida. Los probadores no se preocupan por los mecanismos internos. Solo verifican que el software haga lo que se supone que debe hacer. El conocimiento de la codificación no es necesario, y los probadores funcionan a nivel de interfaz de usuario.
- Prueba de caja blanca : este método utiliza los conocimientos de codificación como parte del procedimiento de prueba. Cuando un producto falla, los probadores profundizan en el código según sea necesario para encontrar la causa. Los desarrolladores de software lo hacen ellos mismos, ya que determinan cómo debería funcionar el producto. Las pruebas basadas en la estructura y la caja de vidrio son otros nombres para este método.
- Pruebas estáticas : los probadores examinan el código y la documentación del software pero no ejecutan el programa. Las pruebas estáticas comienzan temprano en el desarrollo del producto durante el proceso de verificación.
- Pruebas dinámicas : el software se ejecuta con varias entradas y los probadores comparan las salidas con el comportamiento esperado con este método.
- Prueba de GUI : prueba las características de la GUI: formateo de texto, cuadros de texto, botones, listas, diseño, colores, fuentes, tamaños de fuente, etc. Las pruebas de GUI consumen mucho tiempo y las empresas de terceros a menudo se encargan de la tarea en lugar de los desarrolladores.
Niveles de prueba
Estos son necesarios para identificar áreas de debilidad y superposición en cada fase del ciclo de vida de desarrollo de software.
- Pruebas unitarias : los desarrolladores prueban las partes más básicas del código, como clases, interfaces y funciones / procedimientos. Saben cómo debería responder su código y pueden hacer ajustes dependiendo de la salida.
- Pruebas de componentes : otros nombres son pruebas de módulos o programas. Es similar a la prueba unitaria, pero contiene un mayor nivel de integración. Los módulos del software se prueban en busca de defectos para verificar su función individual.
- Pruebas de integración : identifican errores cuando los módulos están integrados. Las diferentes pruebas de integración son ascendentes, descendentes y funcionales incrementales.
- Pruebas del sistema : los componentes de un proyecto se prueban en su conjunto en diferentes entornos con este método. Cae bajo el método de caja negra y es una de las pruebas finales en el proceso. Determina si el sistema funciona como debería para satisfacer las necesidades comerciales y de los usuarios.
- Prueba alfa : el personal interno prueba el software en el sitio del desarrollador en un entorno simulado o real. Después de eso, los desarrolladores rectifican errores y otros problemas.
- Pruebas beta : también conocidas como pruebas de campo, el cliente prueba el producto en su propio sitio en condiciones reales. El cliente puede ofrecer a un grupo de usuarios finales la oportunidad de probar el software mediante versiones preliminares o beta. Los comentarios sobre posibles mejoras se envían al desarrollador.
- Pruebas de aceptación : también en el marco de las pruebas de caja negra, el cliente prueba el software para averiguar si el desarrollador ha creado el programa según las especificaciones deseadas.
Tipos de prueba
Estas pruebas de software se centran en objetivos específicos.
- Pruebas de instalación : el ingeniero de pruebas de software y el administrador de configuración realizan esta prueba para garantizar que el usuario final pueda instalar y ejecutar el programa. Cubre áreas como archivos de instalación, ubicaciones de instalación y privilegios administrativos.
- Pruebas de desarrollo : implementa una variedad de estrategias sincronizadas para detectar y prevenir defectos. Incluye análisis de código estático, revisiones de códigos de pares, rastreabilidad y análisis de métricas. El objetivo es reducir riesgos y ahorrar costos.
- Prueba de usabilidad : la experiencia del usuario se encuentra bajo los reflectores con esta prueba. Mide qué tan bien está diseñada la GUI y su facilidad de uso. La prueba verifica la precisión y la eficiencia de las funciones y las respuestas emocionales de los sujetos de prueba.
- Pruebas de cordura : esto indica si el software vale la pena el tiempo y el costo para continuar las pruebas. Demasiados defectos y pruebas más agresivas no siguen.
- Pruebas de humo: las pruebas de humo revelan fallas básicas que son lo suficientemente graves como para evitar la liberación. Cuando esto se lleva a cabo en una nueva compilación, se denomina prueba de verificación de compilación.
- Pruebas de regresión : cuando el sistema se modifica, las pruebas de regresión monitorean el comportamiento inesperado. Señala los efectos adversos en módulos o componentes.
- Pruebas destructivas: los evaluadores ingresan entradas anormales y distinguen la capacidad del software para administrar entradas inesperadas. Esto muestra a los desarrolladores cuán robusto es el programa en la gestión de errores.
- Pruebas de recuperación : cuando el hardware u otras funciones fallan, esta prueba muestra qué tan bien el software se puede recuperar y continuar con la operación.
- Pruebas automatizadas : esto realiza funciones difíciles de implementar manualmente. Utiliza un software específico para ejecutar las pruebas y proporcionar datos sobre los resultados reales frente a los esperados.
- Pruebas de compatibilidad : el software debe ejecutarse en diferentes entornos informáticos, por lo que se comprueba la compatibilidad con diferentes sistemas. Por ejemplo, ¿el software funciona con varios sistemas operativos y navegadores web?
- Pruebas de rendimiento : esta es una prueba en profundidad que examina el rendimiento del software en diferentes escenarios. Se recopila información sobre la capacidad de respuesta, la estabilidad, la asignación de recursos y la velocidad. Además, las subpruebas como el volumen, la capacidad y las pruebas de pico juegan un papel en este proceso.
- Pruebas de seguridad : esto mide la capacidad del software para proteger la seguridad de los usuarios. Esto significa funciones de autorización, autenticación, confidencialidad, integridad, disponibilidad y no repudio.
- Pruebas de accesibilidad : esto no es lo mismo que las pruebas de usabilidad. Esto determina hasta qué punto los usuarios con diferentes capacidades, incluidas discapacidades físicas y de aprendizaje, pueden usar el software.
- Pruebas de internacionalización y localización : los resultados muestran cómo el software se puede adaptar a diferentes idiomas y demandas regionales. Esto incluye agregar componentes para ubicaciones específicas y traducir texto.
Las pruebas de software son una parte esencial de llevar un producto al mercado. Y sin probadores, la amplia gama de software disponible no existiría. Conviértase en un probador de software certificado a través de organizaciones como BCS, The Chartered Institute for IT, ISTQB® (International Software Testing Qualifications Board) y ASQ (anteriormente la American Society for Quality).