Creo firmemente que un programador es el mejor juez de su propio código y si un QA puede encontrar fácilmente los errores en su programa, uno puede asumir con seguridad que el programador no ha dado su 100%.
En cualquier programa, los errores ocurren debido a cualquiera de los siguientes motivos.
- Supervisión del programador.
- Insuficiente conocimiento del sistema.
- Comprensión incompleta de los requisitos.
- Falta de meticulosidad
- Prueba de unidad insuficiente
- Copiar y pegar el código directamente desde Google sin comprender qué hace exactamente ese código
- Hacer suposiciones incorrectas durante el desarrollo
Durante mis primeros días en la industria de TI, uno de mis superiores me dio un valioso consejo de que un programador programador es el mejor juez de su propio código, ya que él es quien sabe dónde y cuándo se rompería su código.
- Si tengo el código fuente de un programa, ¿puedo compilarlo para que se ejecute en cualquier sistema?
- ¿Hay alguna maestría en programación?
- ¿En qué se diferencia la fuga de errores de la liberación de errores en términos de pruebas de software?
- ¿Un buen ingeniero de software es un autodidacta o tiene un excelente mentor?
- ¿Es costoso ser un hacker?
No importa cuán inteligente sea su control de calidad si continúa desperdiciando su tiempo en problemas menores, entonces no podrán enfocarse en los problemas centrales, que finalmente terminarán en un producto fallido.
He visto a muchos programadores que escriben los programas solo por escribirlos sin siquiera pensar en los posibles escenarios que pueden ocurrir durante el lanzamiento. La mayoría de los problemas ocurren porque los desarrolladores solo tienden a pensar en los escenarios positivos y nunca prestan atención a las entradas anormales o las condiciones límite.
Uno de mis superiores una vez me dio un valioso consejo de que el 30% de su esfuerzo se debe gastar en comprender los requisitos a fondo, otro 40% se debe gastar en análisis y pensar en todos los escenarios posibles y el 30% restante se debe gastar en programación.
Inicialmente, era un poco reacio a aplicar su sugerencia, ya que para mí la codificación era la parte más vital de todo el ciclo de vida del desarrollo, pero una vez que comencé a aplicar su consejo, me di cuenta de su lado positivo. Cuando comprenda el requisito a fondo y analice todos los escenarios, obtendrá una visión holística del sistema y le facilitará escribir un programa que satisfaga todos los requisitos y marque todas las casillas para los posibles escenarios que pueden ocurrir durante un ciclo de vida del programa.
He visto a muchos programadores que tienen un miedo desconocido de probar sus programas más allá de los escenarios positivos, esas personas tendrían que entender que es un mundo cruel y las personas abusarían de su sistema más allá de sus límites. Tarde o temprano, necesitaría trabajar en esos escenarios negativos (entradas anormales / condiciones de contorno) que evitó en primer lugar.
Un QA es simplemente una persona cuyo objetivo final es encontrar errores en su programa, si él puede hacerlo, usted también puede hacerlo. Por qué permitir que otra persona encuentre errores en su propio código, usted mismo puede probarlo de tal manera que el tipo de control de calidad tenga dificultades para encontrar los errores.
En la nota final, debo decir que sí, el conteo de errores te hace un buen o mal programador.