miércoles, 21 de junio de 2017

Pruebas de Nivel 2

En el mundo de las pruebas de software existen muchas maneras de clasificar o agrupar los tipos de pruebas, ya que el ámbito o destino de las mismas puede variar. Una de las maneras de realizar dicha clasificación es por Niveles, entonces ¿Que son las pruebas por nivel?, ¿De qué se tratan?


Lo primero que debemos saber es que las Pruebas de Nivel son un grupo de actividades de pruebas que están organizadas y gestionadas conjuntamente. Un nivel de pruebas siempre está conectado a las distintas etapas del proceso de desarrollo.

Existen 3 niveles: 

Nivel 1 - Pruebas Unitarias (Un módulo único): Verifican el funcionamiento aislado de piezas de software que pueden ser probadas de forma separada.

Nivel 2 - Pruebas de Integración (Un Grupo de módulos): Verifican la interacción entre componentes del sistema de software.

Nivel 3 - Pruebas de Sistemas (Un sistema complejo): Verifican el comportamiento del sistema en su conjunto. 


Elaborado por: Lili Ayala


Ahondar en el nivel dos de pruebas es la finalidad de este artículo por lo que detallemos un poco más sobre el mismo.

Las pruebas de integración se basan típicamente en el diseño del sistema, la arquitectura, los flujos de trabajo, los casos de uso, los esquemas de la base de datos y los flujos de datos, si se realizaran pruebas basadas en los riesgos se utilizarían adicionalmente los riesgos de calidad para guiar las pruebas.

Dichas pruebas pueden incluir varios tipos de pruebas (Ej. Funcionalidad, utilización de recursos, rendimiento, etc.). Estas pueden incluir las pruebas estructurales como los flujos de llamadas y los flujos de datos.

El ítem sometido a prueba es una colección de unidades (o componentes) a menudo referida como una “construcción”. Estas construcciones pueden incluir una implementación de la base de datos de un subsistema, una infraestructura, interfaces, una configuración del sistema y datos de configuración. La selección de las unidades o los componentes, para que sean incluidos una construcción, es influenciada por el hecho de que las pruebas de integración consisten en probar las interfaces entre los componentes, las interacciones con diferentes partes de un sistema (como el sistema operativo, el sistema de archivos y el hardware), y las interfaces entre las unidades, componentes o sistemas.

Al igual que las pruebas unitarias o componente, las pruebas de integración requieren con frecuencia arneses y herramientas, debido a que las construcciones no son siempre independientes y comprobables. Estos arneses pueden actuar en el nivel de la interfaz de programación de aplicaciones (API). También pueden estar en el nivel de la interfaz de línea de comandos. A veces, si estamos probando en la interfaz de usuario, las herramientas de interfaz gráfica de usuario son útiles, pero eso es algo raro. Hay herramientas tanto gratuitas como comerciales necesarias para las pruebas de integración.

Existen principalmente dos tipos de integración: La integración incremental y la no incremental. La integración incremental consiste en combinar el conjunto de módulos ya probados (al principio será un conjunto vacío) con los siguientes módulos a probar. Luego se va incrementando progresivamente el número de módulos unidos hasta que se forma el sistema completo. En la integración no incremental o Big Bang se combinan todos los módulos de una vez. 

Para ambos tipos de integración se deberán preparar los datos de prueba junto con los resultados esperados. Esta tarea debe ser realizada por personas ajenas a la programación de los módulos. No es necesario que la lleven a cabo una vez codificados los módulos puesto que basta con conocer qué módulos compondrán el sistema y cuál será la interfaz entre ellos.

En cuanto a quien es el responsable, tanto los probadores como los programadores colaboran idealmente. Desafortunadamente, a menudo nadie es responsable. Los probadores nos siempre tienen las habilidades técnicas necesarias para diseñas y ejecutar las pruebas de integración, y a los programadores no siempre se les da el tiempo y la indicación para ayudar. Esto da lugar a muchas dificultades durante las primeras semanas de las pruebas del sistema, debido a que la primera parte del periodo de ejecución de la prueba del sistema se convierte de hecho en una prueba de integración big-bang (Tipo de prueba de integración en el que los elementos software, elementos hardware o ambos son combinados de forma simultánea en un componente o un sistema global en lugar de hacerlo por fases.).

Finalmente, las pruebas de integración son particularmente complejas, ejemplo de ello podrían ser los sistemas que han sido desarrollados por diferentes organizaciones e incluso en diferentes periodos de tiempo, con tecnologías e interfaces diferentes y tal vez no completamente compatibles, lo cual hace que los cambios en los sistemas sean al mismo tiempo más peligrosos. 

Por situaciones como la antes expuesta, es de vital importancia contemplar las pruebas de nivel dos al momento de plantearse la estrategia de pruebas para los proyectos de desarrollo de software, muchas veces son omitidas o no se les da la relevancia que tienen por la utopía o el peso que tienen las pruebas de sistemas.

Referencias externas:

· Descarga del Syllabus del ISTQB (2011, International Software Testing Qualification Boards).

Autor:
Amlivledif Rivero
QA Technical Expert
ISTQB® Certified Tester, Foundation Level










miércoles, 14 de junio de 2017

Convoquemos a una reunión

Esas cuatro palabras que titulan este artículo están en el puesto número dos de frases más temidas por mí. Solamente es superada por “ya que estamos…”, que generalmente se utiliza para agregar cosas al alcance de un proyecto que no han sido consideradas al momento de las estimaciones y plan del proyecto.

Pero en este artículo me concentraré en “convoquemos a una reunión”. Las reuniones no son malas per se. Muchas veces es la forma más apropiada de solucionar problemas. Pero otras tantas veces se convierten lisa y llanamente en obstáculos para realizar nuestro trabajo adecuadamente.

La organización y conducción de reuniones son responsabilidades del líder. A priori no parece una tarea muy compleja, pero tiene sus bemoles y hay algunos consejos para aquellos que hayan notado que las reuniones que organizan o de las que participan, no son tan productivas como desearían que fueran.

Antes que todo quisiera definir qué es una reunión. La Real Academia Española define reunión como conjunto de personas reunidas. Yo agregaría a esto que las personas reunidas deben compartir un interés en algún tema particular como por ejemplo, solucionar un problema. Desde mi punto de vista, dos personas hablando de un tema particular, también es una reunión.

Ahora que ya tenemos claro a qué llamamos una reunión debemos entender cuáles son las responsabilidades del líder ante una reunión. Para entenderlo fácilmente, éste es responsable de garantizar el ambiente (tiempo y espacio adecuados) y la disponibilidad de información para los participantes. Dicho de este modo es muy etéreo. Así que profundicemos un poco más sobre tres cuestiones concretas:

1- ¿Para qué se convoca? El líder debe tener en claro el porqué de la convocatoria, ya que el tiempo, el espacio, la lista de convocados, entre otros, dependen directamente de esto. Los principales motivos para organizar una reunión son los siguientes:

a- Relevamiento de información: en esta clase de reuniones los participantes hablarán y deberán ser escuchados. Es conveniente conocer técnicas como la escucha activa. A más participantes deberá dedicarse más tiempo a la reunión. 

b- Toma de decisiones: esta clase de reuniones va a promover el debate en temas contradictorios. Es conveniente conocer estrategias de negociación como “subir al balcón”. 

c- Informativa: en esta clase de reuniones suele darse que pocos toman la palabra, muchos solamente escuchan. En este caso, dependiendo de la duración estimada de la reunión, podría haber espectadores de pie. 

d- Creativa: en esta clase de reuniones se espera la producción de ideas nuevas. Suele ser necesario contar con herramientas especiales, como pizarrones, hojas, material de escritura, etc.

2- ¿Qué etapas tiene una reunión? Para el líder la reunión empieza mucho antes que para el resto de los participantes:

a- Preparación: 

i. Definir duración: la duración de la reunión depende del motivo de la convocatoria y de la cantidad de asistentes.

ii. Elegir a los asistentes: antes de invitar a alguien a una reunión es importante que aquel que convoca se pregunte: ¿Es necesaria la participación de esta persona? Solamente deben invitarse las personas que realmente deban estar ahí.

iii. Preparar la agenda a seguir: la correcta planificación de una reunión determina el orden de los temas a tratar y en algunos casos, el tiempo destinado a cada tema. Alcanzado el tiempo límite, si es necesario, podrían organizarse futuras reuniones con menos participantes para continuar los temas que no pudieron tocarse.

iv. Preparar el espacio y herramientas: el espacio para la reunión depende de la cantidad de participantes, el tipo de reunión y de su duración. Si la reunión va a ser larga debería garantizarse un asiento para cada participante. Si va a ser una reunión informativa (que generalmente son breves) podría no ser necesario un asiento para cada uno. Para reuniones creativas, podría ser necesario garantizar un pizarrón u hojas de papel y material de escritura.

v. Enviar el material de la reunión: si se va a discutir de un tema particular es importante que el material se envíe a los invitados antes de la reunión con suficiente tiempo como para que pueda ser leído.
  
b- Apertura: aquí es donde comienza la reunión propiamente dicha. Es donde se pone en contexto a los participantes con un breve repaso de los antecedentes. Es una sana costumbre respetar estrictamente el horario de inicio. 

c- Desarrollo: dependiendo del tipo de reunión es importante que el líder actúe como conductor, facilitador y/o mediador para que se desarrolle con una fluida comunicación. Éste debe facilitar la operatoria del grupo en momentos de bloqueo y se pueden usar dos comportamientos sociales:

i. Cordial: conversación de temas de interés y tono de voz agradable. En general este es el más recomendado.

ii. Dominante: hablar alto, interrumpir a los demás, ignorar a los otros. A veces puede ser necesario actuar de esta manera que podría verse como hostil. Aunque este comportamiento no es el más recomendado, no hay que descartarlo de plano. 

d- Cierre: aquí es donde se expresan las conclusiones y análisis de los resultados de la reunión. Dependiendo del tipo de reunión puede ser diferente. Para reuniones netamente informativas, por ejemplo, en esta etapa no se realiza ninguna acción. Es una costumbre respetar estrictamente el horario de finalización.

3- ¿Qué hacemos luego de la reunión? Una vez que los participantes de la reunión se retiraron, el trabajo del líder continúa:

a- Redacción de la minuta de reunión: por cada reunión debe quedar un registro escrito que, como mínimo, debe contener un detalle de lo que se dijo, quién lo dijo, qué compromisos se asumieron y quién los asumió. Esta minuta de reunión debe ser enviada a todos los participantes que podrían tener observaciones, por lo que esta tarea es iterativa e incremental. 

b- Evaluación acerca de la tarea realizada: es importante para el líder saber en qué grado la reunión ha alcanzado su objetivo, con esta información podrá determinar los pasos a seguir para alcanzarlo. 

c- Evaluación acerca de la producción del grupo: es importante para el líder tener una idea de cómo han interactuado entre ellos los participantes de la reunión. Con esta información podría mejorar el armado de la lista de invitados a otras reuniones futuras. 

Como estamos viendo, el armado de una reunión implica un poco más de trabajo que simplemente reservar una sala de reunión durante dos horas y enviar una convocatoria. Pero tampoco es algo tan complicado. Los efectos negativos de no seguir estos pasos son los siete pecados de las reuniones de trabajo:

1- Nadie se toma en serio la reunión: esto suele darse porque se ha invitado la gente no indicada para la convocatoria. 
2- Reuniones muy largas: esto suele darse porque no se ha enviado el material con anterioridad o no se la ha dado a la gente el tiempo para leerlo. Todo el trabajo que los participantes puedan hacer previo a la reunión es una ganancia de tiempo. 
3- La gente se va por las ramas: esto suele darse por no tener una agenda definida o porque el líder no toma su rol de conductor, facilitador y/o moderador. 
4- Después de la reunión no pasa nada: esto suele darse por ausencia de seguimiento. Es importante para hacer un buen seguimiento que las minutas reflejen los compromisos adoptados. 
5- No se dice la verdad: este punto es un gran generador de conflictos. Las personas tienen distintas versiones de “la verdad”. Para evitar esto debe aportarse información objetiva e indiscutible dentro del material de la reunión. 
6- Falta información crucial: esto suele darse por no haber preparado adecuadamente el material para los participantes de la reunión. También podría ocurrir que faltó invitar a la persona que posee la información. 
7- Las reuniones no mejoran: esto suele darse porque el líder no evalúa la tarea realizada y/o la producción del grupo luego de terminada la reunión. 

Por último, quiero dejar un comentario para aquellos que no son líderes de equipo: Si las reuniones que nuestro líder organiza no son tan productivas como nosotros deseamos no debemos caerle con todas las críticas a él. Los líderes necesitan la asistencia de sus colaboradores para realizar mejor su trabajo. Si pensamos que hemos sido convocados a una reunión en la que no debemos estar podemos, respetuosamente, hacerle conocer nuestra opinión al respecto. Para esto, solamente habría que convocar a una reunión.


Autor:
Ing. Leo Viegas
Desarrollador

miércoles, 7 de junio de 2017

Dos orejas y una boca

 “¿Para qué tenés dos orejas y una boca?”, me preguntaba mi madre cuando yo era chico. Sin darme tiempo a nada, ella misma daba la respuesta: “Para escuchar el doble de lo que hablás”.

Escuchar, realmente escuchar, es una de las habilidades más importantes que cualquier líder debería tener. Pero no desesperen aquellos que no la tengan porque se puede aprender.

Existe una técnica que se llama “escucha activa”. Se pueden hacer capacitaciones y talleres de liderazgo dónde se puede aprender y practicar en detalle esta técnica. Pero hasta que llegue el momento, quisiera hacer un pequeño resumen para quienes no la conozcan.

Hacer una escucha activa es, básicamente, ir más allá de las palabras que se expresan en el transcurso de una conversación y tratar de observar los sentimientos, ideas y pensamientos que están por detrás de lo que se está diciendo. La escucha activa implica también tener un nivel de empatía para tratar de tomar los mensajes desde el punto de vista del que habla y no del nuestro, que somos los que escuchamos. En un lenguaje más llano, debemos tratar de colocarnos en los zapatos de nuestro interlocutor. Cualquier persona que intente esto por primera vez se va a encontrar con algunas dificultades. Algunas de ellas:
  • Dividimos nuestra atención: hoy en día existen muchos distractores que nos hace perder la atención (mensajes en celulares, mails, llamadas telefónicas, etc.) y provocan en nuestros interlocutores incomodidad y hacen que se nos complique nuestro objetivo.
  • Nos escuchamos a nosotros mismos: en vez de realmente concentrarnos en nuestro interlocutor, nos concentramos en nuestros pensamientos y opiniones de lo que nos está diciendo.
  • Simulamos que escuchamos: a veces, damos señales de estar escuchando atentamente pero estamos pensando en otras cosas. En general, nos justificamos diciéndonos que “son cosas más importantes”.
Un problema que usualmente se da durante el proceso de comunicación es no poder contener las ganas de hablar y dar nuestro punto de vista. Así, nos empezamos a concentrar en la idea que queremos expresar y dejamos de lado lo que nos están diciendo. Esta “incontinencia verbal” es muy perjudicial para la comunicación porque predispone muy negativamente a la persona con la que estamos hablando.

Ahora que ya vimos lo que no hay que hacer, veamos algunos puntos sencillos de lo que sí hay que hacer:
  • No interrumpir: dejar que nuestro interlocutor termine sus frases y sus ideas. Además, tampoco debemos hacer juicios mentales de lo que nos está diciendo hasta tanto haya terminado.
  • No anticiparnos a lo que nos van a decir: no podemos leer la mente de otras personas. Al menos yo no puedo. Entonces, si no podemos leer la mente, ¿Por qué creemos que ya sabemos lo que nos van a decir antes de que lo hagan? Tenemos que evitar lo más posible los prejuicios y dejar que nuestro interlocutor se exprese.
  • Ser considerados y respetuosos: nuestro interlocutor es, ante todo, una persona. Como persona, se le debe respetar. Debemos garantizar el espacio adecuado para la charla y debemos hacer que sienta que estamos ahí para escucharlo.
  • Escuchar “entre líneas”: en todo mensaje es tan importante los que se dice como lo que no se dice. También debemos prestar atención a los gestos y tono de voz de nuestro interlocutor.
  • Evitar ser hostil: mientras se escucha, solamente se debe hacer eso. Luego habrá tiempo para ponerse emocional y plantear desacuerdos, si es necesario, pero no mientras se escucha.
  • Evitar las distracciones: así como debe garantizarse el espacio adecuado para la charla, debe garantizarse también tiempo. No debemos mirar todo el tiempo el reloj como si la charla que estamos teniendo fuera algo menos importante que otras cosas que hacemos en nuestro día. Debemos evitar también atender mails, mensajes y llamadas telefónicas.
  • Ser sensible al tema: si nuestro interlocutor nos está contando un problema, debemos poner más interés que el usual. Hay ciertos tópicos particularmente delicados y debemos ser sensibles a ellos.
Si aplicamos la escucha activa vamos a encontrar rápidamente algunos beneficios en nuestra comunicación:

  • Se facilita la comprensión mutua generando un clima de confianza.
  • Las diferencias de opinión serán tomadas con mayor facilidad y menor tensión.
  • Se dará un aprendizaje entre ambas partes.
  • Se aporta a que existan menos conflictos.
  • Se toman mejores decisiones.
  • Se mejora el ambiente laboral.
  • Se estimula la cooperación de los involucrados.
No hay que olvidar que el proceso de comunicación se compone de dos personas: el emisor y el receptor. Durante el proceso de comunicación el emisor pone en palabras una idea que está en su mente, el receptor las escucha e intenta generar la misma idea en su propia mente. Si la idea original del emisor es igual a la idea creada en la mente del receptor, se puede decir que le proceso de comunicación fue exitoso.

Autor:
Ing. Leo Viegas
Desarrollador