PDF de programación - Pruebas de Software

Imágen de pdf Pruebas de Software

Pruebas de Softwaregráfica de visualizaciones

Publicado el 28 de Julio del 2020
192 visualizaciones desde el 28 de Julio del 2020
1,2 MB
43 paginas
Creado hace 57d (27/07/2020)
Pruebas de Software

27 de julio de 2020

Índice

1 ¿Qué son las pruebas de software?

1.1 ¿Hace lo que dice en la descripción? . . . . . . . . . . . . . . . .
1.2 La anatomía de una prueba funcional. . . . . . . . . . . . . . . .

1
2
2

2 Enfoques de pruebas funcionales

4
5
2.1 Prueba manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2 Pruebas automatizadas . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3 Test de aceptación . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Prueba unitaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.5 Pruebas de integración . . . . . . . . . . . . . . . . . . . . . . . . 10
2.6 La pirámide de prueba . . . . . . . . . . . . . . . . . . . . . . . . 12
2.7 Pruebas de regresión . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 Declaraciones de hecho

14

4 Prueba unitaria con unittest

15
4.1 Organización de prueba con unittest . . . . . . . . . . . . . . 15
4.2 Ejecución de pruebas con unittest . . . . . . . . . . . . . . . . 16
4.3 Escribiendo tu primera prueba con unittest . . . . . . . . . . 16
4.4 Escribiendo su primera prueba de integración con unittest . 22
4.5 Dobles de prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.6 Pruébalo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.7 Escribir pruebas interesantes . . . . . . . . . . . . . . . . . . . . 32

5 Prueba con pytest

33
5.1 Organización de prueba con pytest
. . . . . . . . . . . . . . . . 35
5.2 Convertir pruebas unitarias a pytest . . . . . . . . . . . . . . . 35

6 Más allá de las pruebas funcionales

37
6.1 Pruebas de rendimiento . . . . . . . . . . . . . . . . . . . . . . . 37
6.2 Prueba de carga . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

7 Desarrollo basado en pruebas

39
7.1 Es una mentalidad . . . . . . . . . . . . . . . . . . . . . . . . . . 39
7.2 Es una filosofia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

I

A medida que agrega una característica tras otra, ¿puede estar seguro de
que la aplicación sigue haciendo lo que quería? Cualquier aplicación que
espere que perdure en el futuro necesita algunas garantías de su longevi-
dad. Las pruebas pueden ayudarlo a asegurarse de que las nuevas carac-
terísticas estén compiladas correctamente, y puede ejecutar estas pruebas
nuevamente cada vez que actualice su código para asegurarse de que per-
manezca correcto.

Las pruebas pueden ser un proceso estricto y formal para aplicaciones que
no deben fallar, como el lanzamiento de cohetes y el mantenimiento de
aviones en vuelo. Tales pruebas son rigurosas y, a menudo, matemática-
mente demostrables. Eso es bastante bueno, pero va mucho más allá de lo
necesario o práctico para la mayoría de las aplicaciones de Python. En este
texto, aprenderá sobre la metodología y las herramientas que los desarro-
lladores de Python usan para probar su código, y tendrá la oportunidad de
escribir algunas pruebas usted mismo.

1. ¿Qué son las pruebas de software?

Hablando en términos generales, las pruebas de software son la práctica
de verificar que el software se comporta de la manera esperada.
Esto puede variar desde asegurarse de que una función produce el resul-
tado esperado cuando se le da una entrada específica hasta asegurarse de
que su aplicación pueda manejar el estrés de 100 usuarios a la vez. Como
desarrolladores, constantemente hacemos alguna forma de esto incons-
cientemente. Si está desarrollando un sitio web, probablemente ejecute el
servidor localmente y verifique sus cambios en el navegador a medida que
codifica. Esta es una forma de prueba.

Puede pensar que pasar más tiempo validando que su código funciona sig-
nifica menos tiempo para enviar software. En el término inmediato, esto
es cierto, especialmente a medida que se familiariza con las herramientas
y los procesos relacionados con las pruebas. Sin embargo, la idea a largo
plazo es que las pruebas le ahorrarán tiempo al limitar la recurrencia de

1

errores de comportamiento y rendimiento y al proporcionar un andamia-
je que puede usar para refactorizar con confianza el código en el futuro.
Cuanto más crítico sea un código para su negocio, más tiempo querrá pa-
sar probándolo a fondo.

1.1. ¿Hace lo que dice en la descripción?

Una razón para probar un software es determinar si realmente hace lo que
dice. Una función bien nombrada describe su intención al lector, pero, como
dicen, el camino al infierno está lleno de buenas intenciones. No puedo
contar la cantidad de veces que escribí una función, creyendo plenamente
que estaba cumpliendo fielmente con su propósito, solo para descubrir más
tarde que había cometido un error.

A veces, estos errores son fáciles de detectar: un error tipográfico o una
excepción en un área de código con la que está familiarizado puede ser
fácil de localizar. Los errores más difíciles de encontrar son aquellos que
no causan problemas inmediatos sino que caen en cascada a medida que
avanza la aplicación. Con buenas pruebas, los problemas se pueden encon-
trar temprano, y puede proteger su aplicación de problemas similares en el
futuro. Existen varias categorías de pruebas, cada una enfocada en iden-
tificar tipos particulares de problemas. Cubriré algunos aquí, pero puedes
estar seguro de que esta no es una lista exhaustiva.

1.2. La anatomía de una prueba funcional.

Ya vio anteriormente que las pruebas pueden garantizar que el software
produzca la salida correcta para una entrada determinada. Este tipo de
prueba se llama prueba funcional porque se asegura de que un código fun-
cione correctamente. Esto contrasta con otros tipos de pruebas, como las
pruebas de rendimiento.

Aunque las estrategias de prueba funcional varían en escala y enfoque, la
anatomía básica de una prueba funcional sigue siendo consistente. Debido

2

a que verifican que el software proporciona el resultado correcto en función
de una entrada dada, todas las pruebas funcionales deben realizar algunas
tareas específicas, incluidas las siguientes:

1. Prepare las entradas al software.

2. Identifique la salida esperada del software.

3. Obtenga la salida real del software.

4. Compare los resultados reales y esperados para ver si coinciden.

La preparación de entradas y la identificación de salidas esperadas es don-
de estará la mayor parte de su trabajo como desarrollador al crear pruebas,
mientras que obtener y comparar la salida real es cuestión de ejecutar su
código, como se muestra en la figura 1.

Figura 1: El flujo básico de una prueba funcional

Estructurar sus pruebas de esta manera tiene otro efecto beneficioso: pue-
de leer sus pruebas como una especificación de cómo funciona el código.

3

Esto vale la pena cuando vuelves a visitar el código que escribiste hace
mucho tiempo (o la semana pasada, para mí). Una buena prueba para una
función Calculate_mean podría leer así:

Dada la lista de enteros [1, 2, 3, 4],
la salida esperada de Calculate_mean es 2.5.
Verifique que la salida real de Calculate_mean coincida con

esta expectativa.

Este formato se escala a flujos de trabajo más grandes. En un sistema de
comercio electrónico, la "entrada" podría ser hacer clic en un producto y
luego hacer clic en Agregar al carrito. La "salida" esperada es el artículo
que se agrega al carrito. Una prueba funcional para ese flujo de trabajo se
leería así:

Dado que visito la página del producto 53-DE-232 y hago clic

en Agregar al carrito, espero ver el 53-DE-232 en mi carrito.

En última instancia, es bueno cuando sus pruebas no solo verifican que
su código funciona, sino que también actúan como documentación sobre
cómo usarlo. En la siguiente sección, verá cómo esta receta para escribir
una prueba funcional se aplica a algunos enfoques de prueba diferentes.

2. Enfoques de pruebas funcionales

Las pruebas funcionales adoptan muchas formas en la práctica. Desde las
constantes pequeñas comprobaciones que realizamos como desarrollado-
res hasta las pruebas totalmente automatizadas que se inician antes de
cada implementación de producción, existe un espectro de prácticas y ca-
pacidades. Reconocerá algunos de los siguientes tipos de pruebas, pero le
recomiendo leer sobre cada uno de ellos para comprender las similitudes y
diferencias.

4

2.1. Prueba manual

La prueba manual es la práctica de ejecutar su aplicación, darle algunas
entradas y verificar si hace lo que espera. Por ejemplo, si está escribiendo
un flujo de trabajo de registro para un sitio web, debe ingresar un nombre
de usuario y contraseña y asegurarse de que se cree un nuevo usuario. Si
tiene requisitos de contraseña, debe verificar que el uso de una contraseña
no válida no cree un nuevo usuario. Del mismo modo, probaría el caso en
el que ya existe un usuario con el nombre de usuario que elija.

Registrarse en un sitio web es generalmente una parte pequeña (y única)
de la experiencia del producto para la mayoría de los usuarios, pero, co-
mo puede ver, ya tiene que verificar varios casos. Si alguna de estas cosas
sale mal, los usuarios no pueden registrarse o pueden sobrescribir la infor-
mación de su cuenta. Dado que este código es tan importante, confiar en
las pruebas manuales durante demasiado tiempo eventualmente hará que
te pierdas algo. Explorar manualmente la aplicación para detectar nuevos
errores o cosas nuevas para probar sigue siendo una actividad valiosa, pero
debe considerarse como un complemento de otros tipos de pruebas.

2.2. Pruebas automatizadas

A diferencia de las pruebas manuales, las pruebas automatizadas le per-
miten escribir una gran cantidad de pruebas que luego se pueden ejecutar
tantas veces como desee, sin el riesgo de que se salte un chequeo.

Las pruebas automatizadas ajustan el ciclo de retroalimentación para que
pueda ver rápidamente si un cambio que ha realizado ha roto un comporta-
miento esperado. El tiempo que ahorrará en comparación con las pruebas
manuales lo liberará para realizar pruebas exploratorias más creativas de
la aplicación. A medida que descubra cosas para arre
  • Links de descarga
http://lwp-l.com/pdf17966

Comentarios de: Pruebas de Software (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad