Testy przed premierą

Narzędzia FailSafe i SmartCheck pomagają programistom korzystającym z Visual Basica wykrywać błędy w aplikacjach. Producentem jest firma NuMega, należąca obecnie do Compuware.

Narzędzia FailSafe i SmartCheck pomagają programistom korzystającym z Visual Basica wykrywać błędy w aplikacjach. Producentem jest firma NuMega, należąca obecnie do Compuware.

FailSafe jest specjalnym analizatorem, który do istniejącego kodu Visual Basic dodaje własne procedury obsługi błędów. Wzorce, służące do generowania procedur, tworzy programista, co pozwala np. spolszczyć komunikaty pojawiające się na ekranie czy dostosować kod gotowych rozwiązań do własnych potrzeb. Głównym zadaniem FailSafe jest precyzyjne określenie miejsca i przyczyn błędu w chwili wykrycia nieprawidłowości w aplikacji.

FailSafe w działaniu

Operacje dokonywane przez to narzędzie są w pełni odwracalne, tzn. z pewnych fragmentów kodu można usunąć dodatki naniesione przez FailSafe. Można także stosować różne wzorce, określając np. że tylko w niektórych miejscach obsługa błędów ma być bardzo dokładna. Analizator może też ponumerować linie programu.

Kod utworzony przez FailSafe pozwala zapisywać specjalny log, zawierający dokładną historię działania programu. Dzięki temu łatwiej wykryć np. nie zamierzone zagnieżdżenia w procedurach obsługi zdarzeń czy przekroczenie dostępnego stosu przy rekurencji. FailSafe może współpracować z dowolną wersją Visual Basic (powyżej 3.0).

Warto podkreślić, że twórcy FailSafe założyli, iż kod obsługi błędów naprawdę służy do wykrywania nieprawidłowych sytuacji w programie, a nie jest trikiem pozwalającym unikać konstruowania skomplikowanych warunków. Często programiści Visual Basica korzystają np. z instrukcji On Error Resume Next w sytuacji, gdy nie chcą napisać kodu, który sprawdzi, czy następne polecenie nie spowoduje błędu. W takich sytuacjach FailSafe nie będzie tworzył w danej procedurze własnego kodu obsługi błędów.

SmartCheck - trudne błędy

Narzędzie SmartCheck pełni podobną rolę, jak FailSafe, ale nie wprowadza zmian w kodzie programu. Jest uzupełnieniem standardowego debuggera. Wszystkie błędy wykryte w programie są rejestrowane dokładniej niż w FailSafe.

SmartCheck pozwala wykrywać błędne wywołania funkcji API, w tym API DirectX czy ODBC. Zawiera obszerną bibliotekę opisów i komentarzy poszczególnych kodów błędów. Może śledzić procedury obsługi błędów napisane w Visual Basicu (jest to chyba najwygodniejszy sposób sprawdzenia, czy napisana procedura obsługi błędu działa poprawnie). Wykrywa także przekazanie nieprawidłowego parametru, a co ważniejsze może prześledzić drogę od miejsca, w którym po raz pierwszy taka wartość została utworzona. SmartCheck może wykryć nieprawidłową automatyczną konwersję typu, np. gdy programista przypisuje wartość zmiennoprzecinkową do zmiennej przechowującej liczby całkowite.

Dostępnych jest wiele opcji pozwalających ograniczyć liczbę zgłaszanych błędów - np. można zażądać, by rejestrowany był tylko pierwszy błąd danego typu. Narzędzie ma bardzo rozbudowany moduł, określający, który w rzeczywistości komponent programu odpowiada za błąd. Pozwala to określić, czy np. błąd wystąpił wewnątrz bibliotek obsługujących COM, w konkretnej kontrolce czy w tworzonej aplikacji.

SmartCheck wykrywa także przecieki pamięci (gdy program rezerwuje, ale nie zwalnia pamięci), błędy stosu, a także kontroluje dostępne zasoby systemowe. Interesującą opcją jest badanie "zgodności" programu z danymi wymogami. Można np. sprawdzić, czy wykorzystywane funkcje API są dostępne dla Windows CE 2.0 czy Windows 95.

Porównanie

SmartCheck jest narzędziem towarzyszącym debuggerowi, pozwala stosunkowo łatwo wykryć "trudne" błędy, a co ważniejsze - odkryć rzeczywistą przyczynę usterki. Uruchamianie programu pod kontrolą SmartCheck znacząco spowalnia działanie aplikacji.

Natomiast FailSafe automatyzuje tworzenie kodu obsługi błędów w prawie ukończonej aplikacji, by ostateczny użytkownik (lub tester) mógł przekazać programiście bardziej szczegółowy raport niż komunikat "to nie działa!". Kod dodawany przez FailSafe niemal nie spowalnia działania programu.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200