¿Qué son las herramientas de prueba de software?

  • Escrito por: James Lyndsay
  • Publicado: abril 27 2005



Descripción general

Ya sea que compre o construya software, las herramientas de prueba le ayudan a obtener el mejor rendimiento de su inversión. Una herramienta de prueba útil le da mucho más que eficiencia, porque le ayuda a evitar problemas y a proporcionar información esencial, además de que puede permitir que su empresa gane nuevas oportunidades gracias a un aumento en la agilidad y la fuerza.

Es más fácil evaluar un sistema que construirlo. Frente a los nuevos riesgos que presenta la creciente complejidad del software y del hardware, las herramientas de prueba son probablemente su única forma práctica para confiar en que obtuvo el justo valor de lo que pagó. Las herramientas de prueba soportan todas las fases de un proyecto, desde la reunión de los requisitos iniciales hasta el soporte del sistema después del despliegue. Este artículo explora las formas en que se pueden usar las herramientas de prueba para diseñar, codificar y, por supuesto, evaluar un sistema.

Los vendedores y el mercado de las herramientas de prueba

Existen pocos grandes vendedores que dominan el mercado de las herramientas de prueba, que ofrecen series de herramientas que se integran alrededor de un producto principal y que utilizan varias plataformas para dar soporte a todo el ciclo de vida de un proyecto. Sin embargo, muchos usuarios prefieren ir con aquellos vendedores más pequeños que ofrecen una sola herramienta, se concentran en un aspecto del proyecto o se especializan en una industria, una región o une tecnología en particular.

Las herramientas más reconocidas y probablemente más numerosas son las herramientas de automatización de las pruebas. Estas permiten que una máquina se encargue de realizar una prueba predefinida, haciendo que el proceso de ejecución de las pruebas sea más rápido, preciso y pueda repetirse cuando se desee. Aunque son realmente poderosas, los usuarios tienen opiniones encontradas acerca de ellas.

Sin embargo, su reputación ha mejorado con la sofisticación de su tecnología y su uso. Sin embargo, el mercado soporta una gran variedad de herramientas que pueden darle mucho más por su dinero. Algunas están integradas con la automatización de pruebas y otras ofrecen una forma completamente distinta de tratar la calidad de su sistema. Los compradores que ignoren estas herramientas estarán dejando pasar la oportunidad de sacarle el mayor provecho a su inversión.

Descripción general de las herramientas de automatización de las pruebas

Las herramientas de automatización de las pruebas pueden clasificarse en tres grupos: herramientas de pruebas unitarias, herramientas de captura y reproducción y herramientas de pruebas de carga. Describiremos cada una más adelante. Sin embargo, todas las herramientas de automatización de las pruebas tienen la misma base: todas utilizan guiones detallados para describir las pruebas y un conjunto de resultados esperados. Aunque la persona que realiza las pruebas no participa en la construcción de estos guiones, implican algunas complejidades en la ingeniería del software, sobre todo al tratar de simular pruebas manuales (particularmente al trabajar con interfaces point-and-click).

Para resolver este problema, la mayoría de las herramientas incorporan funcionalidades, desde proporcionar un ambiente completo de desarrollo hasta reconocer los objetos en una GUI. Algunas herramientas permiten que los evaluadores más experimentados impulsen las capacidades de la herramienta mediante técnicas de scripting sofisticadas. Sin embargo, cuando se usan simplemente para imitar las pruebas manuales, las herramientas de automatización de las pruebas pueden ayudar a confirmar el valor existente sin resaltar los riesgos nuevos.

Las pruebas automatizadas pueden producir cantidades enormes de información no refinada, y existen muchas herramientas que proporcionan funcionalidades para procesarla y volverla más aceptable.

Las herramientas que se usan durante el diseño de un sistema

Las herramientas de diseño permiten capturar y compartir información fundamental acerca de los planes de un sistema, además de que generalmente se utilizan durante las primeras etapas de un proyecto. Pensar en realizar pruebas al principio de un proyecto puede convertirse en dividendos más adelante, y existen muchas herramientas de diseño que están hechas también para realizar pruebas.

Las herramientas de captura y análisis de los requisitos permiten compartirlos con todo el equipo y controlarlos a lo largo de un proyecto mediante la creación de un depósito central y un archivo. Con frecuencia permiten ligar los requisitos a la documentación, el código y las pruebas. Estas herramientas de gestión de los requisitos pueden ser autónomas o parte de un sistema más grande de gestión de documentos. Las herramientas complejas pueden incluir análisis sintáctico y validación sofisticados de los lenguajes naturales, mientras que las más simples se parecen a los gerentes de listas.

Las herramientas de creación de modelos visuales permiten que los arquitectos y los diseñadores de sistemas construyan modelos del sistema y los visualicen en varias formas. Permiten también usar diagramas formales para crear modelos que se pueden convertir en estructuras de código, pruebas y esquemas de datos.

Las herramientas que se usan durante la codificación de un sistema

Las herramientas de pruebas que se usan durante la codificación de un sistema generalmente están ligadas estrechamente a la estructura del código. Se les conoce como herramientas “white-box” o “clear-box” (como referencia a su necesidad de tener visibilidad del funcionamiento del sistema). Existen muchas herramientas que pueden integrarse con el ambiente de construcción y funcionar automáticamente detrás del sistema principal. Estas herramientas trabajan con partes del código en lugar de trabajar con los sistemas integrados y configurados, y tienden a ser específicas para un lenguaje o una tecnología en particular.

Las herramientas de pruebas estáticas examinan el código escrito, pero no lo utilizan. Son una forma eficaz para detectar una amplia gama de fallas que serían difíciles de diagnosticar o reproducir de forma confiable en etapas posteriores. Las pruebas tienen base en las normas del código y en las fallas esperadas y no tienen un enlace directo a la funcionalidad o los requisitos del sistema, además de que deberán ser ajustadas para adaptarse a las prácticas de trabajo. Algunas herramientas de pruebas estáticas también tienen funcionalidades que ayudan a que los desarrolladores visualicen la estructura del código, midan su complejidad y muestren la forma en que los programas y los datos están entrelazados.

Las herramientas de automatización de pruebas unitarias permiten evaluar de forma aislada un componente del sistema antes de que forme parte del sistema general. Normalmente, estas herramientas permiten realizar una serie de pruebas unitarias por demanda y son parte de técnicas ágiles, como las técnicas de desarrollo controladas por las pruebas. Además de administrar la ejecución automatizada de las pruebas y resumir los resultados de las mismas, pueden supervisar el uso que hace el componente de los recursos o hasta las líneas específicas de código que ejercita cierta prueba. Algunas son capaces de ayudar en las pruebas aisladas, ya que simulan otros recursos que podrían ser necesarios para el código.

Las herramientas que se usan durante la evaluación de un sistema

Una vez que se detectaron los errores de código, las pruebas adoptan una visión del sistema que es más amplia y enfocada al negocio. La información técnica acerca del interior del sistema puede ser menos importante que la comprensión de los riesgos y los requisitos del negocio. Para estas pruebas, normalmente se usan herramientas “black-box”, que no necesitan tener mucha información acerca de la estructura interna del sistema.

Las herramientas de automatización de captura y reproducción crean guiones iniciales al grabar las acciones de una sola persona –normalmente mientras utiliza una interfaz gráfica. Estos guiones pueden ser modificados y reproducidos cuando se quiera, analizando y resaltando las desviaciones de las acciones esperadas o sus consecuencias (que han sido grabadas) cuando sea necesario.

Las herramientas de automatización de pruebas de carga (conocidas también como herramientas de pruebas de volumen o de estrés) reproducen simultáneamente las acciones de varios usuarios –aunque pueden necesitar un hardware dedicado para funcionar correctamente y pueden evitar por completo la interfaz con el usuario para dar lugar a una interacción más profunda. Con frecuencia ofrecen una funcionalidad que permite supervisar el comportamiento del sistema como un todo y no una prueba individual cualquiera.

Las herramientas de supervisión (conocidas también como “registradores de vuelo”) también miden las propiedades generales del sistema y su ambiente durante las pruebas, y permiten realizar una comparación de la historia de las medidas que toman. Pueden dar a un sistema información de afinación y notificaciones tempranas acerca de los problemas sistemáticos inesperados, por eso, se usan con frecuencia en las pruebas unitarias y en el funcionamiento en vivo.

Las herramientas de inyección de fallas simulan problemas en el ambiente del sistema. Permiten realizar pruebas que, de otro modo, serían difíciles de reproducir y pueden dar una ruta rápida y efectiva para descubrir las debilidades que normalmente no serían evidentes en un ambiente de pruebas no equipado (especialmente las fallas que podrían ser el resultado de un uso malintencionado).

Las herramientas que usaría si estuviese administrando las pruebas

Para realizar pruebas es necesario tener muchas listas, es decir, listas de las pruebas y listas de los problemas. Las herramientas que ayudan a administrar dichas listas pueden mejorar la comunicación y la documentación y ayudar a que el proyecto funcione mejor. Las herramientas genéricas no sólo pueden usarse para administrar las listas de pruebas y de problemas, sino que pueden configurarse para dar soporte a las listas de requisitos, de mejoras, de asignaciones de trabajo, de contactos de los clientes, etc. Las herramientas específicas para las pruebas tienen funcionalidades que soportan directamente los requisitos de los equipos de pruebas y control de calidad.

Las herramientas de gestión de pruebas permiten agrupar, ordenar, priorizar y asignar una lista de pruebas, ayudando a que el equipo administre el trabajo relacionado con las pruebas. Las herramientas más enfocadas crearán reportes acerca del progreso de las pruebas y podrán capturar y resumir los resultados y las historias de las mismas, permitiendo comparar y analizar las tendencias.

Las herramientas de generación de pruebas, como su nombre lo indica, generan pruebas dentro de ciertos parámetros para que se adapten a un modelo del sistema que se está evaluando. A pesar de que funcionan mejor cuando se integran con una herramienta de automatización de pruebas y una herramienta de gestión de pruebas, pueden ser herramientas analíticas útiles para las pruebas manuales.

La mayor parte de los equipos usan algún tipo de rastreador de defectos para mantener una lista centralizada de los problemas que se registran. Las herramientas permiten clasificar y priorizar los problemas para que se asignen a las personas a medida que van de ser detectados a ser resueltos.

Las herramientas de manipulación de datos trabajan con conjuntos y bases de datos en masa. Permiten que un equipo analice los datos de salida y simplifican la construcción precisa y completa de datos de las pruebas.

Las herramientas de gestión de ambientes se usan normalmente con las máquinas en el laboratorio de pruebas. Permiten configurar el laboratorio para que sea supervisado y pueden ayudar a que los evaluadores reconfiguren su ambiente de pruebas de forma activa.

Usar y reutilizar las herramientas

Muchas herramientas incorporan funcionalidades que no describimos, pero que esperaríamos encontrar en cualquier herramienta de software. Los usuarios más experimentados sabrán que la mayoría de las herramientas piden algún tipo de autorización del usuario, que normalmente ofrecen control y archivos de los cambios y que pueden aprovechar una interfaz de programación de las aplicaciones (API) (aunque otras herramientas no fueron diseñadas para funcionar en su conjunto). Algunas se adaptarán a su presupuesto, su conjunto de habilidades o sus requisitos de flexibilidad y modernidad.

Desde luego que estas son generalizaciones y no categorías bien definidas. Cualquier herramienta puede incorporar las funcionalidades de otros tipos de herramientas, y es común ver que una sola herramienta flexible se usa para realizar varias tareas en un proyecto. Particularmente, los enfoques por modelos y de exploración usan funciones individuales de un conjunto de herramientas dispares. Sin embargo, cuando se seleccionan las herramientas de prisa, terminan por no utilizarse.

Las herramientas de pruebas son una compra estratégica

Las herramientas de pruebas exigen tiempo, dinero y un compromiso. Para que una herramienta funcione correctamente debe formar parte de su infraestructura y sus procesos de información. Por eso, la selección de la herramienta incorrecta no sólo representa dinero mal gastado, sino que puede crear un obstáculo que sus equipos no podrán superar fácilmente.

En cambio, seleccionar la herramienta de pruebas correcta puede aumentar su eficiencia y presentarle una gran cantidad de oportunidades que lo diferenciarán operativamente de sus competidores comerciales o que le permitirán competir con mayor igualdad de circunstancias.

Acerca del autor

James Lyndsay es un estratega de pruebas de software. Es el consultor principal de Workroom Productions y es reconocido en la industria de pruebas como consultor y orador, además de que ha recibido premios como escritor. Está involucrado en la gestión y la realización de pruebas desde hace más de quince años, y se le reconoce por su aportación a las técnicas ágiles. Se le puede encontrar en jdl_tec@workroom-productions.com.

Workroom Productions es una consultora que tiene oficinas en Londres y que se enfoca principalmente en la estrategia de pruebas. Se fundó en 1994 y trabaja con empresas interesantes que pertenecen a varias áreas comerciales. Para mayores detalles, consulte http://www.workroom-productions.com/.

 
comments powered by Disqus