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.
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.
Hola! yo soy consultora de Swiss Just, vendo productos por encargo. Todas las semanas hago pedidos con los productos que me encargan mis clientas y otros que tengo en stock, tambien me gano muchos productos de premio que luego vendo y les gano el 100%, alguno de estos programas puede servirme para llevar un conteo de mis ventas, ganacia y stock? me resulta complicado llevarlo a mano. Muchas Gracias!

El software de negocios, como el que en Evolve-It ponemos a su alcance, crea vínculos entre varios procesos empresariales, lo que lleva a la creación de informes más detallados, facturaciones automatizadas y mayores resultados de ventas. Mediante su empleo, cada vez que se realice una nueva entrada de datos, se mostrarán campos opcionales para vincular la información ya sea a proyectos, usuarios, clientes, recursos, etcétera. Además, no siempre tienen que introducirse los datos manualmente, ya que cierta información puede ser recolectada automáticamente con la ayuda de mecanismos prediseñados de integración. Cabe señalar que la información sobre los perfiles de clientes se actualiza con frecuencia reflejando así los progresos de los procesos de ventas.
El software de gestión empresarial combina los datos de todas las demás herramientas que utiliza y establece un intercambio rápido de información entre los departamentos de negocios. Debido a que todos los datos importantes se recogen en un sólo sistema central, nadie del personal permanece en la incertidumbre o está obligado a pedir a sus colegas información. Aunque cabe enfatizar que se mantiene cierto grado de privacidad para que accedan a la información sólo personas autorizadas por la empresa. Otro beneficio de la gestión de todas las operaciones de negocio dentro de un único sistema es la capacidad que brinda para construir vínculos entre diversos datos que competen a las empresas. Con ello se les da a los usuarios una comprensión completa de cómo determinadas actividades influyen en su presupuesto o en los resultados de las ventas. Por ejemplo, se pueden vincular aspectos sobre el marketing y la administración de las relaciones con los clientes, para determinar los alcances y crecimientos de la empresa, asimismo, vincular las tareas completadas a proyectos con el fin de posibilitar una facturación eficiente para el trabajo y los costos de éstos.
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
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. 
• 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.
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?
En las pruebas de software, la automatización de pruebas consiste en el uso de software especial (casi siempre separado del software que se prueba) para controlar la ejecución de pruebas y la comparación entre los resultados obtenidos y los resultados esperados. La automatización de pruebas permite incluir pruebas repetitivas y necesarias dentro de un proceso formal de pruebas ya existente o bien adicionar pruebas cuya ejecución manual resultaría difícil.
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.
hola, me parecen muy utiles los programas para el manejo de inventario, pero en el caso de necesitar ingresar un base de datos que tengo en excel, pues me parece muy tedioso el ingreso de mil articulos para el inventario, alguien sabe algun programa que tenga la opción de importar desde excel o algo similar? muchas gracias mi correo es ivan9006@gmail.com agradezco de ante mano
• Capacidad para aplicar pruebas complicadas. Algunos tipos de prueba son difíciles de aplicar o muy complicadas de ejecutar de manera manual; entre esta rama podemos encontrar aquellas en las que es necesario el acceso a la base de datos para verificar que la información del sistema sea correcta, o tal vez sea preciso hacer cálculos manuales para verificar la validez de los resultados arrojados por el sistema. Muchas herramientas de automatización proporcionan estas funcionalidades. Además, los sistemas de automatización nos pueden auxiliar a introducir grandes cantidades de información, configurar la versión de prueba de la base de datos, y generar información aleatoria entre otras cosas.
Su casa matriz, KMS Technology, fue fundada en 2009 de forma conjunta en Estados Unidos y Vietnam, y tras tres años de desarrollo basados en Selenium y Appium con soporte para Groovy (Java) fue liberado con el nombre de “Katalon Studio”. Lo que resalta de Katalon es que en vez de descargar e instalar Selenium y Appium por separado, Katalon lo ofrece en un solo paquete y además mejora la experiencia del usuario, lo que permite un aprendizaje rápido. Una vez lo hayamos dominado, podemos ir a fondo con Selenium, el cual corre por debajo, latente. Además apoya el desarrollo continuo de software con Teamcity, qTest, JIRA, Jenkins, y Git. Las bondades, muchas en realidad, las podréis leer en este enlace con detalle.
• Las herramientas de Micro Focus Borland cubren todo el ciclo de vida del desarrollo de aplicaciones corporativas, desde la gestión de requerimientos pasando por testing multi-plataforma y control de versiones, con un reconocido prestigio internacional. Gartner ha situado en 2014 a Borland, como líder en su Cuadrante Mágico de “Suites Integradas de Calidad de Software” por tercer año consecutivo.
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.
×