Muchas herramientas de automatización de pruebas proveen características para grabar y reproducir acciones del usuario para posteriormente ejecutarlas un número indefinido de veces, comparando resultados obtenidos con resultados esperados. La ventaja de ésta aproximación a la automatización es que requiere de menos desarrollo de software, sin embargo el confiar en éstas características del software lo hace menos confiable en la medida que muchas veces dependen de la etiqueta o posición del elemento de interfaz, y, al cambiar, el caso de prueba debe ser adaptado al cambio o probablemente fallar. Una variante de estas pruebas es la prueba de sistemas basados en la web en las que la herramienta de prueba ejecuta acciones sobre el navegador e interpreta el HTML resultante. Una variación más es la automatización sin scripts, que no usa grabación y reproducción de acciones sino que construye un modelo de la Aplicación Bajo Prueba ABP (AUT en sus siglas en inglés) que permite a la persona que prueba ("tester") que cree pruebas simplemente editando parámetros y condiciones.
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.

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:

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.
A través del módulo device.js desarrollado para el proyecto, se invoca el comando adb devices, el cual entrega el listado de equipos encendidos, éstos son almacenados en la base de datos (si es que no existen ya), además de ello se obtiene la información de los mismos, como nombre del equipo, identificador y dimensiones, que para el caso de acciones de tipo tap para ADB Input son necesarias, para así delimitar el rango en el cual se puede hacer la acción.

La empresa Rational® Software lo lanzó inicialmente como “Robotj 1.0” y cuando IBM® adquiere dicha compañía en 2004 lo renombra simplemente como “Rational”® (aunque en su logotipo lo acompaña la palabra “software” en alusión a la compañía madre). De las herramientas para pruebas es la más profunda y compleja y nos atrevemos a decir que es inefable. Los guiones son guardados en lenguaje Java y Visual Basic .NET, aunque a partir de la versión 8.1 se puede interactuar con las capturas de pantalla que se graban en un guión gráfico (algo así como WYSIWYG). Está disponible tanto para Windows como GNU/Linux de forma vertical con “IBM Jazz integration”, como todos los productos de esta gigantesca empresa.
Javier me gustaría que me aconsejaras que programa me serviría para el manejo de una pequeña empresa de inmobiliaria con manejo de administración de inmuebles por arrendamientos y administración de inmuebles consignados para ventas con comisiones como pago y administración de inmuebles con reparaciones y manejo de trabajadores para pequeñas reparaciones. ademas de caja y consignaciones y pagos de comisiones vendedores.
Estimado Javier. Felicitaciones por el post y por el nivel de respuestas y comentarios que obtienes. Necesito una aplicativo de preferencia online (en web), gratis o de bajo costo que permita a mis vendedores reportar sus visitas y ventas a clientes (farmacias y medicos) Sabes si existe algo que se acerque a ello y que me pueda ayudar? Infinitas gracias.!

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.
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.
Jelinski, Z. A. (1972). Software Reliability Research. In Statistical Computer Performance Evaluation. New York:academic Press. Laddad, R. (2003). AspectJ in Action. Manning. Musa, J. D. (2004). Software Reliability Engineering. New York: Mc Graw Hill. Norman F. Schneidewind, L. J. (2008, Junio 27). IEEE Recommended Practice on Software Reliability. New York, NY 10016-5997, USA. Oracle. (2014). http://www.oracle.com. Ragab, S. a. (2010). Object oriented design metrics and tools a survey. In Informatics and Systems (INFOS), 2010 The 7th International Conference on (pp. 1-7). Rathore, S. a. (2012). Investigating object-oriented design metrics to predict fault-proneness of software modules. In Software Engineering (CONSEG), 2012 CSI Sixth International Conference on (pp. 1-10). doi:10.1109/CONSEG.2012.6349484 Sommerville, I. (2007). Software Engineering. Pearson Education. Wahid, M., & Almalaise, A. (2011). JUnit framework: An interactive approach for basic unit testing learning in Software Engineering. Engineering Education (ICEED). doi:10.1109/ICEED.2011.6235381 Autorización y renuncia Los autores del presente artículo autorizan al Instituto Tecnológico de Orizaba (ITO) para publicar el escrito en la revista electrónica “Coloquio de investigación multidisciplinaria” con registro(ISSN2007$8102 en su edición 2014. El ITO o los editores no son responsables ni por el contenido ni por las implicaciones de lo que está expresado en el escrito.
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.
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:

TestLink es una herramienta de gestión de pruebas basada en la web ampliamente utilizada. Proporciona soporte para administrar y mantener casos de prueba, conjuntos de pruebas, documentos de prueba y proyectos en un solo lugar. Puede alojarse en un servidor e integrado con herramientas de seguimiento de errores como Mantis, JIRA, Bugzilla, FogBugz, etc. para facilitar el proceso de ejecución de pruebas. TestLink se puede utilizar tanto para pruebas manuales como automatizadas.

Jelinski, Z. A. (1972). Software Reliability Research. In Statistical Computer Performance Evaluation. New York:academic Press. Laddad, R. (2003). AspectJ in Action. Manning. Musa, J. D. (2004). Software Reliability Engineering. New York: Mc Graw Hill. Norman F. Schneidewind, L. J. (2008, Junio 27). IEEE Recommended Practice on Software Reliability. New York, NY 10016-5997, USA. Oracle. (2014). http://www.oracle.com. Ragab, S. a. (2010). Object oriented design metrics and tools a survey. In Informatics and Systems (INFOS), 2010 The 7th International Conference on (pp. 1-7). Rathore, S. a. (2012). Investigating object-oriented design metrics to predict fault-proneness of software modules. In Software Engineering (CONSEG), 2012 CSI Sixth International Conference on (pp. 1-10). doi:10.1109/CONSEG.2012.6349484 Sommerville, I. (2007). Software Engineering. Pearson Education. Wahid, M., & Almalaise, A. (2011). JUnit framework: An interactive approach for basic unit testing learning in Software Engineering. Engineering Education (ICEED). doi:10.1109/ICEED.2011.6235381 Autorización y renuncia Los autores del presente artículo autorizan al Instituto Tecnológico de Orizaba (ITO) para publicar el escrito en la revista electrónica “Coloquio de investigación multidisciplinaria” con registro(ISSN2007$8102 en su edición 2014. El ITO o los editores no son responsables ni por el contenido ni por las implicaciones de lo que está expresado en el escrito.

×