Pruebas de software: descripción general
¿Qué son las pruebas?
La prueba es el proceso de evaluar un sistema o sus componentes con la intención de encontrar si satisface los requisitos especificados o no. En palabras simples, probar es ejecutar un sistema para identificar cualquier brecha, error o requisitos faltantes en contra de los requisitos reales.
De acuerdo con el estándar ANSI / IEEE 1059, las pruebas se pueden definir como: Un proceso de análisis de un elemento de software para detectar las diferencias entre las condiciones existentes y requeridas (es decir, defectos / errores / errores) y evaluar las características del elemento de software.
¿Quién realiza las pruebas?
Depende del proceso y de las partes interesadas asociadas del proyecto (s). En la industria de TI, las grandes empresas tienen un equipo con responsabilidades para evaluar el software desarrollado en el contexto de los requisitos dados. Además, los desarrolladores también realizan pruebas que se denominanUnit Testing. En la mayoría de los casos, los siguientes profesionales están involucrados en probar un sistema dentro de sus respectivas capacidades:
- Probador de software
- Desarrollador de software
- Jefe / Gerente de Proyecto
- Usuario final
Diferentes empresas tienen diferentes designaciones para las personas que prueban el software en función de su experiencia y conocimiento, como Software Tester, Software Quality Assurance Engineer, QA Analyst, etc.
No es posible probar el software en ningún momento durante su ciclo. Las siguientes dos secciones indican cuándo se deben iniciar las pruebas y cuándo finalizarlas durante el SDLC.
¿Cuándo comenzar a realizar la prueba?
Un inicio temprano de las pruebas reduce el costo y el tiempo para volver a trabajar y producir software libre de errores que se entrega al cliente. Sin embargo, en el ciclo de vida del desarrollo de software (SDLC), las pruebas se pueden iniciar desde la fase de recopilación de requisitos y continuar hasta la implementación del software.
También depende del modelo de desarrollo que se esté utilizando. Por ejemplo, en el modelo Waterfall, las pruebas formales se realizan en la fase de prueba; pero en el modelo incremental, las pruebas se realizan al final de cada incremento / iteración y toda la aplicación se prueba al final.
Las pruebas se realizan de diferentes formas en cada fase de SDLC:
Durante la fase de recopilación de requisitos, el análisis y la verificación de los requisitos también se consideran pruebas.
La revisión del diseño en la fase de diseño con la intención de mejorarlo también se considera una prueba.
Las pruebas realizadas por un desarrollador al completar el código también se clasifican como pruebas.
¿Cuándo dejar de realizar la prueba?
Es difícil determinar cuándo detener las pruebas, ya que las pruebas son un proceso interminable y nadie puede afirmar que un software está probado al 100%. Se deben considerar los siguientes aspectos para detener el proceso de prueba:
Plazos de prueba
Finalización de la ejecución del caso de prueba
Finalización de la cobertura funcional y de código hasta cierto punto
La tasa de errores cae por debajo de un cierto nivel y no se identifican errores de alta prioridad
Decisión de gestión
Verificación validación
Estos dos términos son muy confusos para la mayoría de las personas, que los usan indistintamente. La siguiente tabla destaca las diferencias entre verificación y validación.
No Señor. | Verificación | Validación |
---|---|---|
1 | La verificación aborda la inquietud: "¿Lo está construyendo correctamente?" | La validación aborda la inquietud: "¿Está construyendo lo correcto?" |
2 | Asegura que el sistema de software cumpla con todas las funciones. | Asegura que las funcionalidades cumplan con el comportamiento previsto. |
3 | La verificación tiene lugar primero e incluye la verificación de documentación, código, etc. | La validación se produce después de la verificación e implica principalmente la verificación del producto en general. |
4 | Realizado por desarrolladores. | Realizado por probadores. |
5 | Tiene actividades estáticas, ya que incluye la recopilación de revisiones, recorridos e inspecciones para verificar un software. | Tiene actividades dinámicas, ya que incluye la ejecución del software contra los requisitos. |
6 | Es un proceso objetivo y no debería ser necesaria una decisión subjetiva para verificar un software. | Es un proceso subjetivo e implica decisiones subjetivas sobre qué tan bien funciona un software. |