Publicidad

RSS Bugs

Test automáticos con QuickCheck ¿Cómo analizar nuestro código en busca de bugs?

5 Comentarios
Test automáticos con QuickCheck ¿Cómo analizar nuestro código en busca de bugs?

Verificar que nuestro código está libre de bugs es una tarea muchísimo más complicada de lo que pudiera parecer en un principio. El número de relaciones que se producen entre las piezas de código que vamos añadiendo aumenta de forma vertiginosa y desgraciadamente nadie parece saber aún la forma de escribir código libre de bugs. No deja de ser sorprendente que el datamining y en particular el machine learning no se apliquen de forma efectiva dada la ingente cantidad de programadores que hay en el mundo escribiendo cabezonamente el mismo código y cometiendo una y otra vez los mismos errores.

Hasta entonces, una de las herramientas que puede sernos de utilidad a la hora de validar nuestro código es QuickCheck, que nos permite escrutar automática y probabilísticamente nuestros algoritmos para encontrar errores.

Leer más »

¿Qué pruebas hacéis para asegurar que vuestro código funcione bien y no contenga bugs?: la pregunta de la semana

Comentar
¿Qué pruebas hacéis para asegurar que vuestro código funcione bien y no contenga bugs?: la pregunta de la semana

Existen distintas formas de asegurar la calidad del código. Desde las pruebas más manuales, probando la aplicación como un usuario estupido, o las más exhaustiva aplicando tests unitario, de integración, funcionales, aceptación, etc... Pero lo importante es detectar el mayor de número posibles de bugs antes de que sean una incidencia grave en producción.

En esta pregunta de la semana queremos que seáis lo más sinceros posibles. Que respondáis con vuestras técnicas de pruebas, los trucos que usa vuestro equipo de QA para probar las aplicaciones y dónde se suelen quedar habitualmente las pruebas cuando andáis justos de tiempo. También nos vale que nos déis excusas para no aplicar test automáticos en vuestros proyectos.

¿Qué pruebas hacéis para asegurar que vuestro código funcione bien y no contenga bugs?

Recuerda que para responder, debéis hacerlo desde nuestra sección de Genbeta Dev Respuestas. Los comentarios de este post están cerrados.

En Genbeta Dev Respuestas | ¿Qué pruebas hacéis para asegurar que vuestro código funcione bien y no contenga bugs?

Leer más »
Publicidad

Gana premios cazando bugs en la nueva versión de MongoDB

1 Comentario
Gana premios cazando bugs en la nueva versión de MongoDB

Son muchas las compañías de sofware, que que lanzan concursos para que la comunidad les ayude a mejorar sus productos. En este caso han sido los chicos de MongoDB, que con motivo de la liberación de la primera release candidate de la versión 2.6.0, han organizado una cacería de bugs.

Si cazas un bug en la nueva versión puedes añadirlo al Jira del proyecto. Recuerda que son fallos encontrados en el core del servidor de MongoDB y no en los drivers u otros módulos. Dependiendo de la importancia y gravedad del fallo encontrado, puedes optar a interesantes premios.

Leer más »

La importancia de escribir correctos informes de bugs

9 Comentarios
La importancia de escribir correctos informes de bugs

El primer paso para que un bug sea resuelto es escribir la incidencia del error. Reportar de forma eficiente un bug encontrado aumenta las posibilidades de que sea resuelto de la forma más rápida y mejor posible.

Los programadores son reacios a ponerse a solucionar bugs con descripciones vagas del error que no indican claramente cómo reproducirlos. Eso es un sobre esfuerzo que hay que sumar al de encontrar el foco del problema en el código. Si no se indica como reproducir el bug difícilmente se podrá debuggear la aplicación.

Leer más »

Descubierto bug de PHP con 8 años de antigüedad

11 Comentarios
Descubierto bug de PHP con 8 años de antigüedad
Una de dos: o me descubrían ya o empezaba a pedir la paga

Ocho años en el mundo del desarrollo es varios lustros en el equivalente del mundo real (si, esa cosa que hay más allá de las líneas de código). Por eso sorprende (por lo menos a mi) que ahora se haya descubierto un bug de PHP que lleva allí desde un commit de 2004. Vamos, que unos meses más y hace la comunión el bicho.

El bug en cuestión afecta a las instalaciones de PHP que usen el modo mod_cgi de Apache y viene a ser lo siguiente: si añades a una url parámetros sin que haya ningún signo ‘=’ (por ejemplo ‘?s’), te hace un bonito dump de tu código fuente. A partir de ahí, como siempre en estos casos, entra la malicia de cada uno.

La gente de PHP ha solucionado este bug con solera en las recientes actualizaciones 5.3.12 y 5.4.2 pero como reconocen que esto del mod_cgi es una cosa bastante pasada de moda y que es posible que la mayoría de las instalaciones afectadas sean tan vetustas que no merecen mucho la pena actualizar a unas versiones de PHP tan avanzadas, ofrecen una solución añadiendo un par de líneas similares a estas en la configuración de tu servidor:

RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC] RewriteRule ^(.*) $1? [L]

Vía | PHP.net
Imagen | Fotograma de la película ‘Bichos’ de Pixar
En Genbeta Dev | PHP 5.4 a fondo

Leer más »

Resolver problema de aapt del SDK Android en Gentoo Linux (puede que en otros también)

Comentar
Resolver problema de aapt del SDK Android en Gentoo Linux (puede que en otros también)

addEventListener('load', function (event) { prettyPrint() }, false);

Si eres usuario de Gentoo Linux (y puede que de alguna otra distribución de Linux más) y utilizas el SDK de Android, seguramente estés recibiendo el siguiente error cuando tratas de utilizar la utilidad aapt desde la consola o bien a través de Eclipse: android-sdk-linux_x86/platform-tools/aapt: /lib32/libz.so.1: no version information available (required by android-sdk-linux_x86/platform-tools/aapt)

El problema es que el archivo binario /lib32/libz.so.1.2.5 que viene en el paquete emul-linux-x86-baselibs que es el que nos provee de las Zlibs para 32 bits al menos en Gentoo (en otras distribuciones el nombre del paquete será diferente) no presenta el campo .gnu_version_d en las cabeceras ELF que es necesario para el enlazador dinámico. dd ./aapt ./aapt: /lib32/libz.so.1: no version information available (required by ./aapt) linux-gate.so.1 => (0xffffe000) librt.so.1 => /lib32/librt.so.1 (0xf76c2000) libpthread.so.0 => /lib32/libpthread.so.0 (0xf76a9000) libz.so.1 => /lib32/libz.so.1 (0xf7696000) libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.5/32/libstdc++.so.6 (0xf759e000) libm.so.6 => /lib32/libm.so.6 (0xf7578000) libgcc_s.so.1 => /lib32/libgcc_s.so.1 (0xf755c000) libc.so.6 => /lib32/libc.so.6 (0xf7401000) /lib/ld-linux.so.2 (0xf7708000)Como podemos ver al ejecutar ldd para conocer las librerías compartidas de la que depende el ejecutable aapt nos devuelve que no se dispone de información de versión para la librería /lib32/libz.so.1.

Leer más »
Publicidad
Publicidad
Inicio
Inicio

Ver más artículos