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!

Szykujesz się do rekrutacji? Zajrzyj do darmowego materiału!

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 *