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).
• Mayor confiabilidad en los resultados. El sistema de automatización no se cansa, nunca tiene prisa, y mientras las pruebas o su información no cambie, deben de obtener siempre el mismo resultado; son consistentes, confiables, y repetibles. Como seres humanos te cansas, preocupas, o simplemente apresuras en sacar tu trabajo a tiempo. Todo esto lleva a simples errores humanos que afectan tu capacidad de ser eficiente en pruebas rutinarias. La automatización de pruebas repetitivas que requieren una ejecución frecuente,  te permite tiempo para integrar pruebas más complejas, probar nuevas funciones dentro de la aplicación y su integración con el resto del sistema.
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.
• Vender funcionalidades en lugar de beneficios. Cuando hablamos de testing se nos olvida mencionar cómo beneficia al cliente, producto, o empresa. Tendemos a hablar de todo lo que vamos a poder hacer sin mencionar los beneficios. No importa lo avanzada que sea la herramienta de automatización o ese nuevo proceso manual que deseas implementar, si no puedes ligarlo a beneficios tangibles. Necesitas identificar que el testing, ya sea automatizado o no, sí beneficia al cliente, producto o empresa.
Espero puedas ayudarme. Resulta que tenemos un negocio familiar, es una imprenta y me gustaria tener un programa o algun sistema que pueda bajar y que valla a la par con la caja registradora sencilla que tenemos ( una Casio ) y que pueda darme un reporte diario de las ventas que se hacen en el dia. En resumidas cuentas, quisieramos algo como el sistema de cobros de los supermercados...

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


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.

Appium es un framework de automatización de pruebas para probar aplicaciones web nativas, híbridas y móviles para plataformas iOS, Android y Windows en dispositivos reales y simuladores. Dado que soporta aplicaciones multiplataforma, permite probar aplicaciones en diferentes plataformas utilizando la misma API. Appium permite a los usuarios elegir el idioma que tiene las bibliotecas de clientes de Selenium como Java, Objective-C, JavaScript con Node.js, PHP, Ruby, Python, C # etc. para crear pruebas.
Antes de poder ejecutar pruebas automatizadas, es necesario disponer de un entorno con un controlador de pruebas y agentes de prueba. Un entorno es el conjunto de roles necesarios para ejecutar una aplicación concreta y las máquinas que se utilizarán para cada rol. Un controlador administra pruebas en varios equipos comunicándose con los agentes de prueba instalados en cada uno de ellos. Cada agente puede llevar a cabo distintas tareas: instalar software, ejecutar pruebas y recopilar los datos de las mismas.
Created using PowToon -- Free sign up at http://www.powtoon.com/ . Make your own animated videos and animated presentations for free. PowToon is a free tool that allows you to develop cool animated clips and animated presentations for your website, office meeting, sales pitch, nonprofit fundraiser, product launch, video resume, or anything else you could use an animated explainer video. PowToon's animation templates help you create animated presentations and animated explainer videos from scratch. Anyone can produce awesome animations quickly with PowToon, without the cost or hassle other professional animation services require.
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.
Hola Javier, primero muchas gracias por tan valiosa información. Mi padre lleva muchos años con su negocio que ya es algo así como un micro-mercado y controlar la venta y compra de productos le es imposible, ahora que programa me ayudaría a poder hacerlo? puedo tener un control exacto del negocio? te agradecería mucho la ayuda que me vayas a brindar.
• Vender funcionalidades en lugar de beneficios. Cuando hablamos de testing se nos olvida mencionar cómo beneficia al cliente, producto, o empresa. Tendemos a hablar de todo lo que vamos a poder hacer sin mencionar los beneficios. No importa lo avanzada que sea la herramienta de automatización o ese nuevo proceso manual que deseas implementar, si no puedes ligarlo a beneficios tangibles. Necesitas identificar que el testing, ya sea automatizado o no, sí beneficia al cliente, producto o empresa.

¿Cómo sabes que el sistema funciona? Una respuesta común a esta pregunta es “porque el equipo de testing le echó un vistazo”.  El problema viene al tener que determinar la extensión y profundidad de las pruebas realizadas. Si eres afortunado y trabajas en una empresa con buenos procesos, podrás acreditar lo probado a través de una lista de casos de prueba. Si trabajas en una empresa de clase mundial, entonces hay una gran posibilidad de que tengas la fortuna de tener a tu disposición herramientas para la gestión y automatización de pruebas.De acuerdo con Elfriede Dustin, las herramientas de automatización de pruebas consolidan y mejoran la efectividad de las pruebas siempre y cuando se manejen las expectativas, se entiendan las herramientas, y se seleccione una herramienta compatible con el ambiente de programación. Si necesitas probar un sistema no trivial que conste de algo más que unas cuantas pantallas y reportes, entonces es muy posible que por medio de pruebas manuales no logres realizar todas las pruebas que necesitas para verificar la calidad del sistema. Con la ayuda de herramientas de automatización puedes ejecutar más pruebas, lo cual se traduce en una mayor cobertura del sistema que se está probando.


Hablábamos hace unas semanas, en el post de una lista de herramientas de calidad software imprescindibles, sobre como en estos años se ha disparado el número de herramientas para el control de la calidad software. En aquel post hablamos de herramientas de calidad software “estáticas” (es decir, analizan sin ejecutar el software) y de “caja blanca” (analizan en base al código fuente). Y nos quedó pendiente mencionar otro grupo de herramientas de calidad software: las herramientas para pruebas software, de caja negra.
Llevo trabajando de QA en una empresa de educación algo más de 1 año pero en ningún momento hemos automatizado. De programación ando algo corto pues la mayoría de conocimientos son a nivel de sistemas y bbdd por lo que necesitaría una aplicación en la que haya que picar el menor código posible, utilizando principalmente la grabación para pruebas funcionales; la mayoría de nuestras aplicaciones son en .net, formularios web y plataformas lms. Probamos superficialmente Selenium pero no nos terminó de convencer
El software E.S. Plan de empresa es producto de más de 10 años trabajando con miles de emprendedores y clientes, viendo qué funciona y qué no en el mundo real. Este software arregla los planes de negocio por donde están rotos, que es en ser largos, centrados en lo que no importa, inútiles para el día a día y que no se aplican porque acaban en un cajón, incompletos o con el hartazgo de haberlo hecho para nada.
La automatización del testeo de software permite reducir los costes de cualquier organización que necesite probar sucesivas versiones de un mismo producto, facilitando así las pruebas de regresión (1). Para llevar a cabo la automatización del testeo en una organización hay que evaluar la disponibilidad de recursos humanos para destinar a la automatización. Debido a que la automatización es también un proyecto de desarrollo, se necesita un perfil desarrollador/tester.
Y nos acaban de liberar presupuesto para implementar una herramienta en primera instancia para automatizar pruebas (muy requerido en mis labores por la gran cantidad de data que manejamos) y por otro lado me gustaría poder incorporarle gestión de pruebas y bugs para implementar una solución más robusta, nuestro entorno es 100% web en .net y hacia allá debe apuntar la solución…vi que en una de tus sugerencias diste como alternativa Microsoft Test Manager pero no se si es la mejor por sobre las pagas que puedes encontrar en el mercado.
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.
×