Elaborado por Materia para OpenMind Recomendado por Materia
4
Inicio ¿Puede una startup prescindir del testing de software?
28 marzo 2018

¿Puede una startup prescindir del testing de software?

Tiempo estimado de lectura Tiempo 4 de lectura

Cuando acaba de empezar como una empresa nueva y debido a sus limitaciones inherentes, podría tener la tentación de economizar y llevar al límite el enfoque de producto viable mínimo. Sin embargo, saltarse el control de calidad, aunque es la forma más rápida de salir al mercado, también es la forma que seguramente le impedirá el lanzamiento exitoso de otras iniciativas una vez que haya aprendido la lección. Para resumir, no es cuestión de poder permitirse hacer pruebas a sus productos. La realidad es que como startup, no puede permitirse el lujo de no hacer pruebas.

Coste de los fallos

Las startup pueden aprender de los errores de las grandes organizaciones que no pusieron a prueba sus productos suficientemente antes del lanzamiento. Por ejemplo, el colapso de healthcare.gov triplicó el costo final, hasta 292 millones de $ y esto es solo una minúscula fracción de los costos totales del fallo del software.

IBM publicó una comparación de los costes asociados con el descubrimiento de un error en las distintas etapas. Los multiplicadores serán de 5 veces en la fase de implementación, 10 veces en las pruebas de integración y 30 veces una vez que el producto se ha puesto en el mercado. Así que la idea de “fallar rápido, fallar a menudo” supone aquí un ahorro de costos.

Los desarrolladores como testers

Como startup de tecnología, se ha esforzado por encontrar los mejores desarrolladores que puede pagar o usted mismo es uno de ellos. En un esfuerzo por arrancar, puede dar por sentado que un desarrollador excelente puede duplicar sus funciones como tester, pero este enfoque, de hecho, es más costoso que contratar un tester dedicado por varias razones.

La primera explicación es que las destrezas del programador superan a las del tester y para el 80% del trabajo de testing no se necesitan habilidades de codificación. Puede darse mejor uso a dichas habilidades. / Imagen: Glenn Carstens-Peters on Unsplash
Otra motivación es que un desarrollador conoce todos los pormenores del código tan bien que no ve deficiencias obvias. Por último, como tienen habilidades técnicas superiores, a los desarrolladores les resulta difícil actuar como un usuario normal y podrían suponer que algunas operaciones son sencillas cuando, de hecho, necesitan más trabajo.

Limitaciones

Aun entendiendo las desventajas de no dedicar suficiente tiempo al testing, lo primero que le viene a la mente como emprendedor de una startup son los obstáculos, que incluyen falta de tiempo, de dinero o de otros recursos que asignar al testing. Conocer tales limitaciones puede ayudarle a definir su estrategia, pero bajo ninguna circunstancia debe eso implicar que se desestima el testing por completo.

  • Tiempo: bajo la presión constante para comercializar un producto viable mínimo con el fin de empezar a generar ingresos, podría parecer una buena idea dejar que el mercado identifique los fallos y arreglarlos posteriormente. Además, no tiene tiempo suficiente para realizar entrevistas a fondo y reunir un equipo de testers junto con los programadores. Sin embargo, tampoco tiene tiempo para rehacer el mismo fragmento de código un par de veces o para repasar todo el software cada vez que hace cambios.
  • Recursos: trabajar en una startup conlleva la emoción y el peso de encargarse de múltiples tareas. No tendrá un departamento de testing dedicado, pero podría tener un tester/responsable de redes sociales o similar. Es cuestión de disponer de dos cabezas, que son mejor que una. Además, puede que aprenda que no tiene todas las herramientas que necesita o solo puede permitirse versiones gratuitas limitadas. Los especialistas en testing de A1QA asesoran a los emprendedores para encontrar paquetes que permitan el programa de pago por uso en vez de utilizar otros productos desarrollados por startups como la suya que podrían tener muchos fallos propios.
  • Dinero: Este es el principal punto débil de la mayoría de las startups y el primer motivo que se menciona cuando se cuestiona el testing. Naturalmente, el personal adicional significa un dinero extra, pero siempre está la opción de delegar solo la parte de testing a una empresa dedicada que utilice un modelo de precios que se ajuste a su escala y a su presupuesto.

Automatización frente a testing manual

Teniendo en cuenta las limitaciones habituales, hay que hacer otra elección entre el testing automatizado y el manual. Es aconsejable empezar con el testing manual, al menos en las primeras etapas de desarrollo. /Photo by h heyerlein on Unsplash
Tener la oportunidad de tratar el software directamente da a los testers una idea de los procedimientos que podrían convertirse en scripts y automatizarse y de lo que constituye un caso excepcional que sería mejor probar a mano.  El testing manual también garantiza que la IU se ajusta a las mejores prácticas, un aspecto que las pruebas automatizadas tienen dificultades en entender. Un enfoque sencillo adaptado al presupuesto reducido de una startup es aprovechar el tester interior de cada miembro del equipo y pedirles opiniones. Evidentemente, no es un proceso ideal, pero podría ahorrarle algo de dinero, al menos en las fases de diseño y planificación.

La automatización no puede sustituir de ningún modo el testing humano, es simplemente una forma de quitar trabajo tedioso a los tester y de garantizar una mayor precisión, especialmente en las tareas repetitivas a gran escala. Elimina los errores humanos y puede ser una buena opción en etapas de desarrollo posteriores y después de un lanzamiento durante la fase de mantenimiento del producto, cuando todavía es necesario comprobar la calidad de las actualizaciones periódicas. La automatización también es más cara, ya que la creación de secuencias de comandos requiere más habilidades de codificación.

Hacer testing significa que el producto que presenta a sus clientes no solo satisface sus demandas de funcionalidad, sino que también es sólido, fiable y fácil de usar. La creación de una estrategia de testing debe formar parte de sus valores fundamentales. En las primeras etapas de su existencia, una empresa solo puede destacar entre sus competidores por calidad y fiabilidad.

Testing dinámico

La mejor forma de avanzar es integrar el testing manual en cada fase del proceso. A medida que este proceso madura, es una buena práctica automatizar las partes más comunes. Trabajar en sprints cortos y garantizar la fiabilidad de cada componente antes de seguir adelante es una forma de asegurarse de que no habrá reelaboraciones significativas una vez que el producto se comercialice en el mercado.

Jasmine Morgan

Consultora de Software

Comentarios sobre esta publicación

El nombre no debe estar vacío
Escribe un comentario aquí…* (Máximo de 500 palabras)
El comentario no puede estar vacío
*Tu comentario será revisado antes de ser publicado
La comprobación captcha debe estar aprobada