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.

El reto planteado para la entrega final de la asignatura, una vez visto, aprendido y puesta en práctica las técnicas anteriormente mencionadas, era el desarrollo de una herramienta que realizará pruebas automáticas, bien sea de aplicaciones web o de aplicaciones móviles, en este caso era posible extender las existentes, lo que el usuario debía entregar era el denominado SUT (Software under test) como podía ser la URL de una aplicación web o el empaquetado de una aplicación nativa, en este caso Android (APK).


Con la plataforma RuedasdeNegocios.com hemos organizado dos eventos internacionales recientemente. Una Rueda de Negocios donde empresarios de Brasil, con el apoyo de APEX, hicieron Negocios con empresas de Paraguay. Y luego una Misión Comercial proveniente de Uruguay, apoyados por su agencia de promoción de exportaciones Uruguay XXI. La plataforma nos facilitó aspectos organizativos y ahorramos mucho tiempo, generándose productivas reuniones de negocios! Excelentes Resultados!
Son herramientas con utilidades diferentes. Para presentaciones almacenadas en la nube y totalmente gratuitas, las mejores son Google Slide y Prezi , sobre todo esta última. “Es muy visual, con efectos de zoom, etc. Ha evolucionado considerablemente hasta ofrecer muchas más opciones que antes. El handicap es que ya no eres original cuando usas Prezi, ya que la utiliza todo el mundo”, comenta Isra García. Otra cosa son las que nos ayudan a organizar la información de forma visual, como Infogram. “Crea increíbles infografías y gráficos en cuestión de minutos. Una herramienta muy útil a la hora de presentar datos”, añade.
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
Sogeti es una compañía tecnológica perteneciente al Grupo Capgemini y especialista en: Testing y Calidad de Software; Soluciones Microsoft y High Tech Consulting. En Sogeti entendemos la importancia de obtener el máximo valor empresarial de sus sistemas de IT, por ello somos líderes mundiales en Testing & QA. Somos creadores de las metodologías estándar del mercado: TMap® (Test Management Approach) y TPI® (Test Process Improvement). ¡Nuestro compromiso es el Testing! Ver todas las entradas de QAnewsblog
Posiblemente te dirán que la idea es que vos diseñes y codifiques los tests y luego los desarrolladores puedan mantenerlos/extenderlos pero creeme que eso nunca llegué a verlo. Si los desarrolladores tienen que hacer tests QUE HAGAN SUS TESTS UNITARIOS, bastante tienen con sus tareas como para que le agreguen una tarea mas que es la de las pruebas funcionales. A pocos desarrolladores les gustará la idea. Es lo que siempre vi.
Hoy las empresas en el mundo utilizan varios tipos de software que se adapten a sus negocios. Antes se utilizaban los libros de contabilidad y calculadora para recopilar información en varias hojas, sobre ventas y emisión de facturas para los clientes. Aparte de los registros regulares de las tiendas,  todo lo que hoy se usa esta completamente automatizado. Esta gran  revolución en el mundo de la informática trajo consigo un gran cambio para las empresas y el modo en que estas dirigen sus operaciones de negocios. A través del uso del software se puede asegurar que su negocio no sólo tenga un giro más exitoso, sino que además exista un ahorro considerable en tiempos y mayores ingresos.
• 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.

El término engloba una amplia variedad de aplicaciones informáticas que incluyen desde programas de contabilidad y de ofimática, hasta sistemas de planificación de recursos empresariales (ERP), pasando por programas de gestión de clientes (CRM) y de recursos humanos, así como programas de administración de la cadena de suministros (SCM), etc. Con estos se suele incluir un servicio para dar soporte técnico a las empresas que los usan, como también orientarlas en problemas y dar soluciones, según los protocolos de cada distribuidor.


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.
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!
Zapier es una de las herramientas líderes en automatización de tareas. Desde su fundación en 2012, graduándose desde Y Combinator, Zapier ha tenido un papel central como conector de diferentes apps web. Cuenta con más de 750 apps diferentes que puedes integrar con Zapier. Sin duda, uno de los más recomendados, y una de las primeras opciones que deberías tener en cuenta a la hora de comenzar a automatizar tareas y procesos. 
Principalmente, porque la interfaz de usuario es la parte más propensa a cambios de toda la aplicación, y para automatizar pruebas y tener fiabilidad sobre lo que estamos ejecutando necesitamos cierta estabilidad: un cambio en la interfaz podría hacer fallar la prueba automática, y en ese caso, tendríamos que readaptarla para que volviera a funcionar.
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.
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.


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.
Esperamos que esta publicación les haya resultado amena y de interés, por el momento debemos concluir, no sin antes invitarles a que nos contacten ya sea a través de nuestro sitio web o en nuestras oficinas si necesitan el mejor software de administración de negocios en manos de una firma experta en todo lo relativo a la gestión empresarial mediante sistemas informáticos. ¡Gracias por su visita!
En este artículo tienen toda la razón, ya que la mayoría considera que las pruebas funcionales son las únicas que se pueden automatizar con herramientas como Selenium, Selenide, QTP, etc; pero hay que tener en cuenta que las pruebas unitarias a nivel de clases críticas, que tienen bastante dependencia en las funcionalidades de los aplicativos, es necesario validar su comportamiento con los tantos cambios que sufren. Hoy en día vivimos en una era donde los conceptos de SOA, MicroServicios, ESB, toman mayor fuerza, por ende, el automatizar la validación de estos se hace necesario.
SonarQube excede el concepto de ‘herramienta’ tal y como lo hemos utilizado en este artículo. Sonarqube es una plataforma que nos va a permitir valorar la calidad del código de una manera objetiva. SonarQube comenzó analizando únicamente Java, pero con el pasar del tiempo ha ido creciendo y actualmente soporta más de 20 lenguajes de programación (C#, C/C++, PL/SQL, Cobol y ABAP entre otros).
Wireshark es probablemente uno de los mejores analizadores de tráfico de red. Más aún si tenemos en cuenta su relación calidad/precio. Es una de las herramientas básicas que se usan  en auditorías de seguridad y test de intrusión. Además, sirve en muchas otras pruebas, o incluso en el desarrollo de software, cuando debemos verificar que ocurre con nuestra aplicación, y si está funcionando correctamente. El objetivo principal de la herramienta es mostrar al usuario todo lo que está circulando a través de su tarjeta de red, conocer que está circulando en el mundo al que estamos conectados.
“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 .
×