"Ricercare la qualità del codice sviluppato è fondamentale, è un processo lento e continuo"
Il nostro relatore, Alessandro Candon, ci ha mostrato il passaggio da "ognuno a modo suo" a una linea comune eseguita da tutta l'equipe IT. Siamo scesi nei dettagli dei vari tool, KPI e metodologie utilizzate e sperimentate all'interno del Team IT di Decathlon Italia.
2. Sono Alessandro Candon
Attualmente Technical Leader e Sviluppatore in
Decathlon Italia
CIAO
alessandro.candon@decathlon.com
@alexcandy91
https://github.com/acando14
6. PhpCs
PHP_CodeSniffer è un insieme di due script PHP;
lo script phpcs converte i file PHP, JavaScript e CSS per rilevare le violazioni di
uno standard di codifica definito
Lo script phpcbf è utile a correggere automaticamente le violazioni standard di
codifica.
PHP_CodeSniffer è uno strumento di sviluppo essenziale che garantisce che il
codice rimanga pulito e coerente.
14. Testing
Cosa sono i TEST?
Confermano che il codice fa quello che pensiamo debba fare...
Aiutano lo sviluppatore a ragionare sulla funzionalità
Danno un FeedBack immediato in caso di cambiamenti
Aiutano a miglorare il disegno del software
Ti permettono di evitare regressioni istantaneamente
18. Testing
Valore in percentuale delle linee di codice in cui passano i test
rispetto al totale.
Utilissimo per ricercare porzioni di codice non testate.
Inutile per determinare la qualità dei test fatti.
Falsa sensazione di sicurezza.
Coverage
20. Infection
Mutation TESTING
Ci aiutano a determinare la QUALITA’ dei test fatti.
Mutation Testing è una tecnica di test basata sugli errori che fornisce un
criterio chiamato Mutation Score Indicator (MSI).
L'MSI può essere utilizzato per misurare l'efficacia di una batteria di test in
termini di capacità di rilevare errori.
21. Infection
Le Mutazioni
● Return Values
● Loop
● Increments
● Sorting
● Literal Numbers
● Exceptions
● Type Casting
● Regex
● Function Signature
● Unwrap Function
● Binary Arithmetic
● Round Family
● Boolean Substitution
● Conditional Boundaries
● Equal or Identical Checks
● Negated Conditionals
22. Infection
Cosa può succedere ai
mutanti?
Killed : Il mutante viene individuato ed ucciso
Not Covered : I test non passano attraverso
il codice mutato
Not Detected : il mutante è riuscito a
scappare
23. Infection
Cosa può succedere ai
mutanti?
Error : la mutazione ha generato un Fatal Error
TimeOut : il test è andato in timeout
30. Sonar
SonarQube
SonarQube esegue un’analisi statica del codice al fine di individuare bug,
code-smells e vulnerabilità.
Offre inoltre numerosi report su : codice duplicato, coding standards, tests,
copertura dei test, complessità del codice, commenti, bugs, ...
SonarQube è un tool di Continuous Inspection
34. Conclusioni
All’inizio può risultare che tutti questi processi possano portare a un
dispendio eccessivo di tempo e risorse.
In realtà, per esperienza personale, è un investimento a lungo termine.
Garantisce sicurezza e coerenza a lungo termine tra i molti sviluppatori che
contribuiscono allo sviluppo
Rende meno complesse evoluzioni future.