testingfinal.pdf

9
26/11/2013 1 ¿Qué es el Software Testing? Pruebas de SW Pruebas de software son los procesos que permiten verificar y revelar la calidad de un producto software. Las pruebas de software se integran dentro de las diferentes fases del Ciclo del software dentro de la Ingeniería de software. Así se ejecuta un programa y mediante técnicas experimentales se trata de descubrir que errores tiene

Upload: douglas-sanchez

Post on 28-Nov-2015

9 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: TestingFinal.pdf

26/11/2013

1

¿Qué es el Software Testing?

Pruebas de SW • Pruebas de software son los procesos que permiten

verificar y revelar la calidad de un producto

software.

• Las pruebas de software se integran dentro de las

diferentes fases del Ciclo del software dentro de la

Ingeniería de software.

• Así se ejecuta un programa y mediante técnicas

experimentales se trata de descubrir que errores

tiene

Page 2: TestingFinal.pdf

26/11/2013

2

Pruebas de SW • Para determinar el nivel de calidad se deben efectuar

unas medidas o pruebas que permitan comprobar el grado de cumplimiento respecto de las especificaciones iniciales del sistema.

• Las pruebas de software, testing o beta testing es un

proceso usado para identificar posibles fallos de implementación, calidad, o usabilidad de un programa.

• Básicamente es una fase en el desarrollo de software consistente en probar las aplicaciones construidas.

• "El testing puede probar la presencia de errores pero no la ausencia de ellos", E. W. Dijkstra.

Pruebas de SW • Una definición de "testing" es:

• proceso de evaluación de un producto desde un

punto de vista crítico, donde el "tester" (persona

que realiza las pruebas) somete el producto a una

serie de acciones inquisitivas, y el producto

responde con su comportamiento como reacción.

• Por supuesto, nunca se debe testear el software en

un entorno de producción

Page 3: TestingFinal.pdf

26/11/2013

3

La importancia de la detección oportuna

• En la cadena de valor del desarrollo de un software

específico, el proceso de prueba es clave a la hora

de detectar errores o fallas.

• Conceptos como estabilidad, escalabilidad,

eficiencia y seguridad se relacionan a la calidad

de un producto bien desarrollado. Las aplicaciones

de software han crecido en complejidad y

tamaño, y por consiguiente también en costos.

• Hoy en día es crucial verificar y evaluar la calidad

de lo construido de modo de minimizar el costo de

su reparación.

La importancia de la detección oportuna

• Mientras antes se detecte una falla, más barato es

su corrección.

• El proceso de prueba es un proceso técnico

especializado de investigación que requiere de

profesionales altamente capacitados en lenguajes

de desarrollo, métodos y técnicas de pruebas y

herramientas especializadas.

• El conocimiento que debe manejar un ingeniero de

prueba es muchas veces superior al del

desarrollador de software.

Page 4: TestingFinal.pdf

26/11/2013

4

Qué es Software Testing

para el Practicante • Verificar el programa contra las especificaciones.

• Encontrar errores en el programa.

• Determinar el grado de aceptabilidad para el usuario.

• Asegurarse de que un sistema está listo para usarse.

• Ganar confidencia de que el programa funciona.

• Mostrar que un programa funciona correctamente.

• Demostrar que los errores no están presentes.

• Entender los límites del rendimiento.

• Aprender lo que el sistema no puede hacer.

• Evaluar las capacidades de un sistema.

• Verificar la documentación.

• Convencerse a uno mismo de que el trabajo ya está terminado.

La Importancia

de la Definición de Testing • La mayoría de la gente tiene una visión incorrecta

de lo que es testing, y esa es la principal causa de

una mala prueba del software.

• Si la meta es demostrar que el programa no tiene

errores, entonces subconscientemente estamos

dirigidos hacia esa meta y tendemos a seleccionar

datos de prueba que tengan una baja

probabilidad hacer que el programa falle.

Page 5: TestingFinal.pdf

26/11/2013

5

Definiciones Básicas • De acuerdo al estándar IEEE/ANSI, 1990 [Std 610.12-1990]

o Mistake: Una acción humana que produce un resultado

incorrecto. (Equivocación?)

o Fault: Un paso, proceso, o definición de datos incorrecto

en un programa. El resultado de un “mistake”

(Potencialmente puede llevar a un “failure”). (Falta?)

o Failure: Un resultado incorrecto. El resultado (o

manifestación de la falta). (Falla?)

o Error: La cantidad por la cuál el resultado es incorrecto.

Tipos de pruebas • Pruebas unitarias • Pruebas funcionales • Pruebas de Integración • Pruebas de validación

• Pruebas de sistema • Caja blanca (sistemas) • Caja negra (sistemas) • Pruebas de aceptación • Pruebas de regresión • Pruebas de carga • Pruebas de prestaciones • Pruebas de recorrido • Pruebas de mutación

Page 6: TestingFinal.pdf

26/11/2013

6

Caso de prueba • En Ingeniería del software, los casos de prueba o Test

Case son un conjunto de condiciones o variables bajo las cuáles el analista determinará si el requisito de una aplicación es parcial o completamente satisfactorio.

• Se pueden realizar muchos casos de prueba para determinar que un requisito es completamente satisfactorio. Con el propósito de comprobar que todos los requisitos de una aplicación son revisados, debe haber al menos un caso de prueba para cada requisito a menos que un requisito tenga requisitos secundarios. En ese caso, cada requisito secundario deberá tener por lo menos un caso de prueba.

• Algunas metodologías como RUP recomiendan el crear por lo menos dos casos de prueba para cada requisito. Uno de ellos debe realizar la prueba positiva de los requisitos y el otro debe realizar la prueba negativa.

Caso de prueba • Si la aplicación es creada sin requisitos formales,

entonces los casos de prueba se escriben basados

en la operación normal de programas de una clase

similar.

• Lo que caracteriza un escrito formal de caso de

prueba es que hay una entrada conocida y una

salida esperada, los cuales son formulados antes

de que se ejecute la prueba. La entrada conocida

debe probar una precondición y la salida

esperada debe probar una postcondición.

Page 7: TestingFinal.pdf

26/11/2013

7

Caso de prueba • La entrada conocida debe probar una precondición y

la salida esperada debe probar una postcondición. • Bajo circunstancias especiales, podría haber la

necesidad de ejecutar la prueba, producir resultados, y luego un equipo de expertos evaluaría si los resultados se pueden considerar como "Correctos".

• Esto sucede a menudo en la determinación del número del rendimiento de productos nuevos. La primera prueba se toma como línea base para los subsecuentes ciclos de pruebas/lanzamiento del producto.

• Los casos de prueba escritos, incluyen una descripción de la funcionalidad que se probará, la cuál es tomada ya sea de los requisitos o de los casos de uso, y la preparación requerida para asegurarse de que la prueba pueda ser dirigida.

Caso de prueba • Los casos de prueba escritos se recogen

generalmente en una suite de pruebas.

• Las variaciones de los casos de prueba son

comúnmente utilizados en pruebas de aceptación.

• La prueba de aceptación es realizada por un

grupo de usuarios finales o los clientes del sistema,

para asegurarse que el sistema desarrollado

cumple sus requisitos. La prueba de aceptación de

usuario se distingue generalmente por la

incorporación de un trayecto feliz o casos de

prueba positivos.

Page 8: TestingFinal.pdf

26/11/2013

8

Estructura de los casos de prueba

• Formalmente, los casos de prueba escritos consisten principalmente en tres partes con subdivisiones:

• Introducción/visión general contiene información general acerca de los Casos de Prueba.

o Identificador es un identificador único para futuras referencias, por ejemplo, mientras se describe un defecto encontrado.

o Caso de prueba dueño/creador es el nombre del analista o diseñador de pruebas, quien ha desarrollado pruebas o es responsable de su desarrollo.

o Versión la actual definición del caso de prueba.

o Nombre el caso de prueba debe ser un título entendible por personas, para la fácil comprensión del propósito del caso de prueba y su campo de aplicación.

Estructura de los casos de prueba

o Identificador de requerimientos el cuál está incluido por el

caso de prueba. También aquí puede ser identificador de

casos de uso o especificación funcional.

o Propósito contiene una breve descripción del propósito de

la prueba, y la funcionalidad que chequea.

o Dependencias

• Actividad de los casos de prueba

o Ambiente de prueba/configuración contiene información

acerca de la configuración del hardware o software en el

cuál se ejecutará el caso de prueba.

o Inicialización describe acciones, que deben ser

ejecutadas antes de que los casos de prueba se hayan

inicializado. Por ejemplo, debemos abrir algún archivo.

Page 9: TestingFinal.pdf

26/11/2013

9

Estructura de los casos de prueba

o Finalización describe acciones, que deben ser ejecutadas después de realizado el caso de prueba. Por ejemplo si el caso de prueba estropea la base de datos, el analista debe restaurarla antes de que otro caso de prueba sea ejecutado.

o Acciones pasos a realizar para completar la prueba.

o Descripción de los datos de entrada

• Resultados

o Resultados esperados contiene una descripción de lo que el analista debería ver tras haber completado todos los pasos de la prueba

o Resultados reales contienen una breve descripción de lo que el analista encuentra después de que los pasos de prueba se hayan completado. Esto se sustituye a menudo con un Correcto/Fallido. Si un caso de prueba falla, frecuentemente la referencia al defecto implicado se debe enumerar en esta columna.