miércoles, 23 de abril de 2014

Código Visual Fox con calidad asegurada, parte 1: Fox Unit & Visual FoxPro, una unión esencial

por Julián Haeberli

La calidad asegura un buen producto, si esa calidad tiene un mínimo impacto en el consumo de nuestros recursos, nuestro negocio será más redituable al reducir al mínimo el re trabajo. En este pensamiento está basado FoxUnit: nos permite realizar test unitarios para mejorar nuestro producto a un bajo costo de tiempos.




La idea es simple, hacer un pequeño test para cada clase que desarrollemos (de tipo .prg o .vcx). Una vez finalizado nuestro desarrollo, ejecutamos ese test para ver si nuestro objetivo principal se sigue cumpliendo. Haciendo varios test pequeños obtenemos una batería, si el proyecto cuenta con muchos desarrolladores entonces será una buena iniciativa usar FoxUnit para que ninguno de ellos modifique el comportamiento esperado de una clase, al menos sin estar consciente de ello.

Es un desarrollo de código abierto, por lo tanto se puede bajar la última versión del sitio oficial (1.02.00) y empezar a crear test. Requiere tener instalado Microsoft Visual Fox versión 8.0 o superior.

Los test unitarios ponen énfasis en probar cada clase por completo para que podemos estar seguros de que lleva a cabo su objetivo correctamente. Esto mejora la legibilidad del código y la capacidad de prueba. Los test unitarios también mejoran la calidad general del código, lo cual trae varios beneficios a largo plazo como ahorro de tiempo y esfuerzo en el camino.

FoxUnit además es especialmente útil cuando se adopta TDD (Test Driven Development) o Desarrollo guiado por test. En ese sentido, se sugieren los siguientes consejos:
  • Escribir los test unitarios. 
  • No escribir ningún código sin antes no haber escrito un test primero. Esto asegura que sabemos lo que debe suceder antes de escribir el código. 
  • Automatizar las pruebas para que puedan repetirse con frecuencia. 
  • Utilizar los objetos mock (objetos falsos) para aplicar suficiente funcionalidad para probar los objetos que interactúan entre sí. 
TDD es ideal para los componentes de nivel medio, ya que cada clase en la que se hace la prueba tiene que ser capaz de valerse por sí misma, o sea, tiene que ser independiente, tiene que estar bien separada del resto de las clases. Si nuestras clases visuales (tales como formularios y combos) tienen sus propios métodos personalizados, también podremos escribir pruebas para ellos, pero deberemos hacer más trabajo para las pruebas de integración (cuando se asegura de que todos trabajan juntos).

Links Útiles:

  • Sitio oficial:

  • Review:


En Baufest nos preocupamos por la calidad del código entregado a nuestros clientes. Por eso siempre estamos buscando las mejores soluciones.

lunes, 14 de abril de 2014

Consideraciones sobre Cloud Testing

Hernán Solera y Norberto Castro nos señalan algunos aspectos a tener en cuenta a la hora de empezar con Cloud Testing

 [Costo]

El costo de instalación inicial para la migración de las pruebas a la nube es muy alto, ya que implica la modificación de algunos de los casos de prueba para adaptarse al entorno de nube.

[Seguridad]

Considerar el riesgo y la necesidad de privacidad por los casos de prueba. Esto puede requerir ciertos niveles de seguridad adicional

[Integración]

Considerar las restricciones de requerimiento del sistema que se está moviendo a la nube. El sistema puede tener la necesidad de ciertos datos u otro sistema que no esté en la nube, por lo que no se aprovechan los beneficios de la nube.

[Performance]

Tener en cuenta la aplicación de pruebas de carga y de stress, para que la aplicación que este en la nube sea realmente efectiva. Verificar que el ambiente soporta ese tipo de casos de prueba (carga y stress).

[Escalabilidad]

Considerar el crecimiento del sistema y por ende de los casos de prueba, para ser migrados a la nube según se necesite (escalabilidad)

[Disponibilidad y recuperación de datos]

Tener en cuenta la capacidad de disponibilidad y recuperación (en caso de pérdida) de cada instancia de las aplicaciones. Como por ejemplo una aplicación distribuida por países. (Disponibilidad y recuperación de datos).

[Conectividad]

Considerar la necesidad de conectividad y la calidad de la conexión.

[Probar más Rápido]

En general, los tiempos de las pruebas se acortan, ya que las empresas dedican menos tiempo a la adquisición y montaje de la infraestructura para la pruebas.

lunes, 7 de abril de 2014

Cómo realizar una exportación a PDF en Rule Inspector


por Marcos Costarella


Una de las características más convenientes de InfoPath 2010, en comparación con las versiones anteriores del software, es la capacidad de los usuarios para guardar formularios en formato PDF.



Usa el cuadro de diálogo Inspector de reglas para ver todas las reglas y valores predeterminados calculados que están en uso en un formulario. Esto también ayudará a determinar si hay un problema con las reglas en el formulario y a resolverlo.
A mayor cantidad de campos como también reglas y condiciones,  nuestra tarea se puede dificultar debido a la cantidad de información generada por el Inspector de reglas. Por lo tanto, se plantea como solución alternativa, exportar el listado confeccionado por el Inspector de reglas con el simple objetivo de poder emplear la acción Buscar; de esta manera si tenemos aunque sea un leve indicio de donde puede estar el error podemos realizar una búsqueda más rápida y evitarnos  tener que recorrer dicho listado manualmente.

A continuación, se detallan los pasos a seguir para llevar a cabo lo anteriormente mencionado:

Para ver los detalles de todas las reglas de la plantilla del formulario actual, desde la solapa Data hacer clic en Rule Inspector.



A continuación, se despliega la siguiente ventana:



Para formularios con M vistas y N campos, el tener que dar con alguna regla  en particular se puede tornar engorroso; aún si contamos con la herramienta mencionada.



No pierdas las esperanzas, ¡No todo está perdido! Mediante la opción de exportación a algún tipo de documento como PDF, tenemos la opción de Buscar, lo cual puede facilitarnos muchísimo la tarea.