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!
Testerskie linki
- 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 BiasA 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.
- 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:
- wpis na oficjalnym blogu Cypressa – Changes in defense of Cypress Intellectual Property
- wpis na blogu twórców pluginu Currents – Cypress.io Blocking of Sorry Cypress and Currents
- 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
- 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).
- Metryki DevOps – Czym jest sukces w DevOps oraz dlaczego i jak go mierzyć
- Strategie wdrażania zasad i praktyk DevOps w ramach struktury wdrażania chmury firmy Microsoft dla platformy Azure. Zawiera on informacje na temat korzyści z DevOps, sposobów oceny dojrzałości DevOps, metodologii planowania i realizacji projektów DevOps oraz narzędzi i zasobów wspierających DevOps – Kwestie do rozważenia dotyczące metodyki DevOps
- szczegółowe wyjaśnienie czterech kluczowych metryk DORA, które są uznawane za standard branżowy w zakresie pomiaru wydajności DevOps – DevOps & DORA Metrics: The Complete Guide
- 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
- Biznes lub finanse
- 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
-
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:
- 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
- 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:
- 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 debugowanieno-async-promise-executor
– nie używaj funkcji asynchronicznych jako wykonawców obietnic, aby uniknąć utraty błędówrequire-await
– używaj await w funkcjach asynchronicznych, aby uniknąć tworzenia niepotrzebnych funkcji asynchronicznychno-await-in-loop
– nie używaj await w pętlach, aby poprawić wydajność i uruchamiać operacje asynchroniczne równolegleno-return-await
– nie używaj await przy zwracaniu wartości, aby poprawić wydajność i uniknąć niejasnościpromise/catch-or-return
– zawsze dodawaj catch lub return do obietnic, aby uniknąć niewychwyconych błędówpromise/no-nesting
– nie zagnieżdżaj obietnic, użyj Promise.all lub async/await zamiast tegopromise/no-return-in-finally
– nie zwracaj wartości w bloku finally, ponieważ może to zmienić wynik obietnicypromise/valid-params
– upewnij się, że przekazujesz poprawne parametry do metod Promise, takich jak then, catch i finallymax-nested-callbacks
– maksymalna liczba wywołań asynchronicznych funkcji w innych asynchronicznych funkcjach (pozwala uniknąć callback hell)
Co nowego u nas?
- 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😎
- 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:
Rozwój
- 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! 👋
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 😉