La automatización es uno de los temas del momento. Ya os lo contamos cuando hablamos acerca de las tendencias tecnológicas más relevantes de nuestros tiempos, pero hoy nos centramos en el testing automation. Y lo primero que hay que decir al respecto, es que la automatización de pruebas de software no garantiza la calidad del software. ¿Sorprendido? Entonces recuerda que la calidad de software va mucho más allá del testing. Cuando hablamos de calidad de software hemos de tener en cuenta tres núcleos: la calidad del proceso de creación de código, la calidad del producto en sí, y la calidad del equipo que lo desarrolla. Sin metodologías ágiles en el proceso, y un equipo de trabajo motivado, la calidad del producto en sí, aquello que parcialmente mides con el testing, se ve mermado. El testing es imprescindible para conseguir una buena calidad del software, sí, pero el testing solo mide software en ejecución. Además todos sabemos que el hecho de que el software funcione no significa necesariamente que esté bien construido La calidad del software engloba un conjunto de factores y como tal, cada uno de estos factores es imprescindible para el conjunto, pero no determina el umbral de calidad por sí solo. Así que hoy, nos centramos en una de esas pequeñas partes imprescindibles para el resto – la automatización de pruebas – pero sin olvidarnos que necesitará de sus compañeros de viaje para funcionar como se espera.
La automatización es uno de los temas del momento. Ya os lo contamos cuando hablamos acerca de las tendencias tecnológicas más relevantes de nuestros tiempos, pero hoy nos centramos en el testing automation. Y lo primero que hay que decir al respecto, es que la automatización de pruebas de software no garantiza la calidad del software. ¿Sorprendido? Entonces recuerda que la calidad de software va mucho más allá del testing. Cuando hablamos de calidad de software hemos de tener en cuenta tres núcleos: la calidad del proceso de creación de código, la calidad del producto en sí, y la calidad del equipo que lo desarrolla. Sin metodologías ágiles en el proceso, y un equipo de trabajo motivado, la calidad del producto en sí, aquello que parcialmente mides con el testing, se ve mermado. El testing es imprescindible para conseguir una buena calidad del software, sí, pero el testing solo mide software en ejecución. Además todos sabemos que el hecho de que el software funcione no significa necesariamente que esté bien construido La calidad del software engloba un conjunto de factores y como tal, cada uno de estos factores es imprescindible para el conjunto, pero no determina el umbral de calidad por sí solo. Así que hoy, nos centramos en una de esas pequeñas partes imprescindibles para el resto – la automatización de pruebas – pero sin olvidarnos que necesitará de sus compañeros de viaje para funcionar como se espera.
Esto depende del tipo de prueba, para las pruebas de tipo ADB y monkey testing depende del número de eventos a realizar, para el caso de las pruebas de de tipo BDD — Calabash la configuración del proyecto toma algunos segundos, luego depende del número de pasos que contenga el archivo .features, además Calabash tiene una serie de timers, los cuales esperan hasta que se cumpla una condición.

Nuestra metodología de pruebas automatizadas y gestión de calidad consiste en el uso de varios programas y frameworks especiales para controlar la ejecución de pruebas y resultados de pruebas de software. La automatización de pruebas permite hacer pruebas iterativas y necesarias dentro de un proceso de pruebas ya existente o bien adicionar pruebas cuya ejecución manual implicaría mucho trabajo como las pruebas de seguridad, pruebas de aceptación, pruebas de validación, pruebas funcional, pruebas de rendimiento, pruebas de regresión, pruebas de sistema, pruebas de integración y pruebas unitarias de software. Nuestra pasión por automatización de pruebas, nos ha ayudado a potencializar el ROI en los negocios de los clientes, reducir costos humanos y ayudar a los clientes en el ahorro de costo, calendarización y tiempo.

Super útil tu publicación, muy apropiada para mi nicho de mercado, en su mayoría pequeñas empresas, por lo que compartiré esta información en mis redes sociales. Este tipo de aportes son muy necesarios para lograr la administración correcta de nuestros micro y pequeños negocios. Me interesa en especial el del manejo de clientes, ya veremos como nos va. Muchas Gracias.
Otras buenas alternativas pueden ser Klout y Mention , muy útiles para gestionar la reputación en redes sociales: qué se dice de ti y qué comentarios tuyos tienen más impacto, quiénes son los usuarios con más influencia, etc. Eso sí, Klout es completamente gratuita, pero Mention dispone de un plan con sus correspondientes tarifas en función del tamaño y tipo de equipo. También merecen la pena otras herramientas más específicas como TwitterSearch , “un buscador en tiempo real para que no te pierdas nada de lo que se dice de ti en esta red”, comenta Isra García. En esta misma red dispones también de soluciones como las de Tweet Alarm

En Globe testing el objetivo de la automatización de pruebas no es suprimir todo el testing manual, ni a los testers manuales, lo que automatizamos son chequeos, comprobaciones que los testers manuales ya han detectado como son; ciertas pruebas de regresión, smoke test etc. Según este enfoque, durante la evolución de un sistema, un caso de prueba comienza siendo manual, para luego ser automatizado, así los testers manuales pueden dedicarse a buscar otros bugs más complejos o testear nuevas funcionalidades.
La pregunta del millón - ¿qué herramientas utilizo para automatizar pruebas funcionales de software? – no tiene una respuesta sencilla. Son tantas las variables y aspectos a tener en cuenta para elegir las herramientas adecuadas que sería difícil realizar un listado. Dependerá de la funcionalidad, del tipo de aplicación, del lenguaje, del sistema de trabajo… Sin embargo, aquí te dejamos un listado que consideramos bastante completo, pero, nuestra recomendación en este aspecto es clara: antes de invertir en una herramienta de testeo de software, sea para automatizar o no, consulta a un experto en calidad de software. Ninguna herramienta, por muy buena que sea, puede hacer magia. Recuerda que el testing es una pequeña, pero indispensable parte de un conjunto, por lo que no puedes tratarlo por separado, ni desintegrarlo del resto de factores que influyen en la calidad de tu software.

En este siglo XXI, los equipos pronto comenzaron a sobrepasar las capacidades de uso de sus propietarios y la potencia de cálculo nos permitió usarlos más allá del uso común y corriente. Una de esas tareas es la ejecución de herramientas para pruebas, orientadas hacia el campo que nos incumbe aquí: la monitorización. Las herramientas para pruebas se utilizan, por ejemplo, en la monitorización de Caja Abierta y Cerrada, y en el artículo sobre la optimización de rendimiento web os nombramos algunas de ellas (“Selenio, TestingWhiz y TestCompleto”). Por supuesto, Pandora FMS y la flexibilidad que le caracteriza combina todo ello en la Monitorización UX PWR. Os invitamos a leer dichas publicaciones y regresar con nosotros a este artículo para profundizar en las herramientas para pruebas.


Hola Javier, soy miembro de un voluntariado en Antioquia y tenemos un ropero en el cual se llevan a cabo dos actividades ; se dona ropa a personas necesitadas o se vende a muy bajo costo. Quisieramos llevar un inventario de entradas y salidas de ropa que sea sencillo y que nos permita identificar la ropa que tenemos y las edades para las cuales pueden servir. Tu nos podrías recomendar un programa?

Robot Framework es un framework open-source genérico de automatización de pruebas para pruebas de aceptación y desarrollo basado en pruebas de aceptación (ATDD). Tiene una sintaxis de datos de prueba tabular fácil de usar y utiliza el enfoque de prueba basado en palabras clave (keyword-driven testing). Sus capacidades de prueba pueden ampliarse mediante bibliotecas de prueba implementadas con Python o Java, y los usuarios pueden crear nuevas palabras clave de alto nivel a partir de las existentes usando la misma sintaxis que se usa para crear casos de prueba.


objetos, la ejecución de pruebas sobre los métodos de una clase, pueden considerarse como pruebas unitarias. Las ventajas de realizar pruebas unitarias son: encontrar errores de forma temprana, evitando la propagación de estos en el sistema completo, lo cual permite mejorar el comportamiento de la aplicación en las pruebas de integración. Otro beneficio es la posibilidad de documentar el código para facilitar su implementación. Pruebas Integrales Otro aspecto importante en el proceso de evaluación son las pruebas de integración. Estas pruebas se basan en probar un conjunto de unidades las cuales interactúan de acuerdo a la funcionalidad en relación con la especificación de los requerimientos. Las pruebas integrales evalúan que las secuencias de interacción entre componentes se realicen correctamente. Esto se debe hacer ya que pueden haber fallos que se mantiene ocultos y solo pueden ser detectados cuando una unidad de código interactúa con otra dentro del mismo sistema. Las ventajas de realizar estas pruebas son: descubrir interacciones inadecuadas entre los componentes, interfaces y arquitectura de diseños deficientes. Enfoque actual de programación ! Programación Orientada a Objetos De acuerdo al ranking de la revista IEEE Spectrum (IEEE, 2014) el lenguaje Java es el más utilizado para el desarrollo de sistemas empresariales, aplicaciones móviles y web. En este caso las propiedades que la Programación Orientada a Objetos (POO) ofrece, tiene grandes ventajas como son: la portabilidad, la reutilización de componentes y la sencillez de sus cláusulas, que también son fáciles de entender. El mayor representante de este paradigma es el lenguaje Java con más de 9 millones de desarrolladores en todo el mundo (Oracle, 2014). Sin embargo evaluar aplicaciones en Java no es sencillo y los esquemas tradicionales de pruebas no son suficientes, en este caso la planeación de pruebas tradicionales no es aplicable. Esto se debe a que la mayor parte de la funcionalidad de estos sistemas se resuelve a tiempo de ejecución. Las características de la POO que influyen en este aspecto son las siguientes: • Encapsulación: esta propiedad limita el acceso que se tiene a los atributos internos de una clase, y solo se puede acceder a ellos mediante la instancia de la clase. • Herencia: esta propiedad permita a una clase hija comportarse como una clase padre y a sí mismo una clase padre puede comportase como una clase hija, pero con un comportamiento limitado. • Polimorfismo: esta propiedad permite seleccionar los métodos que se utilizan durante tiempo de ejecución haciendo el código más flexible. Programación orientada a aspectos Este enfoque es relativamente nuevo el área de desarrollo de software, pero se ha consolidado como un paradigma el cual facilita la encapsulación de requerimientos no funcionales. Una de las funciones más importante de este nuevo paradigma es mejorar la modularidad del código en sistemas de software y reducir su complejidad. Esto es posible mediante enfoques como el entrelazado de asuntos (crosscutting concern) en el código, estos asuntos generalmente son requisitos no funcionales que debe de cumplir un sistemas, por ejemplo la seguridad y el inicio de sesión de usuarios. Este entrelazado es un concepto que se implementa en diversas secciones del código, mediante la implementación de corte en puntos (pointcuts), de acuerdo a la definición de puntos de unión (joint points) los cuales son puntos donde los asuntos (concerns) son aplicados. Un aviso (advice) es un comportamiento adicional que tendrá el código, el cual es ejecutado en un asunto. Entre los representantes más importantes de este paradigma tenemos a AspectJ (Laddad, 2003), que funciona como una extensión para el lenguaje Java. Actualmente forma parte del proyecto de código abierto Eclipse de IBM. La unidad principal de AspectJ es el aspecto, el cual combina los conceptos corte en puntos, avisos y declaraciones. Este nuevo paradigma ofrece nuevas posibilidades para el área de pruebas de software. En trabajos de investigación como en (Cheon, 2010) se desarrolla un enfoque que utiliza una combinación entre OCL (Object Constariant Language) y aspectos para colocar restricciones en la invocación de métodos para validar los rangos y datos de las variables de entrada.
Cambios previstos en la aplicación: No es aconsejable realizar la automatización cuando se prevén cambios ya que la vida de la prueba automatizada es muy corta. El objetivo al automatizar una prueba es que tenga una vida de varias ejecuciones, para que el tiempo invertido en la automatización sea rentable frente al tiempo ganado a la hora de ejecutar las pruebas manualmente.
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.
El problema de armar algo a medida desde cero (o sea desde la programación) es la actualización del mismo. Un alternativa mucho más razonable por su sencillez, costo y posibilidades de actualización es hacerlo tu misma mediante una base de datos con capacidades gráficas, ahí mi programa preferido es sin duda FileMaker, que, además ofrece muchísimos plantillas de gestión de negocios específicos que puedes adaptar muy rápidamente a tus necesidades.
La verdad es que para todo lo que sean pruebas de sitios web, la primera opción diría que es Selenium. Puedes empezar con Selenium IDE, que permite grabar y reproducir, y es muy sencillo de usar, y una vez tengas claro lo que quieres automatizar, pasarte a algún framework. Te dejo un video en español de introducción a Selenium IDE: https://www.youtube.com/watch?v=AptRJxAVsI4

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).
“Son herramientas muy útiles en su versión gratuita, de hecho la principal limitación de Zoho CRM sin pago es que sólo permite el acceso a tres usuarios distintos dentro de la empresa, lo que para una pyme suele ser suficiente. En el caso de Openbravo, al ser software libre, el problema puede venir, como con cualquier solución open source (código abierto), en que hay que tener ciertos conocimientos técnicos para ponerlas a funcionar. Por eso, aunque Openbravo sea gratuito, si no tienes conocimientos técnicos debes valorar si te compensa contratar a alguien que instale y configure Openbravo para ajustarlo a las necesidades específicas de la empresa”, explica José Carlos Cortizo, CMO de BrainSins .
En el desarrollo contemporáneo de software existe una tendencia creciente a usar Frameworks como los denominados XUnit (por ejemplo JUnit y NUnit) que permiten la ejecución de pruebas unitarias para determinar cuándo varias secciones del código se comportan como es esperado en circunstancias específicas. Los casos de prueba describen las pruebas que han de ejecutarse sobre el programa para verificar que éste se ejecuta tal y como se espera. La automatización de pruebas es una característica clave del desarrollo ágil de software en donde se le conoce como "desarrollo guiado por pruebas". En ellas, las pruebas unitarias se escriben antes que el código que genera la funcionalidad. Sólo cuando el código pasa exitosamente las pruebas se considera completo. Cuando hay cambios, el programador descubre inmediatamente cualquier defecto que rompa los casos de prueba lo cual baja el costo de la reparación. Dos inconvenientes de este estilo de trabajo son:
Otras buenas alternativas pueden ser Klout y Mention , muy útiles para gestionar la reputación en redes sociales: qué se dice de ti y qué comentarios tuyos tienen más impacto, quiénes son los usuarios con más influencia, etc. Eso sí, Klout es completamente gratuita, pero Mention dispone de un plan con sus correspondientes tarifas en función del tamaño y tipo de equipo. También merecen la pena otras herramientas más específicas como TwitterSearch , “un buscador en tiempo real para que no te pierdas nada de lo que se dice de ti en esta red”, comenta Isra García. En esta misma red dispones también de soluciones como las de Tweet Alarm
Las pruebas de estrés permiten verificar que el sistema funciona adecuadamente bajo diferentes condiciones. Baja memoria o no disponible en el servidor, máximo número de clientes conectados y múltiples usuarios ejecutando la misma transacción, representan algunas de las condiciones descritas. La finalidad de las pruebas de estrés también es la de identificar el límite de las condiciones bajo las cuales el sistema falla.
×