# IO Faza Konstrukcji ### Testy 1. Rozpoczęcie procesu monitoringu użytkownika/monitoring użytkownika Test 1 Dodanie błędnych danych Dane: - PESEL ze złą liczbą cyfr - Number ze złą liczbą cyfr - Numer za złym numerem kierunkowym - Błędna data urodzenia(do przodu i 200 lat temu) Test ma na celu przetestować odpowiedź systemu gdy dane są złe Stan początkowy: Puste konto użytkownika Stan końcowy: Puste konto użytkownika Test zaliczony: System odrzuca dane i prosi o ich korekcje Test niezaliczony: System przyjmuje dane Test 2 Dodawanie poprawnych danych Dane: poprawne losowe dane Test ma na celu przetestowanie działania systemu gdy dane są poprawne Stan początkowy: Puste konto użytkownika Stan końcowy: Konto użytkownika z przypisanymi danymi Test zaliczony: Pomyślne przypisanie danych Test niezaliczony: Błąd podczas przypisywania danych Test 3. Monitoring danych Dane: Dodajemy dane z wycieku Test ma na celu sprawdzenia czy monitorowanie danych działa poprawnie Stan początkowy: Aplikacja użytkownika Stan końcowy: Użytkownik otrzymuje powiadomiwnie, że jego dane wyciekły Test zaliczony: Użytkownik otrzymał powiadomienie Test niezaliczony: Użytkownik nie otrzymał powiadomienia 2. Ocena bezpieczeństwa użytkownika Test 1 Test poprawności oceny Dane: Poprawne dane "ręcznie" przeliczone na ocene Test ma na celu sprawdzić czy algorytm wyświtle poprawną ocene. Stan początkowy: Użytkownik z agentem jest zalogowany do aplikacji Stan końcowy: Użytkownik z wyliczoną oceną Test zaliczony: Wyliczona ocena zgadza się z wcześnij ręcznie wyliczoną oceną Test niezaliczony: Wyliczona ocena nie zgadza się z wcześnij ręcznie wyliczoną oceną Test 2 Test pobierania danych z agenta Dane: Pobrane dane z poprawnie zainstalowanego agenta Test ma na celu sprawdzenie poprawności danych przesyłanych z BlackEye Agent Stan początkowy: Zainstalowany agent, zalogowany uzytkownik Stan końcowy: Zainstalowany agent, zalogowany uzytkownik z poprawnie wystawioną oceną Test zaliczony: Dane ze strony zgadzają się z prawdziwymi Test niezaliczony: Dane ze strony nie zgadzają się z prawdziwymi 3. BlackEye Agent Test 1 Instalacja na różnych środowiskach Test ma na celu sprawdzenia czy aplicja bez problemu instaluje się i otwiera na 5 najpopularniejszych systemach. Dane: Poprawny agent Stan początkowy: Maszyny wirtualne z zainstalowanymi systamami: 1.. Windows 10 / Windows 11 2.. Windows 7 3.. Mac OS X 4.. Windows 8.1 5.. Linux Stan końcowy : Maszyny wirtualne z zainstalowanymi i otworzonymi agentami Test zaliczony: Agent został zainstalowany i otworzony Test niezaliczony: Error podczas instalacji, problem z otworzeniem aplikacjji Test 2. Test komunikacji między agentem a serwerem Dane: Losowe dane Test ma na celu przetestować czy komunikacja między agentem zainstalowanym na różnych systemach a serwerem przebiega sprawnie Stan początkowy: Komputery z zainstalowanym agentem, serwer w stanie oczekiwania Stan końcowy: Serwer, który otrzymał informacje od agenta. Aplikacja z potwierdzeniem otrzymania danych od serwera. Test zaliczony: Poprawna komunikacja agent i serwera Test niezaliczony: Błędy podczas komunikacji Test 3. Zachowanie agenta, gdy używkownik wprowadził błędne dane na stronie Dane: Specjalnie spreparowane błędne dane Test ma na celu sprawdzić czy podanie błędnych danych na stronie zostanie wykryte przez agenta i uzytkownik zostanie poinformowany o soim błędzie. Stan początkowy: Wprowadzenie błędnych danych na stronie podczas inicjalizacji agenta Stan końcowy: Podczas otwierania agent wyświetla error i pokazuje które dane zostały źle wprowadzone Test zaliczony: Pojawenie się odpowiedniego błędu Test niezaliczony: Wyświetlenie złego błędu, brak wyświetlenia błędu Test 4 Wygenerowanie i wprowadzenie dobrego klucza Dane: Poprawnie wygenerowany klucz Test ma na celu sprawdzić proces generowania i integracji agent-serwer Stan początkowy: Komputer z zainstalowanym agentem Stan końcowy: Zweryfikowane połączeni agent - serwer Test zaliczony: Połączenie agenta z serwerem Test niezaliczony: Brak połączenia agent z serwerem, wyświetlenie się błędów Test 5 Wprowadzenie złego klucza Dane: Spreparowanie klucza Test ma na celu sprawdzić proces sprawdzania poprawności klucza Stan początkowy: Komputer z zainstalowanym agentem Stan końcowy: WYświtlenie błędu klucza Test zaliczony: Brak połączenia agent z serwerem, serwer powinien nie rozpoznać agenta i wysłać odpowiednią odpowiedź Test niezaliczony: Połączenie agenta z serwerem ### Spełnienie wymagań niefunkcjonalnych 1. Bezpieczeństwo - Odpowiedzialność. X = długość trzymania logów. Chcemy tryzmac je minium 2 lata. - Autentyczność Stopień, w jakim można udowodnić, że tożsamość podmiotu lub zasobu jest zgodna z deklarowaną. X = liczba reguł uwierzytelniania. Przynajmniej dwie - Zapobieganie uszkodzeniom danych Częstotliwość zdarzeń krytycznych związanych z uszkodzeniem danych X= 1 - A / N gdzie A= Liczba przypadków, w których wystąpiło poważne uszkodzenie danych N= Liczba przypadków testowych, w których próbowano wystąpić uszkodzenie danych nawet. X powinno być jak najbliżej 1.0 2. Wydajność - czas reakcji(response time) czas od wydania polecenia rozpoczynającego zadanie do otrzymania pierwszej odpowiedzi X =(B - A) /C ,A = czas wprowadzenia polecenia ,B = czas otrzymania pierwszej odpowiedzi ,C = kryteria czasowe określające maksymalny dopuszczalny czas oczekiwania od wprowadzenia do otrzymania odpowiedzi. Dla nas C = 1. - Przepustowość, Ile zadań może być przetworzyć w jednostce czasu X = A / B ,A = liczba wykonanych zadań ,B = okres obserwacji 3. Niezawodność - Usuwanie usterek. Jaka część wykrytych usterek została usunięta? X = A / B ,A=Liczba poprawionych błędów w projekcie /kodowania/testowania ,B= Liczba błędów wykrytych podczas przeglądu lub testowania. - Współczynnik czasu obsługi. Jaka część czasu obsługi systemu jest rzeczywiście świadczona? X = A / B, A = czas rzeczywistego świadczenia usług systemowych, B = czas obsługi systemu regulowany w harmonogramie operacyjnym. - Średni czas przywracania sprawności systemu. Jaki jest średni czas potrzebny systemowi do zakończenia odbudowy po awarii? X = = A / B, A= Czas odzyskania uszkodzonego oprogramowania/systemu przy każdej okazji, B= Liczba przypadków, w których obserwowane oprogramowanie/system weszło w fazę odzyskiwania 4. Użyteczność - Łatwy w obsłudze interfejs. Pomiar zdefiniowany jako $X = A / B$, gdzie A to liczba wszystkich przypadków, w których użytkownik poczuł się zagubiony w aplikacji, a B to czas użytkowania programu. - Wsparcie systemów operacyjnych. Chcemy dotrzeć do jak największej liczby odbiorców, więc ten pomiar będzie zdefiniowany jako $X = F_i / B$, gdzie $F_i$ oznacza stopień wsparcia dla $i$-tego systemu. ### Beta testy Planujemy wykonywać testy na każdym etapie rozwoju naszego oprogramowania, by zapewnić zgodność z założeniami. W początkowym okresie rozwoju testowaniem będą się zajmować zatrudnieni przez nas zawodowi testerzy. Będę oni mieli na celu sprawdzenie: - poprawności działania - jakości interfejsu - zgodności z wymaganiami - bezpieczeństwo Następnie, przed pełnym wdrożeniem aplikacji na rynek zostaną przeprowadzone dodatkowe testy skupiające się na: - wydajności oprogramowania - dokładności i jakości dokumentacji Dodatkowo interfejs aplikacji zostanie ponownie przetestowany, by uzyskać pewność, że potencjalni użytkownicy będą mogli po nim nawigować bez problemów oraz że jest on atrakcyjny wizualnie. Testy bezpieczeństwa również zostaną powtórzone. Dodatkowo dopuścimy grupę wyselektowanych zaawansowanych użytkowników, którzy będą mogli uczestniczyć w testach i mieć wgląd do najnowszych funkcjonalności naszego programu. ### Plan zarządzania jakością oprogramowania - stworzenie harmonogramu, w celu dokładnego rozłożenia zadań pomiędzy członków zespołu i wydzielenia czasu na poszczególne fazy rozwoju - korzystanie z przyjętych w poprzednim zadaniu standardów pisania kodu, utrzymywania dokumentacji i użycie systemu kontroli wersji - testowanie na bieżaco, by zapewnić poprawność nowo dodanych fragmentów, jak i ich zgodność z naszymi celami. Wyniki tych testów będą omawiane na cotygodniowych spotkaniach - na podstawie ustaleń ze spotkań i wyników testów będziemy wprowadzać wszelkie usprawnienia oraz usuwać wykryte błędy. Całość będzie zwieńczona kolejnymi testami. ### Plan wykonania produktu ### Ocena zgodności z wizją systemu i specyfikacją wymagań Przedstawione przez nas informacje w tym dokumencie są zgodne tym, co przygotowaliśmy wcześniej. Nie widzimy potrzeby wprowadzania większych zmian w planie działania.