it-swarm-es.com

¿Deben programadores ayudar a los evaluadores en las pruebas de diseño?

¿Cuánto deben ayudar a los programadores a los probadores en la diseño de pruebas?

No creo que deberían ayudar en absoluto. Mi preocupación es que si ayudan a los evaluadores en el diseño de pruebas para su propio código, "infectan" a los evaluadores con sus propios prejuicios y puntos ciegos sobre ese código.

Siento que los requisitos deben ser suficientes para dar la información necesaria para que los probadores creen sus pruebas. Si hay alguna parte de la implementación que los programadores encuentran preocupantes, entonces creo que es su deber implementar pruebas de la unidad para probar esa parte o incluso ejecutar sus propias pruebas de sistema informal para probar esa parte.

Aunque no todos los que conozco están de acuerdo con esto (y entiendo algunos de sus puntos en cierta medida). ¿Qué piensan los demás sobre esto? ¿Se discute esto en la literatura en cualquier lugar?

17
Paul Reiners

Estoy de acuerdo. Los programadores pueden ayudar a los evaluadores a comprender las especificaciones funcionales, para encontrar recursos para la investigación, pero no deben contaminar las mentes de los probadores con sus propias ideas sobre cómo abordar las pruebas.

13
grokus

Creo que hay espacio para que los desarrolladores y los probadores coexistan pacíficamente en el ámbito de QA. :)

Más específicamente, creo que los desarrolladores deben ser responsables del primer nivel de pruebas: pruebas de unidad y pruebas de integración básicas para asegurarse de que sus cosas funcionan en la mayoría de los casos antes de que se entreguen a los evaluadores.

Depende de los evaluadores crear pruebas de aceptación según los requisitos que sean completamente agnósticos de los detalles de la implementación (esto se conoce típicamente como "Pruebas de caja negra"). Si hay una discrepancia en la forma en que los probadores y los desarrolladores entienden los requisitos, es un problema que debe ser abordado por el gerente del proyecto (si corresponde) o asegurándose de que todos estén en la misma página en la fase de diseño de la función.

12
Adam Lear

Creo que tanto las pruebas como el desarrollo son colaborativas esfuerzos, por supuesto (IMO), los devs deben dar ideas de prueba a los evaluadores. No creo que los infecten ni mancha a los evaluadores en absoluto. El probador, por supuesto, debe mejorar las pruebas con muchos otros enfoques de prueba.

También soy un gran fanático de los evaluadores que ayudan a los desarrolladores: he hecho una lluvia de ideas sobre ideas de diseño con los desarrolladores y emparejé con ellos para arreglar los insectos (y señalar los errores y las correcciones sugeridas) muchas veces en mi carrera, y no creas que ' Hay alguna vez contaminada con un desarrollador con las cootograbas del probador.

Si no lo ve como un esfuerzo de colaboración, solo tendrás código "arrojado sobre la pared" de Dev a prueba ... y terminarás con menor calidad. Esa es la verdad en mi mundo, pero (por supuesto), YMMV.

6
Alan

Creo que estás bastante arrugado aquí. He sido un probador y un desarrollador, y se han beneficiado en gran medida como un probador de la guía por parte de los desarrolladores en áreas que consideraron de alto riesgo o frágiles; Como desarrollador, quiero que los probadores encuentren los problemas que no he probado profundamente.

No hubo "contaminación" a menos que su código sea aguas residuales en bruto, y eso sería por una razón completamente diferente.

Los requisitos hacen un trabajo terrible de comunicar los problemas técnicos sobre los que se preocuparía un profesional de la QA, porque ellos elaboran en el mejor de los casos, solo lo que los analistas de negocios han logrado capturar. Los buenos desarrolladores serán conscientes de que su código está optimizado en torno al "camino feliz", y querrá saber lo que no han dejado sin considerar. Al menos, tendrán una intuición de lo que podría salir mal, y qué áreas les gustaría investigar Qa. También saben cuál es el panorama general para el riesgo de una característica particular basada en su diseño.

Como un probador, una guía ausente del equipo de desarrollo, a veces me he ido a un enfoque de rencor que generó buenos informes de errores, pero no ejerció completamente las rutas de código de alto riesgo y los problemas más grandes, lo que podría haberse evitado una mejor colaboración Con el equipo de desarrollo, enviado a los clientes.

Mientras que un probador ciertamente no debería limitarse a probar lo que dice el desarrollador es importante, no se dañerán al aprender lo que son las preocupaciones propias de los desarrolladores sobre el código. A veces, pueden afinar su enfoque en función de su conocimiento de la implementación. Solo si un probador es particularmente avistado, considerarán la opinión del desarrollador sobre cuáles son los riesgos como la palabra final; No eliminarán completamente las cosas que el desarrollador identifica un riesgo bajo, pero invertirá más esfuerzo en cosas que podrían tener un mayor impacto del cliente.

Es probable que el equipo de QA vea áreas que tienen un gran alcance de prueba combinacional que los recolectores de requisitos o desarrolladores de un sistema, pero es posible que no estén al tanto de los componentes del sistema que tienen un tipo más sutil de fragilidad que se beneficia de la conciencia del diseño. o implementación del sistema.

En mi experiencia, la colaboración entre QA y el desarrollo produce productos de mejor calidad. Nunca recomendaría hacer solo una cuchilla negra.

5
JasonTrue

La forma en que lo veo es que no es el trabajo de QA probar mi código. El trabajo del probador es asegurarse de que mi código cumpla con todos los requisitos para esa tarea.

Cuando pase algo a QA, me aseguro de que sepan la tarea que estaba haciendo, no los detalles de mi código. Nunca paso nada a QA que tiene insectos de "cabeza de hueso" en ella. Eso desperdicia mi tiempo, su tiempo ... y casi todo el tiempo.

En mi último trabajo, tuvimos un QA involucrado desde el principio. Eso se sentó en los requisitos que recopilan sesiones, las reuniones del proyecto y las reuniones de diseño también. Escucharon y hicieron preguntas y, mientras los desarrolladores estaban escribiendo un código, estaban escribiendo sus planes de prueba. Funcionó muy bien y atrapamos muchos problemas que probablemente habrían resbalado.

5
Tyanna

Me gusta revisar los planes de prueba y sugerir casos de prueba adicionales que quizás no hayan pensado. No estoy seguro de cómo "infectaría a los probadores con mis propios prejuicios".

3
Marcie

Como probador, no tengo ninguna objeción en todos los programadores que sugieren casos de prueba (aunque eso no significa que me quedaré solo a los casos de prueba), o describir los detalles de la implementación. A veces, puede ser realmente útil para decir que alguien dice: "Creo que este poco podría ser arriesgado, realmente me gustaría si probaste tan bien". Conocer algunos de los detalles de la implementación me ayuda a aplicar años de experiencia para elegir las pruebas que más probable es que falle. A veces, solo una breve mención significa algunas pruebas de repente zoom de inmediato en mi lista de prioridades.

¿Me presta? Estoy un poco haciéndolo cosquillas por la idea de que los programadores se esfuerzan por preservar mi pureza del probador, pero en realidad, no, este es un mito. Más información generalmente desencadena aún más preguntas para mí, no menos. Supongo que es una cosa de mentalidad, no encuentro bichos porque soy ignorante, encuentro problemas porque soy un tipo escéptico, no confiable que solo es demasiado terco para tomar cualquier cosa en la confianza. En cada sistema que he probado, he encontrado que encuentro más problemas, y más "interesantes", más profundamente vengo a entenderlo.

3
testerab

Me encontré en esta extraña posición que necesito para implementar y escribir casos de prueba en Selenium después, ya que estamos cortos en el personal de QA. Creo que el desarrollo impulsado por la prueba sería extremadamente útil, pero aún no está adaptado en mi tienda.

Una cosa que encuentro las pruebas de escritura es útil es que encuentro errores cuando escribo pruebas. Creo que en diferentes perspectivas para ayudarme a escribir un código más robusto. Pero es cierto que la cobertura de prueba podría ser limitada. En este caso, QAS siempre puede hacernos saber lo que les gustaría estar cubierto. O, podemos agregar pasivamente más pruebas cuando vemos errores.

2
logoin

Estoy haciendo QA, y a diferencia de la mayoría de los dominios, sabiendo cómo usar nuestro código es mucho más difícil que aprender cualquier lanquista de programación. Así que contamos con los desarrolladores para darnos casos de prueba para sus nuevas características de las nuevas características de Whizzbang, porque no sabríamos cómo hacerlo. En cualquier caso, los problemas de QA son más para atrapar regresiones y cosas que se rompen que las pruebas originales de las nuevas características. En cualquier caso, cuando el resultado es un cálculo complejo, es difícil saber qué es una respuesta correcta y qué es una respuesta incorrecta, o incluso si una terminación anormal es algo bueno o malo.

En cualquier caso, un desarrollador, si es honesto, probablemente conoce algo de las vulnerabilidades de sus bebés. Probablemente sabe en qué valores de los parámetros, tiene que seleccionar diferentes algoritmos, o dominios en una búsqueda de mesa o lo que sea. Sabiendo que, si es sincero acerca de las pruebas rigurosas, debería poder generar un conjunto de pruebas de tamaño razonable que cubra mucho del código.

0
Omega Centauri