+ All Categories
Home > Documents > Pruebas de Software

Pruebas de Software

Date post: 27-Jun-2015
Category:
Upload: miguel-paredes
View: 293 times
Download: 7 times
Share this document with a friend
14
Prueba Modelo de Fiabilidad Depuración Evaluación Configuración del Software Configuración de la Prueba Errore s Correciones Predicción Fiabilidad Resultados esperados Resultados de Datos de tasa de error Por: Miguel Paredes PRUEBAS DE SOFTWARE ¿Qué tipos de prueba de programa deben ser considerados? Caja negra. No está basada en el conocimiento del código o diseño interno, determina la funcionalidad del sistema. Caja blanca. Está basada en la lógica interna de la aplicación y el código. Hace una cobertura de
Transcript
Page 1: Pruebas de Software

Prueba

Modelo de Fiabilidad

Depuración

Evaluación

Configuracióndel Software

Configuraciónde la

Prueba

Errores

Correciones

PredicciónFiabilidad

Resultados esperados

Resultados de

Datos de tasa de error

Por: Miguel Paredes

PRUEBAS DE SOFTWARE

¿Qué tipos de prueba de programa deben ser considerados?

• Caja negra. No está basada en el conocimiento del código o diseño interno,

determina la funcionalidad del sistema.

• Caja blanca. Está basada en la lógica interna de la aplicación y el código. Hace

una cobertura de declaraciones del código, ramas, caminos y condiciones.

• Unidad de testeo o prueba. Es la escala más pequeña de la prueba, está basada

en la funcionalidad de los módulos del programa, como funciones,

procedimientos, módulos de clase, etc. En ciertos sistemas también se verifican

o se prueban los drivers y el diseño de la arquitectura.

Page 2: Pruebas de Software

• Integración incremental. Cuando nuevas funciones son ingresadas al sistema se

hace la prueba basándose en la funcionalidad, la dependencia con otros módulos

y la integración con el programa completo.

• Prueba de integración. Se basa en las pruebas de conexiones y comunicaciones

entre diferentes módulos. Es esencial en sistemas de cliente_servidor o red.

• Prueba funcional. La caja negra hace la prueba funcional de los requerimientos

de la aplicación y generalmente es realizada por el programador, en cambio, la

prueba funcional es realizada por los testers.

• Prueba de sistema. Es una prueba de caja negra incluyendo todos los

componentes del sistema desde el hardware a la documentación.

• Prueba de fin a fin. Es similar a la prueba de sistema pero esta involucra la

interacción con otros hardwares, bases de datos y redes.

• Prueba de sanidad. Determina si la nueva versión de un software esta bien

realizada y si necesita un nuevo esfuerzo en la prueba de software. Por ejemplo

la nueva versión de un programa cumple con casi todos los requisitos pero

destruye la base de datos al leerla, por lo tanto se dice que este software no esta

en una condición sana.

• Prueba de regresión. Es una nueva revisión en las pruebas del programa luego

de que este haya sufrido algún cambio o por apuros de tiempo o la modificación

fue en el ambiente en que se desenvuelve. Actualmente aparecieron

herramientas automatizadas que hacen que este tipo de pruebas no lleve

demasiado tiempo.

• Prueba de aceptación. Es la prueba final basada en las especificaciones del

usuario o basada en el uso del programa por el usuario final luego de un periodo

de tiempo.

• Prueba de carga. Está basada en las aplicaciones bajo cargas

pesadas ,generalmente usadas en sitios web y en servidores con gran cantidad de

datos donde se determina en cuales puntos existen degradaciones del sistema.

• Prueba de estrés. Es una prueba de carga y performance basada en la

funcionalidad del sistema bajo cargas pesadas , un gran número de repeticiones,

manejo de grandes datos y demasiadas preguntas a bases de datos grandes.

Page 3: Pruebas de Software

• Prueba de performance. Es una de las pruebas finales y sirve para definir los

requerimientos y la calidad del software, en base a las pruebas de carga y estrés.

Incluye entrevistas con el usuario y programador.

• Prueba de instalación y desinstalación. Determina la eficiencia de los procesos

que instalan y desinstalan las aplicaciones del programa.

• Prueba de recuperación. Es la prueba que evalúa que tan bien se recupera el

sistema luego de bloqueos , fallas del hardware u otros problemas catastróficos.

• Prueba de seguridad. Evalúa que tan bien el sistema se protege contra accesos ,

internos o externos, no autorizados, esta prueba requiere sofisticadas técnicas y

herramientas.

• Prueba de compatibilidad. Evalúa el desempeño del software en diferentes

hardwares , sistemas operativos , redes, etc.

• Prueba de exploración. Es una prueba informal del software que no está basada

en ningún plan o caja de prueba y a menudo los testers aprenden del programa al

explorar todas las aplicaciones posibles.

• Prueba de anuncio. Es similar a la prueba de exploración pero los testers deben

tener suficiente noción sobre el funcionamiento del programa antes de comenzar

esta prueba. Incluye reunión con analistas y programadores.

• Prueba de usuario. Determina si el usuario se desenvuelve satisfactoriamente

con el programa.

• Prueba de comparación. En esta prueba se comparan los pro y los contra del

programa con los programas creados con la competencia.

• Prueba alfa. Es la prueba cuando la aplicación esta cerca de la entrega al

usuario. Se hacen pequeños cambios generalmente en el diseño de interfaces.

Esta prueba es hecha por usuarios.

• Prueba beta. Es la búsqueda de bugs en el programa completo. Generalmente es

hecha por usuarios.

• Prueba de mutación. Esta prueba esta basada en la introducción deliberada de

diferentes códigos externos al programa (bugs) para reexaminar si estos bugs

pueden ser detectados. Requiere gran disponibilidad de recursos de

computación.

Page 4: Pruebas de Software

CAJA BLANCA

Al desarrollar un nuevo software o sistema de información, la primera etapa de pruebas a

considerar es la etapa de pruebas unitarias o también llamada pruebas de caja blanca (White

Box), estás pruebas también son llamadas pruebas modulares ya que nos permiten

determinar si un módulo del programa está listo y correctamente terminado, estas pruebas

no se deben confundir con las pruebas informales que realiza el programador mientras está

desarrollando el módulo.

El principal factor que se debe considerar al inicio de las pruebas es el tamaño del módulo a

probar, se debe considerar si el tamaño del módulo permitirá probar adecuadamente toda su

funcionalidad de manera sencilla y rápida. También es importante separar los módulos de

acuerdo a su funcionalidad, si los módulos son muy grandes y contienen muchas

funcionalidades, estos se volverán más complejos de probar y al encontrar algún error será

más difícil ubicar la funcionalidad defectuosa y corregirla. Al hacer esta labor el analista de

pruebas podrá recomendar que un módulo muy complejo sea separado en 2 o 3 módulos

más sencillos

La prueba de la caja blanca usa la estructura de control del diseño procedural para

derivar los casos de prueba

Idea: confeccionar casos de prueba que garanticen que se verifican todos los

caminos independientes

Verificaciones para cada camino independiente:

Probar sus dos facetas desde el punto de vista lógico, es decir, verdadera y falsa

Ejecutar todos los bucles en sus límites operacionales

Ejercitar las estructuras internas de datos

Los errores lógicos y las suposiciones incorrectas son inversamente proporcionales

a la probabilidad de que se ejecute un camino del programa

A menudo creemos que un camino lógico tiene pocas posibilidades de ejecutarse

cuando, de hecho, se puede ejecutar de forma regular

Los errores tipográficos son aleatorios

“Los errores se esconden en los rincones y se aglomeran en los límites” (Beizer)

Page 5: Pruebas de Software

PRUEBAS DE CAJA NEGRA

Se denominan pruebas funcionales o FunctionalTesting, a las pruebas de software que

tienen por objetivo probar que los sistemas desarrollados, cumplan con las funciones

específicas para los cuales han sido creados, es común que este tipo de pruebas sean

desarrolladas por analistas de pruebas con apoyo de algunos usuarios finales, esta etapa

suele ser la ultima etapa de pruebas y al dar conformidad sobre esta el paso siguiente es el

pase a producción.

A este tipo de pruebas se les denomina también pruebas de comportamiento o pruebas de

caja negra, ya que los testers o analistas de pruebas, no enfocan su atención a como se

generan las respuestas del sistema, básicamente el enfoque de este tipo de prueba se basa en

el análisis de los datos de entrada y en los de salida, esto generalmente se define en los

casos de prueba preparados antes del inicio de las pruebas.

Las pruebas funcionales en la mayoría de los casos son realizadas manualmente por el

analista de pruebas, también es posible automatizar este tipo de pruebas utilizando

herramientas como WinRunner o SilkTest las cuales permiten generar scripts conforme

nosotros hagamos interacciones con el aplicativo a probar. La automatización de pruebas

puede resultar compleja y solo la recomendaría en algunas funcionalidades específicas, por

ejemplo en las pantallas que tendrán mayor uso, generalmente pantallas de ingreso de

datos. Se debe tener en cuenta que el costo de estas licencias suele ser bastante elevado.

Al realizar pruebas funcionales lo que se pretende en ponerse en los pies del usuario, usar el

sistema como él lo  usaría sin embargo el analista de pruebas debe ir mas allá que cualquier

usuario, generalmente se requiere apoyo de los usuarios finales ya que ellos pueden aportar

mucho en el desarrollo de casos de prueba complejos, enfocados básicamente al negocio,

posibles particularidades que no se hayan contemplado adecuadamente en el diseño

funcional, el analista de pruebas debería dar fuerza a las pruebas funcionales y más aún a

las de robustez, generalmente los usuarios realizan las pruebas con la idea que todo debería

funcionar, a diferencia del analista de pruebas que tiene más bien una misión destructiva, su

objetivo será encontrar alguna posible debilidad y si la llega a ubicar se esforzará por que

Page 6: Pruebas de Software

deje de ser pequeña y posiblemente se convertirá en un gran error, cada error encontrado

por el analista de pruebas es un éxito, y se debería considerar como tal, en mi experiencia

personal he podido ver qué proyectos atrasados, o con algunos problemas de tiempo

sacrifican horas de pruebas, incluso se siente algún malestar si el tester sigue encontrando

errores, si no se corrige esta situación los proyectos en su gran mayoría fracasaran o

perderán más tiempo aún

Las pruebas de caja negra se centran en los requisitos funcionales del software

La prueba de la caja negra intenta encontrar errores de los siguientes tipos:

Funciones incorrectas o inexistentes

Errores relativos a las interfaces

Errores en estructuras de datos o en accesos a bases de datos externas

Errores debidos al rendimiento

Errores de inicialización o terminación

La partición equivalente es un método que divide el campo de entrada de un

programa en clases de datos

Una condición de entrada es un valor numérico específico, un rango de valores, un

miembro de un conjunto de valores o lógica

Una clase de equivalencia representa un conjunto de estados válidos y no válidos

para una condición de entrada

La prueba de partición equivalente se basa en evaluar las clases de equivalencia

para una condición de entrada

Se examina cada condición de entrada y se divide en dos o más grupos.

Se identifican dos tipos de clases:

Clases de equivalencia válidas

Clases de equivalencia no válidas

Si la condición de entrada es un:

Rango, se define una clase de equivalencia válida y dos no válidas

Valor específico, se define una clase de equivalencia válida y dos no válidas

Miembro de conjunto, se define una clase de equivalencia válida y otra no

válida

Lógica, se define una clase válida y otra no válida

Page 7: Pruebas de Software

Ejemplo

Page 8: Pruebas de Software

COMPONENTE DE PRUEBA

Page 9: Pruebas de Software

Referencias

.Ingeniería del Software. Un enfoque práctico (5ª edición) Roger S. Pressman Editorial Mc. Graw Hill, 2001 Capítulos 17 y 18

http://es.wikipedia.org/wiki/Pruebas_de_software http://docs.google.com/viewer?a=v&q=cache:2GbbS7Hj2jcJ:alarcos.inf-

cr.uclm.es/doc/masi/doc/lec/parte5/polo-apuntesp5.pdf+pruebas+de+software&hl=es&pid=bl&srcid=ADGEEShdnd5xMUKetyuE70JvsA5Eft8Qf0PegjxLjB5xKXoo6-r2B40YHjyc_UgCt1nvGZkyT3ojWmzJPmPjPsMaamqI8eTL0OrvqymgiSOhNKlC255ixto_zDyvQvH2eM8Psl0H-m5m&sig=AHIEtbSkHds2nrD1fyq_ftByhgKffbvK_g

http://www.worldlingo.com/ma/enwiki/es/Software_testing


Recommended