sábado, 17 de mayo de 2014

Automatizar procesos de negocio con ProcessMaker

En ocasiones he visto la manera en que están estructurados los procesos al interior de las empresas, varias de ellas gastan un tiempo importante definiéndolos, pero al momento de empezar su uso, se convierten en cadena de correos, llamadas y desplazamientos que los hace poco eficientes y se vuelve una carga operativa que en vez de mejorar el desempeño (Eficiencia y Eficacia) de la Organización a través de la gestión de los procesos, lo que se tiene como resultado son procesos definidos pero engorrosos.

A raíz de esto, las empresas gastan grandes sumas en herramientas que les ayuden a automatizar estos procesos, pero existen soluciones free que pueden ayudarnos a automatizar  estos procesos. En este blog mostraré una herramienta BPM, que a mi parecer, tiene lo necesario para configurar una eficiente automatización de los procesos de negocios.

ProcessMaker es una solución de software de flujos de trabajo, de código abierto simple y rentable. También conocido como Gestor de procesos empresariales (BPM), ProcessMaker ayuda a las organizaciones de todos los tamaños para diseñar fácilmente, automatizar e implementar procesos de negocio.

La suite de herramientas ProcessMaker permite a los usuarios de negocio crear formas y mapas de flujos de trabajo completamente funcionales. El software está completamente basado en web, lo que facilita la coordinación del flujo de trabajo entre los usuarios, departamentos y organizaciones. Como una aplicación de SOA de gran alcance, ProcessMaker puede interconectarse con sistemas que incluyen la gestión de documentos, ERP, CRM y aplicaciones de inteligencia empresarial.

Los analistas de negocio y expertos en la materia aman ProcessMaker, porque pueden hacer más y mejorar la comunicación con sus equipos técnicos. Los administradores del sistema lo eligen, porque no tienen que escribir mucho código. Los usuarios finales lo prefieren porque es su uso es muy simple.

ProcessMaker es ligero, extremadamente eficiente, e implica los gastos generales más bajos de cualquier BPM en la industria. Los clientes empresariales de ProcessMaker disfrutan de un pleno apoyo, la suite BPM es de calidad superior con los beneficios añadidos de código abierto.

Puedes descargar la versión en este link: http://sourceforge.net/projects/processmaker/files/ProcessMaker/

http://www.processmaker.com/tutorials podrán mirar la funcionalidad.

2014-05-17 19_26_52-ProcessMap Designer.jpg (Imagen JPEG, 855 × 455 píxeles)

Levantamiento de requerimientos

Una de las primeras herramientas con las que se debería contar  cualquier organización es una que sea apropiada para el levantamiento de requerimientos, desafortunadamente en mi experiencia he podido ver una desastrosa manera de levantar requerimientos sin tener ni siquiera una metodología apropiada de hacerlo y en muchos casos llegando a ser a duras penas una prosa plasmada en un documentos de Word, realmente admiro a todos aquellos desarrolladores que se enfrentan día a día a estos adefesios de los requerimientos funcionales levantados y que posteriormente tienen que sacar el mago que tienen dentro para mostrar un desarrollo que le guste a todos.

Por este motivo, la herramienta que mostraré en esta entrada de blog se refiere a una utilizada para levantar de una manera organizada y profesional los requerimientos funcionales necesarios para iniciar un ciclo el ciclo de vida de software.

En este blog mostraré un programa que nos ayude a la definición de los requerimientos y lo más importante que es free para un número ilimitado de usuarios. Estoy hablando de Axiom, lo puedes encontrar en la página http://www.iconcur-software.com/index.html.

Axiom hace que sea fácil para las empresas a crear y gestionar los requisitos y casos de uso en un entorno ágil. Axiom ofrece características de gran alcance como el seguimiento, los reportes y los históricos por lo que es fácil aumentar la calidad del software y reducir la complejidad.

Axiom consta de un server y un cliente los cuales podemos descargar para Window, Linux y Mac. Los descargables se pueden obtener acá http://www.iconcur-software.com/download.html

La página cuenta con buenos tutoriales que ayudan a conocer la funcionalidad, http://www.iconcur-software.com/resources.html

Adicionalmente, aquí les dejo el video de instalación.

iConcur Axiom is free requirements definition and management.

domingo, 15 de abril de 2012

Estimación de esfuerzo automatización de pruebas


Automatización de pruebas funcionales estimación de esfuerzo


Uno de los errores más comunes en los equipos de automatización de pruebas es que no se elijen los casos de prueba adecuados para la automatización. Otro error común es pretender automatizar todo olvidando que los scripts de automatización deberían ser un apoyo a las pruebas manuales y no el remplazo de ellas.
Como sea, para hacer una correcta elección de los casos de prueba a ser automatizados, se debe tener en cuenta dos factores fundamentales. El primero, es la complejidad que tiene los casos de prueba a automatizar ya que el esfuerzo inicial es elevado; y el segundo, el retorno de la inversión (ROI) para el negocio que tenga cada uno de los scripts.
En nuestro caso, vamos a enfocarnos en la complejidad ya que el ROI es propio de cada empresa. Podemos encontrar casos de pruebas simples, medios y complejos, esta complejidad la da el número de pasos (acciones) y verificaciones que tenga cada uno de ellos. Se puede realizar una tabla con la mostrada en la figura donde definamos la complejidad de cada uno de los casos de prueba.

 
Sl. No
Complejidad del caso de prueba
Numero de acciones
Numero de verificaciones
Buen candidato (~ No de ejecuciones)
1
Simple
< 5
< 5
> 15 ejecuciones
2
Medio
> 5 - < 15
> 5 - < 10
> 8 - 10  ejecuciones
3
Complejo
> 15 - < 25
> 10 - < 15
> 5 - 8  ejecuciones






Como elegir un buen candidato de automatización

Tenga en cuenta que los scripts comprenden tanto los pasos de las acciones como los puntos de verificación (o los resultados esperados). Las acciones suelen ser métodos directos o llamados a funciones del lenguaje de la herramienta de automatización, sin embargo los puntos de verificación no son de ese tipo y son más complejos.

¿Por qué se necesita automatizar las pruebas paulatinamente?

La mayoría de los proyectos de automatización de pruebas que fallan, se debe principalmente al rápido cambio de las aplicaciones, los casos de pruebas inadecuados, los frameworks inestables y los issues en los scripts.
El análisis de la causas nos muestra la necesidad de automatizar las pruebas en fases. La automatización de pruebas necesita un kick off en los casos de prueba críticos que son buenos candidatos a automatizar y luego lentamente ir extendiendo a los casos de pruebas medios. Esto ayuda al cliente a tener costos más bajos de mantenimiento.
Asimismo, recuerde que el framework debe actualizarse constantemente a lo largo de un proceso desarrollo de scripts y por lo tanto se hace más difícil mantener el framework en el caso que se tengan muchos scripts que se desarrollan en paralelo.

¿Qué tipo de prueba para ser automatizado?

Siempre es bueno hacer los scripts de las casos de pruebas funcionales de "integración y / o sistema", ya que la mayoría de los casos de prueba de nivel de componentes se hacen con ellos. Esto reduciría su esfuerzo al final y encontrará defectos. Tenga en cuenta que si usted tiene buen framework, entonces usted puede cambiar el alcance de la prueba y / o el tipo de prueba con los archivos de configuración.
  

Factores que afectan la estimación de automatización de pruebas.


Los siguientes factores pueden tener diversos efectos en la estimación o en el cálculo del esfuerzo de la automatización de pruebas.


Si. No
Tipo
Factor
Impacto
Observaciones
1
Framework
Disponibilidad
Alto
Un buen framework permite que los scripts, la depuración y el mantenimiento sean más fáciles. También, un framework necesita actualización constante durante el desarrollo de los scripts.
2
Aplicación
Repetir la funcionalidad
Alto
Es más fácil automatizar en los casos donde la funcionalidad se repite a través de toda la aplicación (Se recomienda usar keyword driven en estos casos, para no terminar escribiendo más métodos o funciones para acciones o verificaciones). Si no, el esfuerzo de construir más librerías o scripts será naturalmente lineal.
3
Proyecto
Alcance de la prueba
Alto
Si la complejidad de la aplicación así como el alcance de la prueba es muy complejo, entonces consumirá un gran esfuerzo para automatizar cada caso de prueba.
4
Herramienta de automatización
Soporte de UAT
Medio
La herramienta de automatización de pruebas a ser usada puede no soportar alguna funcionalidad de la aplicación y puede causar sobre costos. Puede que resulte más difícil empezar a trabajar con herramientas de código abierto. 
5
Scripter
Habilidad
Medio
La adecuada habilidad de un  automatizador es fundamental para cualquier proceso de automatización de pruebas. No olvide añadir el costo de la  curva de aprendizaje al costo total del proyecto.
6
Aplicación
Objetos personalizados
Medio
El número de objetos personalizados en el alcance de la automatización cobra importancia si causa un sobre esfuerzo para el equipo de automatización construir y mantener las librerías para ellos.
7
Aplicación
Tipo (Web/ Cliente-Servidor / Mainframe)
Medio
Para cada tipo de aplicación existen herramientas de automatización con una gran utilidad y soporte, pero para algunos casos es necesario un gran esfuerzo en la construcción de librerías.
8
Aplicación
Lenguaje de desarrollo
Bajo
No importa la herramienta seleccionada en la prueba no es compatible con los puntos de control específicos de verificación.

Agrupación pasos para determinar la complejidad.


Este es un ejercicio importante, ya que podrán calcular el esfuerzo con base en un análisis de profundidad.

Paso 1:

Se sugiere encontrar el número de acciones y los puntos de verificación para cada caso de prueba (que están en el alcance de automatización), entonces dibuje un cuadro para encontrar las acciones promedio, los puntos de verificación y los límites de control para ellos. Así que la derivación complejidad se basa en la AUT y no se basa en los estándares genéricos de la industria.

Ejemplo,






Paso 2:

Basado en la grafica,
Promedio de pasos contados             = 16
Control limite bajo                              = 08
Control limite alto                               = 25
Entonces la complejidad puede ser agrupada como:
Simple         ≤    7 Pasos
Media          ≥    8 Pasos    --   ≤ 16 Pasos
Compleja    ≥  17 Pasos    --   ≤ 25 Pasos

Recomendaciones:

Ningún grupo de pasos del caso de prueba debe ser demasiado cerrado o demasiado amplio para etiquetar la complejidad.
Tenga en cuenta que el esfuerzo de desarrollo de pre-escritura para cada secuencia de comandos de prueba es considerable como las siguientes actividades que consumen tiempo.

Ejecutar los casos de prueba manualmente antes de construir los scripts para garantizar la correcta operación

La selección o generación de los datos de prueba para los scripts.

La creación de plantillas de los scripts (como la información del encabezado, comentarios de los pasos, la identificación de los componentes reutilizables a ser utilizado desde el repositorio y así sucesivamente.)

Estos esfuerzos son basados en el número de pasos en el caso de prueba. Tenga en cuenta que si el caso de prueba varía en función de un menor número de pasos, este esfuerzo no se desvía mucho, pero en caso que varíe por muchos pasos, este esfuerzo difiere ampliamente.

  1. También otro factor para determinar la complejidad es la repetición de la funcionalidad. Si el caso de prueba es complejo por pasos pero la funcionalidad es  la misma que la de otro caso entonces puede ser etiquetado como “Medio o Simple” 
  2. Si los pasos contados del caso están por encima del limite de control (~ 25 en este caso) estos pasos adicionales necesitan ser considerados como otro caso. Por ejemplo, el TC – 06 contiene 30 pasos este debe ser llamado como “1 Complejo + 1 simple (30 – 25)” casos de pruebas.
Si el caso es marcado como “Complejo” en vez de “Medio”, entiéndase que su esfuerzo sube e impacta el proyecto. Explicado de otra manera, esto también lo impactará a usted.  Esto se puede llamar como “Agrupamiento de la complejidad”.

domingo, 4 de septiembre de 2011

Primer Script en Sahi


Hola a todos!

En el post anterior conocimos un aplicativo con el cual podemos trabajar y jugar con él como queramos para practicar con múltiples herramientas y tener un mejor panorama de cómo funcionan.

Como ya tenemos instalada nuestro aplicativo Sugarcrm, vamos a empezar a generar scripts para nuestros casos de prueba. En este primer script grabaremos con Sahi una secuencia que corresponde a la creación de una cuenta de vendedor, para hacer esto sigamos las siguientes instrucciones:

  • Recuerde tener configurado el servidor proxy en el navegador, para este ejemplo usamos Internet Explorer y el proxy configurado así: Dirección localhost y puerto 9999. Si necesita ayuda para la configuración de Sahi puede observar el siguiente video http://youtu.be/JBP5j7POt7w
  • Recuerde tener instalado el site que usaremos para las pruebas SugarCrm. Vimos en el post pasado como descargarlo e instalarlo.
  • Cuando entre a Sugarcrm ingrese utilizando la IP de la máquina y  no con la del localhost o la 127.0.0.1 porque Sahi no podrá grabar sobre esta ruta. Ej: http://192.168.1.70/sugarcrm
  • Iniciamos el navegador e ingresamos a Sugarcrm y nos logueamos en él, por el momento no vamos a grabar el Login como parte del script para los casos de prueba.
  • Desplegamos la ventana de grabación de Sahi presionando Ctlr+Alt+DobleClick sobre el  aplicativo en el navegador.
  • En esta ventana  digitamos un nombre para nuestro script, en el campo Start URL copiamos y pegamos toda la URL que tiene nuestro aplicativo en este momento y presionamos el botón de grabación de Sahi, ejecutamos la siguiente secuencia en Sugarcrm.
a.       Clik Sales
b.      Click Account
c.       Click Create Account
d.      Llenamos el formulario y damos Click en Save para guardar la cuenta creada
  • Presionamos Stop en la ventana de Grabación de Sahi y Listo hemos hecho nuestro primer script el cual habrá quedado guardado en la ruta C:\sahi\Userdata\Scripts\nombre_script.sah.
  • Editamos el registro para que los datos en este no se dupliquen al ejecutarlo, lo guardamos y vamos a la ventana de grabación de Sahi y seleccionamos la pestaña Playback, tomamos el script modificado de la lista desplegable y lo ejecutamos.

En el siguiente video podemos ver el paso a paso de la ejecución y también dejo un enlace para que revisen el lenguaje que genera Sahi.



Hasta la próxima!

sábado, 27 de agosto de 2011

Un aplicativo para probar nuestro conocimiento

Hola a todos,

En ocasiones tenemos la posibilidad de conocer e instalar herramientas de automatización que queremos aprender a utilizar, pero tenemos un gran problema y es que no tenemos un aplicativo medianamente complejo sobre el cual practicar y la gran mayoria de ejemplos que encontramos en internet no tienen mayor complejidad.

Buscando en la red un aplicativo fácil de instalar y con el cual podamos practicar encontre SugarCRM, este es un aplicativo Web cuya funcionalidad es la administración de Clientes. Esta hecho en PHP y MySql, su instalación es muy rápida y nos servirá a la perfección para realizar ejemplos y ejercicios.

Así pues, les dejo la URL de descarga del sitio original, la URL de descarga de la versión que utilizo para los ejercicios en caso de que la original cambie mucho y un video para que observen cómo se instala el aplicativo.

http://www.sugarcrm.com/crm/download

Descarga desde Mediafire

Video Instalación SugarCRM 

Hasta la próxima.