Najczęstsze pytania
Co obejmuje audyt kodu?
Zakres dobieramy do celu: planowanego rozwoju, powtarzających się błędów lub przejęcia aplikacji. Może obejmować architekturę, wybrane moduły, testy, zależności i sposób obsługi danych oraz uprawnień. Przed rozpoczęciem wskazuję, co będę analizować i jakie materiały są potrzebne, aby wynik odpowiadał na konkretne pytania firmy.
Czy analizujesz cały kod aplikacji?
Nie każdy audyt wymaga przeglądu wszystkich plików z jednakową szczegółowością. Przy większym systemie wybieramy obszary krytyczne i reprezentatywne scenariusze, uwzględniając ryzyko oraz dostępny czas. W raporcie opisuję zakres sprawdzenia i ograniczenia wniosków, aby oceny wybranych fragmentów nie traktować jako gwarancji jakości całego produktu.
Ile kosztuje audyt kodu?
Koszt zależy od rozmiaru i złożoności systemu, celu analizy, dostępności dokumentacji oraz oczekiwanego poziomu szczegółowości. Znaczenie ma też możliwość uruchomienia aplikacji i uzyskania wyjaśnień od zespołu. Po wstępnym rozpoznaniu proponuję zakres i założenia wyceny; dodatkowe obszary uzgadniamy przed rozszerzeniem prac.
Jak długo trwa audyt?
Harmonogram ustalam po ocenie zakresu, dostępności materiałów i zależności od osób znających system. Analiza konkretnego modułu wymaga innego nakładu pracy niż przegląd rozbudowanej aplikacji. W planie uwzględniam również omówienie pytań z zespołem i przygotowanie rekomendacji, ponieważ samo znalezienie problemów nie kończy audytu.
Czy audyt kodu jest testem penetracyjnym?
Nie. Przegląd kodu może ujawnić ryzyka bezpieczeństwa w analizowanych obszarach, ale nie zastępuje osobno zaplanowanych testów penetracyjnych. Jeśli celem jest szersza ocena bezpieczeństwa, ustalamy potrzebny zakres i dodatkowe działania. Raport nie powinien być traktowany jako potwierdzenie, że w całej aplikacji nie występują podatności.
Czy potrzebujesz dostępu do danych produkcyjnych?
Zwykle zaczynam od repozytorium, dokumentacji i środowiska testowego z odpowiednimi przykładami danych. Dostęp do informacji produkcyjnych ograniczamy do tego, co jest rzeczywiście potrzebne do uzgodnionej analizy. Przed przekazaniem materiałów ustalamy uprawnienia, sposób dostępu i zasady pracy z informacjami firmy.
Co jeśli brakuje dokumentacji lub testów?
Uwzględniam te braki w planie analizy i zbieram kontekst z kodu, konfiguracji oraz rozmów z zespołem. Sprawdzam, które scenariusze są najważniejsze dla biznesu i gdzie brak testów zwiększa ryzyko zmian. Odtworzenie wiedzy może wymagać dodatkowego czasu, a niepotwierdzone założenia wyraźnie zaznaczam w ustaleniach.
Czy obecny zespół musi brać udział w audycie?
Dostęp do osób znających system pomaga wyjaśnić wymagania, historię zmian i przyczyny decyzji technicznych. Uzgadniamy zakres ich udziału, aby analiza nie wymagała ciągłego odrywania zespołu od pracy. Jeśli nie ma możliwości rozmowy, mogę oprzeć się na dostępnych materiałach, wskazując ograniczenia wynikające z brakującego kontekstu.
Czy audyt może oznaczać konieczność przepisania aplikacji?
Nie zakładam przebudowy jako domyślnego wyniku. Najpierw oceniam, czy problemy można rozwiązać stopniowo i jak takie prace łączą się z planem rozwoju. Jeśli wymiana części systemu ma uzasadnienie, przedstawiam argumenty i ograniczenia tego wariantu. Decyzja powinna uwzględniać także migrację danych, ciągłość działania i koszt utrzymania.
W jakiej formie otrzymam wyniki?
Przekazuję raport z opisem zakresu, ustaleniami, przykładami i rekomendacjami uporządkowanymi według priorytetów. Wyjaśniam konsekwencje dla produktu oraz wskazuję kwestie wymagające dalszego sprawdzenia. Wyniki omawiam z Tobą i uzgodnionymi osobami z zespołu, aby raport mógł posłużyć do podjęcia decyzji i zaplanowania prac.
Czy możesz wdrożyć rekomendacje lub sprawdzić naprawy?
Tak. Po audycie możemy ustalić realizację wybranych zmian, wsparcie obecnego zespołu albo przegląd wykonanych poprawek. Są to osobno uzgadniane prace, z określonym zakresem i odpowiedzialnością. Przy planowaniu napraw uwzględniamy priorytety biznesowe, zależności oraz sposób sprawdzenia, czy dany problem został rozwiązany.