Zusammenfassung der Ressource
Pruebas de Software
- procesos que permiten
verificar y revelar la calidad
de un producto software
antes de su puesta en
marcha
Anmerkungen:
- Una prueba es una actividad en la que un sistema o
un componente es ejecutado bajo condiciones
especificadas, los resultados son observados o
registrados, y una evaluación es realizada de un
aspecto del sistema o componente
Anmerkungen:
- Segun IEEE Std.610.12-1990]
- Una prueba es una actividad ejecutada para evaluar y mejorar la
calidad del producto a través de la identificación de defectos y
problemas
Anmerkungen:
- se observa un modelo de cómo las etapas de pruebas se integran en el ciclo de
vida de desarrollo de software genérico
- Para conseguir esta eficiencia
deseada durante el proceso de
pruebas
- Evitar redundancias: traen consigo una pérdida o desaprovechamiento de tiempo
por lo que hay que intentar ejecutar las pruebas más adecuadas a cada situación y
lo más rápido posible.
- Reducir costes:Habría que cerciorarse de que realmente fueran necesarias y de
que existe el tiempo y las habilidades suficientes para emplearlas de manera
ventajosa.
- El objetivo principal de la validación y verificación es comprobar que el
sistema está hecho para un propósito, es decir, que el sistema debe ser lo
suficientemente bueno para su uso previsto
- El nivel de confianza requerido
depende de tres factores:
- El propósito o función del sistema. El nivel de
confianza necesario depende de lo crítico que sea
el software para una organización.
- Las expectativas del usuario. es menos aceptable entregar
sistemas no fiables, por lo que las compañías deben invertir más
esfuerzo en llevar a cabo las actividades de verificación y
validación.
- Entorno de mercado actual. Cuando un sistema se comercializa, los
vendedores del sistema deben tener en cuenta los sistemas
competidores,
- la Validación en CMMI® es demostrar que un producto o componente
del mismo satisface el uso para el que se creó al situarlo sobre el
entorno previsto.siguiente pregunta: ¿Se está construyendo el producto
correcto?
- El propósito de la Verificación en CMMI® es asegurar
que los productos seleccionados cumplen los
requisitos especificados.¿Se está construyendo el
producto de la manera correcta?
- Tipos de pruebas
- En función de qué conocemos.
- a. Pruebas de caja negra
- probar dando distintos
valores a las entradas
- Este tipo de prueba se centra en los
requisitos funcionales del software y
permite obtener entradas que prueben
todos los flujos de una funcionalidad
- Funcionalidades incorrectas o ausentes.
- Errores de interfaz.
- Errores en estructuras de datos o
en accesos a las bases de datos
externas.
- Errores de rendimiento.
- Errores de inicialización y
finalización.
- b. Pruebas de caja blanca
- Consiste en realizar pruebas para verificar que líneas específicas
de código funcionan tal como esta definido.
- Se ejecutan al menos una vez todos los
caminos independientes de cada módulo
- Se utilizan las decisiones en
su parte verdadera y en su
parte falsa
- Se ejecuten todos los bucles en sus límites
- Se utilizan todas las estructuras de datos internas.
- Para esta prueba, se
consideran tres importantes
puntos.
- Conocer el desarrollo interno del programa, determinante en el
análisis de coherencia y consistencia del código.
- Considerar las reglas
predefinidas por cada
algoritmo.
- Comparar el desarrollo del programa en
su código con la documentación
pertinente.
- Según el grado de automatización
- a. Pruebas manuales
- Las pruebas manuales ayudarán a
descubrir cualquier problema
relacionado con la funcionalidad de
su producto, especialmente defectos
relacionados con facilidad de uso y
requisitos de interfaces.
- Pruebas automáticas
- tipo de pruebas, se usa un determinado
software para sistematizarlas y obtener los
resultados de las mismas.
- En función de qué se prueba
- Pruebas unitarias
- Se aplican a un componente del software. Podemos
considerar como componente (elemento indivisible)
a una función, una clase, una librería, etc.
- Para que una prueba unitaria,
tenga éxito se deben cumplir los
siguientes requisitos:
- Automatizable: no debería existir intervención manual.
Esto es, especialmente, útil para la integración continua.
- Completas: deben cubrir la mayor cantidad de código.
- Repetibles o Reutilizables: no se deben crear
pruebas que sólo puedan ser ejecutadas una sola
vez. También, es útil para integración continua.
- Independientes: la ejecución de una
prueba no debe afectar a la ejecución de
otra.
- Profesionales: las pruebas deben ser consideradas igual que el
código, con la misma profesionalidad, documentación, etc.
- Estas pruebas
aisladas
proporcionan cinco
ventajas básicas:
- Fomentan el cambio: Las pruebas
unitarias facilitan que el
programador cambie el código para
mejorar su estructura (lo que se
llama refactorización),
- Simplifica la integración: Puesto
que permiten llegar a la fase de
integración con un grado alto de
seguridad de que el código está
funcionando correctamente.
- Documenta el código: Las propias pruebas son
documentación del código puesto que ahí se puede ver
cómo utilizarlo.
- Los errores están más acotados
y son más fáciles de localizar:
dado que tenemos pruebas
unitarias que pueden
desenmascararlos.
- Separación de la interfaz y la
implementación: Dado que la
única interacción entre los
casos de prueba y las unidades
bajo prueba son las interfaces
de estas últimas, se puede
cambiar cualquiera de los dos
sin afectar al otro.
- Pruebas de integración
- Consiste en construir el sistema a partir de los
distintos componentes y probarlo con todos
integrados.
- c. Pruebas de aceptación
- lleva a cabo el equipo de desarrollo.
Consiste en comprobar si el producto
está listo para ser implantado para el
uso operativo
- Podemos distinguir entre dos tipos de pruebas
- Pruebas alfa: las realiza el usuario en
presencia de personal de desarrollo del
proyecto haciendo uso de una máquina
preparada para las pruebas.
- Pruebas beta: las realiza el usuario
después de que el equipo de
desarrollo les entregue una versión
casi definitiva del producto.
- Pruebas funcionales
- se realiza sobre el sistema funcionando, comprobando que
cumpla con la especificación (normalmente a través de los
casos de uso). Para estas pruebas, se utilizan las
especificaciones de casos de prueba.
- e. Pruebas de rendimiento
- se basan en comprobar que el sistema puede soportar
el volumen de carga definido en la especificación