Produkt firmy Sonatype wykorzystuje głęboką analizę kodu, aby sugerować poprawki bugów.
Wykorzystali doświadczenie MuseDev
Firma Sonatype, zajmująca się zarządzaniem łańcuchem dostaw oprogramowania i narzędziami zabezpieczającymi, wydała właśnie Sonatype Lift. Jest to platforma do głębokiej analizy kodu, która daje programistom możliwość skanowania w poszukiwaniu szerokiego zakresu typów błędów i problemów z kodem źródłowym.
Premiera nastąpiła po przejęciu przez tą firmę na początku roku platformy analizy kodu MuseDev. Stephen Magill - wcześniej dyrektor generalny MuseDev a obecnie wiceprezes ds. innowacji produktowych w Sonatype - mówi, że Lift to połączenie technologii pierwotnie opracowanej w MuseDev z funkcjami analizy składu oprogramowania które były już opracowywane w Sonatype.
Połączyliśmy obie technologie w Lift.
Jeden przycisk i zaczynamy: wiele języków i platform
Część efektów tej synergii pochodzi z obszaru, w którym specjalizował się Magill. Zajmował się on bowiem analizą statyczną. Zauważył, że nieraz samo uruchomienie niektórych narzędzi może być pierwszym problemem dla programistów, którzy chcą przeanalizować swój kod. Lift oferuje różne analizatory, w tym Infer z Facebooka i ErrorProne z Google, które działają w 11 różnych językach — Java, C, C++, JavaScript, Python, Golang, Ruby, Kotlin, Shell, Haskell i Markdown.
Zbudowaliśmy wiele automatyzacji wokół wdrażania tych narzędzi, dzięki czemu naprawdę łatwo jest rozpocząć korzystanie z nich za pomocą jednego przycisku.
Lift obsługuje GitHub, GitLab i Bitbucket, na których to platformach narzędzie analizuje kod i integruje wyniki w ramach procesu przeglądu kodu. Na przykład Facebook odnotował podczas testowania swojego analizatora Infer, że przegląd kodu z użyciem Lifta poprawił wskaźniki naprawy błędów o 70%. Zdaniem Magilla:
Myślę, że to świetny przykład tego, jak ważne jest prawidłowe zintegrowanie narzędzi – wówczas łatwiej jest po prostu naprawić błąd w jednej chwili niż prowadzić dyskusje na temat tego, czy należy to naprawić i kiedy.
Jak to działa?
Lift skanuje nie tylko wyliczone wyżej repozytoria kodu ale także analizuje zależności, wprowadzając dane analizy składu oprogramowania (SCA) z indeksu OSS INDEX firmy Sonatype w celu zgłaszania podatnych na ataki bibliotek typu open source. Oprócz problemów z bezpieczeństwem Lift szuka również wadliwości związanych ze stylem i jakością kodu, które mogą mieć wpływ na wydajność. Lift oferuje na przykład użycie adnotacji override w Javie, gdy jawnie nadpisujesz metodę z klasy nadrzędnej.
To przejaw najlepszej praktyki. Oczywiście, możesz tego nie robić, kompilator coś tam sobie ponarzeka, ale kod ostatecznie skompiluje się poprawnie. Ale naprawdę jest to coś, co większość zespołów Java, z którymi rozmawiasz, wolałaby mieć
Ponadto Magill powiedział, że Lift wykracza poza inne narzędzia, oferując swoim użytkownikom skanery do głębokiej analizy kodu, znajdujące błędy, które w przeciwnym razie pozostałyby niezauważone.
Będziemy nawet oflagowywać takie rzeczy, jak: „Och, używasz tej funkcji bibliotecznej w sposób, który może spowodować null pointer exception” czy „Oj, prawdopodobnie nigdy nawet nie spojrzałeś na kod źródłowy tej funkcji bibliotecznej, więc jeśli nie wiesz, że w niektórych przypadkach zwraca null to ci o tym powiemy.
Lift jest dostępny zarówno jako SaaS, jak i on-premises.