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.

lunes, 13 de junio de 2011

Comparativo de Herramientas

Herramientas de Pruebas

Uno de los principales inconvenientes que se tiene al momento de elegir una herramienta de pruebas, ya sea de automatización o de gestión, es el poco conocimiento que se tiene acerca de estas. En muchos casos, esta falta de conocimiento, trae graves consecuencias porque se termina utilizando una herramienta que no cubre todas las expectativas y peor aún con una posible inversión de dinero que al final será una inversión perdida. A continuación presento una lista de un buen número de herramientas y su comparativo, para que se tenga un mejor visión al momento de elegir o por lo menos para que se profundice más en cada una de ellas y se tome la mejor decisión.

Representado por color:

Característica soportada
Característica soportada (más detalle al pasar el mouse por encima)
 Desconocida

Descripción de las columnas:
ReqGestión de Requerimientos
EspecGestión de especificaciones
PlanGenerar/exportar Testplans
ReportReportes de pruebas
BugBug-Tracking Integrado
ManualManual testing
AutoAutomated testing drivers
UnitUnit testing
Funcfunctional testing
LoadLoad testing
StressStress testing



Test Management Automated Test

R
e
q
s
E
s
p
e
c
P
l
a
n
R
e
p
o
r
t
B
u
g
M
a
n
u
a
l
A
u
t
o
U
n
i
t
F
u
n
c
L
o
a
d
P
e
r
f
Free
XQual XStudio
Testopia Testopia
QAManager QAManager
QaTraq QaTraq Open Source
Salome TMF Salome TMF
Test Case Web Test Case Web
Testitools Testitools
TestLink TestLink
TestMaster TestMaster
Rth Rth
CodeSourcery QMtest
Concordion Concordion
STAF STAFF
JUnit JUnit
CUnit CUnit
CppUnit CppUnit
PhpUnit PhpUnit
HTMLUnit HTMLUnit
XHTMLUnit XHTMLUnit
HTTPUnit HTTPUnit
Google WebDriver
JWebUnit JWebUnit
Windmill Windmill
JFunc JFunc
The Grinder The Grinder
OpenWebLoad OpenWebLoad
FWPTT FWPTT
OpenSTA OpenSTA
Curl Loader Curl Loader
AutoIt AutoIt
AutoHotkey AutoHotkey
Marathon Marathon
Java.net Jemmy
Abbot Abbot
GUITAR Abbot
Expect Expect
QAliber QAliber
Tigris MBT
VNCRobot VNCRobot
OpenQA Selenium
Frankenstein
Bromine
Magnetic Reason FitNium
WatiN WatiN
Watir Watir
CubicTest CubicTest
Telerik WebAii Framework
JBehave JBehave
StoryTestIQ StoryTestIQ
TextTest TextTest
Cucumber Cucumber
SpecFlow SpecFlow
Twist Twist
Sahi Sahi
Hammerhead Hammerhead2
The Grinder Grinder
Pylot Pylot
OpenSTA OpenSTA
OpenLoad OpenWebLoad
WebLoad WebLoad
JCrawler JCrawler
Hammerora Hammerora
DieselTest DieselTest
CLIF CLIF
JMeter JMeter
SIPr SIPr
SIPp SIPp
pjsip pjsua
Commercial
Borland (Segue) SilkCentral Test Manager
SilkTest (QAPartner)
SilkPerformer (WebPartner)
HP (Mercury) HP Quality Center (TestDirector)
HP QuickTestPro (QuickTest)
HP WinRunner (WinRunner)
HP LoadRunner (LoadRunner)
Compuware QADirector
TestPartner
QALoad
IBM (Rational) Rational TestManager
Rational Manual Tester
Rational Functional Tester
Rational Robot
Rational Performance Tester
Empirix e-Manager enterprise
e-Tester
e-Load
UTest UTest
Parasoft JTest
C++Test
WebKing
T-Plan T-Plan Professional
Verisium vManage
vTest
vPerformer
Seapine TestTrack TCM
TestTrack Studio
QA Wizard Pro
APTest APTestManager
QaTraq QaTraq Pro
PassMark Software TestLog
Gurock Software TestRail
Conformiq Qtronic SG
Qtronic GP
OptimalTest OT-Mgr
MKS MKS Integrity
Original Software Qualify
TestBench
TestDrive
TestDrive Assist
TestMasters TMS
Zephyr Zephyr
Nuevosoft Nuevosoft Test Manager
Ken TestMan Ken TestMan
CodeSourcery QMtest
Inflectra SpiraTest
Prima Software Solutions JITE (plugin for JIRA)
Tricentis TOSCA Testsuite
JadeLiquid Software LiquidTest
SmarteSoft SmartQM
SmartScript
SmartLoad
TestOptimal TestOptimal
Objentis QAS.TCS
mjtnet Macro Scheduler
TechExcel DevTest
InformUP TestUP
ID Consultants DuxQA
@YourSide Consulting ATD
Testuff Testuff
CatchLimited Enterprise Tester
TOMOS TOMOS
PractiTest PractiTest
QMetry QMetry
ITCampus Web2Test
DigitalTester DigitalTester
GenieSys GenieTCMS
TestRun TestRun
SimpleTestManagement SimpleTestManagement
OpenGroup TET
FrogLogic Squish
Ranorex Ranorex
Dartenium Dartenium
Badboy Badboy + Wave Test Manager
iOpus iMacros
soapUI soapUI
InCisif.net InCisif.net
Minq Software PureTest
PureLoad
PureAgent
Quotium QTest
AutomatedQA TestComplete
Elvior MessageMagic
XML-simulator
SoftwareResearch TestWorks
DurableSoftware TestManager
Webius Software SWExplorerAutomation
Wintask Wintask
Origsoft Testdrive Gold
Testdrive Assist
Plan9 Software Qualify
ITKO LISA
Microsoft VisualStudio 2008
Orcanos QPack
Exept Software AG Expecco
ExpeccoNET
Telerik WebUI Test Studio
SmartBear QAComplete
DevComplete
Zeta Test Zeta Test
S3 Stormtest

Tomado de www.xqual.com