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.
Herramientas de Evaluación para Automatizar Pruebas de Sistemas Orientados a Objetos Leticia Dávila-Nicanor1, Ulises Juárez-Martínez2, Alejandro Romero Herrera1 1Maestría en Ciencias de la Computación Centro Universitario UAEM Valle de México Blvd. Universitario s/n Predio San Javier, Atizapán de Zaragoza, México 2Instituto Tecnológico de Orizaba – División de Estudios de Posgrado e Investigación Oriente 9 No. 852, Col. Emiliano Zapata, Orizaba, Veracruz, México, C. P. 94320 alex.romher@gmail.com, ldavilan@uaemex.mx, ujuarez@ito-depi.edu.mx Área de Participación: Ingeniería de Software Resumen La calidad de software se ha convertido en un tema de gran importancia y la base de un gran número de investigaciones. Para obtener mejores niveles de calidad, se han utilizado modelos matemáticos e instrumentos de evaluación. Sin embargo el costo de la evaluación de un sistema es muy alto, esto es debido, a que las pruebas que se realizan a un sistema de software, normalmente son del orden de miles. El objetivo de evaluar un sistema es encontrar la mayor cantidad de fallos posibles optimizando los recursos que se tienen asignados al proyecto. A pesar de muchos esfuerzos, en la actualidad los paradigmas de programación como el orientado a objetos (POO) y el orientado a aspectos (POA), tienen características en donde las técnicas clásicas de pruebas no son suficientes. En este trabajo se propone un novedoso esquema de evaluación para sistemas orientados a objetos, en donde se combina la planeación de las pruebas, apoyada con técnicas de programación orientada a aspectos. Este enfoque mejora la eficiencia de la técnica de pruebas de caja negra para lenguajes como Java. Nuestra herramienta de evaluación se enfoca en medir los niveles de confiabilidad mediante la emulación de un ambiente controlado con evaluadores virtuales, lo que permite reducir los costos y mejorar la eficiencia en el proceso de evaluación. Abstract Quality software has become an issue with great relevance and it has been the basis of many researches. To obtain best quality levels it has been used different math models and assessment tools. However, the cost to evaluate any system is high, due to the test that have been implemented, it must be run thousands of times. Aim of evaluate a software system is to debug most errors so optimize resources allocate to the project of software. In spite of many efforts, currently the programming paradigms like object-oriented programming (OOP) and aspect-oriented programming (AOP), have characteristics where the testing classic techniques are not enough. In this paper we propose a novel evaluation scheme for object-oriented systems, where planning of tests and techniques supported with aspect-oriented programming are combined. This approach improves the efficiency of the technique of black box testing for programming languages like Java. Our assessment tool focuses to measure the levels of reliability by emulating of a controlled environment with virtual evaluators, thereby reducing costs and improvement the efficiency of process of evaluating. Palabras clave: Confiabilidad, pruebas, calidad, programación orientada a objetos. Introducción Durante el proceso de desarrollo de software, la etapa de localización y corrección de fallos, es decir, la fase de pruebas, puede llegar a ocupar desde un 40% hasta 60% de los recursos totales asignados al proyecto de software (Sommerville, 2007). En un contexto ideal, se espera que un sistema desarrollado de una forma adecuada, presente la menor cantidad de fallos posibles. Sin embargo y a pesar de muchos esfuerzos, los
Como podéis imaginar, habrá decenas de herramientas para pruebas software, de las que he querido destacar en esta lista tres: Selenium, Jmeter y Testlink. ¿Por qué estas tres? Porque son herramientas para pruebas software, son de software libre y son de las más usadas en proyectos. Las dos primeras, Selenium y Jmeter, trabajan en la automatización de las pruebas funcionales, la tercera, Testlink, en la gestión de los casos de prueba. Aquí os dejo un breve resumen de estas herramientas para pruebas software.

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


También existen soluciones gratuitas, como WooCommerce, que permiten montar un comercio a partir de una web de Wordpress. “Su gracia es que funciona sobre Wordpress, que es una solución tan extendida que mucha gente de marketing y negocio la sabe utilizar a nivel usuario. De esta forma, la curva de entrada es mucho más simple. Yo la recomendaría siempre que tu estrategia de marketing se base en contenidos (posts) y quieras que el blog tenga el mismo protagonismo que la tienda (de esta forma está todo en una misma plataforma)”, comenta Cortizo.
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.
Un proyecto de automatización de pruebas incluye el desarrollo de la suite de automatización, así como su utilización y mantenimiento. La utilización de la metodología TAKT de SOGETI no implica el uso de una herramienta de testing concreta, sino que, su implementación puede realizarse partiendo de herramientas ya presentes en su organización, lo que evitará una nueva inversión.
“Según la empresa crece, van a surgir nuevas necesidades para las que la versión gratuita no da soporte. Y no queda otra que pagar. Pero a día de hoy hay alternativas muy buenas con costes muy reducidos gracias al formato SaaS, que ha democratizado el acceso a estas herramientas. Estamos hablando de que por 10€-50€ al mes ya tienes acceso a soluciones como Pipedrive (un CRM que utilizamos nosotros ahora), que simplifican mucho los flujos de trabajo y ayudan mucho en el día a día por la optimización de tiempos”, comenta Cortizo.

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

In diverse industrial and academic environments, the quality of the software has been evaluated (validated) using different analytic studies. It is a common practice on these environments to use statistical models for the assurance, control and evaluation of the quality of a software product or process. A number of industries in the safety-critical sector are forced nowadays to use such processes ... [Show full abstract]View full-text
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.

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.
TestComplete pertenece a SmartBear software, una compañía que ofrece un amplio repertorio de soluciones para la calidad de software. Si hablamos de TestComplete nos referimos a una herramienta orientada a objetos que soporta una gran cantidad de tecnologías tales como Visual Basic, Delphi, C + + y otras herramientas de desarrollo. Se puede ejecutar en los navegadores Internet Explorer, Mozilla Firefox y Google Chrome en sus versiones de 32 y 64 bits y soporta flash y otros complementos. Por el momento sólo ofrece soporte en Windows.
•	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.

Beyond Compare. La última, pero no por ello menos importante, de las herramientas para pruebas de software que vamos a incluir en nuestra top ten de herramientas para testing es Beyond Compare, de la que ya os hablamos en nuestra entrada Beyond Compare. Compara archivos de texto, binarios y carpetas fácilmente. Como ya os indicamos entonces, esta herramienta nos permite comparar archivos y carpetas. Los archivos de texto pueden ser vistos y editados, con sintaxis resaltada y reglas de comparación específicas para documentos, código fuente y HTML.  Los contenidos de texto de archivos Microsoft Word y archivos PDF también se pueden comparar, pero no editar. Archivos de datos, ejecutables, binarios e imágenes, todos tienen visores dedicados, disponiendo siempre de una clara visión de los cambios.
• Habilitación de pruebas de regresión. Con un conjunto apropiado de pruebas, y habilitados por una herramienta de automatización, cada que generamos un nuevo build de nuestro sistema de software podemos probarlo por completo. Esto es de vital importancia, ya que de acuerdo con un estudio realizado por Capers Jones, en promedio el 7% de las correcciones de defectos inyectan a su vez un nuevo defecto.

Por otro lado, otra herramienta que cada vez cobra mayor importancia dentro de un ecommerce es el buscador interno. “La importancia de un buscador reside en que es una de las herramientas más directamente vinculadas a la conversión, es decir, a la venta”, afirma Pepe Romero, responsable de comunicación de Doofinder . “Cualquier persona que entra en un, blog, intranet o comercio online, lo primero que hace es ir a la caja de búsqueda. En el caso de los blog, intranet o webs corporativas, Doofinder ayuda a encontrar fácilmente el contenido, mejorando así la experiencia del lector o empleado a la hora de encontrar lo que busca”.


GitHub es un servicio de repositorio basado en la web para alojar y administrar proyectos de software, versiones y código fuente. Proporciona características como edición en línea, ticketing, seguimiento de errores, administración de tareas, así como funciones de redes sociales como feed, wikis, que ayudan a millones de desarrolladores y probadores a trabajar de manera colaborativa. Promueve el desarrollo rápido y flexible de proyectos con más de 14 millones de usuarios y más de 35 millones de repositorios.
Otra herramienta privativa, de la mano de “SmartBear Software”®, que también utiliza VBScript y además maneja C#Script, C++Script, DelphiScript, JScript, JavaScript y Python, ¡sin ningún problema! A pesar de todos los lenguajes interpretados que soporta, igualmente no se necesitan habilidades extraordinarias de programación y su instalación es relativamente sencilla. Tiene tres módulos principales: como aplicación de escritorio, web y móvil. En muchos aspectos se parece a su contrincante UFT, ya que también se integra con Jenkins y mantiene actualizados los guiones u objetos grabados al cambiar alguno de ellos, lo que significa ahorro de tiempo y esfuerzo.
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

Capers Jones, en su libro de estimación de costos de software, menciona que las pruebas  de funcionalidad, regresión y rendimiento son comúnmente apresuradas (o incluso omitidas) por presiones de tiempo. Esto resulta en sistemas con baja calidad. ¿Alguna vez te has visto en la necesidad de apurar u omitir alguna de estas pruebas? ¡Por supuesto que sí! Es una práctica común en los proyectos de desarrollo.
Incluso podrá generar los datos de prueba correctos para ejecutar sus pruebas automatizadas. Encontrar y corregir los scripts de prueba que fallan cada vez que cambian sus requisitos no es algo que lleva mucho tiempo, ya que esto se automatiza de la misma manera. Y lograr una cobertura de prueba máxima, para todo, no solo para las pruebas de regresión, se convierte en realidad.
Yo he usado tres: Trac. intenta muchas cosas, wikis, bugtracker, etc. Y en mi opinión no hace nada bien. Ejemplo de muchas funcionalidades pero ninguna bien. Jira. El que menos he usado pero me pareció un poco tedioso y complejo de usar. Bugzilla. La de horas que habré pasado con este… Es el que mas me gusta. Pero tiene muchas pegas. La primera el UI es un poco feo. Pero bueno se puede vivir con ello. Si no tienes cuidado se puede convertir en una fuente de spam. Yo quitando casi todas las notificaciones recibo mas de 200 mails diarios. Y por ultimo y lo peor de todo es que la búsqueda es muy mala. Los bugtrackers suelen ser unas grandes fuentes de información que se pierde al no ser fácil de encontrar. En mi proyecto, grande, siempre hemos dicho que a bugzilla le falta la capa social. Tener un muro con tus acciones, poder compartir bugs con tus colegas, y hacer favoritos. Añadiría diversión y utilidad. Eso si, solo para proyectos grandes. Para pocos desarrolladores inútil.
Un contrato traslúcido es el resultado de combinar 1) la Programación Orientada a Aspectos (POA) la cual ofrece ventajas como: separación de asuntos, facilidad para razonar conceptos, reutilización, mejor mantenimiento del software, entre otras; 2) implementar el Diseño por Contrato (DbC) de forma dinámica, es decir que conforme al evento que identifique una regla pueda aplicar o no. En este ... [Show full abstract]Read more
Para mostrar los procesos que se están llevando a cabo en la ejecución de la prueba en tiempo real (para el caso de ADB Input) se hace uso de WebSockets a través de la librería Socket.io cada vez que sucede un cambio en el servidor, es informado al cliente, al mismo tiempo se está almacenando dicha salida en la base de datos, para la generación del log de eventos (figura 16)
Para campañas de email marketing, dos soluciones gratuitas y muy buenas son MailChimp y Acumbamail . En el caso de esta segunda puedes elegir tarifas mensuales en función del número de envíos que piensas realizar o el número de suscriptores a los que piensan mandar tus campañas de email marketing. Si lo que haces son envíos de forma puntual o envíos de SMS, puedes elegir una de sus tarifas de prepago por créditos. Desde 13 euros al mes. Sin permanencia. Existe también una versión gratuita de hasta 2.000 envíos a 250 suscriptores. MailChimp es algo más generosa, ya que permite enviar hasta 12.000 correos a 2.000 abonados. “La versión gratuita en ambos casos incluye en los emails un logo de cada una de las compañías y enlace al site, pero no es algo que moleste, por lo que la única razón lógica para optar por sus versiones de pago sería que el número de suscriptores o emails enviados al mes nos resulten insuficiente. En cuanto a las diferencias entre las dos, además del volumen de envíos, la única es que Acumbamail es una empresa española y su interfaz está en castellano. En Mailchimp está todo en inglés, tanto el interfaz como el soporte”, comenta José Carlos Cortizo.
Selenium es un conjunto de diferentes herramientas de software, cada una con un enfoque diferente, para apoyar la automatización de pruebas. La mayoría de los ingenieros de QA de Selenium se centran en una o dos herramientas que satisfacen más las necesidades de su proyecto, sin embargo, aprender todas las herramientas aportará opciones diferentes para abordar distintos problemas de automatización de pruebas. 

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?
“Según la empresa crece, van a surgir nuevas necesidades para las que la versión gratuita no da soporte. Y no queda otra que pagar. Pero a día de hoy hay alternativas muy buenas con costes muy reducidos gracias al formato SaaS, que ha democratizado el acceso a estas herramientas. Estamos hablando de que por 10€-50€ al mes ya tienes acceso a soluciones como Pipedrive (un CRM que utilizamos nosotros ahora), que simplifican mucho los flujos de trabajo y ayudan mucho en el día a día por la optimización de tiempos”, comenta Cortizo.

Me podrías asesorar sobre cual debería escoger,debido la bajada de ventas tenemos que prescindir del programa que tenemos actualmente por no poder asumir dichos costes y por eso busco otro.... necesitaría un programa para poder tener control de todas las ventas que han sido enviadas a distintos usuarios, subir de manera masiva un archivi en csv, también subir sus correspondientes trackings para que se enlacen en cada venta asociada (archivo masivo en csv tb y una vez entregadostodos ellos que se pudiera hacer una liquidacion para que cada proveedor la reciba y facture en base a esas ventas entregadas, también necesitaría el control de dichas devoluciones para que emitieran los proveedores tras esa liquidacion negativa su correspondiente abono.Espero tus noticias.deberia tener las opciones de importar y exportar dichos archivos. Muchas gracias por tu ayuda Javier. atentamente Isabel
Microsoft Test Manager (MTM) es la herramienta propiedad de Microsoft para la gestión y automatización de pruebas. Esta herramienta esta incluida en Microsoft Visual Studio Ultimate 2010 o en Visual Studio Test Professional 2010. El interfaz y el código generado en los scripts es bastante intuitivo, se debe de integrar con Team Foundation Server que almacena los casos de prueba y requerimientos entre otras cosas. El código generado se llama coded UI que graba operaciones de interfaz basado en Visual C#.NET. Además se pueden ejecutar las pruebas automáticas tanto en máquinas virtuales como físicas. Se instala en sistemas operativos Windows.
Buenos dias Javier. Gracias por tus interesantes aportaciones al manejo de Pymes. Tengo un negocio de venta de comidas, boquitas, otros, pero solamente en venta a empresas, bancos, cooperativas, otros, no hay venta directa al público. Deseo saber si existe un programa de uso gratuito para el control de compras de materiales, de fabricación de los diferentes menus, facturación a clientes (contado, credito), control de isv (impuesto sobre venta), pagos de luz, alquiler, agua, impuestos varios, control de pago de planillas, gastos varios, control de bancos, mantenimiento de equipo, compra de insumos, declaracion y controles contables. Tienes alguna recomendación ???? puede ser un solo programa ?? o deben ser varios????? Aguardo tu pronta recomendación. Muchos saludos y éxitos mil !!!!
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.
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
Hola! Paar serte sincero, estas aplicaciones están diseñadas para empresas de producción y comercialización principalmente, pero en el caso de empresas de servicios puede que no ofrezcan las características necesarias, sin embargo, te invito a probar "Mis Clientes 2.0", podría serte útil para llevar un control sobre tus clientes y pedidos. Pruebalo y me cuentas.
UIAutomator es un marco para pruebas de interfaz de usuario funcional para aplicaciones de Android. Permite a los probadores probar las aplicaciones de Android creando múltiples casos de prueba que pueden ejecutarse en varios dispositivos con diferentes resoluciones. UIAutomator también puede utilizarse para probar aplicaciones preinstaladas, como Ajustes del teléfono, así como aplicaciones de terceros.
Una ventaja de esta herramienta para automatizar pruebas es que tiene una fácil integración con Selenium Remote Control. Esto quiere decir que, cuando capturamos un elemento, podemos pedirle una acción que haría un usuario común y así la visualizamos en un tiempo determinado. Con esto podemos integrar las pruebas funcionales sobre aplicaciones web. Las pruebas automatizadas nos ahorrarían una gran cantidad de tiempo y harían que la ejecución de pruebas funcionales sea mucho más simple. 
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.
×