Kategorie
Uncategorized

10 powodów do wykorzystania Gatlinga w testach wydajnościowych (niezależnie od używanego języka programowania w projekcie)

Cześć!

Zaczynamy. Dzisiaj odpowiem Ci, dlaczego poznanie Gatlinga jest najlepszym sposobem na rozpoczęcie przygody z testowaniem obciążeniowym/wydajnościowym w Twoim projekcie. 

Z krótkiego oficjalnego wprowadzenia na stronie Galinga -> https://gatling.io/, możemy dowiedzieć się czym tak w ogóle jest Gatling: „Gatling is a powerful open-source load testing solution. Gatling is designed for continuous load testing and integrates with your development pipeline. Gatling includes a web recorder and colorful reports.

Poniżej zestawiam 10 powodów, dla których wykorzystanie Gatlinga w Twoim projekcie jest świetnym pomysłem:

0 Gatling jest frameworkiem typu open-source!

1 Gatling ma x5 więcej postów na StackOverflow niż inne bardzo popularne frameworki wydajnościowe … a to wiele ułatwia 🙂

2 Gatlinga można uruchomić na dowolnym systemie operacyjnym!

3 Możesz pisać testy wydajnościowe jako kod źródłowy!

4 Gatling posiada szczegółowe metryki / raporty “Out of the Box” – w przejrzysty sposób zaprezentujesz rezultaty testów.

5 Gatling posiada mocny Engine napisany w języku Scala
Warto również znać podstawy języka Scala, w tym celu polecam zapoznać się z poniższym video:


6 Gatling ma zintegrowane asercje API, więc daje Ci pełny zestaw narzędzi do wykonywania funkcjonalnych asercji.


7 Gatling może być w pełni zintegrowany przy użyciu wiersza poleceń, dzięki czemu jest kompatybilny z każdą platformą CI (na przykład z Twoim Jenkinsem).

8 Gatling ma obszerne i przemyślanie napisane zasoby wiedzy na swojej stronie pod linkiem: https://gatling.io/docs/current/advanced_tutorial.


9 Gatling ma możliwość przeprowadzania testów z poziomu interfejsu użytkownika poprzez intuicyjny Recorder!

Dodatkowo warto dodać, że Gatling bardzo szybko zyskuje na popularności -> kilka miesięcy temu, kiedy to przypadkowo zwróciłem uwagę na liczbę pobrań to było około 2 milionów … a po 3-4 miesiącach jest to już prawie 5 milionów!

W tym wideo pokrótce przedstawiam wnioski wynikające z powyższych podpunktów:

https://www.youtube.com/watch?v=-FhPhbTnW7Y

Kategorie
Uncategorized

CyberPunk 2077 aka “Cyberbug” czyli jak unikać jakościowych wpadek w cyfrowych produktach


Cześć!

Dziś będzie krótko w temacie jakości czyli jak CD Projekt mógł uniknąć kompromitujących wpadek podczas wypuszczenia “Cyberpunka 2077” i co Ty możesz wyciągnąć z tej lekcji 🙂

W czasie kiedy to piszę (połowa grudnia 2020) Cyberpunk zwrócił się już w całości twórcom, dodatkowo myślę, że jest tylko kwestią czasu kiedy gra stanie się kasowym hitem… mimo wszystko ostatni produkt CD Projektu zachwyca grafiką i fabułą. Tak! miałem już okazję zagrać i mimo wszystko polecam. Natomiast również w przypadku tej produkcji nie obyło się bez kompromitujących wpadek, np. tego typu jak poniżej:

Po obejrzeniu powyższych filmików nasuwa mi się pytanie – jak CD Projekt mógł wyeliminować lub chociażby złagodzić ryzyko związane
z wystąpieniem kompromitujących bugów?

Moje (główne) propozycje rozwiązania problemu z jakością dla CyberPunka to:

0. Należało przeprowadzić testy beta dla większej liczby graczy biorąc pod uwagę sprzęt jakimi dysponują oraz różne konfiguracje hardware’u.

1. Można było przeprowadzić firmowe “bug hunting” party i zaangażować całą firmę do poszukiwania bugów, a następnie według priorytetu je fixować.

2. Na trailerze zauważyłem wiele błędów związanych z brakiem Colliderów do modeli.. można by było zastosować checklistę podczas testowania rozgrywki stricte dla modeli i obiektów.

3. Błędy w mechanice i duplikowanie postaci – tutaj nie ma złotego środka po prostu trzeba solidnie testować grę z każdą możliwą ścieżką przejścia. Następnie sprawdzać postacie lub obiekty, które mają “podpięte” dane skrypty w silniku i sprawiają największe problemy. Należy też więcej analizować i szukać przyczyny powstania problemu (root cause).

4. Nieprawidłowe ustawienia grawitacji dla modeli. To również sprowadza się do weryfikacji obiektów i modeli.

5. Warto by było przeszkolić zespoły (wewnętrzny i zewnętrzy pod kątem jakości oprogramowania) wprowadzić odpowiednie wysokiej jakości szkolenia dla pracowników. W temacie testowania oprogramowania, każda osoba pracująca w IT powinna mieć podstawową wiedzę oraz świadomość, że za jakość odpowiadają WSZYSCY, a nie tylko zespół testerski.

6. Lepiej rozplanować testy gry w czasie przeznaczonym na development.

7. Zatrudnić dodatkowy – zewnętrzny zespół testerski, który ma doświadczenie w branży gier ale również posiada “świeży” pogląd w temacie jakości produktu i wprowadzi dodatkową wartość dodaną w postaci Raportu(Raportów), które następnie zostaną poprawione przez programistów.

Podsumowując jak widzisz sposobów ulepszenia jakości w projekcie jest sporo. Natomiast wracając do setna – Cyberpunk jest ogólnie bardzo dobrą grą pomimo wad, które na pewno zostaną docelowo poprawione w przyszłości… no ale trochę niesmak pozostaje. Twórcy często próbują wcisnąć graczom “niedogotowanego” kurczaka. Tak też się stało w tym przypadku, a wystarczyło tylko go lepiej dopiec i doprawić.. 😉

Miłej zabawy podczas rozgrywki.

Kategorie
Uncategorized

5 powodów, dla których warto sprawdzić platformę JetBrains do nauki programowania (niezależnie od specjalizacji i umiejętności!)


Cześć!

To mój pierwszy post na moim blogu, który – choć krótki, będzie nieco przypominał reklamę to nie mam zamiaru niczego reklamować ani sprzedawać.
Celem tego wpisu jest zaprezentowanie narzędzia, które ułatwi w prosty i przejrzysty sposób zdobyć i uporządkować wiedzę na temat języków programowania takich jak Java czy Python!


Oto 5 powodów, dla których powinniście zainteresować się platformą JetBrains Academy:


0 Platforma ma zorganizowaną mapę nauki wybranego języka programowania (materiał jest wybrany i ułożony przez ekspertów w tej dziedzinie)

1 Uczy poprzez praktykę (w ten sposób można czerpać większe korzyści z nauki niż poprzez wykonywanie samouczków samodzielnie przykładowo bezpośrednio z YouTube’a)

2 Ma długi – relatywnie okres próbny. Obecnie jest dłuższy niż 2 miesiące – Przy odrobinie wcześniejszych doświadczeń, w tym czasie powinieneś wykonać większą część ścieżki nauki języka.

3 Silna personalizacja do poziomu kursanta – wypełnij ankietę, a system automatycznie wybierze zadania do wykonania.

4 Integracja z dowolnym IDE firmy JetBrains – Jeśli jesteś już profesjonalnym programistą, z pewnością znasz IDE dostarczane przez JetBrains, a jeżeli nie to jest to świetna okazja do zapoznania się z nim.


Poniżej przesyłam Ci mój szybki przegląd JetBrains Academy:

https://www.youtube.com/watch?v=sOrwXB0yvWU


Link do platformy -> https://www.jetbrains.com/academy/

Kategorie
Uncategorized

5 najpopularniejszych narzędzi do automatyzacji oprogramowania w 2020 roku


Cześć!

Ostatnia wiosenna pandemia koronawirusa w 2020 roku (marzec-kwiecień) pokazała, że trend i zainteresowanie “testowaniem oprogramowania” znacznie wzrosły w tym roku. Zobacz koniecznie poniższy wykres:

W związku z tym trendem chciałbym przedstawić Ci 5 narzędzi popartych przykładami, dlaczego warto je znać, niezależnie od codziennych zawodowych obowiązków – oprogramowanie jest już praktycznie w każdej dziedzinie naszego życia. Nie chcesz być pozostawiony w tyle, prawda?

OK. Zaczynamy:

0. Selenium – https://www.selenium.dev/

Selenium jest narzędziem w cyfrowym świecie jak młotek dla kowala (może i możesz się bez niego obejść, ale gięcie stali głową nie jest przyjemnym pomysłem :]). To jest moje celowe porównanie, ponieważ Selenium jest bardzo dojrzałym narzędziem, pojawia się w większości ofert pracy dla inżynierów testów oprogramowania. Jest ono dostępne dla prawie każdego głównego języka programowania, a nauka go w jednym języku będzie oznaczać dosłownie “za chwilę” będziesz mógł w nim pisać skrypty, oczywiście, jeśli wiesz jak działa ten framework.

Selenium jest absolutnym “must-have” na naszej liście.

1. Katalon Studio – https://www.katalon.com

Katalon Studio to kompleksowe narzędzie do automatyzacji testów, które obejmuje zarówno API, Web, Desktop jak i testy mobilne. Posiada zestaw funkcji od A do Z: nagrywanie działań, tworzenie przypadków testowych, generowanie skryptów testowych, wykonywanie testów, raportowanie wyników i integracja z wieloma innymi narzędziami w całym cyklu życia oprogramowania. Katalon działa na każdej maszynie (Windows, Linux i MacOS).

Trudno znaleźć wady w tym narzędziu, na co również wskazuje powyższy trend i rosnąca popularność. Zdecydowaną wadą jest to, że narzędzie do użytku komercyjnego jest płatne, ale cóż, twórcy również muszą z czegoś żyć.

2. Appium – http://appium.io/

Rama automatyzacji testów aplikacyjnych jest przeznaczona do zastosowań mobilnych. Wspiera on automatyzację natywnych, hybrydowych i mobilnych aplikacji internetowych zbudowanych dla systemów iOS i Android. Appium korzysta z dostarczonych przez producenta ram automatyzacji i jest oparty na architekturze klient/serwer. Appium jest bardzo łatwe w instalacji i użytkowaniu. zyskało ogromną popularność i stabilność w ciągu ostatnich kilku lat – proszę spojrzeć na wykres trendów google. Bardzo ważny szczegół – jest to narzędzie w pełni open-source.

3. Postman – https://www.postman.com/

Postman to bardzo szybkie i intuicyjne narzędzie przeznaczone do testowania API. Użytkownicy mogą zainstalować to narzędzie jako rozszerzenie przeglądarki lub aplikację desktopową na każdym możliwym systemie operacyjnym. Jest ono popularne nie tylko wśród testerów automatyzacji testów API, ale także wśród deweloperów, którzy używają tego narzędzia do tworzenia testów API. Jest to środowisko programistyczne do tworzenia i automatyzacji testów API.

4. LambdaTest – https://www.lambdatest.com/

LambdaTest to dobre narzędzie do testowania aplikacji desktopowych i internetowych. Dzięki LambdaTest można przeprowadzać zarówno ręczne jak i automatyczne testy przeglądarek poprzecznych w oparciu o silnik Selenium.

Dzięki zautomatyzowanym testom na przeglądarkach internetowych można za każdym razem szybciej opracowywać, testować i dostarczać dane.

5. Cypress – https://www.cypress.io/

Cypress skupia się na przeprowadzaniu testów end-to-end – zapewnia solidny, całkowicie nowy silnik do przeprowadzania testów automatycznych, ale zabiera trochę swobody z Selenium (Cypress nie używa Selenium!), ograniczając użytkownika do konkretnych rozwiązań – frameworków i języka.

Cypress sprawia, że konfiguracja, pisanie, uruchamianie i debugowanie testów jest łatwe.

Testy Cypress pisane są tylko w języku JavaScript – jest to spore ograniczenie… Cypress dostarcza wolną wersję oprogramowania, jak również rozszerzenie płatnej licencji.