# 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.