0% encontró este documento útil (0 votos)
33 vistas6 páginas

Guía Completa de Pruebas de Software

El documento describe el proceso de diseño y realización de pruebas de código en el desarrollo de software, incluyendo las tareas básicas, tipos de pruebas, herramientas de pruebas unitarias y depuración. También proporciona ejemplos y recomendaciones para llevar a cabo pruebas efectivas.

Cargado por

Luiggi Pincay
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
33 vistas6 páginas

Guía Completa de Pruebas de Software

El documento describe el proceso de diseño y realización de pruebas de código en el desarrollo de software, incluyendo las tareas básicas, tipos de pruebas, herramientas de pruebas unitarias y depuración. También proporciona ejemplos y recomendaciones para llevar a cabo pruebas efectivas.

Cargado por

Luiggi Pincay
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Resumen t3 1 y 2

PARTE 1
El documento se centra en el proceso de diseño y realización de pruebas en el
desarrollo de software, abarcando desde la planificación hasta la ejecución de
pruebas de código. Comienza definiendo el objetivo de las pruebas: garantizar que
el software cumple con los requisitos del cliente y funciona correctamente. Luego,
detalla las tareas básicas en el proceso de pruebas, como el diseño del plan de
pruebas, la creación de casos de prueba, la ejecución de pruebas y la comparación
y evaluación de resultados. Se describen diferentes tipos de pruebas, desde las
unitarias hasta las de aceptación, cada una con sus respectivas características y
enfoques. También se aborda la importancia de herramientas de gestión de errores,
como Bugzilla, y se proporcionan ejemplos de documentos de plan de pruebas y
plantillas para casos de pruebas. Además, se destacan aspectos clave como la
automatización de pruebas unitarias, la importancia del diseño de casos de prueba y
la planificación de pruebas a lo largo del ciclo de desarrollo. En resumen, el
documento proporciona una guía detallada y exhaustiva sobre el proceso de diseño
y realización de pruebas de código en el desarrollo de software, con un enfoque en
la calidad y la eficiencia del proceso.

Las tareas básicas en el proceso de pruebas de software incluyen el diseño del plan
de pruebas, la creación de casos de prueba, la ejecución de pruebas, y la
comparación y evaluación de resultados. El diseño del plan de pruebas implica la
definición de un plan maestro y planes separados para diferentes fases de pruebas,
basados en la especificación de requisitos. La creación de casos de prueba implica
la definición de nombre, código asignado, propósito, pre-requisitos, descripción del
elemento a probar, datos de entrada, procedimiento de la prueba y objetivos a
lograr. La ejecución de pruebas implica la codificación de pruebas, la ejecución de
las pruebas y la localización de errores en caso de que ocurran. La comparación y
evaluación de resultados implica la inspección de código, la comparación de
resultados con los objetivos esperados, y la identificación de los cambios a realizar
en el software.

A lo largo del ciclo de desarrollo de software se realizan varios tipos de pruebas


para garantizar la calidad y funcionalidad del software. Estos incluyen:

1. Pruebas unitarias: Se centran en probar cada módulo o clase de forma aislada


respecto a otros módulos o clases.

2. Pruebas de integración: Verifican la integración de las clases que ya han sido


probadas de forma independiente.

3. Pruebas de validación: Comprueban la concordancia del software con los


requisitos del usuario y del sistema.
4. Pruebas del sistema: Integran el software con su entorno hardware y software,
incluyendo el software de terceros, para asegurar su correcto funcionamiento.

5. Pruebas de aceptación: Permiten al usuario final validar que el producto


entregado cumple con sus requisitos.

6. Pruebas de servicio: Verifican que el software está listo para su uso operativo y
cumple con las expectativas del cliente.

7. Pruebas de regresión: Comprueban que el software sigue funcionando tras una


modificación, ya sea para corregir errores o añadir nueva funcionalidad.

Estas pruebas abarcan desde la verificación de la lógica y funcionalidad de cada


clase hasta la validación final por parte del usuario, asegurando que el software
cumple con los requisitos y funciona correctamente en su entorno de ejecución.

La herramienta Bugzilla es utilizada para el control y gestión de errores en proyectos


de software, y ofrece una serie de características y usos específicos. Entre estas
características se incluyen:

1. Interfaz web para la gestión de errores.


2. Entorno colaborativo que permite la interacción entre usuarios y desarrolladores a
través de hilos de discusión, intervención de usuarios, probadores y desarrolladores.
3. Notificaciones por correo a los usuarios involucrados en los cambios de estado de
un error.
4. Sistema de búsqueda que permite buscar errores por tipo, prioridad, entorno,
estado, entre otros.
5. Generación de informes sobre los errores del proyecto.
6. Votación de errores para establecer prioridades en su resolución.
7. Seguridad, que incluye la gestión de usuarios registrados y la preservación de su
privacidad.

En cuanto a los usos, Bugzilla es utilizado para el seguimiento y gestión de errores


en proyectos de software, proporcionando un entorno centralizado para el registro,
seguimiento y resolución de incidencias. Además, es una herramienta de
colaboración que facilita la comunicación entre los diferentes actores involucrados
en el proceso de desarrollo y pruebas de software. Bugzilla es compatible con
proyectos de software libre, y es utilizado por equipos de desarrollo de renombre,
como el equipo de Mozilla responsable de Firefox, lo que garantiza el soporte en
tiempo y la escalabilidad de la solución.

El propósito de las pruebas de aceptación en el proceso de desarrollo de software


es permitir que el cliente o usuario final del sistema revise el cumplimiento de la
funcionalidad para la que se encargó el software. Estas pruebas se basan en los
casos de uso del sistema y en la especificación de requisitos, y su objetivo es
asegurar que el software cumple con las expectativas del cliente y está listo para su
uso operativo.

Por otro lado, el propósito de las pruebas de servicio es verificar que el software
está listo para su uso operativo y cumple con las expectativas del cliente. Estas
pruebas se realizan en un entorno que debe ser prácticamente igual al de
producción, y también incluyen la migración al sistema final o la puesta en servicio,
que debe ser probada en este entorno. Además, las pruebas de servicio se basan
en los casos de uso del sistema y en la especificación de requisitos, y su objetivo es
garantizar que el software cumple con los requisitos del usuario y funciona
correctamente.

PARTE 2

El documento se centra en el diseño y realización de pruebas de código dentro del


módulo de Entornos de Desarrollo. Comienza explicando las pruebas en el proceso
de desarrollo de software, detallando las tareas básicas y la planificación de pruebas
a lo largo del ciclo de desarrollo. Luego, se adentra en las pruebas de código,
describiendo los tipos de pruebas basadas en la ejecución de código, como las
pruebas de Caja Blanca (White box Testing) y las pruebas de Caja Negra (Black box
Testing). Además, proporciona técnicas para la realización de pruebas de Caja
Blanca o Caja Negra, detallando el cubrimiento, valores límite y clases de
equivalencia. También aborda la automatización de pruebas unitarias y las
herramientas integradas en los entornos de desarrollo para realizar pruebas
unitarias, como JUnit y TestNG. Además, explora temas relacionados con la
depuración de programas, incluyendo herramientas de depuración, puntos de
ruptura y seguimiento en tiempo de ejecución. Finalmente, se incluye un ejemplo de
plantillas para documentar casos de pruebas.

El documento proporciona una visión completa de las pruebas de código, desde su


planificación y diseño hasta la ejecución y depuración. Además, ofrece ejemplos
detallados y herramientas recomendadas para llevar a cabo pruebas unitarias
efectivas. Esto será de gran utilidad para los desarrolladores y profesionales de
pruebas de software que buscan mejorar la calidad y confiabilidad de sus productos.

Según el documento, las tareas básicas en el proceso de pruebas de software


incluyen el diseño del plan de pruebas, el diseño de casos de prueba, la ejecución
de pruebas, la comparación y evaluación de resultados, la gestión y control de
errores, y la definición de criterios de finalización de las pruebas. Estas tareas son
fundamentales para garantizar la calidad y fiabilidad del software a lo largo de su
ciclo de desarrollo.
Según el documento, los tipos de pruebas basadas en la ejecución de código
incluyen las pruebas de Caja Blanca (White box Testing) o Estructurales, y las
pruebas de Caja Negra (Black box Testing) o Funcionales. Las pruebas de Caja
Blanca permiten observar el comportamiento interno y la estructura del programa
examinando la lógica interna, mientras que las pruebas de Caja Negra se centran en
probar la funcionalidad del software sin conocer su estructura interna. Estas pruebas
son fundamentales para garantizar la calidad y fiabilidad del software durante el
proceso de desarrollo.

Las herramientas integradas en los entornos de desarrollo mencionadas para


realizar pruebas unitarias incluyen JUnit y TestNG. JUnit es un framework de
pruebas unitarias ampliamente utilizado en Java, con soporte en IDEs como Eclipse
y NetBeans. Por otro lado, TestNG, inspirado en JUnit y NUnit, está diseñado para
cubrir diferentes tipos de pruebas, incluyendo pruebas unitarias, funcionales e de
integración. Ambas herramientas ofrecen soporte para la ejecución y automatización
de pruebas unitarias, lo que permite realizar baterías de pruebas de forma cómoda y
profesional.

Según el documento, las herramientas de depuración integradas en los entornos de


desarrollo ofrecen varias funcionalidades, como la capacidad de realizar un
seguimiento de la ejecución del código, la posibilidad de realizar pruebas
estructurales y funcionales, la visualización del valor de las variables durante la
ejecución del programa, la inclusión de puntos de ruptura para detener la ejecución
del programa en una línea de código seleccionada, la inspección de variables, la
ejecución paso a paso de las instrucciones, la ejecución de procedimientos, la
verificación de la corrección del código y los caminos de ejecución, y la capacidad
de abortar la ejecución del programa o continuar su ejecución de forma normal.
Además, estas herramientas ayudan en la corrección sintáctica, indicando dónde se
produce el error y sugiriendo cómo corregirlo, y permiten comprobar los valores
devueltos por un método, el resultado de una comparación, el resultado de una
decisión y el camino por donde se dirige la ejecución.

TEMA 4

### Resumen del Tema 3: Diseño y Realización de Pruebas

**1. Introducción y Definiciones**


- Se proporcionan conceptos básicos sobre pruebas en el desarrollo de software,
definiendo qué son y su importancia.

**2. Pruebas en el Proceso de Desarrollo de Software**


- **Tareas Básicas:**
- **Diseño del Plan de Pruebas:** Estrategias y alcance.
- **Diseño de Casos de Prueba:** Definición de escenarios específicos.
- **Prueba:** Ejecución de casos de prueba.
- **Comparación y Evaluación de Resultados:** Verificación contra los resultados
esperados y gestión de errores.
- **Criterios de Finalización:** Determinación de cuándo finalizar las pruebas.

**3. Planificación de Pruebas a lo Largo del Ciclo de Desarrollo**


- **Pruebas Unitarias:** Validación de componentes individuales.
- **Pruebas de Integración:** Verificación de interacciones entre componentes.
- **Pruebas de Validación:** Aseguramiento de que el producto cumple con los
requisitos.
- **Pruebas de Sistema:** Evaluación del sistema completo.
- **Pruebas de Aceptación:** Confirmación por parte del usuario final.
- **Pruebas de Servicio y de Regresión:** Evaluación de servicios específicos y
validación tras cambios en el sistema.

**4. Pruebas de Código**


- **Tipos de Pruebas:**
- **Caja Blanca (White Box Testing):** Pruebas basadas en la estructura interna del
código.
- **Caja Negra (Black Box Testing):** Pruebas basadas en la funcionalidad sin
conocer la estructura interna.
- **Técnicas para Pruebas de Caja Blanca y Negra:**
- **Cubrimiento:** Medición de qué partes del código son ejecutadas.
- **Valores Límite y Clases de Equivalencia:** Métodos para seleccionar datos de
prueba representativos.

**5. Automatización de Pruebas**


- **Herramientas para Java:** Utilización de herramientas integradas en entornos de
desarrollo para pruebas unitarias.
- **Creación de Clases de Prueba:** Uso de anotaciones como @Test, @Before y
@After para definir el comportamiento de las pruebas.

### Resumen del Tema 4: Optimización y Documentación

**1. Refactorización**
- **Concepto y Limitaciones:**
- Mejorar la estructura interna del código sin cambiar su comportamiento.
- Limitaciones incluyen dificultades con bases de datos y cambios en interfaces
públicas.
- **Patrones de Refactorización:** Métodos comunes para mejorar el código.
- **Refactorización y Pruebas:** Importancia de mantener las pruebas durante el
proceso.
- **Herramientas de Ayuda:** Uso de funcionalidades integradas en IDEs para
facilitar la refactorización.
**2. Documentación**
- **Uso de Comentarios:**
- **Comentarios de Línea y Multi-línea:** Métodos para incluir documentación
directamente en el código.
- **Javadoc:** Herramienta para generar documentación automática en Java.
- **Herramientas Integradas:** Utilización de funcionalidades de los IDEs para
generar y acceder a la documentación.
- **Alternativas:** Otras herramientas disponibles para generar documentación
automática (e.g., doxygen).

**3. Optimización**
- **Mejora del Desempeño:**
- Optimización para velocidad de ejecución y uso de recursos (memoria).
- **Compiladores y Parámetros de Optimización:**
- Uso de parámetros como -O1, -O2, -O3, -Os, y -march=native en gcc para
controlar el nivel de optimización.
- **Herramientas de Análisis de Desempeño:** Herramientas que permiten identificar
áreas del código que pueden beneficiarse de la optimización.

Estos resúmenes cubren los conceptos clave y las prácticas descritas en los
documentos sobre pruebas de software, refactorización, documentación y
optimización de código.

También podría gustarte