631 Shares 3053 views

métodos de pruebas de software y los comparan. Método de ensayo de la prueba de "recuadro negro" y el método de "caja blanca"

pruebas de software (SW) identificar las lagunas, las deficiencias y los errores en el código que deben ser abordados. También se puede definir como el proceso de evaluar la funcionalidad y la corrección del software con la ayuda del análisis. Los métodos básicos de integración y pruebas de aplicaciones de software y garantizar la calidad es poner a prueba la especificación, diseño y codificación, evaluación de la fiabilidad, la validación y verificación.

métodos

El objetivo principal de las pruebas de software – confirmación de la calidad del sistema de software a través de la depuración de aplicaciones sistemáticas bajo condiciones cuidadosamente controladas para determinar su integridad y exactitud, así como la detección de errores ocultos.

Los métodos de verificación de los programas (de prueba) se pueden dividir en estática y dinámica.

Los primeros incluyen informal, el seguimiento y la revisión técnica, inspección, análisis paso a paso, de auditoría, así como el análisis de flujo de datos estáticos y gestión.

técnicas dinámicas son:

  1. pruebas de caja blanca. Este es un estudio detallado de la lógica interna y la estructura del programa. Es necesario el conocimiento del código fuente.
  2. pruebas de caja negro. Esta técnica no requiere ningún conocimiento sobre el funcionamiento interno de la aplicación. Tenemos en cuenta sólo los aspectos básicos del sistema, no relacionados o asociados con algunos de su estructura lógica interna.
  3. método de la caja gris. Combina dos enfoques anteriores. Depuración con conocimiento limitado del funcionamiento interno de la aplicación se combina con el conocimiento de los aspectos básicos del sistema.

prueba transparente

Las método de la caja utilizando scripts de prueba blancos controlan la estructura del diseño de procedimiento. Esta técnica permite revelar errores de implementación, como la mala gestión del sistema de código mediante el análisis de una parte de los trabajos internos de software. Estos métodos de ensayo son aplicables a los niveles de integración, módulos y sistemas. El probador debe tener acceso al código fuente y utilizarlo para averiguar qué unidad se comporta de manera inapropiada.

Programas de pruebas de caja blanca tiene las siguientes ventajas:

  • Que permite detectar un error en el código oculto quitando líneas innecesarias;
  • el uso de efectos secundarios;
  • la cobertura máxima se consigue escribiendo un script de prueba.

desventajas:

  • proceso de alto costo, lo que requiere depurador experto;
  • muchas vías permanecen inexploradas debido comprobación exhaustiva de todos los posibles errores ocultos es muy complejo;
  • una parte del código se pasará desapercibida.

pruebas de caja blanca se denomina a veces ensayando una caja transparente o abierta, pruebas estructurales, lógicos, basado en el código fuente, y de la arquitectura lógica.

Las principales variedades:

1) probar el control de flujo – estrategia estructural utilizando el modelo de flujo de control de programa y como favoreciendo formas más simples a menos más complejo;

2) La rama está diseñado para estudiar la depuración de cada opción (verdaderas o falsas) de cada operador de control, que también incluye una solución combinada;

3) la prueba de la ruta principal, que permite que el probador para establecer proyecto de procedimiento lógico medida de complejidad para el aislamiento de un conjunto base de rutas de ejecución;

4) el control del flujo de datos – la estrategia de control de flujo de la investigación por las anotaciones que contar con información sobre el anuncio y el uso de las variables del programa;

5) ciclos de ensayo – totalmente centrado en el correcto funcionamiento de los procesos cíclicos.

la depuración del comportamiento

pruebas de caja negro trata el software como un "recuadro negro" – información sobre el funcionamiento interno del programa no se cuentan, y se comprueba sólo los aspectos básicos del sistema. En este caso, el probador debe conocer la arquitectura del sistema sin acceso al código fuente.

Las ventajas de este enfoque:

  • eficiencia de segmento de código grande;
  • facilidad de probador de la percepción;
  • perspectiva del usuario está claramente separada desde las perspectivas de desarrollador (programador y probador son independientes unos de otros);
  • más rápida creación de la prueba.

pruebas de software método de la caja negro tiene las siguientes desventajas:

  • de hecho realizado un selecto número de casos de prueba, lo que resulta en una cobertura limitada;
  • la falta de una especificación clara difícil desarrollar scripts de prueba;
  • baja eficiencia.

Otros nombres para esta tecnología – no transparente, de comportamiento, pruebas funcionales y el método de depuración de una caja cerrada.

Esta categoría puede incluir las siguientes técnicas de pruebas de software:

1) equivalente a la partición, que puede reducir el conjunto de datos de prueba como datos de módulo de software de entrada se descompone en partes separadas;

2) análisis de valor límite se centra en la verificación de los límites o valores límite extremos – el mínimo, máximo, y los valores típicos de error;

3) formación de pelusa – utilizado para implementar la búsqueda mediante la introducción de errores o poluiskazhennyh datos corruptos en modo automático o semi-automático;

4) recuento de causalidad – una técnica basada en la creación de gráficos y la determinación de la relación entre la acción y sus razones: la identidad, la negación, OR lógica y lógica Y – los cuatro personajes principales, que expresa la relación entre la causa y efecto;

5) Verificación de matrices ortogonales aplica a problemas con una relativamente pequeña área de entrada superior a la posibilidad de una investigación exhaustiva;

6) prueba de todos los pares de – una técnica donde un conjunto de valores de prueba comprende todos los posibles combinaciones binarias de cada par de parámetros de entrada;

7) de transición de estado de depuración – una técnica útil para comprobar el estado de la máquina, así como para navegar a través de la GUI del usuario.

Negro pruebas de caja: Ejemplos

técnica de recuadro negro se basa en las especificaciones, documentación, y las descripciones de la interfaz de software o sistema. Además, puede utilizar modelos (formal o informal), que representa el comportamiento esperado del software.

Normalmente, este método se utiliza para la depuración de interfaz de usuario y requiere la interacción con la aplicación mediante la introducción de una colección de datos y resultados – de la pantalla, a partir de los informes o impresiones.

El probador, por lo tanto, interactúa con el software introduciendo, al actuar sobre los interruptores, botones u otras interfaces. La elección de los datos de entrada, el orden de administración o secuencia de acciones puede dar lugar a un número total enorme de combinaciones, como se muestra en el siguiente ejemplo.

¿Cuántas pruebas tienen que hacer con el fin de comprobar todos los posibles valores de la bandera 4 ventanas y de campo de una sola vez, establezca el tiempo en segundos? En primer cálculo vista es simple: 4 campos con dos estados posibles – 24 = 16, que debe ser multiplicado por el número de posiciones posibles entre 00 y 99, es decir, 1600 posibles pruebas.

Sin embargo, este cálculo es erróneo: podemos determinar que el campo de dos puntos también puede contener un espacio, es decir, que consiste en dos posiciones alfanuméricos y puede incluir caracteres alfanuméricos, caracteres especiales, espacios, etc. Por lo tanto, si …. sistema es un ordenador de 16 bits, a su vez 216 = 65536 uno para cada posición en los 4294967296 casos de prueba resultantes que han de ser multiplicado por 16 combinaciones de banderas que da un total de 68.719.476 736. Si realizan en 1 de prueba por segundo, el cont total de olzhitelnost prueba es de 2 177,5 años. Para los sistemas de 32 o de 64 bits, la duración aún más.

Por lo tanto hay una necesidad de reducir este período a un nivel aceptable. Por lo tanto, las técnicas deben aplicarse para reducir el número de casos de prueba, sin reducir el alcance de las pruebas.

partición de equivalencia

La partición equivalente es un método sencillo que es aplicable para cualquier variable que están presentes en el software, si los valores de entrada o salida, simbólico, numérico, y otros. Se basa en el principio de que todos los datos de un equivalente de la partición serán tratados de la misma manera y por la mismas instrucciones.

Durante las pruebas, seleccionado un representante de cada partición de equivalencia particular. Esto le permite reducir sistemáticamente el número de posibles casos de prueba sin pérdida de la cobertura de comandos y funciones.

Otra consecuencia de esta división es reducir la explosión combinatoria entre las diferentes variables y la reducción asociada de casos de prueba.

Por ejemplo, en (1 / x) 1/2 utilizando tres secuencias de datos, tres partición equivalente:

1. Todos los números positivos serán tratados de la misma manera y deben dar resultados correctos.

2. Todos los números negativos se manejan de la misma manera con el mismo resultado. Esto es incorrecto, porque la raíz de un número negativo es imaginario.

3. Zero serán manejadas por separado y dar la "división por cero" error. Esta es una sección con un solo valor.

Por lo tanto, vemos tres secciones distintas, una de las cuales se reduce a un solo valor. Hay una sección de "correcta", lo que da resultados fiables, y dos "malo" con resultados incorrectos.

análisis del valor límite

Procesamiento en las fronteras de la partición equivalente se puede hacer de manera diferente de lo esperado. Investigación de los valores límite – un método bien conocido de analizar el comportamiento del software en tales áreas. Esta técnica hace que sea posible identificar este tipo de errores:

  • el uso incorrecto de operadores relacionales (, =, ≠, ≥, ≤);
  • error único;
  • problemas en ciclos y iteraciones,
  • tipos incorrectos o tamaño de las variables utilizadas para el almacenamiento de la información;
  • limitaciones artificiales asociados con los tipos de datos y variables.

prueba translúcida

método de la caja gris aumenta la cobertura de la prueba, que pueda centrarse en todos los niveles de dificultad de sistema a través de una combinación de técnicas de blanco y negro.

Usando esta técnica, el probador para el desarrollo de los valores de prueba debe tener conocimiento de las estructuras de datos y algoritmos internos. Ejemplos de métodos de prueba de color gris-box son los siguientes:

  • modelo arquitectónico;
  • Unified Modeling Language (UML);
  • modelo de estado (máquina de estados finitos).

En el método de la caja gris para desarrollar casos de prueba estudiado módulos en los códigos de ingeniería blancas, y la prueba real se realiza en las interfaces de los programas de tecnología de color negro.

Estos métodos de prueba tienen las siguientes ventajas:

  • combinación de ventajas cajas negras y blancas técnico;
  • Tester se basa en la interfaz y especificación funcional, y no el código fuente;
  • depurador puede hacer grandes casos de prueba;
  • comprobación se realiza desde el punto de vista del usuario, no el diseñador del programa;
  • crear un desarrollo personalizado de prueba;
  • objetividad.

desventajas:

  • cobertura de la prueba está limitada porque no hay acceso al código fuente;
  • la complejidad de los defectos en las aplicaciones distribuidas;
  • muchos aspectos permanecen sin explorar;
  • si el desarrollador de software ha puesto en marcha la prueba, entonces una investigación adicional puede ser excesivo.

Otro nombre para las técnicas de caja gris – depuración translúcido.

Esta categoría incluye tales métodos de ensayo:

1) matriz ortogonal – el uso de un subconjunto de todas las combinaciones posibles;

2) la depuración matriz utilizando el estado de los datos de programa;

3) Inspección regresiva llevado a cabo en los nuevos cambios en el software;

4) Prueba de plantilla que analiza el diseño y la arquitectura de una buena aplicación.

Comparación de las técnicas de pruebas de software

El uso de métodos dinámicos conduce a una explosión combinatoria del número de pruebas que necesitan ser desarrollado, implementado y llevado a cabo. Cada técnica se debe utilizar de manera pragmática, teniendo en cuenta sus limitaciones.

El único método que no existe, no hay más que aquellas que se adaptan mejor al contexto específico. ingeniería estructural nos permite encontrar un código malicioso o inútiles, pero son complejos y no son aplicables a los grandes programas. Los métodos basados en las especificaciones – los únicos que son capaces de identificar el código que falta, pero no pueden identificar una persona ajena. Algunas técnicas son más adecuados para un determinado nivel de prueba, el tipo de error o contexto que otros.

A continuación se presentan las principales diferencias entre las tres técnicas de pruebas dinámicas – se da una tabla de comparación entre las tres formas de depuración de software.

aspecto

El método de la caja negro

método de la caja gris

Método de caja blanca

La disponibilidad de información sobre la composición del programa

Examina sólo los aspectos básicos de

El conocimiento parcial sobre la estructura interna del programa

El pleno acceso al código fuente

Grado de fragmentación del programa

bajo

central

alto

¿Quién produce la depuración?

Usuarios finales, desarrolladores y probadores

Usuarios finales, desarrolladores y depuradores

Los desarrolladores y probadores

base

La prueba se basa en las situaciones de emergencia externos.

base de datos de diagramas, diagramas de flujo de datos, estado de conocimiento interno del algoritmo y la arquitectura

El dispositivo interno es plenamente consciente

El grado de cobertura

Menos amplio y requiere un mínimo de tiempo

central

Potencialmente, el más completo. Consume tiempo

Los datos y las fronteras internas

Depuración únicamente por ensayo y error

Se pueden comprobar los dominios de datos y bordes internos, si se conocen

Los mejores dominios de datos de prueba y bordes internos

algoritmo de prueba de idoneidad

no

no

automatización

Métodos automáticos de pruebas de software es mucho simplifican el proceso de inspección, con independencia del entorno técnico y el contexto de la. Se utilizan en los dos casos:

1) para automatizar las tareas tediosas, repetitivas o meticulosos como comparación de archivos a varios miles de filas con el fin de liberar tiempo para la concentración del probador puntos más importantes;

2) para realizar el seguimiento o tareas que no pueden ser realizadas fácilmente por personas tales como la verificación del rendimiento o tiempo de respuesta de análisis que puede ser medido en centésimas de segundo.

Los instrumentos de ensayo se pueden clasificar de diferentes maneras. La siguiente división se basa en las tareas que apoyan:

  • gestión de pruebas, que incluye el apoyo a proyectos de gestión, versiones, configuraciones, análisis de riesgos, el seguimiento de la prueba, errores, defectos, y herramientas de información;
  • gestión de requisitos, que incluye requisitos de almacenamiento y especificaciones, visita ellos para la integridad y la ambigüedad, su prioridad y la trazabilidad de cada ensayo;
  • revisión crítica y el análisis estático, incluyendo el control de flujo, y las tareas, registro y almacenamiento de los comentarios, la detección de defectos y previstos enlaces de gestión de correcciones a las listas de comprobación y reglas, el seguimiento de los documentos fuente de comunicación y el análisis estático de código para detectar defectos, lo que garantiza el cumplimiento de las normas de la escritura de código, análisis de las estructuras y dependencias, el cálculo de los parámetros de métricas de código y la arquitectura. Además, utilizar compiladores, analizadores, generadores y relaciones de referencias cruzadas;
  • modelado, que incluye herramientas para el modelado el comportamiento empresarial y poner a prueba los modelos;
  • desarrollo de pruebas asegura la generación de los datos esperados sobre la base de condiciones y modelos de interfaz de usuario y el código, logran crear o modificar archivos y bases de datos, mensajería, la validación de datos sobre la base de las normas de gestión, el análisis estadístico de las condiciones y riesgos;
  • una visión crítica mediante la introducción de los datos a través de una interfaz de usuario, API, línea gráfica de comandos usando comparadores para ayudar a identificar las pruebas con y sin éxito;
  • entorno de depuración de apoyo que le permite reemplazar el hardware o el software que falta, en el Vol. h. Equipo de simulación basado en el subconjunto determinado de salida, emuladores de terminal, teléfonos móviles y equipos de red, el medio ambiente para el control de idiomas, sistemas operativos y hardware mediante la sustitución del controlador componentes que faltan, ficticia módulos, etc., así como herramientas para capturar y modificar el OS solicita la limitación de simulación de CPU, RAM, ROM, o red .;
  • .. Una comparación de archivos de datos, bases de datos, comprobar los resultados esperados durante y después de la prueba se ha completado, incluido dinámico y comparación por lotes, automático "oráculos";
  • el recubrimiento de medición para la localización de fugas de memoria y el sistema de estimación de su comportamiento de regulación incorrecta en virtud simulados aplicaciones de carga de generación de carga, bases de datos, redes o servidores en un escenario realista de crecimiento para la medición, análisis y verificación de informe de recursos del sistema;
  • la seguridad;
  • pruebas de rendimiento, carga y análisis dinámico;
  • otras herramientas, en el Vol. h. Para comprobar la ortografía y la sintaxis, seguridad de red, la disponibilidad de todas las páginas del sitio web y otros.

perspectiva

Con las tendencias cambiantes de la industria del software, el proceso de depuración es también sujeto a cambios. Hay nuevos métodos de pruebas de software, tales como una arquitectura de servicios-orientirovannae (SOA), las tecnologías inalámbricas, servicios de telefonía móvil, y así sucesivamente. E., han abierto nuevas formas de pruebas de software. Algunos de los cambios que se esperan en la industria en los próximos años se enumeran a continuación:

  • probadores proporcionarán un modelo ligero que los desarrolladores serán capaces de controlar el código;
  • el desarrollo de métodos de prueba, incluyendo la visualización y modelado de programas en una etapa temprana, eliminará muchas de las contradicciones;
  • presencia de prueba múltiples intercepciones acortará el tiempo de detección de errores;
  • analizador estático y medios de detección para ser más ampliamente utilizado;
  • el uso de matrices minerales, tales como la cobertura de la memoria descriptiva, el alcance del modelo y el código de cobertura determinará el desarrollo de proyectos;
  • herramientas combinatorias permiten a los probadores para determinar las áreas prioritarias para la depuración;
  • probadores ofrecerá un servicio más intuitivas y valiosos en todo el proceso de desarrollo de software;
  • depuradores pueden crear herramientas y métodos de prueba de software escritos en e interactuar con una variedad de lenguajes de programación;
  • expertos de depuración serán capacitados de manera más profesional.

Será reemplazado por un nuevo métodos de pruebas de software orientadas a los negocios, para cambiar el modo de interacción con los sistemas y la información que proporcionan al tiempo que reduce los riesgos y aumentar los beneficios de los cambios del negocio.