HP Unified Functional Testing era antes conocida como Quick Test Professional, QTP. Soporta una variedad muy extensa de tecnologías: Java, Sap, Siebel, Visual Basic .Net y Oracle entre muchas otras. Esta Herramienta se basa en el reconocimiento de objetos, aunque se puede utilizar el posicionamiento dentro de una pantalla para la realización de pruebas, así como reconocimiento de texto por OCR.  Al poseer un interfaz amigable y un código de generación de scripts en visual basic se consigue que se aprenda más fácilmente, obteniendo una curva de aprendizaje muy alta desde el primer momento. Esta herramienta se suele integrar con todas las herramientas de la suite de HP como Quality Center (gestor de requisitos, casos de prueba y defectos). También hay que decir que al estar una empresa detrás como HP, el soporte es muy amplio y hay gran cantidad de ingenieros de calidad para su soporte dando fiabilidad y eficiencia. Esta herramienta se instala en cualquiera de las versión de Windows recientes.
La empresa Rational® Software lo lanzó inicialmente como “Robotj 1.0” y cuando IBM® adquiere dicha compañía en 2004 lo renombra simplemente como “Rational”® (aunque en su logotipo lo acompaña la palabra “software” en alusión a la compañía madre). De las herramientas para pruebas es la más profunda y compleja y nos atrevemos a decir que es inefable. Los guiones son guardados en lenguaje Java y Visual Basic .NET, aunque a partir de la versión 8.1 se puede interactuar con las capturas de pantalla que se graban en un guión gráfico (algo así como WYSIWYG). Está disponible tanto para Windows como GNU/Linux de forma vertical con “IBM Jazz integration”, como todos los productos de esta gigantesca empresa.
Como he comentado antes tenemos que valorar la capacidad de adaptación de nuestro sistema de gestión. Para ello elegiremos sistemas modulares. ¿Qué es un sistema de gestión modular? Los sistemas modulares son aquellos que tienen una estructura que se divide en varias “partes”, cada una de estas tiene como objetivo cubrir una necesidad en concreto (módulo de facturación, módulo de logística, módulo de RRHH…). Un sistema modular también nos ofrece una reducción de costes considerable, pues solo instalaremos los módulos que realmente sean necesarios en nuestro negocio.

sistemas que se desarrollan en la actualidad siguen presentando fallos en su ejecución, dichos fallos tienen costos significativamente altos. El propósito general de evaluar sistemas es localizar la mayor cantidad de fallos posibles para corregirlos. De acuerdo al estándar IEEE 1633-2008 (Norman F. Schneidewind, 2008), un fallo es una condición accidental que hace que una unidad funcional falle al ejecutar su función requerida. La funcionalidad del sistema queda establecida desde la etapa de análisis y especificación de requerimientos del proceso de desarrollo de software. La importancia de un buen proceso de evaluación se debe a que si no se realizan las pruebas de forma pertinente y adecuada, es imposible asegurar que un producto de software cumple con la funcionalidad de acuerdo a las especificaciones establecidas en relación con los requerimientos del sistema. Sin embargo el número de pruebas que se realizan para localizar y corregir fallos presenta una tendencia exponencial (Jelinski, 1972). Durante la etapa de pruebas, se tienen dos enfoques que son de gran importancia para lograr identificar los fallos existentes en un sistema, estos son la Verificación y Validación. Durante la Verificación se determina si el sistema o una parte de él operan de una manera satisfactoria. Bajo el enfoque de Validación se determina si un sistema o parte de él satisface los requerimientos establecidos por el cliente. Así esta fase del proceso de desarrollo es una forma de medir y mejorar la confiabilidad de software. Este artículo está organizado de la siguiente forma, en la sección 2 se presenta el marco teórico en donde el concepto de confiabilidad de software es abordado. En la sección 3 se describen algunas herramientas de evaluación de sistemas orientados a objetos. En la sección 4 se presenta la propuesta del presente trabajo. Finalmente en la sección 4 se exponen algunas conclusiones y el trabajo a futuro. Marco teórico La confiabilidad de software se define como la probabilidad que tiene un sistema de operar libre de fallos durante un tiempo determinado en un ambiente específico (Musa, 2004). Esta es un área de gran importancia en el proceso de desarrollo de software. En la actualidad la confiabilidad es un atributo de calidad que se exige en el desarrollo de cualquier aplicación de software. Cuando las aplicaciones de software carecen de confiabilidad se tienen consecuencias económicas, políticas y sociales. Para tener niveles adecuados de confiabilidad es necesario evaluar al sistema en cuestión, localizar y corregir la mayor cantidad de fallos antes de que el producto final sea liberado. Pruebas de software La fase de pruebas es una tarea que consume muchos recursos. Para ejecutar esta fase en la práctica las organizaciones que desarrollan software asignan un grupo de evaluadores físicos, los cuales realizan este proceso de forma manual en un lapso de varios meses e incluso años. Este enfoque consume mucho tiempo y conlleva altos costos. Para lograr una cobertura adecuada en la evaluación del sistema en cuestión, es necesario: seleccionar los datos de prueba, las variables del entorno de evaluación, determinar el número de pruebas y el tiempo asignado para este proceso. En la ejecución de la cobertura de evaluación, algunos autores desarrollan modelos de predecibilidad apoyados de métricas de software (Basili, 1996). Para optimizar los recursos que son empleados en la ejecución de miles o millones de pruebas es adecuado utilizar instrumentos de evaluación (Ragab, 2010). Se han realizado algunas propuestas para evaluar sistemas en Internet, entre estas propuestas esta (Davila-Nicanor, 2005), en donde se desarrolló un herramienta la cual automatiza la ejecución de las pruebas, reduciendo el tiempo proyectado para la ejecución de 5000 pruebas funcionales de 4 años a tan solo 6 horas. En la evaluación dinámica de un sistema de software, muchos autores se han enfocado principalmente en 2 tipos de pruebas: las pruebas unitarias y las pruebas de integración. Una cantidad importante de trabajos se han enfocado a pruebas unitarias. Mientras que en pruebas integrales existe una menor incidencia de trabajos. Es importante resaltar que para este último enfoque el contexto de operación es determinante, tal es el caso del lenguaje Java, en el cual las clausulas más importantes se resuelven a tiempo de ejecución, un ejemplo de ello son aspectos como el polimorfismo y la herencia. Pruebas Unitarias Durante la fase de pruebas, el proceso de evaluación tiene dos aspectos importantes, el primero está orientado al desarrollo de pruebas unitarias o modulares. Estas pruebas se basan en comprobar unidades individuales de código y determinar si estas cumplen con los requerimientos establecidos. Cuando hablamos de unidades nos referimos a secciones del código que pueden probarse de forma independiente. En un sistema orientado a


Debido a los diversos proyectos en los que hemos participado, desde Globe hemos podido analizar los pros y los contras de gran variedad de herramientas de automatización. Para dicho análisis se ha tenido en cuenta la fácil utilización, las tecnologías soportadas, la integración con herramientas externas de gestión, el posible soporte de las herramientas y las plataformas compatibles. En un breve resumen comentaremos las características que nos hacen decantarnos por uno u otro software.
La automatización de pruebas de carga se ha vuelto una necesidad para poder evitar así arriesgar la integridad del negocio con anomalías inesperadas además existen un sin fin de herramientas de prueba de carga como agileload (http://es.agileload.com) que te ayudan a crear guiones de prueba , a diagnosticar problemas además simula de manera realista la carga .
Sin olvidar las más específicas, como SocialBro, para gestionar mejor tu cuenta en Twitter. “O Storify, que te ayudará a crear tus propias historias a través de la curación (selección) de contenidos. Luego puedes organizarla y compartirla. Dandy ID , para almacenar varias identidades sociales en un solo sitio y crear un perfil de contacto ordenado, comenta Isra García .
En cumplimiento de dichas normativas, le informamos de que puede revocar en cualquier momento el consentimiento para la recepción de nuestro servicio de información, enviando un e-mail a dpo@panel.es o bien haciendo clic en el enlace que aparece en el pie de página de cualquier correo electrónico que le enviemos. Nunca venderemos su información y siempre la trataremos con respeto.
Como dijimos, Watir se vale de Selenium y hereda su licencia y muchas de sus características; sin embargo, solamente soporta lenguaje Ruby. Inicialmente desarrollado por Bret Pettichord y Paul Rogers y una comunidad entusiasta de desarrolladores, se centra en automatizar navegadores web tal como lo haría un usuario normal y en la manipulación de todos los elementos HTML. Al igual que en Selenium, se necesita conocimientos profundos en programación y su instalación toma la forma de “RubyGems”, como gestor de paquetes.
Aquí no estamos para realizar evaluaciones financieras de empresas; no obstante, es insoslayable la experiencia de la casa de software y no podíamos dejar de nombrarla. Dicha experiencia la cobran muy bien en su producto y así como desembolsamos dinero para su licencia, “desembolsaremos” tiempo en su instalación y entrenamiento de usuarios, ambas tareas complejas. Como atenuante, nuestro usuario beta no deberá tener grandes habilidades de programación; VBscript es una tecnología con muchos años en el mercado y con mucha gente capacitada que lo maneja; la oferta es grande y baja nuestro presupuesto en empleados. Cuenta con interfaz de usuario web, API, versión para ordenador de escritorio y aplicación web. Tiene componentes de prueba reutilizables, documentación automatizada y se integra con herramientas de desarrollo continuo como por ejemplo Jenkis (el cual os presentamos recientemente en otro artículo). De manera adicional, como complemento, UFT ofrece “Lean Functional Testing” (LeanFT) para creación de pruebas con Visual Studio (C#) o Eclipse (Java).
Una de las herramientas para pruebas de bases de datos que funcionen con páginas web, escrito completamente en lenguaje Java y orientado directamente a los programadores. Si necesitamos probar la carga masiva de datos y realizar pruebas de esfuerzo a los servidores, debemos utilizar JMeter con un software de monitorización como Pandora FMS (no duden ustedes en contactarnos). Apache JMeter no es un navegador web (no ejecuta el JavaScript del código HTML, por ejemplo) sino que actúa a nivel de protocolo HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, entre otros), FTP, SMTP(S), POP3(S) e IMAP(S). También ofrece opciones de registro de resultados en un simple archivo de texto, ya que las funciones de monitorización le fueron eliminadas desde la versión 3.2.
en muchos de los casos, el código es heredado o forma parte de un diseño orientado al reúso de componentes. La arquitectura propuesta está conformada de 3 subsistemas. De acuerdo a la Figura 1, al primero subsistema se le denomina inspector de código. El objetivo de este subsistema es evaluar al sistema en reposo. La primera acción que realiza el inspector es inspeccionar el bytecode para obtener la arquitectura interna del sistema. Esta información se contrasta con la información de la matriz de pruebas, en donde se encuentran los registros de todos los parámetros necesarios para ejecutar correctamente cada caso prueba creado. El segundo subsistema es el evaluador de casos. El principal objetivo de este subsistema es generar un ambiente de evaluación real, en donde un grupo de evaluadores virtuales ejecutan cada uno de los casos de prueba de acuerdo a la funcionalidad del sistema en cuestión. Cada evaluador será apoyado con un aspecto que insertará las cláusulas en la codificación de los parámetros necesarios para cada caso de prueba. La gran ventaja de este enfoque es que no es necesario compilar el código para cada clausula insertada. El último subsistema recopilará la información resultante de cada prueba, en este caso será generada una pequeña una bitácora en el cual será especifica si la prueba fue exitosa o no. La información de las bitácoras generadas se guardará en una base de datos para estimar las métricas, las variables y sus valores del contexto de ejecución en donde se dieron los fallos, para su posterior análisis. El proceso de evaluación del sistema se realizará utilizando la técnica de simulación orientada a eventos discretos. En cada evaluación el tiempo asignado será ejecutado por el selector de casos y cada evaluador virtual será generado de forma aleatoria y automática. Figura 1. Arquitectura de la herramienta de evaluación propuesta. Las ventajas de nuestro framework de evaluación son: • La inspección de la arquitectura será basada en el bytecode o código fuente y en la funcionalidad del sistema. • La emulación de un grupo de evaluadores virtuales en entornos reales de ejecución. • El control de los casos de prueba durante la ejecución mediante la POA permite reducir el costo computacional. Esto es debido a que este proceso en la actualidad se hace mediante complicados algoritmos genéticos. • La utilización la técnica de simulación orientada a eventos discretos permite modelar el comportamiento de los evaluadores de una forma más acercada a la realidad. Conclusiones El proceso de pruebas siempre ha sido muy costoso, pero en la actualidad, los esquemas tradicionales de evolución no son suficientes. Se tienen lenguajes como Java, en donde la mayor parte de su funcionalidad se resuelve a tiempo de ejecución. Esta situación dificulta la planeación y ejecución de pruebas. De acuerdo al análisis de los instrumentos de evaluación reportados en el presente trabajo, se determinó la mayoría de los trabajos se enfoca en la cobertura del código. Dichos instrumentos, utilizan normalmente un
Los productos de software están constituidos por diferentes componentes. En las pruebas de unidad, cada uno de estos elementos es probado por separado, de manera que se identifican errores de lógica y algoritmos de forma individual. Esto permite validar más detalladamente las funcionalidades del aplicativo, por lo que la identificación y solución de errores será más ágil y precisa.
Mire y aprenda cómo la configuración de varias capas de CA Agile Requirements Designer puede ayudarlo a crear y mantener scripts de automatización de pruebas en varios lenguajes a la vez. Vea cómo los fragmentos de código automáticos se superponen directamente en un modelo de los requisitos, junto con potentes funciones de datos y terminales virtuales. Y cómo los scripts de prueba, los datos y los activos virtuales se pueden generar al mismo tiempo, y se actualizan automáticamente cuando cambian los requisitos.
Merece la pena añadir a estas herramientas otras que nos ayuden a organizar mejor el correo, como Unroll.Me, para olvidarte del correo basura. “Ahora Google ha lanzado la competencia a Mailbox, que se llama Inbox. Son fantásticas para una gestión eficiente del email personal. Unrol.Me es, sencillamente, buenísima. No es un gestor de correo como las otras, sirve para ver a qué estás suscrito, darte de baja fácilmente de las que no te interesen y agrupar las otras en un mismo email”, dice Emilio Rodríguez.

Con estas herramientas de Selenium podemos reducir considerablemente el tiempo en la creación de las pruebas automatizadas, y estas mismas pruebas pueden ser ejecutadas como un complemento en la ejecución de una prueba funcional. Así, podemos optar por la alternativa que más nos convenga. Lo único que nos queda es usarlas, conocerlas y familiarizarnos con ellas.

×