Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

12 - 04 Servidores

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 19

INGENIERÍA DE SOFTWARE II

UNIDAD III
PROF: JOSÉ GABRIEL SERVÍN
PRUEBA DE SOFTWARE

Concepto

La prueba de software es el proceso de evaluación y verificación de


un producto o aplicación de software para saber si hace lo que se
supone que debe hacer.

Los beneficios de las pruebas incluyen la prevención de errores, la


reducción de los costos de desarrollo y la mejora del rendimiento.
Por qué son importantes las pruebas?

La priorización de pruebas consiste en establecer un orden de

ejecución para los casos de prueba que permita alcanzar un

determinado objetivo, así es posible reordenar los casos de

prueba para detectar fallos lo antes posible o conseguir un

determinado nivel de cobertura de código cuanto antes.


Cuál es el objetivo de las pruebas?

El objetivo principal de las pruebas es aportar calidad al producto que


se está desarrollando.

 Encontrar el mayor número de defectos en el código para que se


resuelvan y eliminarlos.

 Asegurar que el producto funciona tal y cómo se ha definido en los


requisitos

 Proporcionar al producto final un grado mayor de calidad.


NIVELES DE PRUEBA
Generalmente se comienza probando las partes más pequeñas y se
continua con las más grandes
Depuración.

La depuración de programas es el proceso de identificar y


corregir errores de programación.
 Síntoma y causa pueden estar separados
 Síntoma puede desaparecer al arreglar otro problema
 Causa puede darse por combinación de no-errores
 Causa puede darse por error de sistema o compilador
 Síntoma puede ser intermitente
Tipos de prueba

Hay diferentes tipos de prueba de software. Las que buscan probar


una funcionalidad del software, las que buscan probar una
característica no funcional, como puede ser la fiabilidad, y las que
buscan probar la estructura del software.

Teniendo en cuenta esto, vamos a diferenciar los tipos de prueba en


tres puntos principales
Pruebas funcionales.

Este tipo de pruebas se basa en las funcionalidades de un


sistema que se describen en la especificación de requisitos, es
decir, lo que hace el sistema.

También pueden no estar documentadas pero se requiere un


nivel de experiencia elevado para interpretar estas pruebas.

La funcionalidad a su vez, la dividen en las siguientes


características.
 Completitud funcional: el grado en el que las funcionalidades cubren
todas las tareas y objetivos del usuario especificados.

 Corrección funcional: capacidad del producto o sistema para


proveer resultados correctos con el nivel de precisión requerido.

 Pertenencia funcional: capacidad del producto de software para


proporcionar un conjunto apropiado de funciones para tareas y
objetivos de usuario especificados.
Pruebas no funcionales

Este tipo de pruebas tienen en cuenta el comportamiento externo del

Software y se ve cómo funciona el sistema, y al igual que las


características funcionales, las características no funcionales tienen
que estar definidas en las especificaciones del producto.

Pruebas de esfuerzo: se realizan pruebas donde se sobrecarga el

sistema y se analiza la capacidad de recuperación.


Pruebas de seguridad: se realizan diferentes pruebas de accesos no
autorizados, ataque de denegación de servicio, etc.

Pruebas de usabilidad: se mide la facilidad de uso, efectividad y


satisfacción, siempre dentro de un grupo específico de usuarios.

Pruebas estructurales

Las pruebas estructurales permiten medir la totalidad de las pruebas

mediante la evaluación de tipo estructura.


Técnicas de prueba

Para conseguir el objetivo de que el producto tenga la calidad deseada

vamos a ver diferentes técnicas de prueba que se pueden aplicar a la


hora de realizar las pruebas.

Estas técnicas tienen el objetivo de identificar condiciones de la


prueba, casos de prueba y datos de la prueba.
Técnicas estáticas

Este tipo de técnicas son aquellas que no ejecutan la aplicación. Se

llevan acabo a nivel de especificaciones.

No ejecutan código, pero si realizarán un análisis estático del código.

Se realizarán revisiones de todos los documentos del proyecto como

pueden ser las especificaciones de diseño, de requisitos, los casos de

prueba.
Técnicas dinámicas

Este tipo de técnicas son las realizadas ejecutando la aplicación y son


las utilizadas para el diseño de los casos de prueba.

La mayoría del software puede probarse de dos maneras diferentes.

Conociendo el funcionamiento interno, podemos probar que todos los


módulos encajan unos con otros, desde una visión interna.
Al conocer las funciones específicas del producto se pueden llevar a
cabo pruebas que demuestren que estas funciones son operativas y la
búsqueda de errores en dichas funciones. Estas pruebas se realizan
desde una visión externa.

Técnicas basadas en la experiencia

las pruebas basadas en la experiencia son aquellas en las que las

pruebas se derivan de la habilidad e intuición del probador y de su

experiencia con aplicaciones y tecnologías similares.


Estas pruebas pueden tener poca o mucha efectividad dependiendo de
la experiencia del probador y suelen aplicarse en proyectos donde la
documentación es escasa o inadecuada.

Dos de las técnicas basadas en la experiencia son:

 Predicción de error.

 Pruebas exploratorias.
Qué es un plan de pruebas?

La planificación de las pruebas es uno de los puntos más

importantes a la hora de probar un proyecto, tenemos que tener

controlados todos los aspectos, desde la manera de la que vamos a

probar, cómo lo vamos a probar, los recursos de los que vamos a

disponer, las pruebas de regresión , la documentación del proyecto,

etc.
La planificación de las pruebas es uno de los principales puntos a la

hora de probar el software con éxito. En ausencia de un buen test

plan es muy poco probable que las pruebas se ejecuten en un plazo

estipulado e incluso se incrementara el costo del proyecto al

consumir más tiempo y recursos.

Esta planificación tiene que estar incluida dentro de la planificación

general de un proyecto de software.

También podría gustarte