Dudas segundo parcial

Dudas segundo parcial

de Lucia Thais De Oliveira Gude -
Número de respuestas: 10
Hola, revisando las preguntas del parcial me surgen algunas dudas:

En la pregunta 1 se marca como correcto que es de valor que el tester tenga conocimientos de programación, pero por como lo definimos en el curso el tester es simplemente quien ejecuta los test, por lo tanto no veo ningún valor en que tenga conocimientos de programación. Por otro lado me parece que el equipo de desarrollo puede hacer pruebas de tipo dogfood testing para hacer una validación parcial del software antes de, por ejemplo, pasar a beta testing. Capaz me pueden aclarar por qué este  razonamiento no sería correcto.

En la pregunta 2 se marca que las pruebas de regresión se utilizan para verificar si nuevas versiones no degradaron la performance, pero por lo que entendi de las clases y las diapositivas las pruebas de regresión son para detectar fallos en el software introducidos por nuevos cambios, no temas de performance, capaz me pueden indicar donde se comenta esta característica de las pruebas de regresión.

Por último me queda una duda de la pregunta 4, si se marca que ninguna es correcta, entiendo que "Las técnicas de caja blanca no sirven para verificar características como performance o rendimiento." es incorrecto. Esto sería decir que las técnicas de caja blanca si sirven para verificar características como performance o rendimiento, me queda la duda de como esto sería posible dadas las características de las técnicas de caja blanca vistas en el curso.

Muchas gracias y disculpen la molestia.


En respuesta a Lucia Thais De Oliveira Gude

Re: Dudas segundo parcial

de Cecilia Apa -
Hola Lucía y resto de los compañeros,

Voy contestando entre líneas el mensaje de Lucía.

En la pregunta 1 se marca como correcto que es de valor que el tester tenga conocimientos de programación, pero por como lo definimos en el curso el tester es simplemente quien ejecuta los test, por lo tanto no veo ningún valor en que tenga conocimientos de programación.

R: El tester no es simplemente quien ejecuta los test, también es quien diseña y especifica los casos de prueba, entre otras actividades. Para estas actividades es de valor tener conocimientos de programación. Por poner un par de ejemplos: 
- las técnicas de caja blanca derivan casos de prueba a partir del código del programa, tener conocimientos de programación es de utilidad para utilizar este tipo de técnicas.
- un tester que automatice o realice pruebas de performance, seguramente necesite codificar.
- los conocimientos de programación pueden facilitar la comunicación con el equipo de desarrollo.

Por otro lado me parece que el equipo de desarrollo puede hacer pruebas de tipo dogfood testing para hacer una validación parcial del software antes de, por ejemplo, pasar a beta testing. Capaz me pueden aclarar por qué este razonamiento no sería correcto.

R: Lo importante acá no es el tipo de pruebas que se realizan, sino con qué objetivo. Quien puede validar el software es el cliente/usuarios, porque son quienes lo solicitaron y para quienes está desarrollado el software. El equipo de desarrollo puede hacer pruebas (incluso las mismas pruebas que realice el cliente o los usuarios), pero con el objetivo de verificar el software, no validarlo.

En la pregunta 2 se marca que las pruebas de regresión se utilizan para verificar si nuevas versiones no degradaron la performance, pero por lo que entendi de las clases y las diapositivas las pruebas de regresión son para detectar fallos en el software introducidos por nuevos cambios, no temas de performance, capaz me pueden indicar donde se comenta esta característica de las pruebas de regresión.

R: En las diapositivas de la clase 2 de V&V dice "Tanto en el mantenimiento como en procesos iterativos incrementales, es necesario realizar pruebas de regresión: verificar que los cambios o agregados realizados a la nueva versión no hayan degradado o “roto” el funcionamiento del sistema." Degradar el funcionamiento del sistema es por ejemplo, que el sistema funciona más lento y esto refiere a la performance del mismo. En el capítulo 3 pag. 75 de la bibliografía (Spillner) menciona que el testing de regresión aplica a todos los niveles de prueba (desde unitario hasta aceptación) y al testing funcional y no funcional (que incluye performance).

Por último me queda una duda de la pregunta 4, si se marca que ninguna es correcta, entiendo que "Las técnicas de caja blanca no sirven para verificar características como performance o rendimiento." es incorrecto. Esto sería decir que las técnicas de caja blanca si sirven para verificar características como performance o rendimiento, me queda la duda de como esto sería posible dadas las características de las técnicas de caja blanca vistas en el curso.

R: Las técnicas de caja blanca vistas en el curso ayudan a derivar un conjunto de casos de prueba que cumpla con un determinado cubrimiento del software. Ahora bien, el objetivo de los casos de prueba, así como el resultado esperado de los mismos dependen de la especificación/requisitos del software y no tanto de la técnica que se utilice. Supongamos que tengo un requisito de performance que me dice que el tiempo de respuesta del sistema no puede superar los 5 segundos (bajo determinados supuestos). Tener un conjunto de casos de prueba que cubra el 100% del código me ayuda a verificar este requisito. Si no tengo un cubrimiento del 100% ¿cómo puedo asegurar que el código no cubierto no afecte los tiempos de respuesta?

Muchas gracias y disculpen la molestia.

De nada, no es molestia. Quedo a disposición por cualquier otra duda.

Saludos,
Cecilia.
En respuesta a Cecilia Apa

Re: Dudas segundo parcial

de Lucia Thais De Oliveira Gude -
Gracias por la respuesta Cecilia, me queda alguna duda mas. Me comentas que "El tester no es simplemente quien ejecuta los test, también es quien diseña y especifica los casos de prueba, entre otras actividades". Sin embargo en las diapositivas del curso se dice que el tester es quien ejecuta y reporta los resultados de prueba, siendo el diseño de los mismos, a mi entender, una actividad que seria del "diseñador de pruebas" no? Como lo dice su nombre... Además le pregunta es engañosa porque en los roles de testing se aclara que el automatizador de pruebas si tiene conocimientos de programación mientras que el resto de los roles no se aclara nada, y tampoco veo la utilidad de que alguien que ejecuta y reporta cosas tenga conocimientos de programación. O sea que los roles de testing no se aplican? El tester hace el trabajo del diseñador y además tiene conocimientos de programación?
a

Con respecto a la validación/verificación en esta clase de openfing https://open.fing.edu.uy/courses/iis19/28 minuto 3 aproximadamente se dice bien claro "La validación no tiene porque ser con el cliente, yo podría hacerla yo conmigo mismo", como sugerencia, estaria bueno que si hay cosas erradas en las clases se aclarara para evitar estos malentendidos. De las clases de openfing y en general de los textos yo entendí que dogfood testing es una técnica de validación que la realiza el equipo de desarrollo, y no termino de entender por qué no es así esto.

Y con la pregunta 4, entiendo que a través de pruebas de cubrimiento podríamos realizar otro tipo de pruebas para medir tiempos, pero la prueba de caja blanca por si sola no puede medir performance, la verdad no me queda claro que eso sea correcto. Obvio que para medir performance necesito hacer algún tipo de prueba, pero las pruebas de caja blanca no diría que sirven para medir performance, capaz usarse como herramienta para pruebas de performance, pero no miden performance. Por lo menos las dadas en el curso, capaz hay alguna por fuera que no estoy enterada.

Muchas gracias por las respuestas, me dejan más claro algunas cosas, aún con algunas dudas
En respuesta a Lucia Thais De Oliveira Gude

Re: Dudas segundo parcial

de Cecilia Apa -
Hola Lucía, cómo estás?

Es cierto que en las diapositivas los roles están desglosados a detalle y que las actividades de automatización y diseño de pruebas se asignan a roles diferentes (a veces en la práctica, todos esos roles se combinan en uno solo). Entiendo lo que comentás que de las diapositivas se deduce que el tester solamente ejecuta y reporta las pruebas. De todas formas, aún realizando las tareas de ejecución y reporte de pruebas, los conocimientos de programación igualmente son útiles. Por un lado, como comentaba en la respuesta inicial, son útiles en el reporte de pruebas porque facilitan la comunicación con el equipo de desarrollo. También son útiles en la ejecución de las pruebas, por ejemplo, para ejecutar pruebas de integración o unitarias (cuando no tengo interfaz de usuario), para cargar datos de prueba mediante scripts o para consultar el estado de una BD con consultas SQL, entre otras.

Sobre la validación por parte del equipo de desarrollo de software, acabo de comentar en otro post que vamos a dar también esa opción como correcta.

Sobre la pregunta 4, no entiendo a qué te referís con "las pruebas de caja blanca por sí solas no pueden medir performance". Vuelvo a comentar lo dicho anteriormente, las técnicas vistas en clase son de derivación de casos de prueba, la técnica en sí no mide nada. En la afirmación de la pregunta del parcial lo que se dice es que no sirven para verificar estas características y esto es incorrecto. El ejemplo que dí en el mensaje anterior (requisito de tiempo de respuesta del sistema< a 5 segundos) se muestra una aplicación de esta técnica para verificar este tipo de características.

Saludos,
Cecilia.


En respuesta a Cecilia Apa

Re: Dudas segundo parcial

de Bruno Lemus Alcain -
Cecilia, como estas? Me sumo aca a la conversación.

Concretamente sobre la pregunta 2, creo que lo que confunde ahi es que la pregunta dice "Se usan para.." y eso lo que da a entender es que todas las pruebas. Es lo mismo que aclararon en la pregunta 10 sobre los sistemas legados que hay que asumir que hay un "para todo" adelante.

Si se sigue esta misma linea de razonamiento entonces es fácil pensar la afirmación 2 como incorrecta porque no todas las pruebas de regresión verifican performance. Se pueden usar para performance, pero no necesariamente. En cambio si todas las pruebas de regresión se utiliza para verificar que no se haya introducido un fallo al sistema.

Saludos,
Bruno.