Skip to content

Commit 14a4aaf

Browse files
committed
static analysis post added
1 parent c7235ce commit 14a4aaf

File tree

4 files changed

+36
-0
lines changed

4 files changed

+36
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
layout: post
3+
title: "Analiza statyczna"
4+
date: 2019-02-18
5+
categories: ["Testowanie"]
6+
image: testing/static_analysis
7+
github: testing/tree/master/static_analysis
8+
description: "Testowanie"
9+
keywords: "testowanie, testing, testy, analiza, statyczna, gradle, lint, pmd, findbugs, android, programowanie, programming"
10+
---
11+
12+
## Definicja
13+
Statyczna analiza kodu wykorzystywana jest w celu znajdywania błędów w kodzie, wyszukiwanie luk i niedopatrzeń oraz do sprawdzania czy napisany kod spełnia zasady dobrego programowania i przestrzega wytycznych. Co więcej pozwala na detekcję hipotetycznych błędów, które mogły nie zostać wykrytę przez testy jednostkowe i manualne, a także ułatwia definiowanie i przestrzeganie standardów kodu w zespole. Dzięki temu utrzymanie odpowiedniej jakości kodu staje się łatwiejsze. Statyczna analiza jest częścią procesu ciągłej integracji (continous integration) i może być wykorzystywana również jako narzędzie wspierające testowanie (białoskrzynkowe) oraz refactoring. Dokonywana analiza przeprowadzana jest bez wykonania kodu i odbywa się przy pomocy różnych narzędzi analitycznych takich jak np. lint, pmd, findbugs czy checkstyle dostępnych jako plugin dla Gradle oraz platform wspierających ciągłą integracje jak np. SonarQube. Weryfikują one zgodność kodu w zestawieniu do zbioru reguł. W przypadku niespełnienia zasad informują o potencjalnych błędach i zagrożeniach.
14+
15+
## Checkstyle
16+
Checkstyle analizuje kod źródłowy weryfikując jego standardy oraz konwencję w stosunku do zbioru wybranych zasad. Skupia się przede wszystkim na analizie stylu kodu (np. nazwenictwo, klamry).
17+
18+
//TODO
19+
20+
## Pmd
21+
PMD podobnie jak checkstyle przeprowadza analizę kodu w stosunku do zbioru zasad, jednakże skupia się on newralgicznych i opuszczonych fragmentach kodu (np. nieużywane zmienne, puste bloki).
22+
23+
//TODO
24+
25+
## Findbugs
26+
Findbugs działając w oparciu o kod bajtowy wykonuje analizę w poszukiwaniu potencjalnych problemów z listy znanych błędów projektowych i złych praktyk (np. jawnie zapisane hasło, klasa testowa nie posiada testów, metoda prywatna nie jest nigdy wywoływana).
27+
28+
//TODO
29+
30+
## Lint
31+
Lint jest narzędziem dostarczonym przez Android Studio, który podobnie jak wspomniane wcześniej pluginy sprawdza pliki źródłowe pod kątem potencjalnych błędów, optymalizacji poprawności, bezpieczeństwa, wydajności, użyteczności i dostępności kodu. Z uwagi na integracje ze środowiskiem programistycznym nie wymaga konfiguracji.
32+
33+
//TODO
34+
35+
## SonarQube
36+
//TODO
324 KB
Loading
16.5 KB
Loading
41.9 KB
Loading

0 commit comments

Comments
 (0)