Estrategias Efectivas para la Detección y Corrección de Defectos en el Desarrollo de Software
Clasificado en Informática
Escrito el en español con un tamaño de 2,71 KB
La Problemática del Desarrollo de Software
El desarrollo de software a menudo se enfrenta a desafíos como costos elevados, errores frecuentes, plazos excedidos y alta complejidad, lo que resulta en altos costos de mantenimiento. Frecuentemente, más del 50% del esfuerzo de desarrollo se dedica a las pruebas (testing).
¿Cómo se Detectan Defectos?
- Examinando estructuras y diseños internos
- Examinando interfaces de usuario
- Examinando objetivos de diseño
- Examinando requerimientos de los usuarios
- Ejecutando código
La importancia de un defecto depende de su frecuencia, el costo de corrección, el costo de instalación y sus consecuencias. No hay una manera universalmente correcta de categorizar defectos; las siguientes categorías son típicamente utilizadas:
- Requerimientos
- Características y funcionalidad
- Estructura
- Datos
- Implementación y código
- Integración
- Arquitectura del sistema y del software
- Definición y ejecución de pruebas
- Otros
Testing vs. Debugging
El propósito del testing es demostrar que un programa tiene defectos, mientras que el propósito del debugging es encontrar el error o mala concepción que llevó a la falla, y diseñar e implementar los cambios que corrijan el error. El debugging usualmente sigue al testing. El testing lo puede hacer un externo, el debugging no.
Desarrollo del Testing
Inicialmente, las pruebas se focalizan en cada módulo individualmente, asegurando que funciona apropiadamente como una unidad; principalmente se utilizan técnicas de white-box.
Después, los módulos deben integrarse o ensamblarse para formar un paquete completo; las técnicas de black-box son las más importantes.
Finalmente, corresponde una serie de pruebas de orden superior orientadas a asegurar que el software satisfaga todos los requerimientos de uso, funcionales, de comportamiento y de desempeño, y a verificar que todos los elementos del sistema computacional se acoplan adecuadamente y que la funcionalidad y desempeño globales se alcanzan.
Testing de Integración
Es una técnica sistemática para construir la estructura del programa mientras se conducen pruebas para descubrir defectos asociados a las interfaces, para lo que se toman módulos probados (testing unitario) y se construye una estructura de programa de acuerdo al diseño.
Cualquier estrategia de integración debe ser incremental, para lo que existen dos esquemas principales: integración top-down e integración bottom-up.