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).
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.
Cambios previstos en la aplicación: No es aconsejable realizar la automatización cuando se prevén cambios ya que la vida de la prueba automatizada es muy corta. El objetivo al automatizar una prueba es que tenga una vida de varias ejecuciones, para que el tiempo invertido en la automatización sea rentable frente al tiempo ganado a la hora de ejecutar las pruebas manualmente.
Además ten en cuenta, que una buena estrategia de automatización de pruebas conlleva más cosas que solo automatizar las pruebas en sí: crear un buen framework de automatización, parametrizar los tests, las ejecuciones para los distintos entornos, lanzar los test con distintos datos de prueba y gestionar dichos datos, sistemas de logs, buenos reportes con información que sirvan para obtener conclusiones, montar una buena infraestructura contra la que lanzar esos tests, paralelizarlos etc.
Cada vez las aplicaciones se vuelven más complejas, se le van añadiendo o modificando procesos y si a esto se le suma que el tiempo de entrega de dichas modificaciones disminuye, la inseguridad que produce la calidad final del software se incrementa. Esto ocurre porque muchas veces disminuye la calidad de la parte estable del producto y aumentan las incidencias detectadas.

“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.


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.
mexERP un sistema integral que te permite registrar tu negocio/empresa de forma fácil y sin complicaciones. Una vez registrado podrás dar de alta, administrar y controlar todas tus transacciones, movimientos y actividades cotidianas de tu negocio. El sistema registrará toda la información y te proporcionará la información necesaria tales como: reportes, facturas, saldos, cuentas por pagar, entre otros que serán de vital importancia para la toma de decisiones en tu negocio.
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).
Es un sistema integral administrativo de recursos financieros a la medida de PyMes y grandes empresas, las herramientas brindan soluciones a sus necesidades de forma integral, segura y confiable en la nube, cumpliendo con todas las normas del SAT. mexERP tiene como finalidad la optimización y mejora de los procesos contables, manteniendo la integridad de los datos bajo un entorno confiable, preciso e inmediato.
WebImprints no sólo ayuda a los clientes con las pruebas, sino que también aporta buenas prácticas y metodologias en todo el proceso de desarrollo contribuyendo a la calidad del sistema o aplicación final. Somos un proveedor de servicios de pruebas de seguridad, aceptación, validación, funcional, rendimiento, regresión, sistema,integración y pruebas unitarias de software.

Hola Javier, ante todo muchas gracias por tu información, es de gran utilidad. Me gustaría que me recomendases algún programa gratuito que me permita gestionar mi negocio, resulta que tenemos 2 restaurantes y una nave que nos sirve de almacén, en este caso necesitaría un programa para controlar lo que compro a los proveedores y a que precio y también registrar cuantos productos van a cada restaurante, a parte de saber cuantos quedan en almacén en ese momento. Espero que me puedas aconsejar alguno ya que ando bastante perdido. Muchas gracias y un saludo.
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.
La interacción con el software. Aquí es donde entra la computación en la nube, que nos permite el almacenamiento remoto de la información y el acceso a la misma desde dondequiera que estemos, y el modelo de Software as a Service (SaaS), que no requiere la costosa compra e instalación de software en las computadoras de la empresa, sino solo una suscripción y el pago por utilización.

• 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.

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.
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.
En el desarrollo contemporáneo de software existe una tendencia creciente a usar Frameworks como los denominados XUnit (por ejemplo JUnit y NUnit) que permiten la ejecución de pruebas unitarias para determinar cuándo varias secciones del código se comportan como es esperado en circunstancias específicas. Los casos de prueba describen las pruebas que han de ejecutarse sobre el programa para verificar que éste se ejecuta tal y como se espera. La automatización de pruebas es una característica clave del desarrollo ágil de software en donde se le conoce como "desarrollo guiado por pruebas". En ellas, las pruebas unitarias se escriben antes que el código que genera la funcionalidad. Sólo cuando el código pasa exitosamente las pruebas se considera completo. Cuando hay cambios, el programador descubre inmediatamente cualquier defecto que rompa los casos de prueba lo cual baja el costo de la reparación. Dos inconvenientes de este estilo de trabajo son:
Encuentre nuevas oportunidades de negocio al reunir a sus clientes, los datos y los diferentes procesos de su compañía en un sólo lugar. Con las soluciones de software de negocios, usted podrá ayudar a su compañía a gestionar sus procesos de principio a fin. Realice el análisis rápido y sencillo de datos masivos que posee su organización, convirtiéndolos en conocimiento e información útil, que además, lograrán apoyar las decisiones de sus negocios más importantes. ​

El servicio de automatización de pruebas tiene como objetivo reducir el tiempo de ejecución de pruebas repetitivas y/o de regresión por parte del personal de pruebas. Esto es posible mediante la utilización de herramientas, estrategias y robots con la capacidad de ejecutar pruebas a muy altas velocidades. Nuestro servicio ofrece los siguiente beneficios:
Uno de los hechos más conocidos sobre los defectos del software es que cuanto más tarden en ser detectados, más caro saldrá corregirlos. Aunque la investigación puede variar en cuanto a la proporción exacta de su impacto en los costos, la regla general es 1:10:100. Es decir, si arreglar un defecto cuesta una unidad (hora, dólar, etc.) en fase de requerimientos y diseño, costará 10 unidades en la fase de prueba (sistema/aceptación) y más de 100 veces en producción. Estos costos pueden ser atribuidos a la pérdida de ingresos y clientes, fraude, malas relaciones públicas y demandas, entre otras cosas.
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.    

Paint de Microsoft. Si, hay un montón de alternativas mucho más completas e interesantes, como Greenshot, del que hemos hablado aquí, o Jing, del que hablaremos en breve. Pero en muchos casos, con Paint es suficiente. Es un programa básico, incluído en todas las versiones actuales de Windows, por lo que si usas alguna versión de este sistema operativo, lo usarás a menudo. En 3 simples pasos puedes tener un pantallazo, y con poco más puedes destacar un punto en concreto y añadir un texto descriptivo en la imagen:
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.
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.
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.
×