Una lista de herramientas de calidad software imprescindibles

En los últimos años se han disparado las opciones para automatizar el control de la calidad software. Hemos pasado de los maravillosos años en que hacíamos inspecciones de código a mano y por muestreo, a multitud de herramientas de calidad software.
El caso es que para ayudaros a realizar una primera selección, dentro del amplio mundo de las herramientas de calidad software, en este post os dejo algunas de las más populares  y recomendadas. Hay que tener en cuenta que las siguientes son herramientas de calidad software que realizan un control desde el punto de vista del estudio estático y de caja blanca (es decir, para que nos entendamos, analizan sin ejecutar el software y viendo los fuentes).

Una lista de herramientas de calidad software

PMD. Analizador estático de código que utiliza unos conjuntos de reglas para identificar problemas dentro del software. Detecta cosas como código duplicado (te recomiendo aquí este post), código muerto (variables, parámetros o métodos sin usar), complejidad de métodos (if innecesarios, etc., te recomiendo aquí este otro post sobre código complejo). Trabaja principalmente con lenguaje Java, aunque, con menos soporte, también posee conjuntos de reglas para JavaScript, xsl y ecmascript. Página oficial: http://pmd.sourceforge.net/. La licencia es: BSD. Alguna cifra, las descargas en sourceforge a día de hoy andan por: 748.736.
Check Style. Herramienta de análisis estático de código que se utiliza para comprobar que el código analizado cumple con una serie de reglas de estilo. Ejemplo, analiza el código según el estandar “Sun Code Conventions” (mira las cabeceras, importaciones de paquetes, Javadoc, etc.). Página oficial: http://checkstyle.sourceforge.net/. Trabaja para Java. La licencia es: GNU Lesser General Public License Version 2.1.
SONAR. Una herramienta de software libre y gratuita que permite gestionar la calidad del código fuente. Al instalarla podremos recopilar, analizar, y visualizar métricas del código fuente. Sonar es básicamente la fusión de las siguientes herramientas Checkstyle y PMD, más otras que no menciono en este post, como Findbugs, Clover y Cobertura. También realiza un histórico de todas las métricas del proyecto. Permite visualizar informes con resumenes de las métricas. Página oficial: http://www.sonarsource.org. Trabaja, principalmente, para Java. Aunque da soporte, gracias a la amplia librería de plugins (algunos de pago), a los siguientes lenguajes: ABAP, C, Cobol, C#, Delphi/Pascal, Flex/ActionScript, Groovy, JavaScript, Natural, PHP, PL/SQL, Visual Basic 6, Web y XML.  La licencia es: LGPL.
Google CodePro Analytix. Otra de las herramientas de calidad software, ofrece un entorno para evaluación de código, métricas, análisis de dependencias, cobertura de código, generación de Test unitarios, etc. Mira las excepciones, refactorizaciones potenciales (te dejo un post de refactorización), convenios de JavaDoc, métricas, etc. Disponible como plugin de Eclipse. Página oficial: http://code.google.com/intl/es-ES/javadevtools/codepro/doc/index.html. Trabaja para Java, concretamente en Eclipse. La herramienta es gratis.
Simian. Herramienta para detectar código duplicado (que es el mayor enemigo de la mantenibilidad, es decir, que si hay código repetido te va a costar más euros mantener el software, te recomiendo aquí este post) en desarrollos realizados con los lenguajes: Java, C#, C, C++, COBOL, Ruby, JSP, ASP, HTML, XML y Visual Basic. Página oficial: http://www.redhillconsulting.com.au/products/simian/. La licencia es libre si su uso está destinado a proyectos OpenSource.
 
Como podéis imaginar hay muchas más herramientas de calidad software, herramientas de este tipo orientadas a evaluar calidad software. Pero en mi experiencia, las anteriores son quizás de las herramientas de calidad software más representativas y ampliamente usadas. Hay muchas más de software libre y también buenas herramientas comerciales. Y en general su demanda ha crecido bastante por su uso en empresas que han externalizado el desarrollo y quieren evaluar las entregas.
Probablemente en los próximos  “oficializaré en el blog” un listado de herramientas de calidad software.
Y si se te ocurre alguna más, déjala en los comentarios de este post.

29 comentarios en “Una lista de herramientas de calidad software imprescindibles”

  1. Pingback: Bitacoras.com

  2. Hola Javier,
    solamente un apunte: Sonar actualmente no tiene soporte para C y C++. Existía un plugin para ello pero no ha sido mantenido y con las nuevas versiones de la herramienta, no funciona.
    Muy buena recopilación.
    Un saludo.

    1. Hola Javier, busco herramienta que permita analizar el código host no a nivel de calidad, sino que me sirva como herramienta en la fase de análisis de mis transacciones, incluso que realice algo como un tipo de diagramación. Agradezco tus comentarios

  3. Javier,
    excelente resumen de la oferta fundamentalmente gratuita y/o open source. Está claro que la necesidad de calidad calidad de software es una realidad y que cada vez las herramientas son más y mejores.
    Los que nos dedicamos a esto no nos podemos dormir 😉 No sé has dónde conoces la herramientas de Optimyth. Si quieres puedes empezar echando un vistazo a lo que tenemos en cloud http://www.checkinginthecloud.com y si tienes tiempo e interés no tienes más que decírmelo y te cuento lo que hacemos.
    Un abrazo,
    J.

  4. ¡Hola a todos!
    Muy buen post de herramientas… Añadiría algunas como Findbugs, JMeter, Selenium, … En esta página se recopilan bastantes alternativas:
    http://java-source.net/open-source/code-analyzers
    Por mi parte añadir que, además del ecosistema de ClinkerHQ que ayuda a poner todas esas herramientas en la nube, hay muchas extensiones interesantes y encima son «made in Spain», como por ejemplo:
    – Sonar City Model (para ver tu código como una ciudad en 3D)
    http://tinyurl.com/78dcm8s
    – Sonar PMD Model Plugin (una integración del modelo de categorías de PMD en Sonar)
    http://tinyurl.com/7fjznoo
    – Sonar ABC Metric (muy útil la métrica ABC que mide el trabajo del código).
    http://tinyurl.com/7sfdreq
    En eXcentia también hemos contribuido a la internacionalización de Sonar desarrollando el paquete en Español con licencia LGPL (¡hay que defender la calidad de software en nuestro idioma!) y con un manual de Sonar on-line también en nuestro idioma.
    También hay otras extensiones para integrar JMeter en el cuadro de mandos de Sonar (también LGPL) o extensiones para añadir logos de proyecto o imagenes…
    ¡Un saludo!

  5. Hola!
    Nosotros en la Universidad Rey Juan Carlos, en el grado de Ingeniería Software, hemos usado la de google para una prácica (de una asignatura de javier por cierto 😉 y nos ha sido la más fácil de usar, mejor que otras como PMD, que tenían más requisitos
    Gracias por mostrarnos tantas otras opciones!

  6. Pingback: ¿Vas a lanzar un proyecto? ¿No sabes con qué proveedor contar? Te asesoramos GRATIS sobre los mejores proveedores TI - Javier Garzás | Javier Garzás

  7. Saludos a todos,
    Alguien me podría recomendar alguna herramienta open source para realizar pruebas estático para analizar el código como: código duplicado, código muerto etc. pero para el AS400?

  8. Alejandro Moraga Díaz

    Buenas tardes:
    Estoy con un problema de limpieza de dependencias no menor. Hace poco tiempo me toco hacerme cargo de la limpieza de un conjunto de proyecto Web (en Java), estos, adjuntan sus dependencias a librerías en el típico archivo classpath, el cual referencia las librerías en el directorio jboss-4.0.5.GA\server\default\lib del servidor jboss (librerías comunes). Es aquí el problema. Los antiguos desarrolladores, tenían el mal habito de cargar toda las librerías que se encontraban en dicho directorio, lo cual solo genera basura dentro del proyecto. Me gustaría saber si existe alguna herramienta que me permita conocer las librerías reales que el proyecto necesita si necesidad de verlas una a una lo cual es muy lento.
    Como dato adicional, nosotros ocupamos el IDE Eclipse para desarrollar nuestras aplicaciones.
    Saludos

  9. Muchas gracias por este gran aporte.
    En la actualidad estudi Ing. en software y encontre la mejor página para quitarme muchas dudas.

  10. Buena recopilación, ojalá vayan apareciendo más. Sobre este punto, una pregunta… prácticamente el 90% de las herramientas que aquí se han citado son para Java, pero, tal y como se han citado en los últimos comentarios, también existen otros lenguajes.
    ¿Alguien conoce herramientas para otros lenguajes, también de bastante uso? Entiéndase .Net, Python, iOS, Android…
    Al fin y al cabo, el post va sobre calidad del software, ¿no?
    Muchas gracias por el post y los comentarios.

  11. Buen día
    Necesito una herramienta que compare código fuente y que genere un reporte o que diga en algún lado, exactamente cuantas líneas nuevas de código tiene y que omita las líneas en blanco y lo que se encuentra comentariado.
    Gracias
    Sandra Milena

    1. Agustín Sánchez

      Buenos días Sandra.
      A bote pronto te recomiendo que uses Kiuwan.
      Además de darte la métrica que buscas, es un plug n play, superfacil de instalar y usar.
      Cubre 21 lenguajes de programación y puedes analizar en modalidad cloud o local. El fabricante permite usar la versión «full» 15 días en https://www.kiuwan.com/signup/free
      Saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Share This
Ir arriba