Diseño y realización de pruebas de software, Marco Formación Profesional

Documento de Marco Formación Profesional sobre el diseño y realización de pruebas. El Pdf, de Formación profesional en Informática, explora el testing, el debugging y la garantía de calidad, con ejemplos prácticos de código Java y JUnit.

Ver más

28 páginas

IFC3031VA - (0487) Entornos de desarrollo2023/2024
1
TEMA 3 – DISEÑO Y REALIZACIÓN DE
PRUEBAS.
TEMA 3 – DISEÑO Y REALIZACIÓN DE PRUEBAS. .................................................................. 1
1. Introducción: ................................................................................................................................ 2
2. Procedimientos y casos de prueba: ........................................................................................... 4
3. Tipos de prueba: .......................................................................................................................... 6
4. Pruebas de caja blanca: .............................................................................................................. 8
4.1. Pruebas de cubrimiento: ........................................................................................................................ 8
4.2. Pruebas de condiciones: ..................................................................................................................... 10
4.3. Pruebas de bucles: .............................................................................................................................. 11
5. Pruebas de caja negra: .............................................................................................................. 12
5.1. Pruebas de clases de equivalencia: .................................................................................................... 12
5.2. Pruebas de valores límites: ................................................................................................................. 13
5.3. Pruebas de la tabla de decisiones: ...................................................................................................... 14
5.4. Pruebas de interfaces: ......................................................................................................................... 15
6. Soporte del depurador: .............................................................................................................. 16
7. Automatización de pruebas: ..................................................................................................... 20
8. Calidad: ....................................................................................................................................... 26
Imagina que la aplicación de tus prácticas se encuentra desarrollando su primera versión. Es
importante establecer y planificar el diseño y la realización de pruebas sobre esta aplicación,
así que te reúnes con tu supervisora de proyectos y estableces cómo te vas a organizar para
probar las distintas partes de la aplicación que se van desarrollando y quien usará esos casos
de prueba y evaluará los resultados obtenidos...
2
Como ya vimos en el primer tema de la asignatura, el ciclo de vida de un sistema informático
consiste en una serie de etapas en común para el desarrollo de un software:
Fase inicial: Base del desarrollo, planificación del proyecto, estimaciones...
Fase análisis: Recopilar, examinar y formular los requisitos del cliente y analizar las
restricciones.
Fase de diseño: Determinar requisitos generales, lenguaje de programación entorno...
Fase de codificación: Implementación del software en un lenguaje de programación...
Fase de pruebas: Asegurar la validación y verificación del software construido…
Fase de explotación: Instalación del software en un entorno real y trabajo de forma
cotidiana...
Fase de mantenimiento: Procedimientos correctivos y adaptación y evolución de las
aplicaciones...
Actividad 1: ¿A qué crees que se refiere la realización de pruebas del software?
1. Introducción:
El testing se basa en un conjunto de actividades dirigidas a facilitar la identificación y/o
evaluación de propiedades de un software.
Comparar "lo que es" con "lo que debería ser"
El objetivo es detectar defectos de software.
El debug está relacionado con la búsqueda de dónde ocurren los defectos.
Es un método utilizado para asegurar la calidad del software.
Aunque se utilicen los mejores métodos de revisión, el testing es siempre necesario.
Se debe hacer un seguimiento hasta ver si cumple con los requisitos del cliente.
Como consejo, empezar por lo pequeño y progresar hacia lo grande.
Son más eficientes las pruebas dirigidas por un equipo independiente al que ha
creado el código.
Ejercicio 2: ¿Crees que es lo mismo la verificación de un software que la validación de un
software?
Antes de profundizar en las pruebas, estos son algunos conceptos importantes:
Caso de prueba: Entradas, condiciones de ejecución y salidas esperadas de un
programa.

Visualiza gratis el PDF completo

Regístrate para acceder al documento completo y transformarlo con la IA.

Vista previa

AM MARCO

FORMACIÓN profesional

IFC3031VA - (0487) Entornos de desarrollo - 2023/2024

TEMA 3 - DISEÑO Y REALIZACIÓN DE PRUEBAS.

TEMA 3 - DISEÑO Y REALIZACIÓN DE PRUEBAS

1

  1. Introducción:

2

  1. Procedimientos y casos de prueba:

4

  1. Tipos de prueba:

6

  1. Pruebas de caja blanca:

8

  1. Pruebas de cubrimiento:

8

  1. Pruebas de condiciones:

10

  1. Pruebas de bucles:

11

  1. Pruebas de caja negra:

12

  1. Pruebas de clases de equivalencia:

12

  1. Pruebas de valores límites:

13

  1. Pruebas de la tabla de decisiones:

14

  1. Pruebas de interfaces:

15

  1. Soporte del depurador:

16

  1. Automatización de pruebas:

20

  1. Calidad:

26

Imagina que la aplicación de tus prácticas se encuentra desarrollando su primera versión. Es importante establecer y planificar el diseño y la realización de pruebas sobre esta aplicación, así que te reúnes con tu supervisora de proyectos y estableces cómo te vas a organizar para probar las distintas partes de la aplicación que se van desarrollando y quien usará esos casos de prueba y evaluará los resultados obtenidos ...

Fase inicial del desarrollo de software

Análisis

Diseño

1

Explotación

Pruebas

4

Programación

1

Mantenimiento

Como ya vimos en el primer tema de la asignatura, el ciclo de vida de un sistema informático consiste en una serie de etapas en común para el desarrollo de un software:

  • Fase inicial: Base del desarrollo, planificación del proyecto, estimaciones ...
  • Fase análisis: Recopilar, examinar y formular los requisitos del cliente y analizar las restricciones.
  • Fase de diseño: Determinar requisitos generales, lenguaje de programación entorno ...
  • Fase de codificación: Implementación del software en un lenguaje de programación ...
  • Fase de pruebas: Asegurar la validación y verificación del software construido ...
  • Fase de explotación: Instalación del software en un entorno real y trabajo de forma cotidiana ...
  • Fase de mantenimiento: Procedimientos correctivos y adaptación y evolución de las aplicaciones ...

Actividad 1: ¿ A qué crees que se refiere la realización de pruebas del software?

1. Introducción al testing

El testing se basa en un conjunto de actividades dirigidas a facilitar la identificación y/o evaluación de propiedades de un software.

  • Comparar "lo que es" con "lo que debería ser"
  • El objetivo es detectar defectos de software.
  • El debug está relacionado con la búsqueda de dónde ocurren los defectos.
  • Es un método utilizado para asegurar la calidad del software.
  • Aunque se utilicen los mejores métodos de revisión, el testing es siempre necesario.
  • Se debe hacer un seguimiento hasta ver si cumple con los requisitos del cliente.
  • Como consejo, empezar por lo pequeño y progresar hacia lo grande.
  • Son más eficientes las pruebas dirigidas por un equipo independiente al que ha creado el código.

Ejercicio 2: ¿ Crees que es lo mismo la verificación de un software que la validación de un software?

Conceptos importantes en pruebas de software

Antes de profundizar en las pruebas, estos son algunos conceptos importantes:

  • Caso de prueba: Entradas, condiciones de ejecución y salidas esperadas de un programa.

2

  • Fiabilidad: Probabilidad de que un software funcione sin errores en un tiempo determinado.
  • MD5: Función hash (algoritmo criptográfico), que sirve para saber si algún dato está corrupto.
  • Prueba de regresión: Prueba automatizada que corrobora el funcionamiento de un software.
  • Release: Versión definitiva de un software que puede distribuirse o comercializarse.
  • RTF: Sigla de revisión técnica formal (revisión realizada por el propio desarrollador del software).
  • SQA: (Software quality assurance), control de calidad.
  • Tester: Persona que participa en la fase de pruebas de un sistema, suele ser un programador de aplicaciones.
  • Versión alfa: Primera fase de la versión de un software, testado por el desarrollador.
  • Versión beta: Segunda versión de un software, que se testea por el cliente final.

Verificación y validación de software

Verificación y validación: Ambos conceptos están realizados con garantizar que un sistema o producto cumple con los requisitos establecidos, pero existe una diferencia:

  • Validación: Proceso de determinar si un producto o sistema cumple con los requisitos marcados por el usuario, si cumple con las especificaciones del cliente.
  • Verificación: Proceso de determinar si un producto se ha construido en base a las especificaciones de diseño, es decir si cumple los requisitos funcionales y no funcionales en base a su especificación.

Es importante entender que el software nunca va a estar completamente libre de defectos. Dentro de los procesos de validación y verificación se utiliza la técnica de realización de pruebas al software para la comprobación y análisis de sistemas.

El objetivo principal de las pruebas es convencer, tanto a los usuarios como a los propios desarrolladores, de que el software es lo suficientemente robusto como para poder trabajar con él de forma productiva.

La realización de pruebas permite verificar y validad el software. Hay que detectar los errores durante el proceso de diseño y desarrollo, y corregirlos antes de implantarlos en un sistema, aunque es importante detectarlos todos de forma temprana, hay unos errores o mejoras que solo se pueden detectar una vez implantado el software.

3

Ejercicio 3: ¿ Quién fue Edsger Wybe Dijisktra? Investiga e indica cuales fueron sus aportaciones a la informática. Una de sus frases más conocidas fue: "Las pruebas solo pueden demostrar la presencia de errores, no su ausencia".

Ejercicio 4: Reflexiona sobre estas frases e indica si crees que son sentencias verdaderas o falsas:

  • Las pruebas siempre se llevan a cabo por parte de los programadores.
  • Se debe realizar pruebas exhaustivas de todo el sistema.
  • El objetivo de las pruebas siempre es detectar errores.
  • Si no hay errores aparentes en mi código, el software superará las pruebas.
  • Al diseñar los procedimientos se eligen los testers y los parámetros que se probarán.

2. Procedimientos y casos de prueba

Para llevar a cabo el proceso de pruebas, de manera eficiente, es necesario implementar una estrategia de pruebas. El documento que detalla las pruebas que se van a realizar se conoce como plan de pruebas y suele incluir:

  • Módulos que se probarán, breve introducción del sistema describiendo objetivos, alcance, estrategia ...
  • Características que se van a probar y las que no se van a probar (ya sea debido a que las funcionalidades existentes y que no impactan en el nuevo desarrollo de alguna forma.)
  • Descripción de las pruebas (personas responsables, planificación, duración, cuáles son las pruebas que se van a realizar ... )
  • Criterios para dar por válido o invalido el software
  • Especificar el proceso de pruebas y procedimientos por ejecutar.
  • Requisitos del entorno (hardware, seguridad ... )
  • Homologación o aprobación del plan, firmado por los responsables o interesados.

Definición de casos y escenarios de prueba

Para poder definir el plan de prueba, es necesario primero identificar los casos de prueba y los diferentes escenarios en los que se va a testear:

  • Casos de pruebas: Son escenarios utilizados para medir la funcionalidad de la aplicación a través de un conjunto de acciones o condiciones para verificar los resultados esperados. Un caso de prueba se compone de:
    • Una entrada conocida -> Una salida esperada

4

  • Por ejemplo: suma(2,3) -> 5
  • Escenarios de prueba: Es cualquier funcionalidad de la aplicación que se quiere probar.

Comparativa de casos y escenarios de prueba

CASOS DE PRUEBA

ESCENARIO DE PRUEBA

Se centra en cómo se va a probar.

Se centra en qué se va a probar.

Incluye pasos de la prueba, datos y resultados esperados de la prueba.

Incluye una funcionalidad, es decir, una acción de extremo a extremo que debe probarse.

Pruebas exhaustivas.

Metodología ágil de probar la personalidad general.

Requiere más tiempo, esfuerzo y recursos.

Requiere menos tiempo y esfuerzo en comparación.

  • No hay que probar los programas de forma redundante, es decir, si se prueba y funciona, no hay que volver a probar lo mismo, si no realizar otro tipo de prueba.
  • La prueba no debe ser muy sencilla (no aporta nada) ni muy compleja (difícil luego encontrar fallo)
  • Importante realizar un buen diseño de pruebas, con buenos casos de pruebas.

Una vez definidos los casos de pruebas y establecido el entorno o escenario de pruebas, es el momento de la ejecución de las pruebas.

Ejemplo: Ventana de inicio de sesión

  • Caso de Prueba 1: Verificación de Campos de Entrada
    • Escenario: Validar la existencia y la entrada de datos en los campos de inicio de sesión.
    • Pasos de la Prueba:
      • Abre la ventana de inicio de sesión.
      • Verifica que haya un campo para el nombre de usuario.
      • Verifica que haya un campo para la contraseña.
    • Datos de la Prueba:

LOGIN

& Username

Password

Remember me

LOGIN

Forgot your password?

5

  • Nombre de usuario: (Deja en blanco)
  • Contraseña: (Deja en blanco)
  • Resultado Esperado:
    • Debe haber un campo para el nombre de usuario.
    • Debe haber un campo para la contraseña.
    • No se debe permitir enviar el formulario con campos en blanco.

Ejercicio 5: Analiza ahora estos casos de uso. Si se te ocurre otro caso de prueba añádelo también:

  • Caso de prueba 3: Autenticación fallida.
  • Caso de prueba 4: Funcionalidad "Recuérdame"

3. Tipos de prueba

No existe una clasificación oficial o formal, sobre los diversos tipos de pruebas de software, pero podemos encontrarnos dos enfoques fundamentales, prueba de caja negra y prueba de caja blanca, concepto que se analizará con profundidad en los siguientes puntos.

  • Pruebas funcionales: Su objetivo es comprobar que los componentes software cumplen con su función, comprobando que cada componente se ha diseñado acorde a los requisitos funcionales.
    • Las pruebas funcionales testean lo que el sistema hace, no cómo lo hace.
    • También se denominan pruebas de caja negra, ya que no se examina la lógica interna de la aplicación
    • Podemos encontrar tres tipos de pruebas, pruebas de clases de equivalencia, pruebas de valores límite y pruebas aleatorias.
    • Por ejemplo, llevando esto a un sistema de compras online de una tienda de ropa, podría ser crear una cuenta, buscar y seleccionar productos, hacer un proceso de pago, hacer un seguimiento de un pedido ...
  • Pruebas no funcionales: Realizan pruebas muy técnicas al sistema. Siguen siendo de caja negra puesto que no se examina la lógica interna de la aplicación.
    • Por ejemplo, si lo aplicamos a una tienda de ropa online, podría ser verificar el rendimiento mediante una prueba el hecho de cargar usuarios de forma simulada para verificar el rendimiento en altas demandas, verificar la seguridad haciendo un seguimiento de los datos de tarjetas de crédito y

6

¿Non has encontrado lo que buscabas?

Explora otros temas en la Algor library o crea directamente tus materiales con la IA.