No necesitas pruebas unitarias

Sí, escuchaste bien, ¡eso es correcto! En la comunidad de TI, la opinión está firmemente arraigada de que todas estas pruebas te ayudan de alguna manera, pero ¿es realmente así? ¿Ha intentado pensar críticamente y analizar usted mismo esta sabiduría convencional? A los hipsters se les ocurren un montón de paradigmas (TDD, BDD, SDA, policía de tránsito) solo para crear la ilusión de una actividad frenética y de alguna manera justificar su salario. Pero piense en lo que sucederá si usted (o sus programadores) comienzan a dedicar todo su tiempo exclusivamente a escribir código. Hay un área separada para pruebas y divisiones completas. No obliga a los programadores a escribir requisitos, ¿verdad? Entonces, ¿por qué deberían escribir pruebas? ¡Todos aquellos que estén de acuerdo y en desacuerdo, por favor ingresen al post, donde les mostraré claramente que las pruebas unitarias (y de integración) son un gran mal!





¿De dónde vinieron las pruebas?

En la antigüedad, no había ninguna prueba. Ni siquiera existía esa dirección, por no hablar de términos como bloque (unidad) y prueba de integración. Y sobre todo tipo de e2e y, Dios me perdone, oleoductos, generalmente me callo. Y todo esto porque, de hecho, todavía no había nada que probar. En esos años, los ingenieros de software solo intentaban crear las primeras computadoras.





Como todos sabemos, las primeras computadoras tenían un tamaño gigantesco, pesaban decenas de toneladas y costaban más que su Apple MacBook Pro Retina 4k 32Gb RAM 1Tb SSD Touch Bar USB Type-C. Y en esos días, los desarrolladores tenían mucho miedo de que algo saliera mal durante el trabajo. Creo que conoces la historia del origen del término "error"; si de repente no, léelo , es muy interesante. Y, dado que los programadores le tenían miedo a todo, se les ocurrió realizar pruebas unitarias.





Los tiempos han cambiado, las computadoras también. Las pruebas también han cambiado. Además de las pruebas unitarias, también surgió un área completa, que luego se conoció como Garantía de Calidad.





Pero los desarrolladores también cambiaron. Hoy en día, se vuelve ridículo pensar que alguien tiene miedo de ejecutar un programa, porque esto podría incendiar el servidor. En 2020, los programadores no temen lanzar sus programas. Y si no hay miedo, ¿por qué probar?





Realidades modernas

Repito mi pregunta: si su MacBook (o Xiaomi) no explota debido a un error en el código, ¿por qué probar entonces? Simplemente inicie y disfrute del resultado. Anticipándose a su indignación por el alto costo de los errores para el cliente, deje que personas especialmente capacitadas hagan las pruebas.





. , . - . . -, Quality Assurance – , ¯\_(ツ)_/¯





, Software Development, Unmistakable Development. .





-, : «, , ». ? ? 





. – . . , , , ?





: « » - . 





, master, , . pull request , – . , , .









  1. , .





  2. , . , , , , . , -, .





  3. .





– . – . ? .





, . , . , . , .





, , . , QA , . , – , .





– . .





Unit-testing, Integration Testing, End 2 End, Pipelines, CI, CD – , ? , , .





. , , e2e , . – .





- CI CD – . devops, . - , - , – .





. , – . – . – bash. … , .





Delivery In Time

: DIT – Delivery In Time. ( ****), . . , , . DIT , – , . , . , : – , – , . , , .





DIT . , ( ), . . , , Quality Assurance . .





:





– ?

– .

– .

– … , 1000 .





. , . 





, DIT , , . , . - (, , , ), .





: – , . - , , , . .





, . .





- , (, , ) . , , - . , ? , , .





. , . , – . , , , .





. , , . , ? , , , ? , . , - . – .





. (, 2 ) – . , , . , , . . .





, ? . . , .





. . – , – . - , . , . .





!





, , :)





, . , . , . , , 15%. . , .





? / 80%? - 30? – , ?





, . , , :)





Y, aprovechando esta oportunidad: si te gustó este formato, entonces te invito a mi blog de un mal desarrollador (muchas veces miente) público VK , donde publico de vez en cuando publicaciones tan sarcásticas, que muchas veces son inconvenientes para publicar aquí.












All Articles