miércoles, 6 de mayo de 2015

Cap 2 - QA&V Tipos de pruebas

QA&V Tipos de pruebas

(QA&V Test types)

Como continuación a la introducción publicada anteriormente les dejo los tipos de prueba existentes.
Dependiendo la complejidad y los requerimientos del cliente se deben tomar en cuenta diferentes tipos de pruebas, a continuación se hace mención de los más relevantes:

  • Caja negra:

Estas pruebas se concentran en lo que se espera de un módulo, es decir pretenden encontrar casos, en los que el módulo no se ocupa de su especificación.  Este tipo de pruebas no está basado en el conocimiento o diseño interno, se encarga de verificar la correcta funcionalidad del sistema.

  • Caja blanca:
En este tipo de prueba siempre se está examinando el código, están basadas en la lógica interna de la aplicación, con estas pruebas se desea “probarlo todo”,  hace una cobertura de declaraciones del código, ramas, caminos y condiciones.

  • Unitaria:
Este tipo de prueba se utiliza para probar la correcta funcionalidad de los módulos del programa, como funciones, procedimientos, módulos de clase. En ciertos sistemas también se verifican o se prueban los drivers y el diseño de la arquitectura, esto sirve para asegurar que cada uno de los módulos funcione correctamente por separado.

  • Integración incremental:
Cuando nuevas funciones son ingresadas al sistema se hace la prueba basándose en la funcionalidad, la dependencia con otros módulos y la integración con el programa completo.

  • Prueba de integración:
Se llevan a cabo durante el desarrollo del sistema. Se  basan en las pruebas de conexiones y comunicaciones entre diferentes módulos. Estas pruebas terminan probando el sistema en conjunto.

  • Prueba funcional:
En este proceso se pretende encontrar desigualdades entre el sistema y su especificación funcional. La prueba funcional generalmente es una actividad de caja negra, para realizar esta prueba, las especificaciones del sistema se analizan,  desarrollando casos de prueba y mediante diferentes técnicas de caja negra.  (Oré B, 2009)

  • Prueba de sistema:
Este proceso es parte de las pruebas de caja negra en el cual se prueban todos los componentes del sistema desde el hardware a la documentación.

  • Prueba de fin a fin:
Esta prueba es semejante a la prueba de sistema pero esta implica la interacción con otro hardware, bases de datos y redes.

  • Prueba de sanidad:
Con base en esta prueba se determina si la nueva versión de un software está bien desarrollada y si requiere un nuevo esfuerzo en la prueba de software. Por ejemplo la nueva versión de un sistema satisface casi todas las especificaciones pero destruye la base de datos al leerla, por lo tanto se dice que este software no está en una condición sana.

  • Prueba de regresión:
Es una nueva revisión en las pruebas del programa una vez realizado algún cambio sobre un componente del sistema, para comprobar que dicho cambio no haya introducido un comportamiento  o errores adicionales en otros componentes no modificados.

  • Prueba de aceptación:
Es la prueba final, su objetivo es validar que un programa cumple con las especificaciones y con el funcionamiento correcto. Esta prueba está basada en el uso del programa por el usuario final luego de un periodo de tiempo.

  • Prueba de carga:
Se realiza generalmente para observar el comportamiento en las aplicaciones bajo cargas pesadas, esta carga puede ser el número esperado de usuarios concurrentes utilizando el sistema y que realizan diferentes transacciones durante el tiempo que dura la ejecución de los datos a probar, generalmente usadas en sitios web y en servidores con gran cantidad de datos donde se determina en cuáles puntos existen atenuación del sistema

  • Prueba de estrés:
Una prueba de carga y performance es utilizada generalmente para colapsar el sistema, está basada en la funcionalidad del sistema bajo cargas pesadas, doblando el número de usuarios que se agregan a la aplicación, así como también un gran número de repeticiones, manejo de grandes volúmenes de datos y demasiadas preguntas a bases de datos grandes hasta que el sistema colapsa.

  • Prueba de performance:
Este procedimiento permitirá asegurar el rendimiento y capacidad de la solución tecnológica empleada en sus sistemas, es una de las pruebas finales y sirve para validar los requerimientos y la calidad del software, con base en las pruebas de carga y estrés. 

  • Prueba de instalación y desinstalación:
 Este proceso determina la eficiencia de los procedimientos que instalan y desinstalan las aplicaciones del sistema.

  • Prueba de recuperación:
En esta prueba se fuerza al fallo del sistema para verificar la recuperación  del sistema después de bloqueos, fallas del hardware u otros problemas catastróficos.

  • Prueba de seguridad:
La prueba de seguridad evalúa que los mecanismo de protección integrados al sistema protejan de interrupciones inapropiadas, contra accesos, internos o externos, no autorizados, esta prueba requiere sofisticadas técnicas y herramientas.

  • Prueba de compatibilidad:
Son utilizadas para evaluar si el sistema funcionará correctamente en diferente hardware, sistema operativo y redes.

  • Pruebas exploratorias:
Son pruebas informales que se le aplican al sistema, no están basadas en ningún plan o caja de prueba y se aplican con base en la experiencia del ingeniero de pruebas. (Bec, 2007)

  • Prueba de anuncio:
Es semejante a la prueba de exploración pero los testers deben tener suficiente conocimiento sobre las especificaciones y el funcionamiento del programa antes de llevar a cabo esta prueba, por lo que requiere una previa reunión con analistas y programadores.

  • Prueba de usuario:
Se basa en evaluar si el usuario se desenvuelve satisfactoriamente en el entorno del programa y que esté satisfecho con el funcionamiento del mismo. (Testing, 2013)

  • Prueba de comparación:
En esta prueba se comparan los pros y los contras del programa con los programas creados con la competencia.

  • Prueba alfa:
Se lleva a cabo cuando la aplicación está cerca de la entrega al usuario. Se utiliza el programa de forma natural con el desarrollador observando cómo el usuario interactúa con el sistema y registrando los posibles errores y problemas de uso; generalmente se hacen pequeños cambios en el diseño de interfaces. 

  • Prueba beta:
Esta prueba se lleva a cabo por los usuarios finales del sistema, a diferencia de la alfa el desarrollador no está presente, así se puede decir que esta prueba es la aplicación real del software en un entorno que no es controlado por el programador, el usuario es quien registra los errores y problemas de la aplicación. (Pressman, 2002) (Mañas, 1994).

  • Caja gris:
El concepto de testing de caja gris es simple, se basa en la realización de testing de caja negra basado en casos de prueba realizados por personas que conocen el programa por dentro. Se entiende que de esta forma las pruebas realizadas son más efectivas porque se conocen las partes del código que pueden resultar más conflictivas: por su complejidad, por su acoplamiento con otras clases, etc.  (Pressman, 2002)

Te invito a dejar tus comentarios para mejorar la información.
Gracias.


Autor: Luis Eduardo Fernandez Rocha (Contacto Linkedin)

lunes, 4 de mayo de 2015

Cap 1 - QA Automatización de pruebas - introducción

QA Automatización de pruebas - introducción

(Automation UFT/QTP Introduction)

I. Introducción

Este articulo y la serie que le continuaran son extractos del proyecto de investigación, siendo yo el autor intelectual del mismo de cualquier manera se incluirán las bibliográfias de los lugares donde se citaron parrafos .

Este documento tiene como objetivo tener una visión general sobre la automatización de procesos y test cases con la herramienta de UFT/QTP.

Esta información la información puede ser encontrada en Internet fácilmente en ingles.
Espero y sea de ayuda a las personas que no tengan un buen nivel de ingles o simplemente a quienes gusten utilizar este blog para tener mas a la mano la información de functions, sub, etc.

Primero daré una breve introducción a los roles (o Job's) y acronicos que estaremos utilizado durante esta serie de artículos, para ir introduciéndonos poco a poco al ingles técnico.

Conceptos Básicos

  •  HP QuickTest Professional:

HP Quick Test Professional (QTP) es parte de la herramienta HP Quality Center suite, facilita funcionalidades y pruebas de regresión automatizadas para aplicaciones, servicios y entornos de software. QTP soporta VBScript (Visual Basic Script) para manipular los objetos creados para la aplicación y colocar los controles de prueba.
Hoy en día el QTP se descontinuo para dar le paso a la nueva herramienta conocida como UFT es la nueva versión lanzada al mercado por HP, sustituyendo a QTP.


  • HP Application Lifecycle Management (ALM):
Es un producto de software dirigido a acelerar la entrega de aplicaciones modernas, seguras y confiables. Es una combinación de una plataforma común, varias aplicaciones clave y un panel de control dirigido a la gestión del ciclo de vida del núcleo de aplicaciones. ALM se centra en el ciclo de vida desde el diseño hasta la preparación para la entrega a las operaciones.

Nota: Solo para aclarar que UFT/QTP y ALM son dos herramientas completamente diferentes,  una para automatizar casos de pruebas, mientras que ALM se puede llevar un registro de cada prueba realizada en cada release, es decir ALM te apoya a la gestion. Sin embargo ALM y UFT pueden relacionarse entre si. Mas adelante se explicara a detalle su relación.

  • DB2 Query Management Facility (QMF):
Cuando se generan Scripts existen diferentes maneras de tomar los datos de pruebas, una manera es generar los datos desde cero a partir de funciones, sin embargo eso afecta el rendimiento  del programa, otra manera es generar consultas directo de la base de datos, mejorando el rendimiento y la obtención de información, una herramienta que se puede emplear es QMF para crear los queries y ver los resultados que este arroja. (IBM,2013)

·      
  • Equipo de Manual: 
Son las personas encargadas de ejecutar los casos de prueba manualmente. 
También llamados Functional manual team ellos son los encargados de analizar, diseñar y crear los Test Cases (TC's).

  • Caso de pruebas: 
Los casos de pruebas o Test Cases(TC's) son los pasos a seguir para probar una funcionalidad de la aplicación, estos pueden estar escritos con un estándar para que  cualquier usuario al leerlo pueda ejecutarlo sin ninguna ayuda. Mas adelante se podrá ver un ejemplo de un TC's.
  •  ExpertView:
Es la vista a detalle del código empleado para crear el flujo de los scripts, es la manera más utilizada para tener un mejor control de los objetos. 


  •  XML:

XML es un lenguaje de marcado basado en texto. Se identifica los datos mediante etiquetas (identificadores encerrados entre paréntesis angulares: <...>). En conjunto, las etiquetas se conocen como marcas. (Microsystems, 2014)

  •  JSON:

Acrónimo de JavaScript Object Notation, es un formato ligero para el intercambio de datos. JSON es un subconjunto de la notación literal de objetos de JavaScript que no requiere el uso de XML. (Json, 2014)

  •  HTTP:

HTTP (Hypertext Transfer Protocol) es el conjunto de normas para la transferencia de archivos (texto, imágenes gráficas, sonido, video y otros archivos multimedia) en la World Wide Web.  (Rouse, 2006)


  •  Rest Client:





Es una herramienta para desarrolladores para crear y probar peticiones HTTP. Tiene diferentes modalidades de peticiones, JSON y XML.

  •  Prueba de software:

Los productos software están incrementando continuamente su presencia en muchos aspectos de la vida cotidiana, dotados cada vez de más funcionalidades y, consecuentemente, más complejos. Este incremento de complejidad conlleva la posibilidad de un aumento de fallos y errores durante su utilización que pueden acarrear consecuencias catastróficas en términos económicos, de tiempo o incluso de vidas humanas. Por tanto, existe una necesidad importante de incluir actividades de aseguramiento de calidad durante el proceso de desarrollo y mantenimiento del software.
La prueba del software es uno de los procesos fundamentales dentro del control de calidad de software. En su nivel más simplista, consiste en una ejecución de un programa bajo ciertos datos de entrada (casos de prueba), para posteriormente comparar las salidas obtenidas con las deseadas (función para la cual fue diseñado) (Tuya, Ramos Román, & Dolado, 2007).


  •  Verificación y Validación:

Las técnicas de verificación y validación son complementarias entre sí, y no la sustitución de una a la otra. Un proyecto debe estimar el tiempo y los esfuerzos requeridos para la preparación y ejecución de actividades de verificación y validación, plan del proyecto y por las definiciones del plan de pruebas (Limaye, 2009).
La validación comprende los “procesos de  evaluación de un sistema o componente durante o al final del proceso de desarrollo para determinar si satisfacen los requisitos especificados”. Usualmente, la verificación está asociada al conjunto de actividades que aseguran que el software es coherente con su especificación. Por tanto, abarca tareas tales como las revisiones e inspecciones de código. Mientras, la validación está encaminada a determinar si el software satisface las expectativas del usuario, por lo que suele estar asociada a su ejecución.
La verificación específicamente implica por parte de los desarrolladores la revisión de los planes, del código, de los requerimientos, de la documentación, las especificaciones y posteriormente una reunión con los usuarios para evaluar dichos documentos. Esto puede ser hecho con listas de chequeos, listas de problemas o walkthrough. Por otro lado la validación implica la aplicación de las pruebas del software y comienza una vez que la verificación esté completa.

  •  Walkthrough:

Es una junta informal donde analistas y usuarios evalúan las propuestas informacionales, por lo general se requiere una preparación de documentos.

  •  Inspección:

Después de haberse llevado a cabo walkthrough, se realiza una reunión formal la cual se le llama inspección, generalmente se reúne personal de diferentes sectores, principalmente analistas, programadores, e ingenieros de pruebas (testers), donde se llega un acuerdo con base en los métodos de seguridad de prueba que se llevarán a cabo.  Frecuentemente en estas reuniones se requiere de un moderador el cual es el representante de la empresa y que da a conocer a los usuarios, una lista de procedimientos de métodos de prueba y controles de calidad de las cuales el usuario debe optar por alguna de ellas, defendiendo el mismo nivel de calidad, o defendiendo él mismo el nivel de calidad (Society, 1998).

  •  Peer review:

Es un esfuerzo organizado para que los profesionales practiquen revisar la calidad y adecuación de los servicios ordenados o ejecutados por sus compañeros profesionales (Haag-Heitman & George, 2011).

  •  Defecto:

Es el resultado de un fallo o deficiencia durante el proceso de creación de programas de ordenador o computadora (software). Dicho fallo puede presentarse en cualquiera de las etapas del ciclo de vida del software aunque los más evidentes se dan en la etapa de desarrollo y programación. Los errores pueden suceder en cualquier etapa de la creación de software.  (Billyve,2013)


Continua en el Cap 2 - QA&V Test types (Basis/Spanish).

Autor: Luis Eduardo Fernandez Rocha (Contacto Linkedin)

jueves, 15 de diciembre de 2011

Codigo Ensambladror

Este código te muestra las coordenadas de donde se encuentra el cursor al dar click sobre el determinada área de trabajo.

________________________________
org 0100h

jmp inicio
bot dw ?
col dw ?
ren dw ?

numero macro num
mov ax,num ;AX=999d=03E7h
mov bl,100d ;bl=divisor
div bl ;AL=resultado entero=9d
;AH=residuo entero=99d
mov dl,al ;DL=9d
add dl,30h ;DL=39h
push ax ;AX=6309h
mov ah,02h
int 21h ;Se despliega el primer simbolo '9'
pop ax ;se recupera en Ax su valor, osea 6309h
shr ax,8 ;AX=0063h=99d
mov bl,10d
div bl ;AH=9
;AL9
mov dl,al
add dl,30h
push ax
mov ah,02h
int 21h ;Se despliega el segundo simbolo '9'
pop ax
shr ax,8
mov dl,al
add dl,30h
mov ah,02h
int 21h ;Se despliega el tercer simbolo '9'
endm
pos macro c r
mov ah,02h
mov bh,0 ;Numero de pagina de despliegue
mov dh,r ;DH=renglon
mov dl,c ;DL=columna
int 10h
endm

;Inicio del Programa Principal
inicio:
call inigraph ;Iniciliza los graficos
call prende ;Prende el Puntero del Raton
eti4:
mov ax,3d
int 33h ;Detecta coordenadas y boton
mov bot,bx
mov col,cx
mov ren,dx
cmp bot,1d
jne eti4

pos 30 30
numero col
mov ah,02d
mov dl,' '
int 21h
numero ren
jmp eti4

fin:
call apaga
call closegraph
int 20h
;Fin del Programa Principal


;Inicio de los Procedimientos

inigraph proc
mov ah,00h ;Funcion 0 de la INT 10H
mov al,18d ;18=resolucion 640x480 pixeles
int 10h ;Inicializa los graficos
ret
endp
closegraph proc
mov ah,00h
mov al,3d ;3=resolucion 80x25 (modo texto)
int 10h ;Devuelve la pantalla a modo TEXTO
ret
endp
prende proc
mov ax,1d
int 33h ;Prende el puntero del raton
ret
endp
apaga proc
mov ax,2d
int 33h ;Apaga el puntero del raton
ret
endp


= LABETE Prototyp3 =

sábado, 15 de octubre de 2011

Características Actuadores

Características Actuadores




=1.-Introducción =

Un ACTUADOR es un dispositivo inherentemente mecánico cuya función es proporcionar fuerza para mover o “actuar” otro dispositivo mecánico. La fuerza que provoca el actuador proviene de tres fuentes posibles: Presión neumática, presión hidráulica, y fuerza motriz eléctrica (motor eléctrico o solenoide). Dependiendo de el origen de la fuerza el actuador se denomina “neumático”, “hidráulico” o “eléctrico”.

Historia:

El actuador mas común es el actuador manual o humano. Es decir, una persona mueve o actúa un dispositivo para promover su funcionamiento. Con el tiempo, se hizo conveniente automatizar la actuación de dispositivos, por lo que diferentes dispositivos hicieron su aparición. Actualmente hay básicamente dos tipos de actuadores.
• Lineales
• Rotatorios


Los actuadores lineales generan una fuerza en línea recta, tal como haría un pistón. Los actuadores rotatorios generan una fuerza rotatoria, como lo haría un motor eléctrico. En este artículo nos concentraremos en los actuadores rotatorios. En la próxima actualización tocaremos el tema de los actuadores lineales.
Como ya se mencionó, hay tres tipos de actuadores:
• Neumáticos
• Eléctricos
• Hidráulicos

Funcionamiento

Es importante comprender el funcionamiento de los actuadores para su correcta
aplicación.

=2.-Marcas de Actuadores.=


Ø CMG TECHWIN


=3.-Tipos de Actuadores=
Se clasifican en cuatro grandes grupos, según la energía que utilizan, y se denominan actuadores a aquellos elementos que pueden provocar un efecto sobre un proceso automatizado.
Los actuadores son dispositivos capaces de generar una fuerza a partir de líquidos, de energía eléctrica y gaseosa. El actuador recibe la orden de un regulador o controlador y da una salida necesaria para activar a un elemento final de control como lo son las válvulas.
Ø Actuadores – Mecánicos: Son recomendables en los manipuladores que tienen una gran capacidad de carga, junto a una precisa regulación de velocidad.


Ø Actuadores – Eléctricos: son los mas utilizados, por su fácil y preciso control, así como por otras propiedades ventajosas que establece su funcionamiento, como consecuencia del empleo de la energía eléctrica.
Ø Actuadores - Electrónicos: Son muy utilizados en los aparatos macarrónicos, como por ejemplo, en los robots. Los servomotores CA sin escobillas se utilizaran en el futuro como actuadores de posicionamiento preciso debido a la demanda de funcionamiento sin tantas horas de mantenimiento.
=4.-Características Fisicas de los Actuadores=

A los mecanismos que convierten la energía del aire comprimido en trabajo mecánico se les denomina actuadores neumáticos. Aunque en esencia son idénticos a los actuadores hidráulicos, el rango de compresión es mayor en este caso, además de que hay una pequeña diferencia en cuanto al uso y en lo que se refiere a la estructura, debido a que estos tienen poca viscosidad.
o Fluido compresible, aire 5-10 bares
o El flujo mueve pistones en cilindro
o Válvulas neumáticas
o Seguros, robustos
o Poca exactitud en la posición final
o Difíciles de controlar:
-Aire es demasiado compresible
-Presión del compresor inexacta
o Aceite mineral a 50-100 bares.
o Fuerzas y pares elevados, grandes cargas
o Control muy preciso, continuo
o Estabilidad en estático.
o Problemas: Fugas, Mantenimiento.
Las características de control, sencillez y precisión de los accionamientos eléctricos han hecho que sean los mas usados en los robots industriales actuales.
Dentro de los actuadores eléctricos pueden distinguirse tres tipos diferentes:
Ø Motores de corriente continua (DC):
-Controlados por inducción.
-Controlados por excitación.
Ø Motores de corriente alterna (AC):
-Sincronos.
-Asíncronos.
Ø Motores paso a paso.
o Estator (imanes) y rotor.
o Interacción entre campo magnético y eléctrico provoca movimiento.
o Velocidad de giro proporcional a V
o Compra: a mas corriente mas par.
o Eficientes para girar con poca fuerza y gran velocidad.
o Sistemas digitales lo modulan con PWM.
o Capaces de colocarse en una posición.
o Motor de DC + engranajes + sensor de posición + controlador proporcional
o Suele estar limitados a 180 grados.
o 3 hilos Vcc, Tierra, Señal.
o Se controlan con una serie de pulsos modulados en anchura PCM.
o Anchura proporcional a posición.
Los actuadores electrónicos también son muy utilizados en los aparatos mecatrónicos, como por ejemplo, en los robots. Los servomotores CA sin escobillas se utilizaran en el futuro como actuadores de posicionamiento preciso debido a la demanda de funcionamiento sin tantas horas de mantenimiento, El actuador electrónico de milivoltios desarrollado está ideado para trabajar en válvulas de milivoltios de bajo consumo, actuadas mediante termopilas o baterías. Destacan por su reducido tamaño, su versatilidad, bajo consumo y robustez. Se entregan totalmente reguladas.

= 5.- Funcionamiento =



Para hacer funcionar el actuador neumático, se conecta aire comprimido a uno de los lados del émbolo o veleta (en adelante, solo “émbolo”) generando una fuerza en sentido de la expansión del espacio entre el émbolo y la pared del cilindro o el cuerpo. Actuador de Veleta Única (Rotary Vane) Mediante un dispositivo Mecánico que puede ser el conjunto piñón y cremallera, yugo escocés, o una simple veleta, el movimiento se transforma en rotatorio. Para mover el actuador en sentido contrario es necesario introducir aire comprimido en el lado opuesto del émbolo. El torque que genera el actuador es directamente proporcional a la presión del aire comprimido, pero dependiendo de su diseño puede ser variable de acuerdo a la posición actual del actuador. Es decir, supongamos que el movimiento del actuador rotatorio está definido en el rango de 0% a 100% de su movimiento. El torque de salida en 0% es en algunos casos diferente al torque de salida cuando está en la posición 50%. A mayor abundamiento, en realidad lo que se tiene es una curva de torques en función de la posición del actuador. ¿Es esto una desventaja? No necesariamente, esta variabilidad de hecho es beneficiosa para la mayaría de las válvulas, ya que permite ajustar más el tamaño del actuador, pudiendo incluso bajar un modelo o dos al seleccionado originalmente.

Actuador Hidráulico Rotatorio:

Para hacer funcionar el actuador hidráulico, se conecta la presión hidráulica a uno de los lados del émbolo o veleta (en adelante, solo “émbolo”) generando una fuerza en sentido de la expansión del espacio entre el émbolo y la pared del cilindro o el cuerpo. Mediante un dispositivo mecánico que puede ser el conjunto piñón y cremallera, yugo escocés, o una simple veleta, el movimiento se transforma en rotatorio. Para mover el actuador en sentido contrario es necesario introducir aire comprimido en el lado opuesto del émbolo. El torque que genera el actuador es directamente proporcional a la presión de aceite hidráulico, pero puede ser variable de acuerdo a la posición actual del actuador, si el actuador es de Yugo Escocés.

Actuador Rotatorio Eléctrico:

Para hacer funcionar el actuador eléctrico, se debe energizar los bornes correspondientes para que el motor actúe en la dirección apropiada. Usualmente vienen con un controlador local o botonera que hace este proceso mas sencillo. Sin embargo para la automatización remota del actuador, se debe considerar el diagrama de cableado que viene con el actuador. Las conexiones deben considerar fuerza, señales de límites de carrera y torque, señales análogas o digitales de posición y torque, etc. El torque generado por el motor eléctrico es aumentado por un reductor interno o externo para dar salida al torque final en el tiempo seleccionado. Esta es la razón por la que los actuadores eléctricos toman mas tiempo en recorrer la carrera que los neumáticos o hidráulicos.

Autor: Luis Eduardo Fernandez Rocha (Contacto Linkedin)