Przypadki testowe dla aplikacji czatu
Tags: chat, inappchat, pubnub, realtime
Published: 2023-11-29 08:28:30

Ponieważ oprogramowanie staje się łatwiej dostępne niż kiedykolwiek wcześniej, musisz upewnić się, że Twoja aplikacja do czatu może z powodzeniem obsługiwać i wspierać typowe zachowania użytkowników, a także niezamierzone, dziwne, a nawet złośliwe zachowania, które mogą powodować problemy z aplikacją. Chociaż programiści mogą być w stanie naprawić problemy po wdrożeniu aplikacji, niska jakość oprogramowania w samych Stanach Zjednoczonych przekroczyła [2,41 biliona dolarów w 2022 roku](https://www.it-cisq.org/the-cost-of-poor-quality-software-in-the-us-a-2022-report/). Problemy te przypisuje się pośpiesznym terminom, niespełniającym standardów zabezpieczeniom, niewłaściwym wyborom projektowym i problemom ze skalowalnością.

Czytaj dalej, aby dowiedzieć się więcej o tym, dlaczego konieczne jest testowanie aplikacji czatu, jak tworzyć testy dla aplikacji i przykładowe przypadki testowe, których możesz użyć do samodzielnego przetestowania aplikacji.

Potrzeba testowania aplikacji czatu
-----------------------------------

Jak wspomniano wcześniej, niska jakość oprogramowania kosztuje firmy na całym świecie biliony dolarów. Dokładne testowanie aplikacji czatu jest niezbędne, aby nie stracić setek, jeśli nie milionów dolarów na błędach, którym można zapobiec dzięki starannemu testowaniu oprogramowania.

W październiku 2021 r. cała [infrastruktura Facebooka](https://www.facebook.com/business/news/update-about-the-october-4th-outage) (Instagram, Messenger i WhatsApp) uległa awarii z powodu pojedynczego polecenia wydanego przez inżyniera podczas kontroli konserwacyjnej serwerów. Polecenie to zostało zainicjowane w celu określenia stanu wydajności serwerów sieciowych, co nieumyślnie spowodowało wyłączenie wszystkich połączeń w sieci.

Z powodu awarii, która trwała około sześciu godzin, firma [straciła około 100 milionów dolarów](https://fortune.com/2021/10/04/facebook-outage-cost-revenue-instagram-whatsapp-not-working-stock/) przychodów z reklam i musiała zwrócić firmom utracone przychody. Problemowi temu można było zapobiec poprzez dokładne testowanie poleceń i skryptów testowych do testowania end-to-end, aby upewnić się, że polecenia takie jak te są wychwytywane przez frameworki i narzędzia testowe. Mimo że Facebook przeprowadził ćwiczenia symulujące tego typu problemy, przeszkolenie członków zespołu w zakresie obsługi krytycznych błędów i posiadanie odpowiednich zabezpieczeń może zapobiec ponownemu wystąpieniu tego rodzaju błędów.

Tworzenie przypadków testowych dla aplikacji czatu w oparciu o cele i wykorzystanie
-----------------------------------------------------------------------------------

Ponieważ istnieją różne rodzaje testowania oprogramowania, musisz upewnić się, że tworzysz testy, które mają sens dla twojej aplikacji czatu. Chociaż niektóre testy można zastosować do aplikacji czatu niezależnie od odbiorców, wiele testów należy dostosować do typu wdrażanej aplikacji czatu, ponieważ aplikacje czatu mają różne zastosowania i odbiorców.

Czy twoja aplikacja do [czatu](https://www.pubnub.com/use-case/in-app-chat/) ma być głównym celem produktu, jak Messenger, WhatsApp, Discord i Slack? A może ma być używana jako pomocnicza w grach wideo online, obsłudze klienta w aplikacjach e-commerce, takich jak eBay i Amazon, lub platformach streamingowych, takich jak Twitch lub YouTube? Styl twojej aplikacji będzie wyznaczał kierunek twoich przypadków testowych.

Następnie należy rozważyć, na jakich urządzeniach użytkownicy będą obsługiwać aplikację czatu. Czy jest to aplikacja stricte mobilna, czy też oferujesz wieloplatformowe środowisko internetowe, stacjonarne i mobilne? Jest to szczególnie ważne, ponieważ będziesz musiał wdrożyć testy kompleksowe, akceptacyjne i wydajnościowe w oparciu o różne przeglądarki, komputery stacjonarne i mobilną komunikację między nimi.

W ramach aplikacji musisz przetestować, aby upewnić się, że użytkownicy będą mieli dobre wrażenia z użytkowania. Użytkownicy będą wysyłać wiadomości do innych użytkowników, grup użytkowników, a nawet serwerów. Wiadomości te mogą być tekstem, emoji, GIF-ami, linkami internetowymi, wzmiankami o innych użytkownikach, reakcjami na inne wiadomości, a nawet plikami. Użytkownicy powinni być w stanie organizować te różne grupy według własnego uznania i umożliwiać im zmianę ustawień dla tych różnych typów wiadomości i ustawień aplikacji czatu.

### Utwórz krótką listę scenariuszy testowych

Konkretne przypadki testowe dla aplikacji czatu zależą od typu aplikacji, wymagań biznesowych, odbiorców i projektu. Istnieją jednak inne ogólne obszary, dla których należy utworzyć przypadki testowe.

Możesz uporządkować te obszary i określić, czy tworzone testy będą przeznaczone do testowania ręcznego czy automatycznego:

-   **Funkcjonalność**: Przetestuj podstawowe funkcje aplikacji czatu. Użytkownicy muszą mieć możliwość wysyłania, odbierania i przeglądania wiadomości. Powinni także mieć możliwość otwierania linków internetowych, plików i GIF-ów. Użytkownicy powinni być w stanie otworzyć listę znajomych, zarządzać bezpośrednimi/grupowymi/serwerowymi wiadomościami i z łatwością dzwonić do innych użytkowników za pośrednictwem wideo i audio.
    
-   **Bezpieczeństwo**: Wiadomości wysyłane przez sieć powinny być chronione za pomocą TLS i szyfrowania AES256. Użytkownicy logujący się do aplikacji powinni być szyfrowani i upewnić się, że wszelkie opcje SSO działają prawidłowo. Uprawnienia powinny działać zgodnie z przeznaczeniem, co oznacza, że użytkownicy muszą zostać zaproszeni do dołączenia do konwersacji, grup znajomych lub serwerów.
    
-   **Platforma**: Aplikacja czatu powinna działać poprawnie na różnych urządzeniach. Dostęp do aplikacji na urządzeniach stacjonarnych (Windows, macOS, Linux), mobilnych (Android i iOS) oraz internetowych (główne przeglądarki) powinien być płynny. Upewnij się, że urządzenia mogą prawidłowo komunikować się między platformami.
    
-   **Praktyczność**: Przetestuj użyteczność aplikacji czatu, upewniając się, że użytkownicy mają płynne doświadczenie w obsłudze aplikacji.
    
-   **Wydajność/skalowalność**: Przetestuj aplikację pod dużym obciążeniem. Zapełnianie wieloma użytkownikami jednocześnie, wysyłanie wielu wiadomości od różnych użytkowników, wysyłanie żądań do serwera itp.
    
-   **Dostępność**: Upewnij się, że funkcje lokalizacyjne aplikacji są odpowiednio obsługiwane i poprawnie przetłumaczone. Upewnij się, że opcje dostępności (np. dla użytkowników niedowidzących) działają prawidłowo.
    
-   **Integracja**: Upewnij się, że aplikacja łatwo łączy się z aplikacjami innych firm, bazami danych i usługami w chmurze.
    
-   **Zabezpieczenia**: Uruchom przypadki testowe na wypadek utraty łączności sieciowej przez aplikację lub awarii serwerów sieciowych obsługujących aplikację.
    

Przypadki testowe dla aplikacji czatu
-------------------------------------

W oparciu o omówione wcześniej obszary ogólne można utworzyć bardziej szczegółowe przypadki testowe w oparciu o następujące obszary. Powinieneś utworzyć testy jednostkowe i określić, jak najlepiej utworzyć szczegółową wersję tych testów dla swojej unikalnej aplikacji podczas wykonywania testów funkcjonalnych, testów aplikacji i testów wydajności. Lista ta nie jest wyczerpująca i ma stanowić punkt wyjścia do rozszerzenia i stworzenia szczegółowych przypadków testowych unikalnych dla danej aplikacji.

### Funkcjonalność

1.  Użytkownicy mogą wysyłać podstawowe wiadomości tekstowe do innych użytkowników. Potwierdzenie dostarczenia powinno wskazywać, że wiadomość została wysłana.
    
2.  Użytkownicy mogą wysyłać emoji i GIF-y do innych użytkowników.
    
3.  Użytkownicy mogą odbierać i przeglądać nowe wiadomości od innych użytkowników.
    
4.  Nieprzeczytane wiadomości powinny być wyróżnione lub oznaczone w sposób wskazujący, że są nieprzeczytane.
    
5.  Przeczytane wiadomości nie powinny być już podświetlane ani oznaczane jako takie. Potwierdzenie przeczytania powinno być wyświetlane dla pierwotnego nadawcy, aby pokazać, że wiadomość została przeczytana.
    
6.  Nieodebrane wiadomości podczas nieużywania aplikacji powinny być wskazywane na urządzeniach mobilnych za pomocą powiadomień push, aby ostrzec użytkownika (baner, ikona odznaki itp.). Jeśli istnieją ustawienia wysyłania wiadomości e-mail do użytkowników offline, wiadomości te powinny działać w oparciu o odpowiednie ustawienia.
    
7.  Wiadomości powinny mieć możliwość wstawiania hiperłączy do stron internetowych i tworzenia podglądu tych linków podczas wysyłania wiadomości.
    
8.  Użytkownicy powinni mieć możliwość reagowania na wiadomości za pomocą emotikonów.
    
9.  Użytkownicy powinni mieć możliwość kopiowania i wklejania tekstu i linków w polu wiadomości.
    
10.  Użytkownicy mogą wysyłać i odbierać pliki w ramach limitu rozmiaru plików zdefiniowanego przez aplikację.
    
11.  Upewnij się, że wyświetlany jest odpowiedni komunikat, gdy użytkownicy próbują wysłać zbyt duże pliki lub rozszerzenie nie jest obsługiwane.
    
12.  Upewnij się, że typy plików obsługiwane przez aplikację mogą być otwierane i wysyłane.
    
13.  Jeśli pliki są obsługiwane i obsługiwane jest przeciąganie i upuszczanie, należy upewnić się, że funkcja ta działa prawidłowo.
    
14.  Ikony stanu użytkowników powinny być wyświetlane w odpowiedni sposób (zielone dla online, szare lub czerwone dla offline) i umożliwiać użytkownikom zmianę, jeśli pozwala na to funkcjonalność.
    
15.  Użytkownicy powinni mieć możliwość otwarcia listy znajomych, aby zobaczyć status online znajomych.
    
16.  Użytkownicy powinni mieć możliwość wyszukiwania i dodawania znajomych, a także otrzymywania i akceptowania przychodzących zaproszeń do znajomych.
    
17.  Użytkownicy powinni mieć możliwość zarządzania znajomymi na liście znajomych, np. wysyłania im wiadomości, promowania ich statusu znajomości (oznaczony gwiazdką, najlepszy przyjaciel itp.) lub usuwania znajomych.
    
18.  Użytkownicy powinni mieć możliwość wyszukiwania innych użytkowników, poprzednich wiadomości, dyskusji i linków.
    
19.  Użytkownicy powinni być w stanie zmienić swoje zdjęcie profilowe i włączyć ustawienia, aby zmienić funkcjonalność aplikacji.
    
20.  Próby wysyłania wiadomości ze znakami specjalnymi (szczególnie związane z [iniekcją SQL](https://www.w3schools.com/sql/sql_injection.asp)).
    
21.  Upewnienie się, że filtr wulgaryzmów aplikacji podczas wysyłania wiadomości działa prawidłowo.
    
22.  Użytkownicy powinni mieć możliwość wysyłania wiadomości do poszczególnych użytkowników, dodawania innych użytkowników do czatu grupowego i zarządzania tymi relacjami.
    
23.  Użytkownicy powinni mieć możliwość tworzenia i zapraszania innych użytkowników do serwerów/organizacji.
    
24.  Użytkownicy powinni mieć możliwość nawiązywania połączeń audio i wideo z innymi użytkownikami. Powinni mieć możliwość dostosowywania ustawień audio/wideo podczas tych połączeń, a także włączania/wyłączania kamer i wyciszania mikrofonów.
    

### Bezpieczeństwo

1.  Upewnij się, że wiadomości wysyłane przez sieć są chronione za pomocą TLS i AES256, korzystając z narzędzi do monitorowania sieci i obserwując wiadomości podczas ich wysyłania/odbierania.
    
2.  Upewnij się, że wiadomości są przechowywane we właściwym regionie ze względu na przepisy dotyczące prywatności danych i szybkości uzyskiwania danych.
    
3.  Przetestuj proces logowania dla użytkowników. Upewnij się, że użytkownicy są bezpiecznie autoryzowani i nie można ich ominąć.
    
4.  Jeśli użytkownicy mogą logować się za pomocą SSO lub aplikacji innych firm, upewnij się, że proces logowania działa poprawnie w systemie.
    
5.  Użytkownicy powinni mieć możliwość odpowiedniego zarządzania swoimi znajomymi, czatami grupowymi i serwerami. Administratorzy/właściciele serwerów powinni być w stanie zarządzać innymi użytkownikami, przyznając określone uprawnienia unikalne dla danego serwera/czatu grupowego. Prywatne rozmowy między użytkownikami nie powinny być naruszane przez osoby trzecie, chyba że zostaną zaproszone.
    

### Platforma

1.  Każda funkcja aplikacji czatu działa poprawnie w każdej obsługiwanej przeglądarce.
    
2.  Dwóch użytkowników korzystających z aplikacji w oddzielnych oknach przeglądarki powinno mieć możliwość wysyłania, odbierania i przeglądania wiadomości między sobą.
    
3.  Użytkownicy pobierający wersję desktopową aplikacji do czatu ze sklepu internetowego lub sklepu z oprogramowaniem powinni mieć format pliku, który ma sens dla komputerów stacjonarnych.
    
4.  Aplikacja do czatowania w oknach internetowych lub stacjonarnych powinna być w stanie reagować na ekrany o różnych rozmiarach, od mobilnych przeglądarek internetowych po ultraszerokie monitory.
    
5.  Użytkownicy powinni mieć możliwość pobrania aplikacji czatu na urządzenia mobilne za pośrednictwem głównych sklepów internetowych, takich jak Google Play i App Store.
    
6.  Natywna aplikacja mobilna powinna być odpowiednio sformatowana, aby działać na różnych ekranach urządzeń mobilnych, od smartfonów po tablety.
    

### Praktyczność

1.  Instalacja aplikacji powinna być procesem bezproblemowym, wymagającym minimalnej ilości informacji.
    
2.  Użytkownicy powinni mieć możliwość łatwego utworzenia konta lub zalogowania się przy użyciu kombinacji nazwy użytkownika i hasła, opcji SSO lub integracji z innymi firmami (takimi jak Google, Facebook itp.).
    
3.  Określ użyteczność różnych funkcji aplikacji. Przetestuj trudności w dodawaniu znajomych, wysyłaniu wiadomości, dodawaniu znajomych do serwerów itp.
    
4.  Sprawdź, jak łatwo jest znaleźć zasoby wyjaśniające różne funkcje aplikacji.
    
5.  Przetestuj różne ustawienia interfejsu użytkownika lub alertów w aplikacji, takie jak motyw, powiadomienia i czcionki / rozmiary tekstu.
    

### Wydajność/skalowalność

1.  Szybkie wykonywanie różnych działań na wszystkich platformach aplikacji dla jednego użytkownika. Aplikacja powinna być zoptymalizowana pod kątem płynnego, responsywnego działania.
    
2.  Powtórz poprzedni test, ale z dwoma użytkownikami uzyskującymi dostęp do zasobów z serwera sieciowego w tym samym czasie.
    
3.  Wypełnij aplikację wieloma użytkownikami online w tym samym czasie. Aplikacja powinna być w stanie skalować się i obsługiwać wszystkie przychodzące żądania.
    
4.  Powtórz kroki 1-3, ale z setkami/tysiącami symulowanych użytkowników.
    
5.  Wersje webowe i desktopowe aplikacji do czatu nie powinny zużywać niepotrzebnie zasobów przeglądarki i komputera.
    
6.  Wersja webowa i desktopowa aplikacji do czatu powinna umożliwiać wielozadaniowość z innymi aplikacjami podczas użytkowania.
    
7.  Mobilna wersja aplikacji do czatu nie powinna zużywać niepotrzebnych zasobów.
    
8.  Mobilna wersja aplikacji do czatu powinna mieć możliwość umieszczenia w tle bez konieczności ponownego uruchamiania aplikacji.
    

### Dostępność

1.  Upewnij się, że aplikację można pobrać w różnych obsługiwanych regionach.
    
2.  Przetestuj oferowane funkcje lokalizacyjne aplikacji. Upewnij się, że ustawienia aplikacji, komunikaty i funkcje są przetłumaczone na odpowiedni język.
    
3.  Wiadomości wysyłane między użytkownikami w różnych językach powinny być odpowiednio przetłumaczone i/lub poprawnie wyświetlać znaki tego języka.
    
4.  Przetestuj różne opcje dostępności oferowane przez aplikację. Sprawdź, czy opcje dla użytkowników niedowidzących kolorów wyświetlają prawidłowe spektrum kolorów i utrzymują się w całej aplikacji, a także podczas logowania się do aplikacji na innej platformie.
    

### Integracja

1.  Przetestuj logowanie lub tworzenie konta w aplikacji czatu, jeśli korzystasz z SSO i usług innych firm, takich jak konto Google lub Facebook.
    
2.  Użytkownicy powinni mieć możliwość dodawania aplikacji innych firm do samej aplikacji czatu, takich jak chatboty, wyszukiwanie biblioteki GIF-ów, rozmowy wideo / audio itp.
    
3.  Upewnij się, że menedżer integracji dla tych usług innych firm umożliwia użytkownikom wyszukiwanie tych funkcji oraz sposób, w jaki użytkownicy mogą tworzyć lub dodawać swoje integracje.
    

### Odzyskiwanie danych

1.  Upewnij się, że w aplikacji czatu podejmowane są odpowiednie działania, gdy użytkownik jest całkowicie odłączony od Internetu.
    
2.  W wersji webowej i desktopowej aplikacji przetestuj odpowiednią akcję, która ma miejsce, gdy użytkownik jest odłączony od sieci LAN, ale jest podłączony do WiFi.
    
3.  W wersji webowej i desktopowej aplikacji należy przetestować odpowiednie działanie, które ma miejsce, gdy użytkownik jest odłączony od sieci Wi-Fi, ale jest podłączony do sieci LAN.
    
4.  W mobilnej wersji aplikacji czatu upewnij się, że odpowiednia akcja ma miejsce, gdy użytkownik jest odłączony od Wi-Fi, ale jest podłączony do mobilnego LTE.
    
5.  Przetestuj, co się stanie, gdy aplikacja użytkownika zostanie nagle rozłączona, zawiesi się lub wyłączy z powodu awarii urządzenia.
    
6.  Symuluj, co się stanie, gdy serwer sieciowy obsługujący szkielet sieciowy aplikacji czatu ulegnie awarii.
    

Rozpoczęcie pracy z PubNub dla aplikacji czatu
----------------------------------------------

Tworzenie i wdrażanie przypadków testowych dla aplikacji czatu jest istotnym aspektem zapewnienia, że aplikacja czatu może obsługiwać prawidłowe interakcje użytkowników, wdrożone są odpowiednie środki bezpieczeństwa w celu ochrony użytkowników i firmy oraz infrastruktura do obsługi skalowalności aplikacji czatu w celu zapewnienia niezawodnego i bezpiecznego doświadczenia.

Podczas dalszego tworzenia aplikacji należy pamiętać o różnych typach interakcji i funkcjach, których wymagają użytkownicy. Użytkownicy będą chcieli mieć możliwość dołączenia do różnych serwerów lub organizacji, które zostały stworzone specjalnie z myślą o ich hobby lub zastosowaniach zawodowych. Będą chcieli mieć możliwość współpracy nad różnymi kanałami lub tematami, a także możliwość prowadzenia czatów grupowych lub nawet rozmów 1:1 ze znajomymi i współpracownikami w prywatnych pokojach rozmów. Użytkownicy powinni mieć dostęp do listy członków, która pokazuje, czy ich znajomi lub członkowie kanału są online. Podczas pisania wiadomości użytkownicy powinni być w stanie zobaczyć, kiedy inni użytkownicy piszą i odpowiadają, a także umożliwić reakcje na wiadomości i obsługę emoji, aby utrzymać żywe rozmowy.

Obsługa tych funkcji nie jest bynajmniej łatwym zadaniem. Musisz skonfigurować infrastrukturę, aby utrzymać platformę komunikacyjną, która umożliwia dostarczanie wiadomości do użytkowników, wykrywanie systemu obecności online, ładowanie wiadomości, gdy użytkownicy są online, i bezpieczne utrzymywanie tych funkcji dla użytkowników, oprócz tworzenia interfejsu użytkownika aplikacji czatu. Chociaż możliwe jest samodzielne stworzenie tej infrastruktury, będzie to wymagało czasu, zasobów i utrzymania, które można wydać gdzie indziej. W tym miejscu może pomóc PubNub.

[PubNub](https://www.pubnub.com/blog/pubnub-what-is-it-and-why-do-you-need-it/) umożliwia tworzenie bezpośrednich, grupowych i wielkoskalowych czatów dla użytkowników, w tym potwierdzeń dostarczenia i odczytu, wskaźników pisania, metadanych użytkownika i kanału, wskaźników obecności użytkownika, reakcji na wiadomości, udostępniania plików i innych.

Dowiedz się, jak rozpocząć korzystanie z PubNub dla aplikacji czatu, korzystając z poniższych zasobów:

1.  Zobacz, jak inni klienci polegają na PubNub, aby zasilać swoje [aplikacje czatu](https://www.pubnub.com/customers/?solution=in-app-chat).
    
2.  [Zapoznaj się](https://www.pubnub.com/tour/introduction/) z przewodnikiem, aby poznać podstawy PubNub.
    
3.  Zobacz, jak utworzyć aplikację czatu w [10 wierszach kodu](https://www.pubnub.com/demos/10-line-chat/) za pomocą JavaScript.
    
4.  [Dowiedz](https://www.pubnub.com/how-to/) się, jak tworzyć czaty i inne aplikacje przemysłowe za pomocą PubNub.
    
5.  [Postępuj](https://www.pubnub.com/tutorials/) zgodnie z naszymi samouczkami krok po kroku, aby konfigurować i tworzyć aplikacje za pomocą PubNub, w tym tworzyć aplikacje do czatu za pomocą [PubNub SDK](https://www.pubnub.com/tutorials/getting-started-chat-sdk/).
    

W razie jakichkolwiek pytań lub wątpliwości zachęcamy do kontaktu z zespołem ds. relacji z deweloperami pod adresem [devrel@pubnub.com](mailto:devrel@pubnub.com).

Jak PubNub może ci pomóc?
=========================

Ten artykuł został pierwotnie opublikowany na [PubNub.com](https://pubnub.com/how-to/test-cases-for-chat-application/)

Nasza platforma pomaga programistom tworzyć, dostarczać i zarządzać interaktywnością w czasie rzeczywistym dla aplikacji internetowych, aplikacji mobilnych i urządzeń IoT.

Podstawą naszej platformy jest największa w branży i najbardziej skalowalna sieć komunikacyjna w czasie rzeczywistym. Dzięki ponad 15 punktom obecności na całym świecie obsługującym 800 milionów aktywnych użytkowników miesięcznie i niezawodności na poziomie 99,999%, nigdy nie będziesz musiał martwić się o przestoje, limity współbieżności lub jakiekolwiek opóźnienia spowodowane skokami ruchu.

Poznaj PubNub
-------------

Sprawdź [Live Tour](https://www.pubnub.com/tour/introduction/), aby zrozumieć podstawowe koncepcje każdej aplikacji opartej na PubNub w mniej niż 5 minut.

Rozpocznij konfigurację
-----------------------

Załóż [konto](https://admin.pubnub.com/signup/) PubNub, aby uzyskać natychmiastowy i bezpłatny dostęp do kluczy PubNub.

Rozpocznij
----------

[Dokumenty](https://www.pubnub.com/docs) PubNub pozwolą Ci rozpocząć pracę, niezależnie od przypadku użycia lub [zestawu SDK](https://www.pubnub.com/docs).