You are on page 1of 24

Herramientas

automticas
de prueba
Materia: Evaluacin y Auditoria de Sistemas de Informacin

Docente: MSc. Patricia Elizabeth Romero R.

Cbba 2015 1
2

Introduccin
Cuando todo funciona bien las
computadoras y el software son de gran
ayuda pero cuando no
todo puede ser catastrfico
3

Errores informticos que


provocaron catstrofes
El4 de junio de 1996 la Agencia Espacial
Europea lanz el cohete Ariane 5. Un
error de programacin en el mdulo de
gestin provoc la autodestruccin del
cohete 37 segundos despus del
despegue.
4

sonda de la NASA Mars Climate Orbiter (11-


12 - 1998). 286 das despus sobrevol el
planeta rojo a 57 kilmetros de su superficie
en vez de los 150 previstos, lo que provoc
que se destruyera en atmsfera marciana.
El culpable del error
en la trayectoria de
la sonda fue el
'software'
informtico basado
en la Tierra. El fallo
destruy un
proyecto de 327
millones de
dlares.
5

Enagosto de 2012, un error de programa


casi provoc la quiebra de
la empresa de inversin Knight Capital. La
compaa perdi 500 millones de dlares
en media hora debido a que sus
computadoras comenzaron a comprar y
vender millones de acciones sin ningn
tipo de control humano. Como resultado,
el precio de las acciones de Knight
Capital cay un 75% en dos das.
6

Un error de programacin de la unidad de


control de la mquina de radioterapia Therac-
25 caus entre 1985 y 1987 al menos seis
accidentes en los que los pacientes recibieron
sobredosis masivas de radiacin. Al menos tres
de estos pacientes fallecieron como
consecuencia directa del exceso de
radiacin. Los expertos creen que el fallo fue
causado por un error en el cdigo que oblig
al programa a realizar la misma accin varias
veces.
7

En 2013, un error de programacin


provoc el caos en la compaa
de aviacin American Airlines. La unin
de dos sistemas como resultado de
la fusin de varias compaas areas
origin un fallo en el sistema de reserva
de pasajes. Unificar plataformas escritas
en diferentes lenguajes de
programacin.
8

Guerra: Fallo mortal


25 02 - 1991, en la Guerra del Golfo, el
sistema de defensa antimisiles
estadounidenses Patriot en Dhahran no pudo
seguir e interceptar un misil entrante de tipo
Scud. El 'software' funcionaba con retraso y
no segua el lanzamiento de misiles en tiempo
real, segn el informe de la Oficina de
Responsabilidad Gubernamental de EE.UU. El
impacto del Scud iraqu contra un cuartel del
Ejrcito de EE.UU. mat a 28 norteamericanos
y dej a otros cientos heridos.
9

Testing
El objetivo del testing segun IEEE: Es el
proceso en el que se pone en
funcionamiento un sistema o
componente bajo ciertas condiciones,
observar o registrar los resultados, y hacer
una evaluacin de algn aspecto del
sistema o componente
10

Testing
Conjunto de actividades dentro del
proceso de desarrollo de software,
orientadas a demostrar la presencia de
defectos.
11

Pruebas (test)
Una actividad en la cual un software o
uno de sus componentes se ejecuta en
circunstancias previamente
especificadas, los resultados se observan
y registran y se realiza una evaluacin de
algn aspecto.

Caso de prueba (test case): Un conjunto


de entradas, condiciones de ejecucin y
resultados esperados desarrollados para
un objetivo particular.
12

Las pruebas de software se integran


dentro de las diferentes fases del Ciclo
del software dentro de la Ingeniera de
software. As se ejecuta un programa y
mediante tcnicas experimentales se
trata de descubrir que errores tiene.
"El testing puede probar la presencia de
errores pero no la ausencia de ellos".
13

Las pruebas manuales de


software
La persona intenta diversas formas de uso y
combinaciones, compara sus resultados con
el comportamiento esperado y registra sus
resultados.
Estas pruebas son repetidas durante el ciclo
de desarrollo por cada cambio dentro del
cdigo fuente y otras situaciones como
mltiples ambientes o configuraciones.
Se convierte en una tarea bastante tediosa,
asimismo no es efectiva encontrando
determinados tipos de errores.
14

Las herramientas de
automatizacin de pruebas
Permiten verificar el comportamiento unitario
del cdigo o inclusive pre-grabar acciones
de los usuarios, comparar los resultados con
el funcionamiento esperado y reportar el
xito o fracaso de estas pruebas a las
personas interesadas.
Una vez creadas estas pruebas pueden ser
ejecutadas repetitivamente de forma muy
sencilla y pueden ser extendidas para realizar
tareas que seran imposibles de forma
manual.
15

Las herramientas de
automatizacin de pruebas
Ventajas
Ahorrar tiempo y dinero.
Aumentar la calidad del software.
Reducir considerablemente la cantidad de
bugs.
Poder ejecutar pruebas de manera rpida
ante cualquier cambio en el software.
16

Tipos de herramientas de
automatizacin de pruebas
Pruebas de Unidad, es un segmento de
automatizado de cdigo, escrito y
mantenido por los desarrolladores que
invoca a una funcin o mtodo para
verificar ciertas suposiciones de
comportamiento.
El objetivo es probar los caminos o posibles
recorridos en un componente del
programa (funcin o mtodo).
17

Tipos de herramientas de
automatizacin de pruebas
Unit Testing Frameworks, nos proveeen los
mecanismos necesarios para ejecutar la
lgica especfica a nuestra prueba. Ejm: Junit
de Java, NUnit de .Net, etc.
18

Tipos de herramientas de
automatizacin de pruebas
Prueba funcional, la prueba funcional es
de tipo caja negra realizada sin
conocimiento de la aplicacin, a alto
nivel, simulando la actuacin del
usuario. Algunas open source: Selenium,
Eclipse, FireBug, etc.
19

Pruebasde regresin, intentan descubrir


las causas de nuevos errores (bugs),
carencias de funcionalidad, o
divergencias funcionales con respecto al
comportamiento esperado del software,
inducidos por cambios recientemente
realizados en partes de la aplicacin que
anteriormente al citado cambio no eran
propensas a este tipo de error. Ejemplo:
Selenium
20

Tipos de herramientas de
automatizacin de pruebas
Prueba de carga y stress, las cuales
garantizan la productividad de un sistema o
pagina web , as como el funcionamiento
optimo de sistemas convencionales (de
escritorio). Verificar atributos de la calidad
del sistema: la escalabilidad, fiabilidad y uso
de los recursos
Pruebas de carga, Son pruebas para
determinar y validar la respuesta de la
aplicacin cuando es sometida a una carga
de usuarios y/o transacciones que se espera
en un escenario de uso y de acceso a
servicios y /o informacin limitados.
21

Tipos de herramientas de
automatizacin de pruebas
Pruebas de Stress, son una particularidad
de las Pruebas No Funcionales y sirven para
verificar el comportamiento de una
aplicacin bajo una demanda excesiva. El
objetivo es poder generar una gran
cantidad de peticiones a la aplicacin y
verificar su comportamiento, y de esta
manera poder garantizar el nmero
mximo de peticiones bajo las cuales la
aplicacin, servidor, interaccin con otros
aplicativos, etc, es normal.
22

Tipos de herramientas de
automatizacin de pruebas
El estrs es parecido a la Carga pero en vez de
introducir usuarios gradualmente, se introducen
usuarios a la vez (un grupo de 100 en el mismo
instante).
En general, para poder realizar este tipo de
pruebas deber tenerse un plan bien
definido de la arquitectura de servidores /
computadoras que las realizarn, un
mtodo de recoleccin y anlisis
centralizado. Ejm. JMeter de Apache, AB
(Apache Benchmark),
23

ENLANCES
http://www.variablenotfound.com/2008/11
/20-desastres-famosos-relacionados-
con_23.html
http://actualidad.rt.com/actualidad/view/
138158-catastrofes-programacion-culpa-
software-computadora
http://www.taringa.net/posts/info/1890933/
Los-20-desastres-mas-famosos-
relacionados-con-el-Software.html
http://www.adictosaltrabajo.com/tutoriales
/tutoriales.php?pagina=junit
http://www.dosideas.com/wiki/EasyMock
24

TDD Test Driven Development: se refiere a las


pruebas unitarias que siguen el principio test-
first. Esto es, la prueba unitaria se crea ANTES
de crear la propia clase. La idea es que, al
pensar en cmo probars la clase, ests
pensando en la propia clase desde el punto
de vista de su interfaz (qu mtodos tendr y
con qu parmetros), ayudando a desarrollar
antes un mejor diseo. De sta manera,
adems, te aseguras de que no exista
ninguna clase que no est probada.

You might also like