Czym jest TIOBE?
TIOBE to holenderska firma założona w 2000 roku, specjalizująca się w ocenie i monitorowaniu jakości oprogramowania. W branży IT znana jest z dwóch głównych powodów:
- TIOBE Programming Community Index - miesięczny ranking popularności języków programowania, uznawany za jeden z najbardziej miarodajnych wskaźników trendów w świecie programowania. Jeden z takich rankingów opisywaliśmy tutaj.
- TIOBE Quality Indicator (TQI) - model oceny jakości kodu, opracowany na podstawie analizy ponad miliarda linii kodu przemysłowego.
Firma współpracuje z dużymi liderami technologicznymi, takimi jak ASML, Philips, TomTom czy Huawei, co pozwoliło jej zgromadzić dość spore doświadczenie w zakresie oceny jakości oprogramowania w różnych sektorach - od systemów krytycznych dla bezpieczeństwa po aplikacje komercyjne.
O TQI
TIOBE Quality Indicator ewoluował przez ponad 20 lat praktycznych doświadczeń. Model powstał w odpowiedzi na potrzebę obiektywnego i praktycznego sposobu mierzenia jakości kodu. Obecnie, w wersji 4.17 (2024), jest dojrzałym narzędziem łączącym najlepsze praktyki inżynierii oprogramowania z pragmatycznym podejściem do oceny jakości. Początkowo model skupiał się na podstawowych metrykach jak złożoność cyklomatyczna, stopniowo włączając nowe aspekty jak bezpieczeństwo i analiza abstrakcyjna. Obecna wersja wprowadza system wag oparty na empirycznych dowodach, a sam model jest stale doskonalony w oparciu o analizę rzeczywistych projektów.
Osiem filarów jakości
TQI opiera się na ośmiu metrykach, z których każda mierzy inny aspekt jakości kodu:
- Code Coverage (20%) - Czy kod jest odpowiednio przetestowany? TQI analizuje pokrycie kodu testami jednostkowymi.
- Abstract Interpretation (20%) - Czy w kodzie mogą wystąpić krytyczne błędy wykonania? Ta metryka wykrywa potencjalne problemy jak null pointer dereferences czy dzielenie przez zero.
- Cyclomatic Complexity (15%) - Jak skomplikowany jest kod? Im wyższa złożoność, tym trudniej kod testować i utrzymywać.
- Compiler Warnings (15%) - Co mówią ostrzeżenia kompilatora? Czasem ignorowane, mogą wskazywać na poważne problemy.
- Coding Standards (10%) - Czy kod jest zgodny z przyjętymi standardami? To klucz do łatwej konserwacji.
- Code Duplication (10%) - Ile kodu jest zduplikowane? Duplikacje zwiększają ryzyko błędów przy modyfikacjach.
- Fan Out (5%) - Jak silnie moduły są ze sobą powiązane? Wysoka współzależność utrudnia testowanie.
- Security (5%) - Czy kod jest odporny na typowe zagrożenia bezpieczeństwa?
Klasyfikacja
Do oceny jakości kodu TQI używa intuicyjnej skali ocen od A do F, podobnej do tej stosowanej dla etykiet energetycznych:
- A (≥90%) - jakość wybitna
- wymagana dla systemów krytycznych
- minimalne ryzyko awarii
- B (≥80%) - jakość dobra
- standard dla systemów medycznych
- wysoka niezawodność
- C (≥70%) - jakość zadowalająca
- odpowiednia dla systemów finansowych
- akceptowalne ryzyko
- D (≥50%) - jakość umiarkowana
- E (≥40%) - jakość słaba
- F (<40%) - jakość niedostateczna
Klasyfikacje w poziomach D-F opisują jakość wymagająca poprawy. Wliczają się w nią różne poziomy ryzyka z rekomendacją koniecznych działań naprawczych.
Wymagania zależne od ryzyka
Co ciekawe, TQI proponuje różne poziomy wymagań w zależności od krytyczności aplikacji:
- systemy, których awaria może spowodować masowe ofiary (>100) - wymagany poziom A
- systemy, których awaria może być śmiertelna - poziom B
- systemy narażone na znaczne straty finansowe - poziom C
- pozostałe systemy - poziom D
Podsumowanie
TIOBE Quality Indicator to dość ciekawe i jednocześnie kompleksowe narzędzie do oceny jakości kodu, które może znacząco wspomóc proces zapewniania jakości. Dla testerów może być uzupełnieniem tradycyjnych metod, pozwalając wcześniej identyfikować potencjalne problemy, efektywniej planować testy, obiektywnie oceniać jakość kodu i lepiej komunikować się z zespołem deweloperskim.
Wdrożenie TQI wymaga pewnych nakładów, ale korzyści w postaci wczesnego wykrywania problemów i redukcji kosztów napraw mogą znacznie przewyższyć początkowe inwestycje.