W ramach rozwijania się oglądam i czytam różne materiały. Następnie wiedzę z nich umieszczam w Anki oraz w notatkach i uzupełniam własnymi przemyśleniami.
Notatka
Zebrałem tutaj notatki z kilku filmów.
Testowanie ASERCJE [SmartTesting.pl, Tydzień 01, Lekcja 10] (DEMO 1/4)
- Możemy stworzyć obiektassert – klasę, w której ukryte są szczegółowe asercje.
- Klasa chowa w metodach zaawansowane asercje z ładnymi nazwami, np. CorrectOrderForWorker.
- Metoda z asercją zwraca ten sam obiekt, aby robić łańcuch metod z asercjami, np. Order.IsStudent().IsCorrectOrder().
Testowanie Na Produkcji [SmartTesting.pl, Tydzień 07, Lekcja 05] DEMO 3/4
- Zawsze należy przeklikać aplikacje po wdrożeniu. Najlepiej mieć na to testy automatyczne.
- Wdrożenie kanarkowe – wdrożenie małej zmiany dla małej części ruchu i części serwerów. Pozwala uniknąć błędów i awarii na szerszą skalę.
- Należy oznaczyć specjalnie logi pochodzące ze wdrożenia kanarkowego, aby łatwiej diagnozować problem.
- Wymagana jest wsteczna kompatybilność z bazą danych.
- Wymagane jest zaimplementowanie automatycznych rollbacków.
- Testy A/B – sprawdzenie faktycznych upodobań użytkowników (o testach A/B pisałem tutaj: https://karolbocian.pl/blog/2020/11/24/testy-a-b-od-klikniecia-do-klienta-dan-siroker-i-pete-koomen/).
- Część użytkowników widzi opcję A, a druga B w tym samym czasie. Grupy użytkowników są dobierane losowo.
- Sprawdzamy, która opcja jest lepsza (np. czerwony, czy zielony przycisk sprzedażowy). Test wygrywa opcja, która została częściej wybrana przez użytkowników.
- Wgranie wydania z feature toogle.
- Możemy włączyć / wyłączyć później daną funkcjonalność.
- Możemy włączyć funkcjonalność najpierw dla testerów, a gdy działa, to pozostałym użytkownikom lub grupie użytkowników.
Chaos Testing [SmartTesting.pl, Tydzień 05, Lekcja 04] DEMO 4/4
- Pozwala znaleźć losowe i nieznane błędy.
- Inżynieria chaosu – zestaw praktyk polegający wykonywaniu kontrolowanych eksperymentów w celu naprawienia błędów i zapewnienia poprawnego funkcjonowania na produkcji pomimo pojawienia się błędów. Pozwala znaleźć dowody istnienia słabych punktów.
- Proces inżynierii chaosu (podejście eksperymentalnego):
- Postawienie hipotezy.
- Wykonanie eksperymentu i dokładne obserwowanie systemu (logi, metryki).
- Analiza wyników eksperymentu i ocena skutków.
- Wprowadzenie usprawnień, jeżeli błąd wpłynął negatywnie na system i jest istotny.
Testowanie integracyjne baz danych [SmartTesting.pl, Tydzień 03, Lekcja 05] (DEMO 2/4)
- Problemy w testowaniu baz danych:
- Współdzielona baza danych będzie miała zmieniane dane przez testy w tym samym czasie.
- Często wymagane jest zachowania kolejności wykonania testów.
- Długi czas działania testów.
- Rodzaje integracji z bazą danych w testach:
- Zaślepka – mockujemy klasę odpowiedzialną za dostęp do bazy danych.
- Baza danych w pamięci.
- Embedded – uruchamiana razem z aplikacją, może korzystać z innego dialektu SQL, testowanej takiej bazy nie testuje naszej bazy danych, nie daje pewności, że nasze rozwiązanie zadziała w prawdziwej aplikacji.
- Kontener – (kontener – spakowany kod i zależności). np, Docker – baza danych w kontenerze do każdego testu jest nowa / czysta.
- Sandboxy (dane przypominające produkcyjne dane) -prawdziwa baza danych. Problemy: równoległe testy nadpisują dane, niektóre testy muszą uruchamiać się w odpowiedniej kolejności, czasochłonne.
PO CO i JAK testować? SmartTesting LIVE!
- Po co pisać testy (przez programistów):
- Żywa dokumentacji projektu.
- Tworzymy lepszą architekturę i lepsze interfejsy.
- Zapewnianie, że raz naprawione bugi nie pojawiają się później.
- Mniej błędów na produkcji.
- Szybsze naprawienie błędów – już na etapie implementacji, przed wdrożeniem na produkcję lub oddaniu testerom.
- Częste sprawdzanie aplikacji – testy automatyczne.
- Lepsze zrozumienie feature’a, gdy pracujemy w TDD.
- Testy kosztują:
- Czas stworzenia.
- Koszty naprawiania.
- Koszty uruchamiania.
- Zatem należy nie przesadzać z liczbą testów.
- Jak testować?
- Testować zachowania, a nie implementację.
- Nie używać statycznych metod, lecz robić własne klasy, które potem można mockować.
Wszystkie posty związane z notatkami z nauki:
- Wydajność – Jarek Pałka – Notatka z nauki
- Memento Memori – Konrad Kokosa – Notatka z nauki
- Architektura Modularnego Monolitu – Notatka z nauki
- Jak przetestować prawdziwy system – Notatka z nauki
- Rekonesans – Budowa biznesu – Notatka z nauki
- Be pragmatic be SOLID – Notatka z nauki
- Co może pójść nie tak – Notatka z nauki
- Podcast: Demo 28-dniowego wyzwania równoległego
- Podcast: Jakie podjąłem 28-dniowe wyzwania?
- Podcast: Jakie można podjąć 28-dniowe wyzwania?
- Podcast: Szablony 28-dniowego wyzwania
- Sagi, strumienie, reaktywność i inne buzzwordy – Notatka z nauki
- Podcast: Co dalej z 28-dniowym wyzwaniem?
- Podcast: Zakończenie serii o 28-dniowym wyzwaniu
- Języki ezoteryczne – Notatka z nauki
- Developerze zdevelopuj się sam – Notatka z nauki
- Jak działa dobra firma – Notatka z nauki
- Praca z kodem zastanym – Notatka z nauki
- Jak wytrenować Juniora – Notatka z nauki
- Engineering architecture – Notatka z nauki
- Jak zbudować skuteczny proces sprzedaży w firmie – Notatka z nauki
- Level-up your culture – Notatka z nauki
- Problem sprytnego programisty – Notatka z nauki
- Napraw swój zespół – Notatka z nauki
- Jak odzyskać kontrolę nad aplikacją? Logger – Notatka z nauki
- Nailing down bugs in distributed systems – Notatka z nauki
- Wybór architektury – Notatka z nauki
- Pair programming – sposób na lepszy kod i mocniejszy zespół – Notatka z nauki
- Continuous Delivery w projektach Open Source – Notatka z nauki
- Learning Software Development – Notatka z nauki
- Bezpieczne programowanie – Notatka z nauki
- Zero code systems – Notatka z nauki
- Jak znaleźć czas na jakość – Notatka z nauki
- Najlepszy menedżer w historii Polski – Notatka z nauki
- Refaktoryzacja w Świecie Biznesu – Notatka z nauki
- Pytania z Kosmosu. Kim jesteśmy, skąd się wzięliśmy i dokąd zmierzamy — de Grasse Tyson Neil, Trefil James
- Deweloper na detoksie – Notatka z nauki
- Clean Code – Notatka z nauki
- Przepis na DevOps – Notatka z nauki
- Effective software delivery – Notatka z nauki
- Zero Trust Theorem – Notatka z nauki
- Errors errors everywhere! – Notatka z nauki
- Budowanie efektywnych zespołów IT – Notatka z nauki
- Jak technologie zmienią nasze życie do roku 2020? – Notatka z nauki
- Głaskologia — Miłosz Brzeziński
- Innowacja – strategiczne podejście do pomysłów – Notatka z nauki
- Continuous Integration na przykładzie oprogramowania dla iOS – Notatka z nauki
- Product/market fit and beyond – Notatka z nauki
- 7 sprawdzonych metod zwiększania konwersji – Notatka z nauki
- Mistrz czystego kodu Kodeks postępowania profesjonalnych programistów — Robert C. Martin
- Mój pierwszy raz z… inwestorem – Notatka z nauki
- Koszty złej jakości oprogramowania – Notatka z nauki
- Start-up Od pomysłu do sukcesu — Łopusiewicz Adam
- Produktywność wg CodeTwo – Notatka z nauki
- Sztuczna inteligencja – Transhumanizm czy wojny robotów? – Notatka z nauki
- Start-up po polsku Jak założyć i rozwinąć dochodowy e-biznes
- Realizuj projekty oparte na pasji – Notatka z nauki
- Czy istnieje bezpieczny kod – Notatka z nauki
- Czego nie należy robić, aby osiągnąć sukces w innowacyjnym przedsięwzięciu? – Notatka z nauki
- Czy Blockchain zdecentralizuje wszystko – Notatka z nauki
- Lead generation i automatyzacja, czyli jak sprzedawać leżąc na plaży – Notatka z nauki
- Wykorzystanie machine learning i sztucznej inteligencji w Marketing Automation – Notatka z nauki
- 9 rzeczy których nauczyłem się robiąc startupy – Notatka z nauki
- 5 Najczęstszych błędów w Entity Framework Core – Notatka z nauki
- ADAS – Autonomiczne Auta – Notatka z nauki
- Inteligentne miasta – Notatka z nauki
- Największe wyzwania w rekrutacji programistów i jak sobie z nimi radzić? – Notatka z nauki
- Dobry programista to leniwy programista – automatyzacja Continuous Integration / Delivery – Notatka z nauki
- Od pomysłu do produktu – jak przejść tę drogę bez potknięć? – Notatka z nauki
- Jak zdefiniować produkt? – Notatka z nauki
- Jak e-marketing wielokanałowy działa w praktyce – Notatka z nauki
- Czy programiści podzielą los dinozaurów a program może napisać się sam?- Notatka z nauki
- 3G Capital – FUNDUSZ którego spółka notuje ponad 50 mld $ przychodów – Notatka z nauki
- Jak przeskoczyć przepaść stworzyć produkt technologiczny i na nim zarobić – Notatka z nauki
- Jak nie umrzeć przedwcześnie – Notatka z nauki
- Tiger Global Management – fundusz inwestujący w JEDNOROŻCE jak nikt dotąd – Notatka z nauki
- Object Oriented UX – Notatka z nauki
- Modelowanie Zwinnej organizacji – Notatka z nauki
- 7 Błędów Początkujących Podczas Pisania Testów Jednostkowych – Notatka z nauki
- TDD Test Driven Development i Testy jednostkowe – Notatka z nauki
- Testy integracyjne – Notatka z nauki
- Kurs SEO – Notatka z nauki
- Testy jednostkowe – Notatka z nauki
- Przykłady aplikacji w Power Apps – Notatka z nauki
- Kariera developera. Zostałem seniorem i co dalej? – Notatka z nauki
- Największe zagrożenia dla bezpieczeństwa w internecie – Notatka z nauki
- Jak zwiększyć wartość testów jednostkowych – Notatka z nauki
- W 30 minut na produkcję – Notatka z nauki
- How to Build a Startup Without Funding – Notatka z nauki
- Jak błędy poznawcze niszczą Twoją pracę – Notatka z nauki
- Zarządzanie i motywowanie rozproszonego zespołu – Notatka z nauki
- Be eco be rich be fast – Notatka z nauki
- (Un)productive partnerships – Notatka z nauki
- From developer to a robot – Notatka z nauki
- Kariera w/dzięki Open Source – Notatka z nauki
- Od czego zacząć robotyzacje procesów biznesowych w firmie by osiągnąć zamierzone cele? – Notatka z nauki
- Modern agile retrospectives – Notatka z nauki
- Mój pierwszy milion jak zarabiać na aplikacjach – Notatka z nauki
- Rozwój osobisty w informatyce – czyli jak być efektywnym – Notatka z nauki
- Co robi Scrum Master cały dzień – Notatka z nauki
Źródła
Obraz główny
Materiał
- materiały udostępnione w ramach marketingu i sprzedaży: https://smarttesting.pl/. Są dostępne po zapisie się na newsletter, więc nie mogę podać linków do nich.
Sorry, there was a YouTube error.