Pregunta

Comencé como ingeniero de software en la compañía en la que estoy actualmente. Con el tiempo, fui el único dispuesto o capaz de asumir la responsabilidad de varios sistemas, por lo que fui "promovido" a ser gerente de TI. Ahora, durante mi tiempo como ingeniero de software, crearía pruebas funcionales para los diversos módulos de software que construiría, y como resultado, incluso hoy puedo probar rápidamente varias partes del sistema en las que he trabajado. Sin embargo, hay una gran base de código grande con poca o ninguna cobertura de los otros desarrolladores que han estado trabajando aquí.

Ahora, como gerente de TI, quiero poder probar que todas las partes del sistema funcionan, pero hay:

A) No hay tiempo presupuestado dedicado a crear cobertura de prueba de código

y

B) No hay deseo del "ingeniero de software jefe" de comenzar a crear suites de prueba para ayudarme a monitorear que el software está funcionando.

No espero que el equipo de software deje todo lo que están haciendo y pasan 2 semanas creando suites de prueba, pero sería bueno si comenzaran a expandir la cobertura de la suite de prueba con el tiempo para que pueda confirmar que las diversas partes del sistema están funcionando .

Entonces, hervirlo, ¿cómo hago que el equipo de software comience a crear suites de prueba?

Otras advertencias:

A) Todavía se me pide que haga proyectos de software además de administrar nuestro departamento de TI (un ingeniero de UNIX, un tipo de soporte de escritorio y oficinas relacionadas y equipos de producción)

B) Mi administrador de Unix tiene dificultades para obtener sistemas de producción ejecutando la base de código completa, y no estamos recibiendo una buena ayuda del equipo de software. No puede ejecutar ningún tipo de diagnóstico para ver dónde está fallando la aplicación web en las nuevas instalaciones. El vicepresidente de la compañía sigue diciéndome que entre y haga impresiones en el código para ver lo que está sucediendo. Esto apesta !!!

¿Fue útil?

Solución

Buena pregunta. Y si hubiera una respuesta correcta, muchos más proyectos de software tendrían éxito y ofrecerían alta calidad.

No creo que sea una buena idea hacer un cambio de arriba hacia abajo. Tiene que ser expulsado de los propios desarrolladores. Entonces, los entrenamientos en dirección TDD serían buenos, pero eso es una inversión mucho tiempo, lo que lleva tiempo.

Si desea una solución más rápida, debe considerar funcional, aceptación y systemtests. Con estas pruebas, prueba casi toda la aplicación a través de todas las capas. Si está desarrollando aplicaciones web, debe consultar utilizando Selenio Para automatizar su prueba. Es fácil crear una prueba con él (Selenium IDE).

Pero usar solo tales pruebas (no pruebas unitarias) no le dan las ventajas que provienen de TDD.

Automatizar sus pruebas es crucial.

Otros consejos

Primero, debe investigar el desarrollo impulsado por las pruebas para que se sienta cómodo explicándolo en términos que sus desarrolladores comprendan, así como su gestión. Dado que parece estar desarrollando aplicaciones web y tiene habilidades técnicas, le sugiero que se dé el paso y elija una herramienta de código abierto para probar aplicaciones web, instalarlo y comenzar a construir pruebas para cualquier cosa que desarrolle usted mismo.

Tela asargada es un ejemplo del tipo de herramienta de prueba que necesitaría.

Luego, como gerente, debe atraer a los desarrolladores a seguir su ejemplo y recompensarlos por hacerlo. Y castigarlos, cuando no usan el marco de prueba y conduce a problemas prevenibles. Tan pronto como obtenga uno de esos incidentes, debería poder poner a su jefe a bordo y recoger algo de impulso.

En general, recuerde que el objetivo es hacer menos trabajo para obtener un buen resultado. Cortar esquinas es una forma de hacer menos trabajo, pero conduce al riesgo de resultados malos o espectaculares. Mantenga la gerencia informada de los niveles de riesgo y los costos potenciales en riesgo.

No solo obliga a las personas a hacer pruebas por el bien de las pruebas. Tiene que ayudarlos a ser más productivos, así que elija los primeros proyectos para TI cuidadosamente.

¿Tiene un equipo de prueba o QA?

Primero comenzaría a ver si tienen casos de prueba que usan para calificar la compilación. Si no, tendrá que desarrollar estos casos de prueba para probar la funcionalidad central de su producto.

El siguiente paso sería automatizar los casos de prueba.

Si la aplicación está mal desarrollada sin ninguna herramienta de solución de problemas o funciones de depuración, sería difícil hasta que se agregue como requisitos para la próxima versión.

Mis 2 centavos.

Tendré que estar en desacuerdo con Michaelkebe: estos cambios necesitan apoyo del nivel ejecutivo, además de algunos desarrolladores clave, para tener éxito por completo.

Sin ese soporte, solo serán algunos desarrolladores que parecen estar "perdiendo el tiempo en escribir pruebas para cosas que ya funcionan".

Debe haber una visión clara, y debe repetirse en voz alta y con frecuencia.

No estoy necesariamente abogando por Agile aquí, pero a menudo hace clic para los dueños de negocios.

Si puede venderlos en eso, las cosas que le entusiasman (entregar software rápido, fácil mantenimiento, pruebas automatizadas, etc.) encajarán en su lugar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top