Son herramientas para mejorar la productividad. Entre las gratuitas, la más recomendada es Rescue Time . Está también Teamviz. “Rescue Time es una de las que más y mejores resultados me da. Un servicio de analíticas personales que muestra cómo empleas tu tiempo, desde que enciendes el PC o portátil, y te proporciona herramientas para ayudarte a ser más productivo”, comenta Isra García.
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
La venta de paquetes de spa (upselling y cross-selling) es más fácil cuando el personal puede ver qué paquetes los clientes han comprado en el pasado. Los productos que se venden en una tienda de spa pueden ser etiquetados con códigos de barras para rastrear el inventario. De ésta forma, el software puede lanzar una alerta para informar cuando se está terminado un producto y poder reponerlo antes de que el estante quede vacío.
Fue necesario el uso del archivo .sh, debido a que algunos comandos como es el caso de calabash-android gen, exigen una segunda acción como es el para aceptar la creación del proyecto, una vez ejecutado el comando se utiliza el archivo .features solicitado al usuario para ejecutar la prueba, esto es almacenado en un directorio con el nombre del id que identifica la prueba en la base de datos.
Aparte de los software para negocios simples y complicados existen los diseñados a medida que son desarrollados  para determinados tipos de empresas. Hay muchas empresas que tienen necesidades más específicas o dueños de negocios que tienen una preferencia en cuanto a la forma en que quieren que su software  ofrezca opciones para trabajar y consultar. Software que van desde la simple reunión de información hasta un amplio control de múltiples empresas y al ajuste especifico para una necesidad de cada área. Mejorando sus procesos e integraciones.
Dadas las características de la automatización de pruebas funcionales que hemos descrito podemos deducir que no siempre y para todo sirven. Las pruebas están diseñadas para funcionalidades concretas - fueron pensadas para agilizar una parte del proyecto, no para gestionar toda la calidad del código (sí volvemos a la idea inicial). Por eso encontramos y encontraremos detractores de la automatización. Tenemos que ir con cuidado con el testing automation: es un arma de doble filo y como tal hay que saber usarla. Entonces, ¿qué casos de prueba se deberían automatizar?
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.

En este último aspecto debemos decir que TestComplete ofrece las pruebas dirigidas por palabras clave (en inglés “keyword-driven testing”). En las pruebas basadas en palabras clave, cada palabra clave corresponde a una acción de prueba individual, como un clic del ratón, la selección de un elemento del menú, pulsaciones de teclas, abrir o cerrar una ventana u otras acciones. Esto es lo que inicialmente, y poco a poco, deberemos configurar, para luego crear una prueba de palabras clave, la cual es una secuencia de operaciones, en formato de palabras clave, que simula las acciones del usuario en la aplicación probada. Básicamente, para realizar cualquier acción de prueba, los evaluadores simplemente arrastran y sueltan la palabra clave que corresponde a la operación deseada o simplemente pueden registrar sus acciones y la prueba dirigida por palabra clave se construye para ellos. Estas palabras clave las podremos reutilizar infinitas veces para prevenir el modelo “no te repitas tú mismo“. Asimismo, ofrece flexibilidad cuando cambia la aplicación a probar y para los nuevos usuarios beta que lleguen a trabajar les será más intuitivo el mantener las pruebas creadas, adquirir experiencia y crear nuevas pruebas dirigidas por palabras clave.


Un ejemplo de estas diferencias entre los equipos de pruebas manuales y automatizadas es el ritmo de cambio que existe actualmente. Las metodologías y herramientas utilizadas para el testing manual no evolucionan a la misma velocidad que las de automatización. Es por ello que debemos tratarlos a ambos como equipos independientes, aunque incluidos dentro del mismo grupo genérico.
Esta es una lista que evidentemente no incluye todo el software existente -ni pretende ser exhaustiva-, pero refleja la situación actual del mercado de software, el cual goza de excelente salud con variedad de precios y características. ¿Cuál será el más adecuado? Recomendamos el uso de máquinas virtuales, por sus singulares prestaciones, para que evaluéis con detenimiento cada uno de los programas y tengáis un panorama completo y basado en pruebas específicas. Una vez hayáis elegido los mejores candidatos será hora de presentarlo a los equipos de desarrollo sobre ordenadores reales y de allí seleccionar uno -o más-, a fin de que vuestra empresa adquiera una licencia de servicio y/o uso. ¡Dejad vuestro comentario aquí debajo y aclararemos cualquier inquietud, duda o comentario!

La elección misma entre automatización y ejecución manual de pruebas, los componentes cuya prueba será automatizada, las herramientas de automatización y otros elementos son críticos en el éxito de las pruebas, y por lo regular deben provenir de una elección conjunta de los equipos de desarrollo, control de calidad y administración. Un ejemplo de mala elección para automatizar, sería escoger componentes cuyas características son inestables o su proceso de desarrollo implica cambios continuos.
Gracias al análisis de autoservicio, ya no es necesario que ni el negocio ni el departamento de TI tengan que hacer concesiones. El departamento de TI define la gobernanza, y supervisa y administra la plataforma. A su vez, los usuarios corporativos responden sus propias preguntas sabiendo que cuentan con datos precisos y actualizados, además de un espacio de colaboración protegido. Tableau ofrece lo mejor de los dos mundos. Es un método que funciona.
En Webimprints, estamos ayudando a las empresas a mejorar la eficiencia, reducir la posibilidad de error humano, acelerar el proceso de entrega de los nuevos servicios y permitir un rápido retorno de la inversión con soluciones de IT Procesos Automatización(ITPA). Como hoy la información es más compleja y variada. Las empresas están manejando estos retos en una forma inteligente a través de los soluciones de ITPA, también conocida como, Run Book Automatización (RBA) u Orquestación.

Con ayuda del software de administración de negocios la información empresarial puede mostrarse en imágenes, gráficos, entre otras visualizaciones capaces de personalizarse, de modo que los datos y progresos sean de lectura fácil y sin recurrir a tanto papeleo. Por ejemplo, es posible obtener informes de ventas sobre el número de clientes potenciales y clientes pagadores, el valor promedio de la vida de cada cliente, las tasas de conversión, los ingresos y gastos esperados que se relacionan con adquisiciones recientes, entre otros datos de interés. También con su empleo se pueden sincronizar los datos con el software de contabilidad y vincularlo a los costes del proyecto. Además de los informes financieros tradicionales, pueden compararse los datos con los resultados de ventas o de marketing para observar qué factores causan la disminución o el crecimiento de los ingresos.
Este recurso debería estar dedicado al 100% a los proyectos que lo requieran, pero periódicamente debería rotar dentro del equipo e invertir tiempo en formarse y participar en actividades de I+D para aprender a utilizar nuevas tecnologías. Si el Ingeniero de Automatización está asignado a un proyecto largo que no incluye formación, hay un riesgo muy alto de que este recurso tenga conocimientos obsoletos cuando finalice su proyecto. Entonces, la inversión en formación necesaria para volver a disponer de un recurso valioso podría ser demasiado alta.

UiPath es una RPA (Robotic Process Automation, Automatización robótica de procesos en castellano) totalmente gratis, con multitud de características, para automatizar cualquier web o aplicación de escritorio. Permite a empresas y compañías globales diseñar, desarrollar y controlar una fuerza de trabajo robótica completa que imita a los empleados. UiPath administra tareas basadas en reglas y libera a los trabajadores de la rutina diaria del trabajo repetitivo. Permite la gestión de cambios y desarrollo, control de acceso, modelación de procesos, ejecución y programación remota, monitorización de las tareas ejecutadas, auditoría y analíticas en pleno cumplimiento con la seguridad empresarial y las buenas prácticas gubernamentales. Cuenta con un workflow consistente en arrastrar y solar, muy ameno para el usuario, que requiere de poco conocimiento de la .net para nuevos escenarios. 
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.
Ahora existen diversos tipos de pruebas que son necesarias y fundamentales en el desarrollo de software. Como indicas, los programadores deberían ser responsables del código que generan. He ahí la importancia de las pruebas unitarias que todo developer debe realizar. La detección temprana de errores ha demostrado que es mucho menos costosa que una en una etapa tardía.
Postman es una gran herramienta para probar APIs. Los probadores y desarrolladores pueden utilizar esta herramienta gratuita como una extensión de Chrome o un producto de colaboración en la nube para desarrollar, probar y documentar las API más rápidamente. Permite a los usuarios comprobar el historial de las solicitudes HTTP enviadas, personalizar secuencias de comandos, autocompletar URL, previsualizar imágenes, realizar pruebas de producción, organizar o configuraciones locales con una amplia gama de características y funciones.
×