Mi empleador me dijo que no escribiera pruebas unitarias para poder lanzar el software más rápido. ¿Tiene razón?

Si se refiere al lanzamiento en general, incluidos los lanzamientos primero, segundo y futuros, como se sugiere en las otras respuestas, su empleador probablemente tenga poca experiencia en el desarrollo y lanzamiento de software, ya que eliminar las pruebas unitarias no le permitirá enviar más rápido, más bien ralentizará el proceso de desarrollo y lanzamiento.

Si se refiere a la primera versión de software, le agradecería a su empleador que tenga experiencia en la liberación de software e incluso comprenda el valor de las pruebas unitarias (muy pocas no lo hacen). No es raro que los empleadores revisen la cartera de pedidos de planificación e intenten eliminar los elementos de trabajo que no son críticos para la primera versión. Probablemente, cuando su empleador vio que reservaba un tiempo dedicado para las pruebas unitarias, pensó que también podría enviar antes en lugar de gastar ese tiempo extra, ya que las pruebas unitarias por sí mismas no son críticas para el éxito de la primera versión. Uno puede tener una versión exitosa sin una sola prueba unitaria, siempre que el sistema haya sido probado exhaustivamente de principio a fin,

En ambos casos, su error fue dejar de lado el tiempo dedicado a las ‘pruebas unitarias’ , en lugar de considerar las pruebas unitarias como parte integral del proceso de desarrollo, que hasta cierto punto, está acelerando el proceso, no desacelerándolo.

El error de su empleador es que no se da cuenta del gran costo de no incluir pruebas unitarias en el software desde el principio. Más que nada, es fundamental, ya que ayudará a garantizar que el código esté diseñado para ser comprobable. Ayudará a mantener alejados a los asesinos de prueba como no permitir el reemplazo de dependencia, violar la Ley de Demeter, etc. Se asegurará de que diseñe su código para permitir que el código externo (sus pruebas, sus monitores) tenga la capacidad de control requerida (capacidad de inyectar entrada) y capacidad de observación (capacidad de evaluar el resultado), con suerte sin tener que depender de los marcos simulados.

El costo de cambiar el código existente para permitir la capacidad de prueba es extremadamente alto, incluye desestabilización y en algunos casos requiere una reescritura completa.

Intente explicar estas cosas en un idioma que su empleador entienda. Dígale que tomará una semana extra desarrollar el mismo software sin pruebas unitarias básicas. Dígale que tendría que volver a escribir parte del código antes de los próximos lanzamientos. Si todavía no lo entiende, la próxima vez excluya las pruebas unitarias de su cartera de pedidos (y las conversaciones con su empleador). No recuerdo cuándo fue la última vez que vi una tarea acumulada dedicada a las pruebas unitarias. El trabajo de prueba de la unidad generalmente se tiene en cuenta al calcular el costo del trabajo de desarrollo del componente bajo prueba.

Sin embargo , no debe obsesionarse con la cobertura de pruebas unitarias como condición previa para su primer lanzamiento de software (¿tal vez es por eso que asignó tiempo dedicado para pruebas unitarias?). Las pruebas unitarias son críticas para construir un sistema de software que se pueda mantener, no es una herramienta para encontrar errores. Incluso con una cobertura de prueba del 100%, se puede enviar un software horrible que está lleno de errores. Las mejores herramientas para encontrar errores son (pero no se limitan a) pruebas funcionales de extremo a extremo, pruebas exploratorias. Así es como encuentras tus bloqueadores de barcos. Comida de perro. Use el software usted mismo. Deje que su equipo use el sistema / servicio, recopile telemetría. Use esa telemetría para evaluar la calidad y la preparación del barco

Después de enviar : ¡ahora sus pruebas unitarias comienzan a producir el valor real! Serán esenciales para construir una tubería de integración / entrega continua efectiva, que (en combinación con otros medios) le permitirá realizar cambios y lanzar nuevas funciones de manera fácil y mucho más efectiva.

More Interesting

¿Ves potencial en una empresa que puede ayudar a las nuevas empresas a llegar a clientes potenciales con resultados garantizados?

Si externalizo algunos desarrollos de productos a una compañía de 150 empleados, y mi compañía está compuesta de 1 a 10 personas, ¿puedo decir que tengo más de 150 empleados?

¿Cuáles son las formas de comenzar un negocio a pequeña escala?

¿Qué estrategia de precios recomendaría para nuestra startup Kickresume.com, pagos únicos o suscripciones? ¿Cuáles son algunas otras ideas?

Dev Bootcamp: ¿Debería una persona que quiere iniciar una startup de Internet aprender a programar?

¿Cómo puede un fundador de inicio simplemente despedir a otro fundador por 'terminación con efecto inmediato'? ¿Puede ser legal de alguna manera?

¿En qué actividades técnicas puedo participar como un inicio temprano de tecnología espacial de disparo lunar sin experiencia previa?

Sabiduría: ¿Cuál sería el mejor consejo que le puedes dar a un emprendedor?

¿Qué debo hacer si quiero producir, por ejemplo, auriculares? ¿Donde debería empezar?

Como programador, ¿debería construir mi propia startup o ir al área de finanzas?

¿Cómo puedo convertirme en CEO de Facebook, Quora o Pinterest?

Tengo la intención de iniciar una aplicación, ¿cuáles son las reglas y regulaciones para iniciar una aplicación, aclarar mis dudas sobre cuestiones legales y permisos?

¿Por qué los Fundadores se van después de que sus compañías sean adquiridas?

Cómo iniciar un negocio de paisajismo en la escuela secundaria

¿Cuáles son los mejores métodos de generación de tráfico que pueden automatizarse?