¿Qué es el diseño de prueba?

Las pruebas de software, como un proceso separado, presenciaron un crecimiento vertical y recibieron la atención de los interesados ​​en el proyecto y los patrocinadores comerciales en la última década. Se han introducido continuamente nuevas técnicas. Muchas empresas se especializan en un tipo particular, como las pruebas automatizadas de Inflectra. Además de las técnicas de prueba tradicionales, se realizaron varias técnicas nuevas necesarias por la complicada lógica de negocios y desarrollo para hacer que las pruebas de software sean más significativas y útiles. Esta parte discute algunas de las técnicas de prueba populares que han sido adoptadas por la comunidad de prueba. Estas técnicas son

Prueba de caja negra (funcional)

Prueba de caja blanca (estructural)

Prueba de caja gris (funcional y estructural)

Prueba manual versus prueba automatizada

Pruebas estáticas versus dinámicas

Prueba de caja negra (funcional)

En las pruebas de caja negra o funcional, las condiciones de prueba se desarrollan sobre la base de la funcionalidad del programa o sistema; es decir, el probador requiere información sobre los datos de entrada y la salida observada, pero no sabe cómo funciona el programa o sistema. Así como uno no tiene que saber cómo funciona internamente un automóvil para conducirlo, no es necesario conocer la estructura interna de un programa para ejecutarlo.

El probador se enfoca en probar la funcionalidad del programa contra la especificación. Con las pruebas de recuadro negro, el probador ve el programa como un recuadro negro y no se preocupa por la estructura interna del programa o sistema. Algunos ejemplos en esta categoría incluyen tablas de decisión, partición de equivalencia, prueba de rango, prueba de valor límite, prueba de integridad de base de datos, gráficos de causa y efecto, prueba de matriz ortogonal, prueba de matriz y tabla, prueba de excepción, prueba de límite y prueba aleatoria.

Una ventaja importante de las pruebas de caja negra es que las pruebas están orientadas a lo que se supone que debe hacer el programa o sistema, lo cual es natural y entendido por todos. Esto debe verificarse con técnicas como recorridos estructurados, inspecciones y diseños de aplicaciones conjuntas (JAD). Una limitación es que no se pueden realizar pruebas exhaustivas de entrada, ya que esto requiere que se prueben todas las condiciones o combinaciones de entrada posibles. Además, debido a que no hay conocimiento de la estructura interna o lógica, podría haber errores o travesuras deliberadas por parte de un programador que pueden no ser detectables con las pruebas de caja negra. Por ejemplo, supongamos que un programador de nómina desea insertar algo de seguridad laboral en una aplicación de nómina que está desarrollando. Al insertar el siguiente código adicional en la aplicación, si el empleado fuera despedido, es decir, su identificación de empleado ya no existiera en el sistema, la justicia tarde o temprano prevalecería:

si mi identificación de empleado existe

depositar cheque de pago regular en mi cuenta bancaria

más

depositar una enorme cantidad de dinero en mi cuenta bancaria

borrar cualquier posible rastro de auditoría financiera

borrar este código

Prueba de caja blanca (estructural)

En las pruebas de caja blanca o estructural, las condiciones de prueba se diseñan examinando las rutas de la lógica. El probador examina la estructura interna del programa o sistema. Los datos de prueba se controlan examinando la lógica del programa o sistema, sin preocuparse por los requisitos del programa o sistema. El probador conoce la estructura y lógica interna del programa, tal como un mecánico de automóviles conoce el funcionamiento interno de un automóvil. Los ejemplos específicos en esta categoría incluyen análisis de ruta de base, cobertura de estado de cuenta, cobertura de sucursal, cobertura de condición y cobertura de sucursal / condición.

Una ventaja de las pruebas de caja blanca es que es exhaustiva y se centra en el código producido. Debido a que existe un conocimiento de la estructura interna o la lógica, los errores o las travesuras deliberadas de un programador tienen una mayor probabilidad de ser detectados. Una desventaja de las pruebas de caja blanca es que no verifica que las especificaciones sean correctas; es decir, se centra solo en la lógica interna y no verifica la conformidad de la lógica con la especificación. Otra desventaja es que no hay forma de detectar rutas faltantes y errores sensibles a los datos. Por ejemplo, si la declaración en un programa se codifica “if | ab | <10" pero se codifica "if (ab) <1", esto no sería detectable sin detalles de la especificación. Una desventaja final es que las pruebas de caja blanca no pueden ejecutar todas las rutas lógicas posibles a través de un programa porque esto implicaría una gran cantidad de pruebas astronómicamente.

Prueba de caja gris (funcional y estructural)

Las pruebas de caja negra se centran en la funcionalidad del programa contra la especificación. Las pruebas de caja blanca se centran en los caminos de la lógica. Las pruebas de caja gris son una combinación de pruebas de caja negra y blanca. El probador estudia las especificaciones de requisitos y se comunica con el desarrollador para comprender la estructura interna del sistema. La motivación es aclarar especificaciones ambiguas y “leer entre líneas” para diseñar pruebas implícitas. Un ejemplo del uso de las pruebas de caja gris es cuando el evaluador le parece que cierta funcionalidad parece reutilizarse en una aplicación. Si el probador se comunica con el desarrollador y comprende el diseño interno y la arquitectura, se eliminarán muchas pruebas, ya que es posible probar la funcionalidad solo una vez. Otro ejemplo es cuando la sintaxis de un comando consta de siete parámetros posibles que se pueden ingresar en cualquier orden, de la siguiente manera:

Comando parm1, parm2, parm3, parm4, parm5, parm6, parm7

En teoría, un probador tendría que crear 7 !, o 5040 pruebas. El problema se agrava aún más si algunos de los parámetros son opcionales. Si el probador usa pruebas de recuadro gris, al hablar con el desarrollador y comprender el algoritmo del analizador, si cada parámetro es independiente, solo se requieren siete pruebas.

Prueba manual versus prueba automatizada

La base de la categorización de la prueba manual es que, por lo general, no se lleva a cabo por personas y no se implementa en la computadora. Los ejemplos incluyen recorridos estructurados, inspecciones, JAD y verificación de escritorio.

La base de la categorización de pruebas automatizadas es que se implementa en la computadora. Los ejemplos incluyen pruebas de valor límite, pruebas de cobertura de sucursales, creación de prototipos y pruebas de sintaxis. La prueba de sintaxis la realiza un compilador de idiomas, y el compilador es un programa que se ejecuta en una computadora.

Pruebas estáticas versus dinámicas

Los enfoques de pruebas estáticas son independientes del tiempo y se clasifican de esta manera porque no implican necesariamente la ejecución manual o automatizada del producto que se está probando. Los ejemplos incluyen verificación de sintaxis, recorridos estructurados e inspecciones. Se realiza una inspección de un programa contra un listado de código fuente en el que cada línea de código se lee línea por línea y se discute. Un ejemplo de prueba estática usando la computadora es una herramienta de análisis de flujo estático, que investiga otros programas en busca de errores sin ejecutar el programa. Analiza el control y el flujo de datos del otro programa para descubrir problemas como referencias a una variable que no se ha inicializado y código inalcanzable.

Las técnicas de prueba dinámicas dependen del tiempo e implican ejecutar una secuencia específica de instrucciones en papel o por la computadora. Los ejemplos incluyen tutoriales estructurados, en los que la lógica del programa se simula recorriendo el código y describiéndolo verbalmente. La prueba de límite es una técnica de prueba dinámica que requiere la ejecución de casos de prueba en la computadora con un enfoque específico en los valores de límite asociados con las entradas o salidas del programa.

Taxonomía de técnicas de prueba de software

Una técnica de prueba es un conjunto de procedimientos interrelacionados que, juntos, producen una entrega entregable. Existen muchos esquemas de clasificación posibles para las pruebas de software, y la Tabla 1 describe una forma. La tabla revisa las técnicas de prueba populares formales y también clasifica cada una de ellas según la discusión anterior como manual, automatizada, estática, dinámica, funcional (caja negra) o estructural (caja blanca). La Tabla 2 describe cada uno de los métodos de prueba de software.

Vishwas Kale | Ingeniero de Pruebas de Software | Ingeniero de Pruebas de Automatización

Primero sepa la diferencia entre el diseño de la prueba y el plan de prueba, la mayoría de las personas confunden en estas dos palabras, pero ambas son términos diferentes.

Diseño de prueba: se define como el diseño piloto que un probador debe hacer antes de iniciar o iniciar cualquier programa / proceso.
Los ingenieros de prueba de diseño de prueba prepararán casos de prueba para sus módulos responsables.
Escribir los casos de prueba de acuerdo con el plan de prueba

Plan de prueba: se define como el procedimiento que un probador debe seguir antes de ejecutar un programa / proceso.
El plan de prueba proporciona el proceso y la programación de una aplicación.
Asignación de trabajo y establecimiento de objetivos para el equipo de prueba.

1. Derivar casos de prueba directamente de una especificación de requisitos o técnica de diseño de prueba de caja negra. Las técnicas incluyen:

  • Análisis del valor límite (BVA)
  • Particionamiento de equivalencia (EP)
  • Prueba de tabla de decisiones
  • Diagramas de transición de estado
  • Prueba de caso de uso

2. Derivar casos de prueba directamente de la estructura de un componente o sistema:

  • Cobertura de estado de cuenta
  • Cobertura de sucursal
  • Cobertura de ruta
  • Prueba LCSAJ

3. Derivar casos de prueba basados ​​en la experiencia del probador en sistemas similares o intuición de probadores:

  • Error Adivinando
  • Prueba exploratoria

Espero que esto te ayude a entender fácilmente.

Pruebas tus diseños. La prueba o validación es una fase crucial del enfoque de diseño centrado en el usuario, ya que puede validar sus diseños (wireframes o interfaz de usuario) y obtener comentarios reales de los usuarios finales. Tiene dos formas posibles de probar con los usuarios: Pruebas de usabilidad y Grupos de enfoque.


Sobre Dhaval Gandhi:

Dhaval Gandhi es un investigador, diseñador y mentor de UX con casi 6 años de experiencia profesional en India y en el extranjero. Tiene una maestría en CS especializada en interacción hombre-computadora de la Universidad de Trento, Italia. Ha trabajado en más de 35 proyectos (web + móvil) y ha asesorado a más de 75 estudiantes en todo el mundo en Design Lab y Career Foundry. Su pasión es diseñar una solución que coincida con los requisitos del usuario y los objetivos comerciales.

Aprende más:

LinkedIn: https://in.linkedin.com/in/dhava

Regate: Dhaval S. Gandhi – Regate

Hola,

El diseño de prueba es una parte de STLC que no es más que un ciclo de vida de prueba de software.

El concepto de diseño de prueba incluye planificación de prueba, diseño de prueba y configuración del entorno.

En primer lugar, la planificación de la prueba significa que el líder de la prueba crea un plan de prueba basado en la línea de tiempo del proyecto y los requisitos.

Después de obtener el plan de prueba, el ejecutivo de prueba tiene que rastrear el requisito y crear casos de prueba. Según los requisitos y los casos de prueba, uno debe crear una matriz de trazabilidad mediante la cual el usuario sepa cuántos casos de prueba se han creado para un requisito particular.

La parte principal del diseño de prueba son los casos de prueba. Al momento de escribir los casos de prueba, todos los requisitos han sido cubiertos, todos los escenarios negativos positivos deben estar cubiertos.

Después de completar los casos de prueba, defina los casos de prueba de nivel de humo, los casos de prueba P1 y los casos de prueba P2 en función de las necesidades funcionales y prioritarias.

En la última parte del diseño de la prueba, debe identificar el entorno de prueba según el requisito y generar la solicitud según las necesidades. Puede ser un dispositivo Android, un dispositivo iPhone, un servidor Windows o cualquier otra cosa.

Este es el concepto principal del diseño de casos de prueba. Si desea saber cómo crear casos de prueba, puede hacer clic en este enlace.

Gracias.

El diseño de prueba es una parte de STLC que no es más que un ciclo de vida de prueba de software.

El concepto de diseño de prueba incluye planificación de prueba, diseño de prueba y configuración del entorno.

En primer lugar, la planificación de la prueba significa que el líder de la prueba crea un plan de prueba basado en la línea de tiempo del proyecto y los requisitos.

Después de obtener el plan de prueba, el ejecutivo de prueba tiene que rastrear el requisito y crear casos de prueba. Según los requisitos y los casos de prueba, uno debe crear una matriz de trazabilidad mediante la cual el usuario sepa cuántos casos de prueba se han creado para un requisito particular.

La parte principal del diseño de prueba son los casos de prueba. Al momento de escribir los casos de prueba, todos los requisitos han sido cubiertos, todos los escenarios negativos positivos deben estar cubiertos.

Después de completar los casos de prueba, defina los casos de prueba de nivel de humo, los casos de prueba P1 y los casos de prueba P2 en función de las necesidades funcionales y prioritarias.

En la última parte del diseño de prueba, debe identificar el entorno de prueba según el requisito y generar la solicitud según las necesidades. Puede ser un dispositivo Android, un dispositivo iPhone, un servidor Windows o cualquier otra cosa.

Este es el concepto principal del diseño de casos de prueba. Si desea saber cómo crear casos de prueba, puede hacer clic en este enlace.

Técnicas de diseño de prueba