
Nigdy nie korzystałem z Dr. Web. Nie mam pojęcia, jak to działa. Ale to nie przeszkodziło mi napisać dla niego kilku testów automatycznych (a tylko lenistwo powstrzymało mnie przed napisaniem jeszcze kilkudziesięciu):
- Test instalacji Dr. Web;
- Test ograniczenia dostępu do urządzeń zewnętrznych (pendrive'ów);
- Test ograniczenia dostępu do katalogu między programami;
- Test ograniczenia dostępu do katalogu między użytkownikami systemu (rodzicielska kontrola).
Takie i wiele innych testów można tworzyć jak gorące bułeczki, i to nie tylko w odniesieniu do Dr. Web, i nie tylko w odniesieniu do programów antywirusowych. W tym artykule opowiem, jak to zrobić.
Przygotowanie
Do testów potrzebujemy wirtualnej maszyny z Windows na pokładzie. Przygotowałem ją ręcznie, wykonując na niej następujące czynności:
- Po prostu zainstalowałem Windows 10 Pro x64;
- Podczas instalacji utworzyłem głównego użytkownika "testo" z hasłem "1111";
- Włączyłem autologowanie dla tego użytkownika;
Do automatyzacji testów będę używał platformy Testo. Co to jest i jak z tego korzystać, można przeczytać . Teraz potrzebujemy zaimportować gotową wirtualną maszynę do testów automatycznych. Można to zrobić bardzo łatwo:

Zakłada się, że /path/to/win10.qcow2 — to ścieżka do dysku tej wirtualnej maszyny, którą przygotowałem ręcznie. Na tym przygotowanie się kończy, a zaczyna akcja.
Test nr 1 — Instalujemy Dr. Web!
Na początek musimy rozwiązać kwestię przeniesienia dystrybucji Dr. Web do wirtualnej maszyny. Można to zrobić (na przykład) za pomocą pendrive'a:

Wszystko, co musimy zrobić, to umieścić instalator Dr. Web w folderze ${DR_WEB_DIR} (dokładną wartość tego parametru podamy przy uruchamianiu testo). A Testo samo zadba o to, aby ten instalator znalazł się na pendrive'ie.
Teraz możemy przejść do pisania testu. Na razie zaczniemy test od prostych rzeczy: włączymy wirtualną maszynę (po jej utworzeniu będzie wyłączona), poczekamy, aż pojawi się pulpit, włączymy pendrive'a i otworzymy jego zawartość za pomocą eksploratora:

Zrzut ekranu w momencie zakończenia scenariusza

Można oczywiście uruchomić instalator bezpośrednio stąd, z samego pendrive'a. Ale lepiej zrobimy wszystko zgodnie z zasadami — skopiujemy instalator na pulpit i uruchomimy instalator stamtąd. Jak skopiować plik? Jak by to zrobił człowiek?

Zrzut ekranu, na którym jeszcze trwa kopiowanie pliku

Kopia została pomyślnie zakończona! Teraz możesz zamknąć okno z pendrivem i go wyjąć:

Zrzut ekranu po zamknięciu eksploratora

Teraz, gdy instalator znajduje się na pulpicie, musimy dwukrotnie kliknąć na niego, aby uruchomić proces instalacji. A sama instalacja sprowadza się do prostego klikania w przyciski i zaznaczania opcji i nie stanowi wielkiego zainteresowania:

Zrzut ekranu na zakończenie instalacji

Kończymy nasz test restartem. Na koniec nie zapomnijmy sprawdzić, czy po restarcie na pulpicie pojawiła się ikona z Dr. Web:

Zrzut ekranu po restarcie

Świetna robota! Zautomatyzowaliśmy instalację antywirusowego Dr. Web! Zróbmy sobie chwilę przerwy i zobaczmy, jak to wygląda w akcji:

Przechodzimy do testowania funkcji.
Test nr 2 — Ograniczenie dostępu do pendrive’ów
Pierwsza funkcja na liście — ograniczenie dostępu do pendrive’ów. Zaplanujemy dość prosty test:
- Spróbujemy włożyć pendrive i stworzyć na nim pusty plik — powinno się udać. Wyciągamy pendrive;
- Włączymy blokadę zewnętrznych urządzeń w Dr. Web Security Center;
- Jeszcze raz wkładamy pendrive i próbujemy usunąć stworzony plik. Działanie powinno być zablokowane.
Stworzymy nowy pendrive, włożymy go do Windows i spróbujemy stworzyć folder. Co może być prostszego?

Zrzut ekranu w momencie zakończenia scenariusza

Tworzymy nowy plik tekstowy przez menu kontekstowe eksploratora:

Zrzut ekranu po zmianie nazwy pliku

Odłączamy pendrive, robiąc to w sposób bezpieczny:

Teraz upewniliśmy się, że z pendrive'em można pracować, więc możemy przejść do jego blokady w Dr. Web Security Center. W tym celu najpierw musimy otworzyć centrum bezpieczeństwa:

Zrzut ekranu z oknem Security Center

Możemy zauważyć, że aby otworzyć dowolną aplikację w Windows, trzeba wykonać właściwie te same kroki (kliknąć na pasek wyszukiwania, poczekać na pojawienie się okna z popularnymi aplikacjami, wpisać nazwę interesującej aplikacji, poczekać, aż pojawi się na liście, a na koniec nacisnąć Enter). Dlatego tę grupę działań można wyodrębnić w makro open_app, do którego jako parametr będzie przekazywana nazwa otwieranej aplikacji:

To makro będzie nam jeszcze potrzebne.
Pierwszą rzeczą, którą zrobimy, otwierając Dr. Web Security Center — włączymy możliwość wprowadzania zmian:

Teraz trochę poklikamy w menu i wejdziemy w opcję "Skonfiguruj zasady dostępu do urządzeń". W tym menu zaznaczymy pole "Blokuj nośniki wymienne".

Zrzut ekranu z oknem Urządzenia i dane osobowe

Spójrzmy teraz na pendrive:

Zrzut ekranu z komunikatem o błędzie

W ten sposób powoli stworzyliśmy pierwszy test na testowanie całkowicie namacalnej funkcji w Dr. Web. Nadszedł czas, aby odpocząć i medytować, patrząc na wyniki naszej pracy:

Test №3 — Ograniczenie dostępu do katalogu między programami
Główna idea tego przypadku testowego polega na przetestowaniu działania Dr. Web przy ograniczeniu dostępu do konkretnego folderu. Dokładniej mówiąc, trzeba zabezpieczyć folder przed jakimikolwiek zmianami, ale dodać wyjątek dla jakiegoś zewnętrznego programu. Sam test wygląda następująco:
- Zainstalujemy na systemie operacyjnym zewnętrzny program, dla którego później dodamy wyjątek przy dostępie do chronionego folderu. Dziś zewnętrznym programem dnia jest menedżer plików ;
- Tworzymy folder z plikiem, który będziemy bronić wszystkimi siłami;
- Otworzymy centrum bezpieczeństwa Dr. Web i włączymy tam ochronę tego folderu;
- Skonfigurujemy wyjątek dla FreeCommander;
- Spróbujemy usunąć plik z chronionego folderu w zwykły sposób (przez eksplorator Windows). Nie powinno się udać;
- Spróbujemy usunąć plik przez FreeCommander. Powinno się udać.
Ojej, dużo pracy. Szybciej zaczynajmy — szybciej skończymy.
Pierwszy punkt, instalacja FreeCommander nie różni się zbytnio od instalacji Dr.Web. Zwykła rutyna: włożono pendrive'a, uruchomiono instalator i tak dalej. Pomińmy to i przejdźmy od razu do interesującej części.
Jeśli jesteś ciekaw, jak zainstalować FreeCommander
Zacznijmy od prostego: utworzymy pendrive'a, na który umieścimy dystrybucję FreeCommander, a następnie w teście włożymy pendrive'a do systemu operacyjnego i otworzymy go:

Potem kilka kliknięć, aby rozpocząć instalację:

Instalacja nie jest zbyt interesująca, po prostu klikamy "Dalej" w każdym kroku, a na końcu pamiętamy, aby odznaczyć pola dotyczące przeglądania ReadMe i natychmiastowego uruchamiania FreeCommander.

Kończymy test zamykając wszystkie okna i wyciągając pendrive'a.

Gotowe!
Aby pracować z Dr. Web, stworzymy nowy test dr_web_restrict_program, który będzie oparty na wyniku pracy wcześniejszego testu win10_install_freecommander.
Zaczniemy test od stworzenia folderu Protected na pulpicie:

Zrzut ekranu po utworzeniu folderu

Wchodzimy do folderu Protected i tworzymy tam plik my_file.txt, który będzie pełnił rolę chronionego pliku:

Och, też należałoby to zrealizować w formie makra, ale trudno …
Zrzut ekranu po utworzeniu pliku

Świetnie, teraz musimy włączyć ochronę folderu. Idziemy znaną drogą i otwieramy Dr. Web, nie zapominając o włączeniu trybu zmian. Następnie przechodzimy do menu "Ochrona przed utratą danych".

Zrzut ekranu z oknem Ochrony przed utratą danych

Trochę popracujemy myszką i dodamy nasz folder Protected do listy chronionych:

Zrzut ekranu z kreatorem dodawania chronionego folderu

A teraz musimy skonfigurować wyjątek dostępu do folderu dla FreeCommander. Jeszcze trochę pracy myszką:

Zrzut ekranu z dodanym programem wyjątkiem

Teraz ostrożnie zamykamy wszystkie okna i próbujemy usunąć plik "my_file.txt" standardowym sposobem:

Zrzut ekranu z komunikatem od Dr.Web

Ale nic się nie udało — to oznacza, że Dr. Web naprawdę zadziałał! Połowa testu za nami, ale musimy jeszcze sprawdzić, czy wyjątek dla FreeCommander działa. W tym celu otwieramy FreeCommander i przechodzimy do folderu Protected:

Zrzut ekranu z oknem FreeCommander

Spróbujmy usunąć plik my_file.txt:

Zrzut ekranu po usunięciu pliku

Wyjątek dla FreeCommander działa!
Doskonała robota! Duży i skomplikowany przypadek testowy — wszystko zautomatyzowane. Trochę relaksu:

Test nr 4 — Kontrola rodzicielska
Ostatni dzisiaj przypadek testowy zbudujemy w następujący sposób:
- Stworzymy nowego użytkownika MySuperUser;
- Zalogujemy się jako ten użytkownik;
- Utworzymy plik
my_file.txtw imieniu nowego użytkownika; - Otworzymy centrum bezpieczeństwa Dr. Web i włączymy kontrolę rodzicielską dla tego pliku;
- W kontroli rodzicielskiej ograniczymy uprawnienia użytkownika MySuperUser do utworzonego przez niego pliku;
- Spróbujemy przeczytać i usunąć plik
my_file.txtw imieniu MySuperUser i zobaczymy wynik.
Nie będę tutaj przytaczał scenariusza testu. Buduje się on na tych samych zasadach, co poprzednie testy: aktywnie pracujemy myszką i klawiaturą. Nie ma znaczenia, co automatyzujemy — czy to Dr.Web, czy tworzenie nowego użytkownika w Windows. Ale zobaczmy, jak będzie wyglądał bieg takiego testu:

Podsumowanie
→ Źródła wszystkich testów można zobaczyć
Co więcej, wszystkie te testy można uruchomić na własnej maszynie. W tym celu potrzebny będzie interpreter skryptów testowych Testo. Można go pobrać .
Dr. Web okazał się niezłym treningiem, ale inspirację do dalszych działań chciałbym czerpać z Waszych sugestii. Proszę, piszcie w komentarzach, jakie testy automatyczne chcielibyście zobaczyć w przyszłości. W następnym artykule postaram się je zautomatyzować, zobaczymy, co z tego wyjdzie.
Źródło: habr.com
