Wstęp

Zapraszamy do ciekawostek z wrzesień/październik (01.09.2023-31.10.2023). Przygotowaliśmy dla Ciebie masę linków i materiałów, głównie z zakresu testowania i dbania o jakość😎 Poza nimi znajdziesz tutaj też materiały o usprawnianiu procesów (estymaty, metryki), nowości ze świata narzędzi, czy historie kosztownych błędów.

Zapraszamy do lektury!

👇 MEGA DARMOWY MATERIAŁ! 👇

Testerskie linki

  1. Błędy poznawcze, nazywane również biasami poznawczymi, to systematyczne i powtarzalne odstępstwa od obiektywizmu i logicznego myślenia w procesie percepcji, oceny, analizy i interpretacji informacji. Są to rodzaje uprzedzeń lub skrzywienia, które wpływają na nasze myślenie i podejmowanie decyzji, prowadząc do subiektywnego lub błędnego rozumowania.
    Błędy poznawcze są powszechne i występują u każdego człowieka, niezależnie od naszego wykształcenia lub doświadczenia. Polecamy nagranie: 12 Cognitive Biases Explained – How to Think Better and More Logically Removing Bias

    A poniżej podsumowanie przedstawionych wyżej błędów poznawczych:

    • Anchoring Bias (Błąd zakotwiczenia): To tendencja do przywiązywania zbyt dużej wagi do pierwszej dostępnej informacji lub “kotwicy” i podejmowania decyzji w oparciu o tę informację, pomimo możliwości dostępności innych danych.
    • Availability Heuristic Bias (Błąd dostępności): To skłonność do oceniania prawdopodobieństwa lub ważności zdarzenia na podstawie dostępności informacji na ten temat w pamięci. Jeśli informacje są łatwo dostępne, uważamy, że zdarzenie jest bardziej prawdopodobne lub ważniejsze.
    • Bandwagon Bias (Błąd głoszenia wbrew przekonaniom): To skłonność do przyjmowania poglądów lub zachowań, które są popularne lub akceptowane przez innych, pomimo braku własnego przekonania lub analizy.
    • Choice Supportive Bias (Błąd wsparcia wyboru): To tendencja do oceniania swoich wcześniejszych wyborów lub decyzji w sposób bardziej pozytywny niż jest to uzasadnione, aby utrzymać spójność i pewność.
    • Confirmation Bias (Błąd potwierdzania): To tendencja do szukania, przetwarzania i zapamiętywania informacji, które potwierdzają nasze istniejące przekonania, unikając informacji, które je kwestionują.
    • Ostrich Bias (Błąd strusia): To unikanie lub ignorowanie nieprzyjemnych informacji lub problemów, w nadziei, że problemy same się rozwiążą lub znikną.
    • Outcome Bias (Błąd wyników): To ocenianie jakości decyzji na podstawie końcowych wyników, bez uwzględniania procesu decyzyjnego. Decyzja jest uważana za dobrą, jeśli przyniosła pozytywne wyniki, bez względu na to, czy była rozsądna w momencie podjęcia.
    • Overconfidence (Błąd nadmiernego pewności siebie): To przecenianie swojej wiedzy, umiejętności lub zdolności do podejmowania decyzji, co prowadzi do podejmowania ryzykownych decyzji lub przeceniania swoich prognoz.
    • Placebo Bias (Błąd placebo): To wpływ oczekiwań pacjenta na odczuwanie poprawy po przyjęciu placebo (środka obojętnego), nawet jeśli nie ma rzeczywistego działania terapeutycznego.
    • Survivorship Bias (Błąd przetrwania): To przecenianie sukcesów lub przetrwania jednostek lub przedsięwzięć, ignorując te, które nie przetrwały lub zakończyły się niepowodzeniem.
    • Selective Perception Bias (Błąd selektywnej percepcji): To tendencja do zauważania tylko informacji lub zdarzeń, które potwierdzają nasze przekonania lub oczekiwania, a ignorowanie tych, które temu przeczą.
    • Blind Spot Bias (Błąd punktu ślepego): To błąd polegający na tym, że ludzie mają trudności z rozpoznawaniem własnych błędów poznawczych lub ograniczeń myślowych, choć potrafią dostrzec je u innych.
  2. Cypress.io zdecydował się na blokadę różnych pluginów (w tym pluginów do zrównoleglania testów czy debugowania. Przewidujemy, że może to mocno wpłynąć na popularność Cypressa i postrzeganiu tej firmy jako przyjazna użytkownikom i pluginom.

    Również o blokadzie krytycznie wypowiedział się były twórca Cypressa Gleb Bahmutov, który zagroził, że jeśli jego plugin do zrówonleglania testów zostanie zablokowany to usunie wszystkie swoje pluginy do Cypressa.

    Więcej o tym pisalismy na naszym blogu playwright.info w poście Czy Cypress umiera i czas na Playwright?. Również Krzysiek wrzucił posta na LinkedIn, który w komentarzach zawiera wiele ciekawych dyskusji na ten temat (m.in. wypowiedział się też Andrew Goldis, który jest CEO Currents).

    Dodatkowe informacje o blokadzie i stanowisku zespołu Currents znajdziesz w postach:

  3. Będąc w temacie Cypressa – warto rzucić okiem na to, jakie funkcjonalności oferuje Cypress Dashboard oraz Currents, dwa popularne narzędzia do zrównoleglania testów: Cypress Dashboard vs Currents – Ultimate Comparison Guide.

    Również ostatnio Gleb Bahmutov, były Twórca Cypressa, wypuścił darmowy plugin, który pozwala na zrównoleglanie testów: Run Cypress Specs In Parallel For Free Using Spec Timings

  4. Metryki to mega ważny aspekt wytwarzania oprogramowania i stosowania różnych procesów. Metryki pozwalają nam ocenić, czy zmierzamy w dobrą stronę z tym co robimy. To się tyczy pisania oprogramowania, testów, stosowania różnych procesów i praktyk.

    Metryki DevOps pomagają mierzyć i poprawiać wydajność procesu wytwarzania oprogramowania. Cztery kluczowe, to: częstotliwość wdrażania, czas wdrażania zmian, wskaźnik błędnych zmian i średni czas przywrócenia (funkcjonują również jako DORA – od angielskich nazw – Deployment Frequency, Mean Lead Time for Changes, Change Failure Rate i Time to Restore Service).

  5. Metryki produktowe to dane, które pozwalają mierzyć i oceniać jakość, użyteczność i skuteczność produktu. Metryki pomagają podejmować lepsze decyzje biznesowe, zwiększać zaangażowanie użytkowników, diagnozować problemy i optymalizować procesy. Metryki można podzielić na różne grupy w zależności od celu i zastosowania, na przykład:

    Metryki można podzielić na różne grupy w zależności od celu i zastosowania, na przykład:

    • Biznes lub finanse
      Metryki, które pokazują jak produkt wpływa na przychód, koszty i zysk firmy. Przykłady to EBIT, NCF, GPM, MRR, ARPU, CLTV i CAC.
    • Zaangażowanie
      Metryki, które służą do analizowania i zwiększania zaangażowania użytkowników w produkt. Przykłady to DAU, MAU i czas trwania sesji.
    • Zainteresowanie
      Metryki, które pomagają zwiększać lub utrzymać zainteresowanie użytkowników produktem. Przykłady to liczba pobrań, instalacji, rejestracji i subskrypcji.
    • Popularność
      Metryki, które pomagają mierzyć popularność produktu lub wybranej funkcjonalności. Przykłady to liczba odwiedzin, odsłon, kliknięć i udostępnień.
    • Satysfakcja
      Metryki, które pokazują jak duża jest lojalność i zadowolenie użytkowników z produktu. Przykłady to NPS, CSAT i churn rate.

    Więcej o tych metrykach znajdziesz w polecanym przez nas artykule: Metryki produktowe – czemu służą i jak z nich korzystać | BJMP #9

  6. Microsoft ogłosił Playwright Testing. Jest to usługa, która umożliwia łatwe i skalowalne uruchamianie testów Playwright. Playwright Testing to usługa, która wykorzystuje chmurę, aby umożliwić jednoczesne uruchamianie testów Playwright z dużo większą równoległością na różnych kombinacjach systemu operacyjnego i przeglądarki.

    Usługa Playwright Testing:

    • integruje się z istniejącymi narzędziami CI/CD, takimi jak GitHub Actions, Azure DevOps i Visual Studio Code
    • pozwala na ustawienie liczby równoległych pracowników, którzy uruchamiają testy w chmurze za pomocą prostego parametru w linii poleceń: npx playwright test --cloud-workers=100
    • zapewnia pełną izolację i bezpieczeństwo danych testowych dzięki wykorzystaniu kontenerów Docker i szyfrowania SSL
    • oferuje bogaty interfejs użytkownika do przeglądania wyników testów, obejmujący zrzuty ekranu, nagrania wideo, logi konsoli i raporty błędów
    • jest dostępny w wersji preview ii można ją wypróbować za darmo za pomocą bezpłatnego okresu próbnego Azure

    Więcej o tym znajdziesz na oficjalnym blogu: Announcing Microsoft Playwright Testing: Scalable end-to-end testing for modern web apps

  7. Fuzzy Testing to dynamiczna metoda testowania bezpieczeństwa aplikacji, która pozwala znaleźć błędy funkcjonalne i problemy z bezpieczeństwem. Fuzzing polega na uruchamianiu programu z nieprawidłowymi, nieoczekiwanymi lub losowymi danymi wejściowymi, z celem wywołania awarii aplikacji. Nowoczesne rozwiązania potrafią analizować strukturę kodu, który mają testować. Mogą one generować tysiące automatycznych przypadków testowych na sekundę i oznaczać każdą ścieżkę, którą dane wejściowe przechodzą przez program.

    Więcej o Fuzzy Testing znajdziesz w postach:

  8. Jak błąd w oprogramowaniu doprowadził do odwołania ponad 2000 lotów i straty ponad 100 milionów funtów?

    Wydarzyło się to niedawno (28 sierpnia 2023), w aplikacji do przetwarzania planów lotów. Błąd spowodował poważny incydent w brytyjskiej kontroli ruchu lotniczego.

    Co dokładnie się wydarzyło?

    • Błąd wystąpił, gdy oprogramowanie FPRSA-R próbowało przekonwertować plan lotu z formatu ADEXP na format NAS, który jest kompatybilny z brytyjskim systemem kontroli ruchu lotniczego NAS.
    • Plan lotu zawierał nieprawidłowy punkt wejścia do brytyjskiej przestrzeni powietrznej – tzn był identyczny z punktem wyjścia z francuskiej przestrzeni powietrznej. Oznacza to, że samolot miał wrócić do tego samego punktu, z którego wyszedł, co nie miało sensu. Prawdopodobnie był to błąd ludzki lub systemowy przy wprowadzaniu danych.
      Oprogramowanie FPRSA-R nie potrafiło obsłużyć takiej sytuacji i zatrzymało się w nieskończonej pętli, zużywając całą pamięć operacyjną.
    • Oprogramowanie FPRSA-R nie miało mechanizmu obsługi błędów ani ograniczenia czasu wykonania. Zamiast odrzucić nieprawidłowy plan lotu lub przekazać go do ręcznej kontroli, zgłosiło krytyczny błąd i wyłączyło się, uniemożliwiając przetwarzanie kolejnych planów lotów.
    • System zapasowy FPRSA-R również próbował przetworzyć ten sam plan lotu i również się wyłączył. System NAS miał zapas czterech godzin wcześniej zatwierdzonych planów lotów, ale nie mógł przyjmować nowych ani aktualizować istniejących.
    • Ostateczne rozwiązanie problemu polegało na usunięciu nieprawidłowego planu lotu z systemu FPRSA-R i ponownym uruchomieniu systemu w trybie normalnym. Aby to zrobić, inżynierowie NATS musieli skontaktować się z firmą Frequentis AG, która stworzyła oprogramowanie FPRSA-R, i uzyskać instrukcje, jak zlokalizować i usunąć błędne dane.

    Bardzo dokładną analizę tego przypadku znajdziesz w artykule: UK air traffic control meltdown

  9. Czy warto estymować?

    Szacowanie jest często niedokładne i mało efektywne. Dlatego niektórzy są za podejściem #noestimates, czyli braku estymat. Dużo osób korzystających z #noestimates błędnie podchodzi do tej koncepcji i traktuje to jako pozwolenie na brak oszacowań.

    Remember that #NoEstimates is not about no estimation ever, but about the minimum amount of estimates that will do, and then look carefully at ways to reduce that need even more. — Ángel Medinilla

    Koncepcja #noestimates polega na minimalizowaniu lub eliminowaniu szacowania czasu i kosztów projektów. Zwolennicy #noestimates często opisują estymaty jako problematyczne, ponieważ są:

    • trudne do wykonania i często oparte na niepewnych założeniach i niesprawdzonych hipotezach.
    • podatne na błędy i odchylenia, takie jak optymizm, zakotwiczenie czy presja społeczna.
    • czasochłonne i kosztowne, a zamiast tego można by poświęcić czas i zasoby na tworzenie wartości dla klienta.
    • źródłem konfliktów i napięć między zespołem, klientem i zarządem, ponieważ tworzy fałszywe oczekiwania i obietnice.
    • nieelastyczne i nieodporne na zmiany, które są nieuniknione w dynamicznym środowisku projektowym.

    Zwolennicy #noestimates zamiast estymat proponują podejście oparte na empirycznym pomiarze postępu i dostarczaniu wartości. Dlaczego takie podejście ma korzyści? Między innymi:

    • pozwala na szybsze i częstsze uzyskiwanie informacji zwrotnych od klienta i rynku, co umożliwia lepsze dopasowanie produktu do potrzeb użytkowników.
    • zwiększa motywację i zaangażowanie zespołu, ponieważ skupia się na tworzeniu wartości, a nie na spełnianiu arbitralnych celów i terminów.
    • poprawia jakość produktu, ponieważ umożliwia ciągłe testowanie i poprawianie funkcjonalności i wydajności.
    • ułatwia zarządzanie projektem, ponieważ pozwala na elastyczne dostosowywanie planu do zmieniających się warunków i priorytetów.

    Techniki, które można zastosować w ramach #noestimates, to:

    • używanie metryk opartych na wartości, takich jak cykl życia klienta, wskaźnik konwersji lub przychód.
    • dzielenie pracy na małe i niezależne części, które mogą być łatwo zmierzone i dostarczone.
    • stosowanie technik zwinnego zarządzania projektem, takich jak iteracyjne i przyrostowe dostarczanie, ciągła integracja i ciągłe testowanie.
    • ustalanie priorytetów pracy na podstawie wartości dla klienta i ryzyka dla biznesu.
    • adaptowanie planu na podstawie uzyskanych informacji zwrotnych i zmieniających się warunków rynkowych.

    ✅Stosowanie #noestimates jest sensowne w sytuacjach, gdy:

    • projekt jest mały lub średni i pozwala na łatwe dzielenie pracy na małe, niezależne części, które mogą być szybko dostarczone i zmierzone.
    • zespół ma doświadczenie w pracy z metodami zwinnymi i jest w stanie adaptować się do zmieniających się wymagań bez potrzeby szczegółowego szacowania.
    • istnieje wysoki poziom niepewności lub zmienności w wymaganiach projektu, co sprawia, że tradycyjne metody szacowania są mniej efektywne.
    • klient lub zarząd projektu jest otwarty na podejście empiryczne i skupione na dostarczaniu wartości zamiast ścisłego przestrzegania szacowanych terminów i budżetów.

    ❌Natomiast stosowanie #noestimates może być mniej sensowne, gdy:

    • projekt jest duży, złożony i wymaga koordynacji wielu zespołów oraz zasobów, co może utrudniać zarządzanie bez tradycyjnych szacunków.
    • klient oczekuje dokładnych prognoz kosztów i czasu realizacji przed rozpoczęciem projektu.
    • zespół nie posiada wystarczającej wiedzy lub doświadczenia w pracy z metodami zwinnymi i może mieć trudności z adaptacją do podejścia #noestimates.
    • wymagane jest spełnienie określonych regulacji lub standardów branżowych, które wymuszają dokładne szacowanie i dokumentowanie postępu projektu.

    Podejście #noestimates wymaga odpowiedniego kontekstu i gotowości wszystkich stron do pracy w oparciu o ciągłe dostosowywanie się do zmieniających się warunków. Jest to metoda, która może przynieść wiele korzyści, ale również wymaga zmiany myślenia o zarządzaniu projektami i gotowości do przyjęcia większej elastyczności w planowaniu.

    Więcej o podejściu #noestimates poczytasz w postach:

  10. I na koniec – coś mocno związanego z kodem – 14 Linting Rules To Help You Write Asynchronous Code in JavaScript, czyli 14 reguł do zastosowania w ESLint, aby poprawić jakość swojego kodu.

    ESLint jest narzędziem do statycznej analizy kodu, dla języków JavaScript/TypeScript. ESLint pozwala na stosowanie różnych reguł (dostosowanych do naszego projektu), aby pisać spójny, lepszej jakości kod.

    Niektóre z reguł, które są przedstawione w poście:

    • prefer-promise-reject-errors – odrzucaj obietnice tylko z błędami, aby ułatwić obsługę błędów i debugowanie
    • no-async-promise-executor – nie używaj funkcji asynchronicznych jako wykonawców obietnic, aby uniknąć utraty błędów
    • require-await – używaj await w funkcjach asynchronicznych, aby uniknąć tworzenia niepotrzebnych funkcji asynchronicznych
    • no-await-in-loop – nie używaj await w pętlach, aby poprawić wydajność i uruchamiać operacje asynchroniczne równolegle
    • no-return-await – nie używaj await przy zwracaniu wartości, aby poprawić wydajność i uniknąć niejasności
    • promise/catch-or-return – zawsze dodawaj catch lub return do obietnic, aby uniknąć niewychwyconych błędów
    • promise/no-nesting – nie zagnieżdżaj obietnic, użyj Promise.all lub async/await zamiast tego
    • promise/no-return-in-finally – nie zwracaj wartości w bloku finally, ponieważ może to zmienić wynik obietnicy
    • promise/valid-params – upewnij się, że przekazujesz poprawne parametry do metod Promise, takich jak then, catch i finally
    • max-nested-callbacks – maksymalna liczba wywołań asynchronicznych funkcji w innych asynchronicznych funkcjach (pozwala uniknąć callback hell)

Co nowego u nas?

  1. W październiku odbywa się premiera naszego Programu Praktyczne wprowadzenie do testów automatycznych z Playwright😎

    Na pokładzie mamy ponad 300 osób, które zdobywają wiedzę o nowoczesnej automatyzacji, dobrych praktykach i architekturze testów!🤩

    A my tymczasem dostarczamy im nowe materiały😎

    Obecnie pracujemy nad mega materiałami o:

    • fixtures w testach automatycznych i dobre praktyki
    • strategie raportowania w procesie CI/CD

    W kolejnych miesiącach planujemy maksymalnie skupić się na tej zawartości, aby dostarczyć kolejne elementy Programu😎

  2. Na playwright.info opublikowalismy artykuł o wydajności testów REST API w Playwright. Porównujemy go z innym częstym rozwiązaniem – Mocha + Supertest. Cały posta znajdziesz pod poniższym adresem:

    Playwright i wydajność testów REST API

Rozwój

  1. Krzysiek: Polecam podcast Modern Wisdom. Dzisiaj konkretnie poleciłbym kilka odcinków, które słuchałem w ostatnim czasie.

    Pierwszy odcienk to 7 Semi-Controversial Rules For Success – Shaan Puri | Modern Wisdom 683.

    Pojawiają się tam tematy:

    • Przecenianie ciężkiej pracy
    • Wartość entuzjazmu i tego, że jej nie doceniamy
    • Potrzeba rozwoju umiejętności opowiadania historii
    • Moc mema “Midwit”
    • Zdefiniowanie swoich zasad
    • Czy naprawdę uczysz się na błędach?
    • Dążenie do bycia miliarderem to głupi cel
    • Zatrudniania asystenta zmienia życie

    Drugi odcinek to Eric Weinstein – Why Can No One Agree On The Truth Anymore? (4K) | Modern Wisdom 676.

    • To, czego normalni ludzie nie rozumieją o ludziach elitarnych
    • Wyrównywanie mentalności braku i mentalności obfitości
    • Kiedy Eric spotkał się z Jeffreyem Epsteinem
    • Odpowiedź na ostatnich donosicieli UFO
    • Jak obronić się przed manipulacyjną niepewnością
    • Gdzie Eric różni się od Sama Harrisa
    • Czy staliśmy się zbyt sceptyczni wobec instytucji?
    • Jak ludzkość staje się wieloplanetarna
    • Wyjaśnienie, jak wielki był Albert Einstein
    • Śmierć niuansu i prawdy w erze mediów społecznościowych
    • Dlaczego ludzie już nie wchodzą w interakcje?
    • Prawdziwe problemy, z jakimi obecnie borykają się mężczyźni
    • Jak media społecznościowe, gry wideo i pornografia wpływają na mężczyzn
    • Największe wady systemu edukacyjnego

    Trzeci odcinek to 16 Lessons From 700 Episodes – Sam Harris, Mark Manson & Tim Urban. Chris dzieli się swoimi ulubionymi lekcjami i cytatami z ostatnich 100 odcinków podcastu. Niektóre z tematów, które porusza, to:

    • Jak oczekiwania definiują szczęście i jak je zarządzać.
    • Jak zachować otwartość na różne perspektywy.
    • Co to jest paradoks Abilene i jak go rozwiązać.
    • Dlaczego nie należy brać rad od ludzi, którzy osiągnęli wielki sukces.
    • Jaka jest realistyczna ścieżka do oświecenia i jak ją osiągnąć.
    • Jak podejmować decyzje dla jutra, a nie dla dzisiaj.
    • Jak uwolnić się od strachu i ego.
    • Jak mierzyć, kiedy historia staje się naprawdę główna.
    • Co to jest dysmorfia produktywności i jak jej zapobiegać.
    • Jaki jest problem z trybem mnicha i jak go zrównoważyć.
    • Czy konsumowałbyś własną treść i dlaczego jest to ważne.
    • Jak być gotowym na bycie nielubianym i dlaczego jest to korzystne.
    • Jak wybrać swoje cierpienie i jak się z nim zmierzyć.

    Film jest pełen mądrości, humoru i inspiracji dla każdego, kto chce poprawić swoje życie.

    Mega polecam, bo poszerza horyzonty i może pokazać nową perspektywę na wiele tematów 😉

Wracamy do pracy

Po tej garści aktualności i ciekawostek wracamy do pracy nad nowymi soczystymi materiałami. Do usłyszenia niebawem! 👋

Pobierz darmowe materiały z webinaru o Playwright!

Zachęcamy również do zajrzenia na naszą tablicę trello, gdzie możesz monitorować ogólne postępy prac nad nowymi materiałami jak i również głosować na nowe tematy. Pamiętaj, że dostęp do najnowszych wieści od jaktestowac.pl uzyskasz obserwując nas na facebooku, twitterze i od niedawna również na instagramie 😉

Stay tuned!

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *