He visto muchos artículos de investigación y blogs de tecnología que cuentan con los beneficios de las pruebas de software. Estoy convencido de eso. Pero dado que toda la investigación de pruebas de software es realizada por grandes compañías de software, no creo que realmente se apliquen a las startups. Dado que las startups tienen diferentes necesidades y limitaciones en comparación con las grandes empresas de software.
Entonces esto planteó las preguntas. ¿Deben las startups tecnológicas escribir pruebas automatizadas? Si es así, ¿se hacen de la misma manera que las grandes compañías de software? (prueba de humo, prueba de regresión, etc.) Es mejor si puede consultar algunos artículos de investigación sobre este tema ... ya que no pude encontrar ninguno por mi cuenta.
(Debo admitir que a pesar de que todavía estoy en una etapa temprana de mi carrera, pero aún no he visto una startup que esté seriamente comprometida a escribir pruebas automatizadas)
Respuestas:
Siempre hay un conflicto entre lo que se debe hacer y lo que realmente tenemos tiempo para. Sí, muchas startups renuncian al desarrollo impulsado por pruebas y pruebas automatizadas para ahorrar tiempo para poner en marcha un proyecto.
Los sitios de redes sociales y las compañías de aplicaciones móviles son las grandes burbujas ahora, y son ferozmente competitivos. A veces, la diferencia entre vivir en 4 meses versus 5 meses significa que pierde.
El tiempo de comercialización es clave, y luego, si el éxito ocurre, es hora de escalar, entonces habrá tiempo de sobra para refactorizar su software no probado en algo que valga la pena.
fuente
Las pruebas de software no son una religión. Es solo una muy buena idea.
¿Dices que no tienes la mano de obra para escribir exámenes en este momento? Está bien. Dentro de 6 semanas, ¿tendrá la mano de obra para encontrar el error que está bloqueando su aplicación, que se habría encontrado de inmediato si hubiera realizado las pruebas adecuadas?
Demasiadas pruebas pueden retrasar el desarrollo. Muy pocas pruebas también pueden ralentizarlo. Tienes que encontrar el equilibrio correcto, y generalmente es difícil saber dónde está. Y nada de esto es específico para empresas grandes o pequeñas.
fuente
Durante muchos años, mientras trabajaba en pequeñas empresas y nuevas empresas, tuve la idea errónea de que "no tenía tiempo suficiente para escribir pruebas unitarias para mi código" .
Cuando escribí las pruebas, estaban hinchadas, cosas pesadas que solo me animaron a pensar que solo debería escribir pruebas unitarias cuando sabía que eran necesarias.
Recientemente me animaron a usar Test Driven Development y descubrí que es una revelación completa .
Ahora estoy firmemente convencido de que "no tengo tiempo para no escribir pruebas unitarias" .
En mi experiencia, al desarrollar teniendo en cuenta las pruebas, termina con interfaces más limpias, clases y módulos más enfocados y, en general , un código más SÓLIDO y comprobable.
Cada vez que trabajo con código heredado que no tiene pruebas unitarias, y tengo que probar algo manualmente, sigo pensando "esto sería mucho más rápido si este código ya tuviera pruebas unitarias" . Cada vez que tengo que intentar agregar funcionalidad de prueba unitaria al código con alto acoplamiento, sigo pensando "esto sería mucho más fácil si se hubiera escrito de forma desacoplada" .
Si hay algo que he descubierto a lo largo de los años, si está trabajando en una empresa nueva, debe ser ágil , y no solo en el sentido de la metodología de desarrollo de software . Para mí, TDD es una herramienta importante que permite comenzar y mantenerse ágil .
fuente
No se trata de quién debería hacer las pruebas de software, las pruebas de software son una especie de filosofía de desarrollo de software. Las pruebas de software establecen la base de una buena calidad de software, y en una startup, la calidad del software es una ventaja cuando la adquisición por parte de una gran empresa está a la vuelta de la esquina;)
fuente
Las mejores prácticas abarcan toda la industria, ya sea que esté convirtiendo a la abuela en un sitio web o creando el sistema de guía para un satélite. Siempre deben ser seguidos por aquellos que quieran considerarse profesionales, por eso se les llama MEJORES prácticas.
fuente
Sí, las startups a veces cortan esquinas y no implican pruebas adecuadas. A veces esto es apropiado (para proyectos lo suficientemente pequeños o cuando el tiempo / dinero son críticos)
Sin embargo, esto no es exclusivo de las startups. Uno de nuestros proveedores contratistas de TI no tiene un entorno de prueba. Todo se hace directamente para vivir y esta es una gran compañía de software multinacional (¡da miedo!)
fuente
¿Deberían ellos? Si. ¿Lo hacen en la práctica, no tan a menudo como deberían?
La razón más típica dada es la falta de recursos, que incluye el tiempo del desarrollador, el costo de contratar a un probador dedicado o de medio tiempo, el costo de configurar un entorno de prueba, etc. Incluso puede encontrar estas excusas en grandes entornos corporativos, así como en pequeñas empresas de nueva creación.
Mirando de otra manera, las pruebas son una de las cosas más fáciles de eliminar de un cronograma de desarrollo, especialmente una con presión de tiempo muy apretada y / o presión de costos para producir resultados visibles. Junto con el trabajo de diseño detallado, muchos gerentes lo consideran `` esponjoso '' y en primer lugar dirán "córtalo para que podamos hacer que nuestro horario y presupuesto funcionen", seguido de "¿Por qué no estás codificando?".
En algunas compañías, habrá alguien que haga pruebas de empuje. Por lo general, este será el desarrollador contratado y, por lo general, serán alguien con experiencia y probablemente alguien que tenga una participación financiera de algún tipo en la empresa. Una compañía que comienza con este "ADN" probablemente hará las pruebas desde el principio.
fuente