r   e   k   l   a   m   a
r   e   k   l   a   m   a

Kaspersky Lab ma problemy z testowaniem własnego kodu

Strona główna AktualnościOPROGRAMOWANIE

W minionym tygodniu użytkownicy narzędzia Kaspersky Password Manager, służącego do automatyzacji procesu logowania do witryn internetowych, przy jednoczesnym zwiększeniu bezpieczeństwa tego procesu, otrzymali jego aktualizację. Aktualizacja popsuła menedżera haseł, przy okazji obnażając wstydliwą sprawę – oprogramowanie tego producenta najwyraźniej nie przechodzi testów regresji.

Kiedy użytkownik potrzebuje hasła z Password Managera, otwiera go za pomocą głównego hasła, kopiuje potrzebne hasło (które w formularzu widoczne jest w postaci kropek), a następnie zamyka narzędzie. Nowe hasła dodawać można przez prosty formularz, w którym ustawić można m.in. datę wygaśnięcia hasła (czy też zaznaczyć, że hasło nie wygasa nigdy). Gdy jednak Password Manager otrzymał łatkę „C”, nagle okazało się, że wszystkie zapisane w nim hasła wygasły 1 stycznia… 1601 roku. Co gorsza, niemożliwe było wprowadzenie jakichkolwiek zmian – opcja była wygaszona.

Wkrótce po tym, jak z różnych części świata zaczęły spływać doniesienia o niespodziewanej regresji, producent poinformował, że problem sprawdzi i niebawem wyda łatkę „D” – miała się ona pojawić 24 października. Błędy zdarzają się każdemu, i w zasadzie nie byłoby tu o co kruszyć kopii, gdyby nie analiza problemu, którą przeprowadził Andrew Binstock, redaktor deweloperskiego serwisu Dr Dobbs. Jego zdaniem usterka dowodzi, że Kaspersky nie stosuje żadnych solidnych praktyk testowania oprogramowania.

Binstock może być oczywiście uprzedzony do sprawy – przyznaje, że jednym z jego autorytetów jest Robert „Uncle Bob” Martin, współautor manifestu zwinnego programowania i wyznawca podporządkowania procesu deweloperskiego testom. Z drugiej jednak strony przypomina, że jeszcze do niedawna mówiło się, że skoro można było bez testów deweloperskich wysłać człowieka na Księżyc, to równie dobrze można pisać dobrej jakości kod bez testów. Taką postawę ma wciąż wielu programistów. Skąd jednak mogą oni wiedzieć, jak wprowadzane przez nich zmiany nie wypływają niekorzystnie na działanie istniejącego już kodu? Testy, działając jako czujniki monitorujące zachowanie kodu, pozwalają w porę to wychwycić – tłumaczy redaktor Dr Dobbsa.

Skąd jednak podejrzenia, że Kaspersky nie testuje swojego oprogramowania? Po pierwsze – zasięg problemu, dotyczący różnych konfiguracji Windows 7, w tym takich, na których były zainstalowane wyłącznie aplikacje Microsoftu, po drugie – ta ciekawa data wygaśnięcia ważności hasła, która wskazuje na mało przemyślane wykorzystanie przez programistów Kasperskiego inwariantów (czyli tych warunków programu, które zawsze są prawdziwe). W tym wypadku inwariantem programu, jak pisze Binstock, powinno być założenie, że data wygaśnięcia haseł nie może być wcześniejsza, niż data wydania oprogramowania. Jeśli przykładowo Password Manager został wydany 1 lipca 2011 roku, to użytkownik nie mógłby podać wcześniejszej daty wygaśnięcia. Wszelkie odstępstwa od tego są przejawem błędu.

Tymczasem pojawiająca się data z 1601 roku pokazuje, że wykorzystano niewłaściwe dane jako coś w rodzaju kodu błędu. Wykorzystywanie pól określonego typu do reprezentacji kompletnie odmiennych danych nie jest praktyką nieznaną – stosowało się ją często w systemach wbudowanych o minimalnej ilości pamięci. Jednak dla aplikacji desktopowych to niedopuszczalny błąd. Z jednej strony wyświetla się użytkownikowi bezsensowne dane, z drugiej psuje się inwariant, tak więc wszystkie testy muszą dodatkowo testować wartości zmiennych pod kątem wszystkich nietypowych wartości, które z perspektywy programisty są jednak dopuszczalne. Właściwą praktyką, jak wyjaśnia redaktor Dr Dobbsa, byłoby stosowanie oddzielnych pól dla błędów, z niezależną diagnostyką. Utrzymuje to spójność testów i pozwala zachować czystość i przejrzystość kodu.

Co najgorsze, reakcja pracowników Kasperskiego wygląda niezbyt ciekawie – na forum nie ma żadnych wyjaśnień poza zapowiedzią wydania kolejnej łatki... która właśnie została odsunięta w czasie, do 29 października. To kolejny dowód na to, że pakiet testów dla Password Managera nie wygląda najlepiej – a jak jest z innymi aplikacjami tego uznanego dostawcy rozwiązań z zakresu bezpieczeństwa IT?

r   e   k   l   a   m   a
© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.