W moim poprzednim artykule przedstawiłem Wam narzędzia, które są przydatne testerom manualnym. Dzisiaj podzielę się z Wami najlepszymi praktykami w naszej pracy, dzięki którym staje się ona efektywniejsza. Praktyki te pomagają w utrzymaniu wysokiej jakości testowania, zapewniając jednocześnie spójność i powtarzalność procesu. Dodatkowo, co jest z pewnością istotne, wpływają na optymalizację pracy i tym samym oszczędzają nasz czas.

Rola testera manualnego w zapewnianiu jakości rozwiązań Salesforce

Tester manualny często pełni rolę mostu pomiędzy skomplikowanymi funkcjonalnościami systemu, a końcowym użytkownikiem. Jego praca, choć nie zawsze widoczna, jest nieoceniona, jeśli chodzi o dopracowywanie detali i zapewnianie wysokiej jakości rozwiązania. Testerzy manualni nie tylko znajdują błędy, ale patrzą na system okiem użytkownika, by zrozumieć, jak użytkownicy wchodzą w interakcje z systemem. Niezbędne jest również zrozumienie procesów biznesowych klienta. Pozwala to na adekwatne dostosowanie scenariuszy testowych do rzeczywistych potrzeb użytkowników końcowych.

Tester powinien poznać technologię, w której pracuje. Im więcej wiemy na temat Salesforce, tym łatwiej jest nam zrozumieć mechanizmy nim działające, co przekłada się na szybszą analizę zadań w nim realizowanych oraz znajdowanie odpowiednich ścieżek do przetestowania danej funkcjonalności. Salesforce i cała branża IT bardzo szybko się zmienia. By nadążyć, musimy być “na czasie”, zdobywać nową wiedzę i rozwijać się jako tester.

Zrozumienie podstaw testowania

Zanim przejdę do najlepszych praktyk, chcę wspomnieć, że każdy tester powinien być zaznajomiony z Sylabus ISTQB Foundation Level (FL) – International Software Testing Qualifications Board (ISTQB). Zawiera on podstawy i standardy w pracy testera, podstawowe zrozumienie procesów, technik i narzędzi testowych. Dowiemy się też z niego wiele na temat poziomów i technik testowania oraz tego, jakich metodologii używa się na projektach (Agile, Waterflow). Dla testerów Salesforce, znajomość Sylabusa ISTQB FL jest niezbędna, ponieważ wiedza ta jest kluczowa w dostosowywaniu testów do specyficznych wymagań i funkcjonalności Salesforce.

Przyjrzyjmy się teraz dobrym praktykom testerów manualnych, aby pomyślnie testować w projektach Salesforce.

Opis dla typowych użytkowników działających w danym środowisku

Pierwszą dobrą praktyką jest posiadanie opisu dla typowych użytkowników działających w danym środowisku lub aplikacji. Opis może zawierać rodzaj licencji, role, przypisane do użytkowników profile, permission sets (zestawy uprawnień) oraz udział w grupach publicznych i kolejkach. Dzięki temu tester może lepiej zrozumieć, w jaki sposób będą działały konkretne osoby w systemie Salesforce. Ponadto pozwala to na identyfikację najważniejszych ścieżek użytkownika. Możemy sprawdzić, czy odpowiednia funkcjonalność jest dostępna dla konkretnego użytkownika lub grupy użytkowników.

Wyobraźmy sobie na przykład, że mamy sprzedawcę, który pracuje na aplikacji Salesforce lub agenta, który pracuje na aplikacji obsługującej zgłoszenia. Po refreshu środowiska nie wpadamy w panikę bo zniknęli nasi użytkownicy testowi, ponieważ mając opis w bardzo szybki sposób tworzymy naszych całkiem różnych userów.

Jakie korzyści wypływają z posiadania opisów:

  • możliwość szybkiego tworzenia użytkownika
  • oszczędność czasu
  • pewność, że będziemy testować użytkownikiem o poprawnej konfiguracji
  • powtarzalność testów
Skrypty testowe: klucz do efektywnego i dokładnego testowania oprogramowania

Kolejną dobrą praktyką są gotowe skrypty testowe wykorzystujące język apex. Zapewniają spójne i powtarzalne wyniki. Można je wielokrotnie używać w różnych scenariuszach i środowiskach testowych, zapewniając tym samym stabilność i niezawodność procesu testowania. Skrypty testowe są szczególnie przydatne, gdy:

  • potrzebujemy wygenerować duże ilości danych testowych o konkretnych wartościach,
  • potrzebujemy rekordów powiązanych z innymi rekordami,
  • testujemy konkretne funkcjonalności reprezentatywne dla rzeczywistego użytkowania aplikacji.

Dzięki skryptom testowym oszczędzamy czas. Minimalizujemy również powstawanie błędów ludzkich podczas ręcznego tworzenia danych. Gdy wykonujemy te same czynności wielokrotnie, np. tworzymy z poziomu UI wiele rekordów, możemy coś pominąć lub źle wpisać. Formularz nas przepuści, ale w efekcie będziemy mieli złe dane, jakiś element systemu nie będzie działał prawidłowo. W takiej sytuacji będzie trudno znaleźć przyczynę –  nieprawidłowy kod funkcjonalność czy po prostu błąd danych. Natomiast dzięki gotowym skryptom tekstowym możemy takich sytuacji uniknąć.

Korzyści posiadania gotowych skryptów testowych:
  • Ręczne tworzenie danych testowych jest podatne na błędy. Skrypty redukują ryzyko pomyłek i zapewniają większą precyzję.

  • W przypadku zmian w aplikacji, skrypty mogą być szybko dostosowane do nowych wymagań, co znacznie przyspiesza proces dostosowywania testów.

  • Skrypty mogą łatwo generować dane do testowania skrajnych przypadków (np. bardzo duże i specyficzne dane), co może być trudne do osiągnięcia ręcznie.

  • Skrypty mogą być udostępniane i wykorzystywane przez cały zespół testowy, co zapewnia jednolite podejście i ułatwia współpracę.

Gotowe skrypty testowe do tworzenia danych mogą znacznie zwiększyć efektywność, dokładność i skuteczność testowania manualnego, pozwalając testerowi na skupienie się na bardziej wymagających aspektach testowania oprogramowania.

Zaawansowane testowanie API z wykorzystaniem biblioteki w Postman

Postman to popularne narzędzie używane do testowania API, które pozwala na wysyłanie zapytań do serwera i odbieranie odpowiedzi, co ułatwia testowanie, rozwój i dokumentację API. Możesz o nim więcej przeczytać w moim poprzednim artykule, który znajdziesz pod tym linkiem.

Biblioteka w Postman odnosi się do zbioru predefiniowanych skryptów, zapytań, środowisk, a także innych elementów użytecznych w testowaniu API. Posiadanie dobrze zorganizowanej biblioteki jest zdecydowanie dobrą praktyką. Ułatwia codzienną pracę, zarządzanie testami i zapewnia wyższą jakość i efektywność procesu testowania.

Testy możemy pogrupować i wykonywać je w określonej kolejności. Użyteczne jest grupowanie per obiekt lub aplikacja. Takie kolekcje możemy współdzielić z innymi członkami zespołu, którzy mogą w dowolnej chwili aktualizować dane zapytania celem aktualizacji struktury JSONa. Dzięki temu wszyscy mają dostęp do aktualnej, najnowszej wersji kolekcji. To pozwala na swego rodzaju automatyzację testów, co przekłada się na ich powtarzalność. Jest to bardzo przydatne w sytuacji, gdy kilku testerów testuje ten sam stream. Dzięki temu, że mamy współdzieloną przestrzeń, każdy tester z zespołu zaciąga najnowszy request. To znacznie ułatwia pracę i skraca czas ustaleń.

Zalety posiadania biblioteki w Postman
  • Wznowienie pracy: biblioteka pozwala testerom na zapisanie i późniejsze wykorzystanie wcześniej stworzonych zapytań i skryptów. To znacznie ułatwia pracę, ponieważ nie trzeba tworzyć wszystkiego od początku za każdym razem.
  • Spójność i standaryzacja: biblioteka zapewnia spójność w testowaniu. Wszyscy testerzy w zespole mogą korzystać z tych samych zapytań i skryptów, co zapewnia jednolitość i standaryzację procesu testowania.
  • Szybkie prototypowanie i testowanie: dzięki gotowym skryptom JSON w bibliotece i zapytaniom można szybko przetestować różne scenariusze i reakcje API, co jest szczególnie przydatne w środowiskach Agile i DevOps.
  • Łatwe zarządzanie środowiskami testowymi: biblioteka może zawierać konfiguracje środowiskowe, które pozwalają na łatwe przełączanie między różnymi środowiskami (np. deweloperskim, testowym, produkcyjnym).
  • Dokumentacja i współpraca: udostępniona biblioteka innym członkom zespołu ułatwia współpracę i zapewnia, że wszyscy mają dostęp do aktualnych zapytań i skryptów.
  • Testowanie regresyjne: biblioteka może być wykorzystana do szybkiego przeprowadzania testów regresyjnych, sprawdzając czy nowe zmiany nie wprowadziły błędów w istniejących funkcjonalnościach.

Jak widzimy, posiadanie dobrze zorganizowanej biblioteki w Postmanie jest zdecydowanie dobrą praktyką dla testera. Ułatwia nam codzienną pracę, wspiera długoterminowe zarządzanie testami i zapewnia wyższą jakość procesu testowania.

Tworzenie świeżych danych testowych kluczem do skutecznego i rzetelnego testowania oprogramowania

Tworzenie świeżych danych testowych odnosi się do procesu generowania nowych, nieużywanych wcześniej danych do wykorzystania w testach oprogramowania. Istotne aspekty tego procesu obejmują:

  • Unikalność: świeże dane testowe są tworzone w taki sposób, aby nie były kopią danych już używanych w poprzednich testach. Dzięki temu można uniknąć potencjalnych błędów wynikających z ponownego wykorzystania starych danych, które mogą być nieaktualne lub nieodpowiednie dla nowych scenariuszy testowych.
  • Reprezentatywność: nowe dane powinny odzwierciedlać różnorodne scenariusze użytkowania, w tym typowe przypadki użycia, jak i skrajne sytuacje. Dzięki temu można lepiej ocenić, jak oprogramowanie będzie zachowywać się w rzeczywistych warunkach.
  • Aktualność: świeże dane testowe są zgodne z obecnymi wymaganiami i specyfikacjami systemu. W miarę ewolucji oprogramowania i zmiany wymagań, stare dane mogą stać się nieadekwatne.

Tworzenie świeżych danych testowych jest kluczowe dla zapewnienia wysokiej jakości i niezawodności oprogramowania, ponieważ pozwala na dokładne i wszechstronne przetestowanie produktu w różnorodnych i realistycznych warunkach. Daje nam gwarancję, że są one ściśle określone i kontrolowane. To przynosi nam oszczędność czasu i minimalizujemy ryzyko użycia starego rekordu do testów.

Optymalizacja procesu testowego w Salesforce dzięki znajomości SOQL

Znajomość SOQL (Salesforce Object Query Language), języka zapytań używanego w platformie Salesforce, jest bardzo cenna dla testera oprogramowania. Możemy samodzielnie konstruować zapytania SOQL, by pobierać specyficzne zestawy danych potrzebne do konkretnego procesu testowego. Dzięki temu testy stają się bardziej precyzyjne i efektywne.

Jesteśmy też w stanie zweryfikować czy dane, które powstały w wyniku testów, są zgodne z kryteriami akceptacji danego zadania.

Zwiększona wiedza na temat SOQL pozwala nam budować bardziej złożone zapytania, stosując np. zagnieżdżenia lub odwołując się do istniejących relacji z obiektami. Na screenie, który widzicie obok, przedstawiam przykład sytuacji, gdy chcemy wyciągnąć Kontakt i obok wyświetlić Record Type Account, do którego podpięty jest dany Kontakt. Ułatwia nam to analizę zależności danych.

Znajomość SOQL znacznie zwiększa kompetencje testera w środowisku Salesforce, czyniąc go bardziej samodzielnym i efektywnym w różnych aspektach testowania.

Optymalizacja procesu testowego w Salesforce dzięki znajomości SOQL

Korzyści ze znajomości SOQL dla precyzyjnego i efektywnego testowania oprogramowania
  • Zrozumienie SOQL pomaga w analizie i diagnozowaniu problemów, szczególnie tych związanych z danymi i ich relacjami. Tester może szybciej identyfikować i rozwiązywać problemy związane z danymi.
  • Testerzy mogą używać SOQL do analizowania wydajności zapytań i operacji na danych, co jest ważne w środowiskach, gdzie duże ilości danych mogą wpływać na wydajność.
  • Znajomość SOQL sprzyja lepszemu zrozumieniu struktury i schematu danych w Salesforce, co jest niezbędne do efektywnego testowania aplikacji.
  • Znajomość SOQL ułatwia komunikację z deweloperami i innymi członkami zespołu technicznego, co przekłada się na lepsze zrozumienie wymagań i szybsze rozwiązywanie problemów.
Dobre praktyki - monitorowanie Salesforce release notes

Śledzenie Salesforce release notes daje nam wiedzę na temat nowych funkcji, informuje nas o naprawionych elementach systemu. Dzięki temu możemy potencjalnie określić obszary wymagające retestów i weryfikacji czy poszczególne funkcjonalności działają poprawnie. Szczególnie, jeśli są to funkcjonalności customowe, skrojone pod potrzeby klienta, ale w swoim działaniu korzystają ze standardowych elementów Salesforce dostępnych out of the box.

Znaczenie certyfikacji dla testera: korzyści i wpływ na rozwój zawodowy

Czy warto się certyfikować? Tak! Ale dlaczego? Co nam to daje?

  • Po pierwsze, poszerzamy swoją wiedzę. Jeśli chcemy zdać certyfikat, musimy się do niego dobrze przygotować, a żeby to zrobić, musimy nauczyć się nowych rzeczy.
  • Po drugie, zwiększamy swoją atrakcyjność na rynku pracy. Z punktu widzenia pracodawcy kandydat, który zdał egzamin i ma certyfikat jest zapewnieniem, że posiada wiedzę na temat Salesforce i nie ma potrzeby wdrażać nowego pracownika w sam system jako taki, a jedynie w projekt, do którego trafi.
  • Po trzecie, posiadanie certyfikatów zwiększa zaufanie klienta. Klient, który ma w zespole projektowym osobę certyfikowaną, nabywa przekonania, że system stworzony przez osoby wykfalifikowane, będzie spełniał jego oczekiwania i oczekiwania organizacji.
Wartościowe certyfikaty dla testerów

Generalnie nie ma certyfikatów stricte testerskich, ale to nie znaczy, że nie ma certyfikatów dla testerów. Ja polecam na początek certyfikat Salesforce Associate. Jest to bardzo fajny cert na przetarcie szlaków. Zawiera podstawy działania platformy Salesforce. Wprowadza nas do interfejsu użytkownika i porusza kwestie zarządzania danymi.

Jako tester zdobyłem również certyfikat Salesforce Administrator. Ucząc się do tego certyfikatu nabywamy wiedzę na temat edycji interfejsu użytkownika, rodzajów obiektów i pól na nich występujących oraz tworzenia ich własnoręcznie. Zostają nam wyjaśnione uprawnienia użytkowników i pokazane, jak nimi zarządzać i w jaki sposób dane uprawnienia mają wpływ na możliwości, jakie użytkownik posiada. Wprowadza nas też do automatyzacji procesów. Pokazuje nam, czym są raporty i jak działają. Przedstawia nam też Service Cloud i Sales Cloud i związane z nim funkcje out of the box.

Jako uzupełnienie na sam koniec poleciłbym certyfikat Platform App Builder, ponieważ rozszerza on wiedzę na temat automatyzacji i deklaratywnych sposobów programowania. Pokazuje nam jak dostosowywać i zaprojektować aplikacje.

  • certyfikat Salesforce Associate

  • Salesforce Administrator certyficate

  • certyfikat Platform App Builder

Gdzie uczyć się do certyfikatów?

Polecam platformę do nauki Salesforce: Trailheadsalesforce.com. Znajdziemy na niej zestawy trailheadów, które są zadaniami, które należy ukończyć w celu zaliczenia etapu. Przygotowują nas one do konkretnego certyfikatu. Ukończenie trailheada trochę trwa, ale zdobyta wiedza jest bezcenna i jest lepsza niż „sucha” teoria.

Możemy również uczyć się ze strony Focus on force. Zawiera gotowe materiały do nauki pod certyfikaty oraz przykładowe zestawy testów. Platforma specjalizuje się w budowaniu bazy pytań i opracowywaniu materiałów pod certyfikaty.

Dobrą praktyką jest również wspólna nauka. Jeśli pracujemy w firmie, która jest Partnerem Salesforce, warto skorzystać z pomocy kolegów i uczyć się wspólnie.

Sama certyfikacja, czyli zdawanie egzaminu, może odbywać się zarówno stacjonarnie w autoryzowanych punktach Salesforce albo online. Musimy zarejestrować się na egzamin i opłacić go (przelewem lub w postaci vouchera). Osobiście rekomenduję opcję stacjonarną, ponieważ wykluczamy w ten sposób dodatkowy czynnik stresowy w postaci nieprzewidzianych trudności technicznych.

Wskazówki ogólne do uwzględnienia w procesie testowania

Na koniec przekazuję Wam przydatne wskazówki, na co zawsze należy zwrócić uwagę podczas testów:

  • czy działamy na dobrej aplikacji
  • czy na pewno jesteśmy zalogowani jako user, którym chcemy testować (opcja login as)
  • czy na instancji, na której jest nasze środowisko trwają prace serwisowe (sprawdź na https://trust.salesforce.com/)
  • czy logika zawarta jest na froncie czy na backendzie (walidacja na formularzu vs na bazie danych)
  • czy dane potrzebne do testów muszą mieć określony created date (system permission “Set Audit Fields upon Record Creation” = “true”)
  • czy obiekty, na których testujemy są standardowe, customowe lub externalowe
  • czy mam jakieś ograniczenia ze względu na IP, np. login IP range

Podsumowując, efektywne testowanie oprogramowania wymaga nie tylko gruntownej wiedzy technicznej i umiejętności, ale także ciągłego rozwoju i adaptacji do zmieniających się technologii i metodologii. Każdy z wymienionych przeze mnie w artykule aspektów odgrywa kluczową rolę w budowaniu silnej i wszechstronnej kompetencji testera.

Pamiętaj, że jako tester, jesteś nie tylko detektywem szukającym błędów, ale także rzemieślnikiem, który doskonali oprogramowanie, a przez to wpływa na jego jakość i niezawodność. Trzymając się tych zasad i nieustannie doskonaląc swoje umiejętności, możesz znacząco przyczynić się do sukcesu każdego projektu programistycznego, w którym bierzesz udział.

Autor
  • Wojciech Janiak
  • Senior Software Tester / Team Leader
  • Senior Software Tester z pięcioletnim doświadczeniem w testowaniu oprogramowania. Posiada kilka certyfikatów Salesforce i ciągle zdobywa nową wiedzę z obszaru Salesforce. Lubi dzielić się nią z innymi i wdrażać juniorów w niezwykły świat testowania w projektach Salesforce. Prywatnie uwielbia grać na Xboksie i Nintendo Switchu oraz interesuje się piłką nożną.

Opracowanie redakcyjne:
Marta Górna
Redakcja tekstu