¿Debe un desarrollador también actuar como probador? [cerrado]

56

Somos un equipo scrum de 3 desarrolladores, 1 diseñador, el maestro scrum y el propietario del producto. Sin embargo, no tenemos probador oficial en nuestro equipo. Un problema que siempre está con nosotros es que, al probar la aplicación y pasar esas pruebas y eliminar errores, se ha definido como uno de los criterios para considerar un PBI (Producto de producto pendiente de reserva) como se hizo.

Pero el problema es que, sin importar cuánto intentemos (3 desarrolladores y 1 diseñador) probar la aplicación e implementar casos de uso, todavía no se ven algunos errores y arruinan nuestra presentación ( Ley de Murphy ) a las partes interesadas.

Como remedio, recomendamos que la compañía contrate un nuevo probador. Alguien cuyo trabajo estaría probando, y probando solamente. Un probador profesional oficial.

Sin embargo, el problema es que, scrum master y las partes interesadas creen que un desarrollador (o un diseñador) también debe ser un probador.

¿Tienen razón? ¿Deberíamos los desarrolladores (también los diseñadores) ser probadores también?

    
pregunta Saeed Neamati 20.08.2011 - 09:41

9 respuestas

59

Ex ante: Parece que hay mucha confusión sobre lo que se considera como probar lo que no es. Claro, cada desarrollador necesita probar su código a medida que lo crea, él / ella necesita verificar que funcione. Ella / él no puede dárselo a un probador antes de que él / ella piense que está hecho y lo suficientemente bueno. Pero los desarrolladores no lo ven todo. Es posible que no reconozcan los errores. Estos errores solo se pueden encontrar más adelante en el ciclo de desarrollo cuando se realizan pruebas exhaustivas. La pregunta es si los desarrolladores deben realizar ese tipo de pruebas o no, y en mi humilde opinión, esto debe considerarse desde el punto de vista del gerente de proyecto:

Los desarrolladores pueden ser evaluadores, pero no deberían ser probadores . Los desarrolladores tienden a evitar, de manera no intencionada / inconsciente, utilizar la aplicación de una manera que pueda romperla. Esto se debe a que lo escribieron y, en su mayoría, lo prueban de la forma en que debería usarse.

Por otro lado, un buen probador trata de torturar la aplicación. Su intención primaria es romperlo. A menudo usan la aplicación de maneras que los desarrolladores no habrían imaginado. Están más cerca de los usuarios que del desarrollador y, a menudo, tienen un enfoque diferente para probar un flujo de trabajo.

Además, usar a los desarrolladores como evaluadores aumenta los costos de desarrollo y no beneficia la calidad del producto, sino que tiene un probador dedicado. No dejaría que los desarrolladores hicieran pruebas cruzadas de sus trabajos cuando un probador lo puede hacer mejor. Solo si el bucle de retroalimentación entre los desarrolladores y los evaluadores se volviera demasiado costoso, haría que los desarrolladores hicieran una prueba cruzada del código de cada uno, pero en mi experiencia, eso rara vez es el caso y depende mucho del proceso.

Eso no significa que un desarrollador deba ser descuidado y dejar todo al probador. El software debe estar respaldado por pruebas unitarias y los errores técnicos deben reducirse al mínimo antes de entregar el software al probador. Aún así, a veces tiene soluciones aquí, solucione problemas u otros bugs que ningún desarrollador podría prever, eso está bien. Además, las pruebas de integración deben ser realizadas principalmente por los desarrolladores. El principal objetivo del probador es verificar que se cumplan los requisitos.

En un equipo tan pequeño (y también dependiendo del tamaño de la aplicación), también puedo ver al evaluador en un papel híbrido, escribiendo pruebas unitarias y pruebas de interfaz de usuario. Definitivamente debes contratar uno .

Pero más importante que el probador son las congelaciones / ramas regulares. No presente nada que no haya sido debidamente probado. Cuando ha agregado una función o cambiado algo, todo lo que lo rodea debe verificarse nuevamente. Solo obtendrás una mala reputación si tu empresa no lo hace. No sueltes algo inestable. Cuando el cliente desea tener el software en una fecha determinada, entonces deje de desarrollarlo lo suficientemente temprano y pruébelo adecuadamente, de modo que tenga tiempo suficiente para corregir los errores. A menudo es mejor rechazar las solicitudes de funciones de último minuto que implementarlas de forma deficiente o lanzarlas sin realizar las pruebas adecuadas.

    
respondido por el Falcon 20.08.2011 - 10:01
42

Los desarrolladores pueden probar el código de otros desarrolladores.

Pero probar su propio código no es un buen paso: los desarrolladores tienden a tener bloqueos mentales sobre su propio código y, por lo tanto, tienen dificultades para diseñar pruebas completas o apropiadas.

Siempre habrá desarrolladores que piensen que lo hacen bien, pero generalmente no lo hacen (y sé que tengo muchos puntos ciegos).

Si REALMENTE PUEDE CONTRATAR un probador, luego haga que los desarrolladores realicen pruebas cruzadas entre sí, es decir, si A escribe el código y realiza pruebas unitarias, luego B hace que revise esas pruebas unitarias y vea si hay otras cosas. podría ser añadido. Y haz que B pruebe y pruebe el código (como usuario) y reporte los defectos.

Esto no es perfecto, pero es mejor que un solo desarrollador que intenta hacer todo.

A veces, tus colegas pueden ser realmente buenos rompiendo tu software, porque disfrutan de eso y no les importa mucho, porque no es SU código.

    
respondido por el quickly_now 20.08.2011 - 10:12
11

¿Debería el periodista escribir correctamente? Quiero decir, es un trabajo de correctores y editores encontrar todos los errores gramaticales.

Sin embargo, los periodistas hacen una revisión ortográfica por sí mismos. Sin embargo, el corrector es una profesión separada e importante.

Lo mismo acerca de los desarrolladores y evaluadores, excepto el hecho de que el control de calidad es una parte aún más importante del desarrollo. Incluso si eres un buen desarrollador, acabas de no tiene tiempo para probar a fondo todos los casos de prueba, para cubrir todos los entornos, navegadores y sistemas operativos que su producto admite.

Si uno, además de desarrollar, también hace ese trabajo constantemente, solo significa un hecho simple: es un probador a tiempo parcial.

    
respondido por el shabunc 20.08.2011 - 11:03
9

Bueno, tuvimos dos pruebas cruzadas de desarrolladores después de que el primero hizo algunos cambios en una pantalla de entrada. Esto fue cuando nuestro examinador habitual estaba fuera de baja por maternidad.

Básicamente, cambió una pantalla de listado de facturas que los usuarios usaron para seleccionar facturas antes de acercarse para hacer alguna edición a través de un botón "Editar". La lista original se descartó y se insertó una nueva vista de cuadrícula, con filtrado, agrupación, clasificación y todo tipo de funciones geniales.

Las pruebas fueron excelentes y cargaron los cambios al cliente al día siguiente. Dos semanas después, el cliente llama y dice: "Nos gusta mucho lo nuevo que pusiste, podemos ver todo tipo de información ahora. Pero ... eh ... ¿a dónde vamos a editar las facturas ahora? ?? "

Resulta que el desarrollador sacó la casilla de verificación (para la selección) y el botón de edición y dado que los desarrolladores siempre hicieron doble clic para seleccionar un elemento de todos modos, ninguno de ellos encontró nada malo en ello ...

Los desarrolladores y usuarios viven en mundos diferentes, tener pruebas cruzadas es mejor que hacer que el desarrollador pruebe su propio trabajo, pero todavía no es lo mismo.

    
respondido por el Permas 20.08.2011 - 16:06
9
  

no importa cuanto intentemos probar la aplicación e implementamos casos de uso (3 desarrolladores y 1 diseñador), aún no se ven algunos errores y arruinan nuestra presentación ... para los interesados.

Considere realizar una "carrera controlada" para un sprint o dos, rastrear los esfuerzos de los desarrolladores y las pruebas por separado. Al final de dicha ejecución, analice los datos recopilados para averiguar cuánto esfuerzo dedica a las pruebas.

Si descubre que las pruebas requieren mucho esfuerzo, transmita esos datos a la administración: será una evidencia convincente que respalde su solicitud (mucho más convincente de lo que tiene ahora).

De lo contrario (si encuentra que su prueba lleva poco tiempo), considere invertir un esfuerzo adicional para hacerlo mejor (o aprender a hacerlo). Negocie el esfuerzo adicional que planea con su administración, ya que es posible que prefieran contratar un probador. :)

  

... recomendamos que la empresa contrate un nuevo probador. Alguien cuyo trabajo estaría probando, y probando solamente. Un probador profesional oficial.

     

Sin embargo, el problema es que, scrum master y las partes interesadas creen que un desarrollador (o un diseñador) también debe ser un probador.

Debo admitir que la administración de su empresa me parece bastante aburrida. Quiero decir, está bien, puede ser muy difícil averiguar cuántos probadores serían mejores para el proyecto, bien.

Pero tener al menos un probador es solo una apuesta segura, es realmente divertido que vacilen para intentarlo, mientras se reclaman a sí mismos scrum / < a href="http://www.halfarsedagilemanifesto.org/"> ágil .

    
respondido por el gnat 21.08.2011 - 13:15
4

Como otros aquí han dicho, los desarrolladores pueden realizar pruebas cruzadas del código de cada uno (pruebas funcionales o de unidad), y tal vez su scrum master y el propietario del producto pueden ayudar con las pruebas de integración, pero para las pruebas de aceptación del usuario debe asegurarse de que estamos obteniendo muchos comentarios de pruebas del cliente , lo que significa implementaciones frecuentes con las que pueden trabajar de la forma en que lo hacen los usuarios reales y Canal comunicaciones realmente abierto

    
respondido por el StevenV 21.08.2011 - 20:12
2

Debe diseñar teniendo en cuenta la capacidad de prueba, pero si no tiene un probador dedicado, entonces algunas cosas simplemente se deslizarán por las grietas porque no hay suficientes horas en el día para diseñar, implementar y probar el software.

    
respondido por el davidk01 21.08.2011 - 09:07
1

Estoy de acuerdo con su punto de que los desarrolladores / diseñadores deben probar su código, con el cavaet de que el diseñador / desarrollador que hizo una sección de código no es el único conjunto de "ojos" en ese código antes de comprometerse a vivir . Si bien eso no lo va a agarrar todo, al menos ayudará a evitar la ceguera que se arrastra al probar y volver a probar su propio código mientras se desarrolla.

A partir de la mención del caso de uso, ¿asumiré que también está utilizando herramientas de cobertura de código? Si no, podría ayudar a ver qué código podría no ser probado, y podría aparecer errores inesperados en ciertas condiciones.

Dicho esto, si hay suficiente trabajo o si su organización es de un tamaño decente, estoy de acuerdo en que se necesita una persona profesional de control de calidad, ayudaría a enfocar un poco más los roles de todos y también podrían ver si hay algún patrón. en cuanto a lo que se está perdiendo y, lo que es más importante, cómo solucionarlo.

    
respondido por el canadiancreed 21.08.2011 - 06:18
1

El software de prueba es un trabajo profesional a tiempo completo. Necesita un buen cerebro, talento y mucha experiencia para convertirse en un buen probador. Es ridículo suponer que un desarrollador de software, sin importar lo inteligente que sea, puede acercarse a un probador profesional cuando la prueba es solo un pequeño componente de su trabajo diario.

Además de eso, está el problema de que, subconscientemente, el desarrollador de software no quiere encontrar errores.

    
respondido por el gnasher729 28.05.2015 - 17:52

Lea otras preguntas en las etiquetas