Descripción del concepto de análisis estático de código para mejorar la calidad del software así como gestionar de mejor forma el proceso de aseguramiento de la calidad con plataformas como Sonarqube.
tics en la vida cotidiana prepa en linea modulo 1.pptx
Administración de la calidad del software a través del análisis estático de código en java version otn 2013
1. Administración de la calidad del
software a través del análisis
estático de código
GuateJUG - OTN Tour Guatemala 2013
César Hernández
CesarHernandezGt
@CesarHgt
CesarHernandezGt/OTN2013
3. Análisis estático de código
● Es la detección sistemática y proactiva de bugs,
fugas de memória y código muerto e ineficiente
entre otros
● No necesita que el programa sea ejecutado para
detectar problemas
4. Beneficios
● Reducción del costo en proceso de QA
● Mejor productividad de desarrollo y calidad del
código fuente
● El análisis del código es automático y no requiere
ejecución del código
● Sencillez de uso por la integración con IDE´S
como Eclipse y Netbeans
6. "Porque hasta las personas más inteligentes
pueden cometer los errores más estúpidos"
-William Pugh-
7. FindBugs
● Identifica bugs bajo la especificación del lenguaje
Java operando a nivel de Bytecodes (.class files)
● No contempla análisis de formato del código fuente.
● Utilizado por empresas como Google, Oracle,
Eclipse, IBM.
9. ● Bad practice
● Correctness
● Malicious code vulnerability
● Multithreaded correctness
● Performance
● Security
● Dodgy code (dudoso)
Descripción de los más de 300 patrones:
http://findbugs.sourceforge.net/bugDescriptions.html
Categorías
10. "En un proyecto de software con diez personas,
probablemente tres de ellas introducen tantos
errores que podríamos considerar su productividad
como negativa."
- Gordon Schulmeyer-
11. PMD
● Permite optimizar nuestro código con la detección
de objetos innecesarios, variables sub utilizadas,
duplicación explícita entre otros.
● Se centra en código que puede ser Optimizado
● Personalización por reglas
13. ● Android
● Basic JSP
● Basic JSF
● Java Beans
● Optimization
● Naming
Descripción de las más de 450 reglas:
http://pmd.sourceforge.net/pmd-5.0.0/rules/index.html
Categorías de reglas
14. "Si el código y los comentarios no coinciden,
posiblemente ambos sean erróneos"
-Norm Schryer-
15. Checkstyle
● Verificador sintáctico de estándares de codificación
● Para el caso de Java, CheckStyle toma como base:
Code Conventions for the Java Programming
Language http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html
● Provee flexibilidad en el grado de revisión del
código
17. Ejemplo de detecciones
Convenciones de nombrado
Anotaciones
Diseño de clases
Imports
Comentarios Javado
Modificadores de acceso
Naming Conventions
Expresiones regulares
Descripción de las más de 120 reglas:
http://checkstyle.sourceforge.net/availablechecks.html
18.
19. Retos
● Diversas herramientas
● Diversos lenguajes de programación
● Necesidad de personalización
● Distribución y estandarización
● Ecosistemas de diversas tecnologías y versiones
● Constante cambio de....
20. ● Plataforma para la administración de la calidad del
código fuente.
● Gran parte de su funcionamiento se base en el
Análisis Estático de Código.
ABAP
C/C++ C-Sharp (C#)
COBOL
Flex
GroovyJavaScript
Natural
Pacbase
PHP
PL/I
PL/SQL
Python
VB.NET
Visual Basic 6
Web (HTML, JSP)
XML
Java