¿Cómo pueden los programadores aprender a hacer pruebas de software?

Como mencionó Carlos anteriormente, el desarrollo impulsado por pruebas es la forma más fácil de cambiar a su equipo (oa usted mismo) a las pruebas de software.

La metodología requiere que construyas tus pruebas primero, mientras que todas fallarán, y comenzar a implementar la lógica que resolvería cada una de las pruebas en consecuencia.

Piense en su conjunto de pruebas como una especificación: todo lo que debe ejecutarse al final del proyecto debe incluirse en una prueba unitaria. Eso le permite estructurar su código y su arquitectura en general de manera adecuada, hacer una prueba de unidad de todo y evitar una refactorización innecesaria en una fase posterior, ya que conoce el resultado esperado y las relaciones OOP por adelantado.

Otra buena estrategia es implementar la Implementación Continua en su organización, donde cada compromiso se pone en marcha. Ser capaz de enviar el código varias veces al día que no rompa todo es imposible sin un conjunto completo de pruebas. Una plataforma de integración continua lo ayuda a ejecutar todas sus pruebas (como pruebas unitarias o de comportamiento) antes de la implementación en varias máquinas virtuales diferentes, y rechaza una implementación si una nueva característica está rompiendo la funcionalidad existente.

Como desarrollador, debes LEER las líneas de especificaciones y LEER entre las líneas también.

El nivel de sesgo es más alto cuando está probando su propia creación, sin embargo, cuando lo prueba desde un punto de vista imparcial, podrá ver las dificultades que probablemente enfrentará un usuario final (consumidor).

Cuando se realiza la prueba unitaria de cualquier módulo, es probable que el módulo funcione en modo solo, sin embargo, cuando se integre, intente ver si se combina con otros módulos también.

Cumplir con los requisitos funcionales del usuario es una parte del juego que no se puede abandonar, sin embargo, desde un punto de vista de prueba, tiene que ver los aspectos no funcionales como el mantenimiento del código, la facilidad de uso, la tolerancia a fallos, etc.

En mi humilde opinión, un buen desarrollador puede ser el mejor probador porque puede realizar pruebas de caja blanca y caja negra.

Espero que esto responda a su pregunta.

Comenzaría pensando en lo que quieres decir con la prueba . Eche un vistazo a mi blog como punto de partida: probar el software no es ‘¿Funciona?’ de Nilanjan Bhattacharya en Counterfactuals
Segundo, no tomaría nada de lo que ve en la industria como valor nominal, por ejemplo, TDD, automatización. Dejemos eso de lado por ahora. (No estoy diciendo que no sean útiles, no están probando).

Veo defectos todo el tiempo, no estoy seguro de por qué. Por ejemplo, traté de hacer una transferencia bancaria en línea, seguía siendo rechazada (cuenta nueva). ¿A quién llamo? El banco de origen o el banco de destino. Intenté ambos, sin ayuda. Después de leer la letra pequeña, me di cuenta de que el banco tiene una cuenta especial para transferir dinero que es diferente de la cuenta real. Si fuera desarrollador del sitio web de banca en línea, nunca hubiera pensado que esto podría suceder. Sin embargo, no entiendo por qué otros no ven esto, es decir, los desafíos para anticipar lo que podría salir mal.

La mejor manera de entender las pruebas es leer las respuestas a ¿De qué carece Quora? y otras preguntas similares sobre Quora. ¿Crees que podrías llegar a estas respuestas (de antemano si estuvieras en el equipo de desarrollo de Quora)? Probablemente no. No pude también.

Creo que si quieres hacer este tipo de pruebas, necesitas unos buenos evaluadores (cómo los encuentras, no fáciles). En un equipo en el que trabajé, todos los nuevos desarrolladores tuvieron que trabajar durante un mes en el equipo de control de calidad. Algunos / muchos lo odiaban. Sin embargo, algunos vieron la luz. En los círculos de prueba, hay una broma de que nadie quiere unirse al control de calidad. Sin embargo, una vez que lo hacen, realmente lo disfrutan y no quieren irse.

En el entorno de desarrollo de software actual, tendrá que luchar contra el pensamiento acerca de las pruebas / control de calidad del desarrollador. La mayoría de los desarrolladores estarán de acuerdo en hacer pruebas / control de calidad. Sin embargo, es su perspectiva sobre el control de calidad, no como he descrito.

Como individuo, simplemente averigüe cómo hacer preguntas. No escriba el código al realizar la prueba (puede hacerlo más adelante si lo desea). Use el software y piense en lo que podría salir mal.

Tome un curso en pruebas de software para obtener una apreciación general. Haga hincapié en que proporcionar una cobertura de prueba completa es esencial en el desarrollo de software empresarial.

Algunos materiales interesantes aquí:
https://www.atlassian.com/softwa

Al escribir aplicaciones tienes un comportamiento en mente. Entonces, aparte de las pruebas unitarias, simula la entrada del usuario y verifica si se ajusta a la salida esperada. Eso es. Lo que cada programador necesita aprender son las herramientas correspondientes. Por ejemplo, si desea probar su escalabilidad, es posible que necesite algo como jmeter. Creo que lo que necesitas aprender es lo que se debe probar. El resto es solo un código nuevo.

Creo que si un programador quiere aprender a probar software, entonces hay cursos para la misma o más y más experiencia en la programación que puede permitirte aprender a probar software.

Capacitación en Pruebas de Software