Desarrollo de Software de Calidad: Estrategias de Pruebas y Diseño Esencial

Enviado por Programa Chuletas y clasificado en Diseño e Ingeniería

Escrito el en español con un tamaño de 4,76 KB

Pruebas de Software: Asegurando la Calidad y Funcionalidad

Las pruebas de software son el proceso de ejercitar un programa con la intención específica de encontrar errores antes de su entrega.

Objetivos de las Pruebas

Es imposible evaluar todas las posibilidades. Las pruebas serán exitosas cuando encuentren errores, y es importante recordar que los errores no siempre son negligencia del programador.

Recomendaciones para Pruebas Efectivas

Cada caso de prueba debe definir el resultado de salida esperado. Se deben inspeccionar a conciencia los resultados de cada prueba.

Tipos de Pruebas de Software

Pruebas de Caja Blanca (White Box Testing)

Implican un examen minucioso de los detalles procedimentales. Se comprueban los caminos lógicos del software proponiendo casos de prueba. Con estas pruebas se pueden obtener casos de prueba (CP) que:

  • Garantizan que se ejecuten todos los caminos independientes de cada módulo.
  • Ejerciten todas las decisiones lógicas.
  • Ejecuten los bucles en sus límites.
  • Ejerciten estructuras internas de datos para asegurar su validez.

Pruebas de Caja Negra (Black Box Testing)

Se centran en los requisitos funcionales. Con estas pruebas se obtienen condiciones de entrada que ejerciten al 100% los requisitos funcionales del software. No son una alternativa a las pruebas de Caja Blanca, sino un complemento. Permiten encontrar:

  • Funciones incorrectas o ausentes.
  • Errores de interfaz.
  • Errores de estructura de datos o acceso a bases de datos externas.
  • Errores de rendimiento.
  • Errores de inicialización y terminación.

Las pruebas de Caja Blanca se diseñan para responder a preguntas como:

  • ¿Cómo se prueba la validez funcional?
  • ¿Qué clases de entrada compondrían unos buenos casos de prueba?
  • ¿Es el sistema particularmente sensible a ciertos valores de entrada?
  • ¿Qué volumen y niveles de datos tolera el sistema?

Documentación de Pruebas

La documentación esencial incluye:

  • Histórico de pruebas.
  • Informe de incidentes.
  • Informe resumen.

Depuración de Errores

La depuración consiste en la localización del error y su posterior corrección.

Pruebas de Integración

Están ligadas a la forma prevista de integrar los distintos componentes del software hasta contar con el producto global que debe entregarse. Existen dos tipos principales:

  • Incremental: Se combina el siguiente módulo que se debe probar con el conjunto de módulos ya probados.
  • No Incremental: Se prueba cada módulo por separado y luego se integran todos.

Pruebas del Sistema

Verifican el funcionamiento y rendimiento general del software, así como la adecuación de la documentación de usuario.

Pruebas de Aceptación

Implican la participación del usuario y están enfocadas hacia la prueba de los requisitos de usuario especificados.

Diseño de Software: La Base para un Producto Robusto y Funcional

El diseño de software es el primer paso de la fase de desarrollo de cualquier producto o sistema de ingeniería.

Definición de Diseño

Es el proceso de aplicar distintas técnicas y principios con el propósito de definir un dispositivo, proceso o sistema con los suficientes detalles como para permitir su realización física. El diseño es un proceso creativo de transformación del problema en solución; la descripción de una solución también se denomina diseño. La solución será la que satisfaga todos los requisitos. Las soluciones, en muchos casos, son ilimitadas.

Importancia del Diseño

¡IMPORTANTE! Sin un diseño adecuado, nos arriesgamos a construir un sistema inestable, de baja calidad, no funcional, etc. Finalmente, se puede decir que el diseño es donde se asienta la calidad del desarrollo de software.

Tipos de Diseño de Software

Diseño de Datos

Transforma el modelo del dominio de información que se crea durante el análisis. Es posible que el diseño de datos tenga lugar junto al diseño arquitectónico del software.

Diseño Arquitectónico

Define la relación entre la estructura y los patrones de diseño que se utilizan para lograr los requisitos que se han definido para el sistema y las restricciones que lo afectan.

Diseño de Interfaz

Describe la forma en que el software se comunica consigo mismo y con el usuario. Este implica un flujo de información.

Diseño de Componentes

Transforma los elementos estructurales en una descripción procedimental.

Entradas relacionadas: