X
BLOG

15 segundos para encontrar un error de puntero en más de 500,000 líneas de código

15 segundos para encontrar un error de puntero en más de 500,000 líneas de código Tiempo de leer: 5 minutos

Aquí está la historia de cómo 15 segundos de análisis descubrieron un error que causó un accidente y que evadió 40 horas de inspección manual.

Empresas BITTT se especializa en procesos comerciales y brinda soluciones comerciales estratégicas para la gestión de la información. BITTT ayuda a sus clientes a mejorar los sistemas de tecnología internos, aumentando la eficiencia y la productividad para un resultado final más saludable.

Timothy W. Okrey, socio gerente, está a cargo del desarrollo en BITTT. De hecho, él es el cerebro detrás del código que escribe BITTT. Recientemente, Okrey continuaba desarrollando un proyecto en curso que había estado en proceso durante un par de años. El programa estaba en producción virtual cuando de repente comenzó a fallar. La situación dejó a Okrey completamente estupefacto.

Después de intentar resolver el problema por su cuenta y golpear paredes de ladrillos en todas direcciones, Okrey descubrió la solución de Parasoft para el análisis en tiempo de ejecución de C / C ++ y la detección de errores. Parasoft Insure ++ no solo ayudó a Okrey a resolver el problema en cuestión, sino que también le permitió mejorar de manera simultánea y efectiva una docena de proyectos separados.

Aparición de un error de puntero crítico

El producto que estaba desarrollando Okrey había sido estable y se estaba ejecutando en un modo de producción virtual. Pero el programa comenzó a fallar después de una compilación reciente para abordar una serie de mejoras solicitadas por el cliente.

BITTT había invertido dos años en el producto, una solución relacionada con la nómina diseñada para ayudar al cliente a reducir las 60 a 70 horas hombre invertidas cada semana para completar manualmente la nómina de 1000 empleados en 14 estados. Como resultado del trabajo de BITTT, la nómina de sus clientes ahora estaba automatizada, lo que les permitía dedicar menos de 12 horas de trabajo a la semana. Desafortunadamente, el error de detención que surgió con la última versión hizo que el cliente de BITTT volviera a su proceso de nómina manual.

Basándose en más de 20 años de experiencia en desarrollo, Okrey sabe que si te encuentras con una pared de ladrillos, es hora de rehacer todo el proyecto de una manera diferente. Desafortunadamente, esa ni siquiera era una opción en esta situación porque "No hubo una prueba irrefutable o incluso un error rastreable". Okrey explica además: “Este no fue un desarrollo nuevo. Tampoco intentamos juntar partes del código para que funcione. Este programa en particular se escribió desde cero utilizando un conjunto de herramientas como backend para los detalles ".

El kit de herramientas es uno que Okrey comenzó a crear en 1993. Le permite extraer funciones de trabajo en código fuente sin procesar o usarlas como biblioteca para cualquier proyecto. El kit de herramientas proporciona una base estable para todos sus proyectos y alivia la necesidad de volver a escribir el código una y otra vez. Este kit de herramientas ha crecido a más de 500,000 líneas de código, que fue escrito con la máxima diligencia. Okrey sigue estrictamente las reglas de la programación estructurada y es prudente a la hora de mantener limpio su código. Nunca había utilizado una herramienta de terceros para analizar su código y nunca había tenido la necesidad.

Reducir la duración y el costo de los procesos de desarrollo posteriores

Durante más de una semana, Okrey intentó rediseñar diferentes piezas de la clase que estaban causando problemas.

Pero sus intentos de solucionar el problema solo resultaron en cambiar algunas de las partes internas para que el punto de falla ocurriera en una ubicación diferente. “Pasé más de 40 horas revisando todo mi código con un peine de dientes finos y una lupa, como hago normalmente. No pude localizar el problema. Podía ver lo que estaba pasando; Simplemente no podía ver por qué estaba sucediendo ”, dijo Okrey.

Fue entonces cuando comenzó su búsqueda de ayuda. Encontró solo un puñado de herramientas que pudieron hacer lo que quería. De ese puñado, la mayoría de los productos simplemente permitían la revisión estática del código. Parasoft fue el único producto que también realizó análisis dinámicos. "Parasoft me da la capacidad de analizar mi contenido en el entorno donde se ejecuta en lugar de simplemente mirar el código en papel", dijo Okrey.

Después de configurarlo y ejecutarlo, Parasoft ejecutó la primera compilación del código fuente de Okrey: más de 500,000 líneas. Dentro de los 15 segundos de su lanzamiento, Parasoft emergió un viejo puntero error. "Si no hubiera encontrado Parasoft, habría generado requisitos muy drásticos por parte del cliente", dijo Okrey mientras reflexionaba sobre el rápido retorno de la inversión. Agregó que “Pasar de una versión funcional del programa a una versión que no funciona simplemente debido a una actualización habría llevado a un retroceso del progreso y a concesiones financieras forzadas que no quiero ni siquiera considerar. Fue una situación desagradable ".

Aumento de la calidad, la estabilidad y el cumplimiento del código

Parasoft permitió a Okrey renovar completamente el código fuente del kit de herramientas; específicamente, mejorando el manejo de cuerdas. La mejora se extendió a otros proyectos. Okrey tiene docenas de otros programas para varios clientes que usan el mismo conjunto de herramientas de backend, por lo que todos estos programas obtuvieron los beneficios. Okrey afirma: “Ni siquiera puedo empezar a contarles todos los programas que dependen del conjunto de herramientas de backend. Como resultado de las mejoras que Parasoft me permitió hacer, son mucho más estables y compatibles ".

Okrey dijo que la solución Parasoft le dio la capacidad de implementar y hacer cumplir sus altos estándares de codificación. “Parasoft le obliga a verificar que los estándares y prácticas que se utilizan son absolutamente prístinos”, dijo Okrey. “Uno de los desafíos como líder de proyecto, o socio gerente, como yo, es confirmar que su equipo está escribiendo código que cumple con altos estándares. Parasoft puede ayudarme a verificar que mi equipo esté escribiendo código que cumpla con mis estándares y me permita garantizar resultados. Estoy muy emocionado por eso ".

Obtener valor de la solución de Parasoft

Okrey está satisfecho con la calidad que Parasoft ha arraigado rápidamente en su proceso de desarrollo de aplicaciones. No solo ha podido rectificar un problema para un cliente valioso, sino que también ha podido mejorar la calidad de docenas de programas para otros clientes.

Okrey dice: “Soy muy exigente con los productos que elijo respaldar. La mayoría del software escrito en el mundo simplemente no funciona de la forma en que se supone que debe hacerlo por varias razones. Tal vez esté mal diseñado, por lo que funciona con lentitud o los requisitos del sistema no son realistas. La lista continua.

“Sin embargo, hay algunos productos que realmente me gustan. Uno de ellos es un producto de software de sistema en el que he llegado a confiar. Nunca he experimentado un GPF con él. Nunca. Cuando supe que el proveedor de ese producto era un cliente de Parasoft, eso fue todo. Eso es lo que me hizo decidir probar Parasoft y estoy muy feliz de haberlo hecho ".

Nueva llamada a la acción

Escrito por

Parasoft

Las herramientas de prueba de software automatizadas líderes en la industria de Parasoft respaldan todo el proceso de desarrollo de software, desde que el desarrollador escribe la primera línea de código hasta las pruebas unitarias y funcionales, hasta las pruebas de rendimiento y seguridad, aprovechando los entornos de prueba simulados en el camino.

Reciba las últimas noticias y recursos sobre pruebas de software en su bandeja de entrada.

Prueba Parasoft