→ Slide 1
Statyczna analiza kodu - FXCop
→ Slide 2
FxCop
darmowe narzędzie firmy Microsoft do statycznej analizy kodu .Net.
wbudowane w VS Premium/Ultimate, dostępne w Windows SDK
analizuje kod pośredni, a nie kod źródłowy
wykrywa ponad 200 różnych defektów
możliwość definiowania własnych reguł
narzędzie konsolowe oraz
GUI (w starszych wersjach)
→ Slide 3
Wykrywane wady
-
konwencja nazewnicza
zwalnianie zasobów
konstrukcja bibliotek
lokalizacja (GlobalizationRules)
wydajność
bezpieczeństwo, np. SQL Injection
DataFlow (przepływ danych)
-
→ Slide 4
FxCop w VS 2013
Build → Run Code Analysis
Analyze → Run Code Analysis
W VS 2015 wyniki wyświetlane
w oknie Error list
→ Slide 5
Wybór reguł
Wybór zestawu reguł:
Project → Propoerties → Common Properties → Code Analysis Settings
→ Slide 6
Wyłączanie ostrzeżeń
[SuppressMessage("Microsoft.Design", "CA1039:ListsAreStrongTyped")]
public class MyClass
{
}
[module: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "MyNamespace")]
→ Slide 7
TFS i analiza kodu
→ Slide 8
Aplikacja konsolowa
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\FxCop\
→ Slide 9
Metryki kodu
Analyse → Calculate Code Metrics
-
Cyclomatic Complexity - złożoność struktury kodu, ilość różnych ścieżek. Program z dużą liczbą ścieżek wymaga wielu testów do pokrycia kodu
Depth of Inheritance - głębokość dziedziczenia
Class Coupling - uwikładnie klas, ilość unikatowych obiektów od których zależy badany fragment kodu
Lines of Code
→ Slide 10