sábado, 12 de diciembre de 2015

Big Data. Introducción y características



En los próximos artículos vamos a dar algunas pinceladas describiendo una de las últimas tendencias de las tecnologías de la información: Big Data.
También daremos alguna visión acerca de su evaluación como producto desde el punto de vista de QA y su uso como herramienta para estas metodologías.


Big Data:Conceptos y presentación.


Si tenemos que definir Big Data en base a alguna de las muchas descripciones que hay publicadas podríamos decir cosas como que “herramienta de recolección masiva de datos “, “el futuro de las analíticas de empresa” , “el descendiente listo de Business Inteligence”…
Pero para ser concisos , hemos elegido esta:


Proceso de recolección de datos en grandes cantidades y su tratamiento para encontrar patrones y correlaciones.


En cuanto a las características del mismo hay también varias ideas que podríamos definir como mnemotécnicas:


“Las 5V”

  •   Volumen: Captar toda la info, de manera completa y no sesgada, evitando duplicidad y redundancia
  •   Velocidad:Herramientas ágiles y con poco tiempo de respuesta
  •   Variedad:Datos de múltiples fuentes heterogeneas se uniformizan y centralizan.
  •   Veracidad:Que sea verdadera, de calidad y disponible,eliminando fallos
  •   Valor: Aporta competitividad y da servicio rentabilizando la información
“Las 5 R”
  •   ROI:Retorno de Inversión considerar el dato como un activo.
  •  Reliable:Fiabilidad en los datos para generar acciones fiables.
  •  Realistics: Que sea verdadera y ajustada a la realidad.
  • Realtime: Información en tiempo real.
  •  Relevant: Definir qué es relevante y útil.
 

Metodologías


Como principal metodología hay que destacar I.C.A.V. ,que por supuesto son unas siglas que coinciden con Identificación, Consolidación, Análisis y Visualización.

En concreto la identificación del área y sus necesidades de datos, la consolidación  como tratamiento, limpieza y filtrado de datos , el análisis emitiendo predicciones con la información consolidada y la visualización que muestra los resultados del análisis.

La implantación de Big Data en la empresa requiere de cambios en la relación entre los departamentos de tecnología de la información y el resto de la compañía, puesto que nuestro objetivo es disponer de toda la información que se genera en la empresa, tanto la histórica como la que viene desde todas las posibles fuentes de información por las que los datos entran en la empresa. Esto incluye a los datos automatizados y determinar cómo mecanizar aquellos que no lo estén.

Big data a dia de hoy se enfoca principalmente a


  • Marketing, con la realización de campañas por distintos segmentos de clientes
  •  Nuevos productos: Estableciendo qué nuevas necesidades se pueden satisfacer
  •  Aumento de clientes
  •  Expansión de mercados

 

Para realizar estas tareas se ha establecido como estándar en el mercado una herramienta específica y utilidades asociadas. De esto trataremos en el siguiente punto.


Apache Hadoop. Qué es y cómo funciona.




Como ya hemos dicho, la realización de las tareas que componen el Big Data en todas sus vertientes se ha de llevar a cabo mediante herramientas específicas por los elevados volúmenes de datos y procesamiento asociado que requiere. En el mercado actual una herramienta específica sobresale por encima del resto , imponiéndose como el estándar a seguir : Hadoop.

Haddop es un sistema de código abierto que almacena, procesa y analiza grandes volúmenes de datos. No solo determina el software sino que da proporciona las guías de una infraestructura hardware donde se pueda aprovechar hardware commoditie, es decir , normalizado en el mercado  de manera que por procesamiento paralelo alcance grandes valores de cálculo.
La arquitectura de Hadoop se base en nodos maestros y servidores .  En un cluster de Hadoop al nodo maestro se le conoce como namenode y  a los nodos servidores como datanodes.

El nodo maestro contiene el datos asociado a sus datanodes y mantiene el estatus de los datanodes. Los datanodes almacenan la información procesada.

Flujo información y tareas Hadoop



viernes, 6 de noviembre de 2015

JMeter: Certificados Cliente SSL

Uno de los retos que presentan las pruebas de rendimiento con JMeter es la construcción de escenarios de pruebas de rendimiento que utilicen certificados cliente SSL (en formato *.pfx/*.p12).

Existen en la red diferentes recursos que permiten obtener información acerca de cómo conseguir grabar y reproducir escenarios JMeter que utilicen certificados cliente, sin embargo la preparación de este tipo de pruebas suele ser bastante costosa y se acaba por invertir un gran esfuerzo. 
Esta entrada, únicamente quiere centralizar la información ya expuesta en otras páginas y proveer algunos consejos y ayudas para que la configuración de las pruebas se acorte en el tiempo teniendo en cuenta unicamente el punto de vista de las pruebas de rendimiento.

sábado, 10 de octubre de 2015

Automatización de Pruebas: ROI Cualitativo.

ROI Cuantitativo vs ROI Cualitativo

En la anterior entrada, vimos como podíamos valorar y calcular el ROI en un proyecto de automatización de manera cuantitativa. El objetivo principal, era calcular a partir de qué momento la inversión realizada en la automatización comenzaba a ser rentable en términos económicos. Sin embargo, más allá de los fríos números, la automatización también presenta una beneficios cualitativos que aportan valores añadidos difíciles de cuantificar. 


domingo, 4 de octubre de 2015

ROI & PAYBACK de la Automatización de Pruebas

ROI vs. PAYBACK

Cuando se piensa en la automatización como posible solución en un proyecto de testing, se hace necesario un estudio de viabilidad que nos indique qué rentabilidad vamos a obtener, y cuándo podremos considerar que estamos amortizando la inversión realizada.

En general, este estudio de viabilidad o no se realiza, o se realiza de manera muy general, o incluso se hace partiendo de premisas incorrectas o falsos mitos sobre la automatización. Veamos en primer lugar dos conceptos a tener en cuenta:
  • ROI (Retorno de la inversión): Es el beneficio que obtenemos de la automatización puede ser calculada de diferentes formas:
    • % de beneficio obtenido: según la siguiente formula (Beneficio -Inversión)/Inversión. No obstante, también es posible encontrar el ROI de la automatización expresado directamente en horas de trabajo.
    • Horas totales de ejecución manual ahorradas
    • Costo total de ejecución manual ahorrado
  • PAYBACK: Indica el tiempo que tardamos en obtener un beneficio de la inversión realizada. En el caso de la automatización, nos indicaría a partir de qué momento la inversión realizada en la automatización es amortizada.
Ambos conceptos, deben ser evaluados objetivamente y mediante parámetros adaptados a nuestro proyecto. Pasar por alto este estudio podría llevarnos a sorpresas no deseadas pero que son muy habituales. 

Calculo del ROI de la Automatización de PruebasDe manera general, la automatización supone una inversión que rentabilizaremos a medio plazo cuando el ahorro en horas de ejecución manual supere el tiempo invertido en la automatización. 


Es decir, la automatización supone unos costos (en licencias, infraestructura, scripting, etc...). Esta inversión será amortizada a lo largo del tiempo a costa de las horas de ejecución manual que ya no son necesarias. Es importante hacer constar que para el cálculo del ROI, es necesario conocer el costo del esfuerzo invertido en la ejecución manual de los casos de prueba. Sin ese dato, será muy difícil poder evaluar la viavilidad de un proyecto de automatización.

jueves, 21 de mayo de 2015

JMeter . Análisis plugin HTTP Simple Table Server


Hola de nuevo. Tras este periodo de tiempo sin publicar, se nos ha vuelto a iluminar la cabeza con una idea (de ahí ese molesto fogonazo que vemos de vez en cuando) , actualizando la entrada correspondiente al uso de máquinas remotas como inyectoras

Hasta ahora, como habíais visto en nuestro artículo referente a los equipos externos,  estos  se encontraban con una limitación muy importante comparados con otras herramientas  para pruebas .
Los ficheros de datos debían estar duplicados en la misma ruta  indicada  en el script en todas y cada una de las máquinas remotas.

Como uno se puede imaginar, esto obligaba a duplicar dichos ficheros y copiarlos. Sin embargo en la página de http://jmeter-plugins.org , hemos analizado el comportamiento de un plugin  categorizado como “Extra” que permite aplicar una alternativa para solventar esta limitación

Plugin HTTP Simple Table Server.


Este elemento,  tipificado dentro de la jerarquía del contenido del Extra Set como “Otros” , permite publicar  por el protocolo HTTP  un fichero , de manera que se puede acceder a los contenidos del mismo  en modo de base de datos
  •       Lectura de un elemento
  •       Escritura de un elemento
  •       Estado actual del fichero
  •      Tamaño del fichero
Es decir permite ciertas operaciones de consulta, inserción y estado, de modo que los registros o filas que contiene pueden ser usados en la operativa de un script  de JMeter.

El plugin se basa  en un pequeño servidor web que puede ser arrancado bien desde el modo de interfaz de usuario de JMeter, bien por línea de comandos o configurarlo en las propiedades de JMeter de manera que arranque de manera automática cada  vez que se inicie JMeter

Para hacer más ligero este documento, llamaremos al plugin como HTTP STS

Configuración


Independientemente del método de ejecución de este servidor, este necesita indicar varios parámetros para su uso
  • Puerto TCP de operación
  • Directorio de datos.


Arranque


Desde  la interfaz de  usuario, se puede incluir un HTTP STS como un elemento No de Prueba sobre el Workbench o “Banco de trabajo” de un script de JMeter

Incluir STS desde Banco de Trabajo

Esta manera  de incluirlo hará que sólo esté disponible mientras si se encuentre arrancado en modo gráfico, deteniéndose una vez que cerremos el script o detengamos el interfaz de JMeter

Arrancar STS desde JMeter GUI

sábado, 24 de enero de 2015

Automatización de Pruebas en App Mobile con MonkeyTalk (y II)

En la anterior entrada hemos visto los primeros pasos para configurar un framework de automatización de pruebas para dispositivos móviles con Monkeytalk, ahora nos centraremos en las actividades propias del proceso de automatización como son la grabación de scripts, la construcción de casos de test, la ejecución y el análisis de resultados.
La selección de una herramienta adecuada a nuestros objetivos y que cubra las necesidades técnicas es un proceso de clave que debe ser evaluado en el momento que nos planteemos la automatización.

2 Framework de Automatización (cont.).

  • Grabación:  Al igual que en cualquier otro proceso de automatización, la grabación de nuestros casos de prueba es una herramienta potente para obtener la base de nuestros scripts. En el caso de dispositivos móviles, la podemos realizar directamente desde un dispositivo (emulado o real), sobre un Sistema Operativo concreto (IOs o Android) y a través de diferentes conexiones entre nuestra herramienta y dispositivo sobre el que grabamos (USB, WiFi o Emulador).

    lunes, 5 de enero de 2015

    Automatización de Pruebas en App Mobile con MonkeyTalk (I)


    1 Introducción.

    El éxito de las aplicaciones móviles, presenta uno de los mayores retos en el área de la automatización de pruebas: ¿cómo conseguir automatizar las pruebas funcionales con independencia de la tecnología de la app (Web o Nativa), del sistema operativo (Android, IOs, etc..) y del extraordinario número de terminales que se encuentran en el mercado?

    Las ventajas que presenta la automatización se hacen mucho visibles cuando nos movemos en el mundo "mobile". La posibilidad de disponer de nuestros scripts listos para la ejecución en paralelo en un conjunto grande de dispositivos (reales o emulados) de diferentes características supone un ahorro de tiempo que sin lugar a dudas debe ser valorado adecuadamente. 

    En el siguiente vídeo se puede observar el resultado de la "demo" que hemos preparado para elaborar esta entrada ejecutando una TestSuit automática de manera desatendida sobre dispositivos de muy diferentes características:
    • Dispositivo Real Samsung Galaxy Trend con Android 4.0.
    • Dispositivo Real Tablet Acer Iconia A100 con Android 4.0.
    • Dispositivo Emulado Nexus 5 con Android 2.2.




    En esta entrada vamos a ver un framework de automatización de pruebas para apps mobile con la herramienta de automatización MonkeyTalk, cuyas principales características son: