Testowanie akceptacyjne użytkownika (UAT): proces, lista kontrolna i rzeczywiste przykłady

  1. Strona główna
  2. Blog
  3. Testowanie oprogramowania

Testowanie oprogramowania

Testowanie akceptacji użytkownika (UAT): Proces, lista kontrolna i rzeczywiste przykłady

Oprogramowanie może przejść każdy test, a mimo to zawieść ludzi, którzy go potrzebują. UAT to ostateczna kontrola, czy rozwiązuje prawdziwy problem biznesowy. Dowiedz się, kto powinien go prowadzić, jak go zaplanować i kiedy się podpisać.

9 min czytania
Testy akceptacyjne użytkownika (UAT): proces, lista kontrolna i realne przykłady

Najważniejsze

  • Testowanie akceptacyjne użytkownika sprawdza, czy oprogramowanie spełnia rzeczywiste potrzeby biznesowe, korzystając z rzeczywistych scenariuszy.
  • Jest prowadzony przez użytkowników biznesowych lub klientów, a nie przez zespół, który zbudował oprogramowanie.
  • QA pyta „czy to działa zgodnie ze specyfikacją?”, podczas gdy UAT pyta „czy rozwiązuje problem?”.
  • Uzgodnij kryteria wejścia, kryteria wyjścia i to, kto się wyloguje przed rozpoczęciem UAT.

Zespół dostarcza kiedyś system wydatków, który przechodzi każdy test techniczny. Już pierwszego dnia zespół finansowy odkrywa, że ​​nie jest w stanie obsługiwać roszczeń wielowalutowych, co stanowi dużą część jego pracy. Nic nie było “zepsute”, ale nie nadawało się do użytku. Testowanie akceptacji użytkownika ma na celu wykrycie dokładnie tego rodzaju luk przed uruchomieniem.

W tym przewodniku opisano, czym UAT różni się od innych testów, jak przeprowadzić go krok po kroku i jak zdecydować, kiedy będzie gotowy do wydania. Powyższy scenariusz i poniższe przykłady mają charakter poglądowy, a proces należy skalować tak, aby pasował do Twojego projektu.

Co to jest UAT?

UAT to zazwyczaj ostatnia faza testów przed wydaniem, podczas której zamierzeni użytkownicy potwierdzają, że oprogramowanie może wykonywać swoją pracę w realistycznych warunkach. Nazywa się to również testowaniem użytkownika końcowego lub testem akceptacyjnym. Następuje po rozwoju i testowaniu systemu, kiedy oczekuje się, że produkt będzie stabilny.

Jego celem nie jest znalezienie każdego błędu. Na tym etapie większość z nich powinna już zniknąć. Celem jest walidacja: czy zbudowaliśmy właściwą rzecz? Testerzy sprawdzają, czy produkt jest zgodny ze specyfikacją. UAT sprawdza, czy specyfikacja i produkt rzeczywiście odpowiadają potrzebom.

Testowanie UAT vs QA

Aspekt Kontrola jakości lub testowanie systemu UAT
Główne pytanie Czy to działa zgodnie z opisem? Czy zaspokaja potrzeby biznesowe?
Wykonywane przez Testerzy i inżynierowie QA Użytkownicy biznesowi lub klienci
Czas W trakcie i po rozwoju Tuż przed wydaniem
Na podstawie Wymagania i projekty Prawdziwe przepływy pracy w biznesie
Skup się Defekty, przypadki brzegowe, integracje Użyteczność i dopasowanie do celu
Wiedza techniczna Często wysokie Nie potrzebne
Wynik Raporty o błędach Akceptacja lub odrzucenie

UAT nie zastępuje innych testów. Jeśli użytkownicy ciągle napotykają podstawowe błędy, oznacza to, że kompilacja nie była gotowa, a Ty marnujesz ich ograniczony czas. Problemy te dotyczą wcześniejszych poziomów testów i testów regresyjnych.

Kto prowadzi UAT?

Rola Odpowiedzialność
Użytkownicy końcowi Uruchom scenariusze i przekaż opinię
Właściciel produktu lub analityk biznesowy Określa zakres i pisze lub przegląda scenariusze
Koordynator UAT lub kierownik ds. kontroli jakości Planuje sesje, wspiera testerów, śledzi problemy
Deweloperzy Rozwiązuj problemy i odpowiadaj na pytania techniczne
Sponsor biznesowy Podejmuje ostateczną decyzję o podpisaniu umowy

Wybierz testerów, którzy naprawdę dzisiaj wykonują swoją pracę. Doświadczony specjalista zajmujący się roszczeniami dostrzeże problemy, których menedżer lub pełnomocnik nigdy by nie zauważył. Uwzględnij zakres doświadczenia, ponieważ nowy pracownik często ujawnia mylące kroki, nad którymi ekspert pracuje, niezauważając. I upewnij się, że ich menedżerowie znajdą na to czas, ponieważ UAT nie może odnieść sukcesu przy pełnym obciążeniu pracą.

Rodzaje UAT

Wpisz Co sprawdza Przykład
Akceptacja biznesowa Spełnia cele biznesowe Personel realizuje prawdziwe roszczenie od początku do końca
Testy alfa Testy wewnętrzne w kontrolowanym otoczeniu Personel wypróbowuje nową aplikację przed użytkownikami zewnętrznymi
Testy beta Prawdziwi klienci w rzeczywistych warunkach Ograniczona publiczna wersja zapoznawcza
Akceptacja umowy Spełnia uzgodnione warunki umowy Klient weryfikuje dostarczony system
Akceptacja regulacyjna Spełnia zasady prawne lub dotyczące zgodności Sprawdza zasady opieki zdrowotnej lub bankowości
Odbiór operacyjny Gotowy do uruchomienia w produkcji Kopie zapasowe, monitorowanie i wsparcie procesów

Siedmioetapowy proces UAT

1. Zdefiniuj zakres i cele

Zdecyduj, co jest akceptowane, co wykracza poza zakres i jakie wyniki biznesowe mają znaczenie. Na przykład: „Personel finansowy może przesłać, zatwierdzić i opłacić wniosek o wydatek w dowolnej obsługiwanej walucie”.

2. Uzgodnij kryteria akceptacji

Zapisz prostym językiem, jak wygląda sukces, najlepiej na początku projektu, a nie na tydzień przed jego uruchomieniem. Niejasne kryteria prowadzą do późniejszych kłótni.

3. Wybierz i zrekrutuj testerów

Wybierz prawdziwych użytkowników, wyjaśnij cel, pokaż im, jak rejestrować opinie i wyjaśnij, że testują oprogramowanie, a nie sami są testowani. Wiele osób martwi się, że coś pójdzie nie tak.

4. Przygotuj środowisko i dane

Środowisko UAT powinno przypominać środowisko produkcyjne tak bardzo, jak to jest praktyczne. Korzystaj z realistycznych danych, konfiguruj prawidłowe role użytkowników i sprawdzaj integracje, takie jak poczta e-mail. Jeśli kopiujesz dane produkcyjne, najpierw zamaskuj dane osobowe. Przeprowadź szybki test dymny, aby testerzy nie przyszli i nie znaleźli uszkodzonej kompilacji.

5. Napisz scenariusze

Oprzyj je na rzeczywistych przepływach pracy, a nie na pojedynczych przyciskach. Powinni czytać jak pracę, a nie jak oprogramowanie. W naszym przewodniku po przypadku testowym a scenariuszu testowym wyjaśniono, ile szczegółów potrzebujesz.

6. Uruchom testy i zbierz opinie

Prowadź sesje z osobą, która może Ci pomóc. Zbieraj problemy w jednym miejscu za pomocą zrzutów ekranu. Zostaw też trochę czasu na swobodną eksplorację, ponieważ ludzie próbują rzeczy, których scenariusze nigdy nie przewidują. Testowanie eksploracyjne oferuje przydatne techniki.

7. Napraw, przetestuj ponownie i wyloguj się

Segreguj opinie, napraw to, co istotne i poproś tych samych użytkowników o potwierdzenie poprawek. Następnie zapisz formalną decyzję.

Przypadek testowy UAT

Przypadek testowy UAT powinien być łatwy do naśladowania dla osoby nietechnicznej. Oto przykład systemu wydatków:

ID:        UAT-012
Scenario:  Submit a foreign currency expense claim
User role: Sales employee
Before:    Logged in, with a USD receipt ready

Steps:
  1. Create a new expense claim
  2. Enter a client dinner of 80 USD and attach the receipt
  3. Submit the claim for approval

Expected:  The amount is converted to INR at the current rate
           The manager receives an approval request
           The claim shows as "Awaiting approval"

Result:    Pass / Fail
Comments:
Tester / Date:

Należy pamiętać, że opisuje on rzeczywiste zadanie, a nie szczegóły techniczne i pozostawia miejsce na komentarze. Te komentarze często okazują się najcenniejszą częścią, typu „to działa, ale nigdy nie znalazłbym tego przycisku”.

Wskazówka: Zobacz, jak co najmniej jeden użytkownik robi to osobiście lub podczas rozmowy. Ludzie często obchodzą się z mylącym oprogramowaniem i nigdy tego nie zgłaszają. Widzenie, jak się wahają, mówi ci więcej niż kiedykolwiek „przepustka”.

Kryteria wejścia i wyjścia

Kryteria wejścia (gotowe do rozpoczęcia) Kryteria wyjścia (gotowe do zakończenia)
Testowanie systemu zostało zakończone Wszystkie krytyczne scenariusze zostały uruchomione
Brak otwartych błędów krytycznych lub wysokich Brak otwartych błędów krytycznych
Środowisko i dane są gotowe Osiągnięto uzgodniony wskaźnik zdawalności
Scenariusze są sprawdzane Pozostałe kwestie mają uzgodniony plan
Testerzy są przeszkoleni i dostępni Sponsor biznesowy podpisał kontrakt

Wpisują się one w szerszy cykl życia testowania oprogramowania. Ustal wcześniej liczby ze swoimi interesariuszami. „Zdecydujemy, kiedy uznamy to za stosowne” zwykle prowadzi do pośpiesznej odpowiedzi „tak”, pod warunkiem dotrzymania terminu.

Obsługa informacji zwrotnej

Informacje zwrotne od UAT są mieszanką różnych rzeczy i nie wszystkie są błędami. Sortuj według kategorii:

Wpisz Przykład Zwykła akcja
Wada Całość została błędnie obliczona Napraw, w zależności od ważności
Pominięty wymóg Wielowalutowość nie jest obsługiwana Napraw przed uruchomieniem lub zaplanuj ponownie
Problem z użytecznością Użytkownicy nie mogą znaleźć przycisku przesyłania Często warto naprawić
Zmień żądanie „Czy można również eksportować do formatu PDF?” Dodaj do zaległości
Kwestia szkolenia Ta funkcja działa, ale została źle zrozumiana Aktualizuj poradniki

Stosuj jasne zasady określające, co blokuje wydanie, zgodnie z opisem w artykule ważność a priorytet. I odpowiadaj na każdy element, także ten, który odrzuciłeś. Ludzie przestają dawać informację zwrotną, jeśli wydaje się, że zanika. Nasz przewodnik na temat jak napisać raport o błędzie może pomóc testerom w jasnym opisaniu problemów.

Lista kontrolna UAT

Przed UATem

  • Zakres i kryteria akceptacji uzgadniane są w formie pisemnej
  • Zakończono testy systemowe i regresyjne
  • Testerzy są wybierani, instruowani i mają czas
  • Środowisko, rachunki i realistyczne dane są gotowe
  • Dane osobowe w kopiach zostały zamaskowane
  • Scenariusze są sprawdzane przez firmę
  • Utworzono jedno miejsce do rejestrowania problemów
  • Podano imię i nazwisko właściciela podpisu

Podczas UAT

  • Dostępny jest kontakt z pomocą techniczną
  • Problemy są rozpatrywane codziennie
  • Postęp jest udostępniany zainteresowanym stronom
  • Poprawki są wdrażane i ponownie testowane w kontrolowany sposób

Po UAT

  • Sprawdzono kryteria wyjścia
  • Znane problemy są udokumentowane wraz z właścicielami
  • Formalne podpisanie umowy jest rejestrowane
  • Informacje o szkoleniach i wydaniach zostały zaktualizowane
  • Odbyła się krótka retrospektywa

UAT w zespołach Agile

Tradycyjny UAT kończy się jedną dużą fazą, w której niespodzianka jest kosztowna. Zwinne zespoły skracają tę pętlę. Właściciele produktu sprawdzają każdą historię pod kątem kryteriów akceptacji podczas sprintu, a użytkownicy widzą działające oprogramowanie podczas recenzji sprintu. Wiele zespołów nadal uruchamia skoncentrowany test UAT przed wydaniem głównej wersji, szczególnie gdy kilka funkcji łączy się w jeden przepływ pracy.

W przypadku częstych wydań techniki takie jak flagi funkcji i wdrożenia kanarkowe umożliwiają prawdziwym użytkownikom stopniowe wypróbowywanie nowych rozwiązań. Należy pamiętać, że uzupełniają one testy akceptacyjne, ale nie zastępują ich automatycznie, szczególnie w branżach regulowanych, które wymagają formalnego zapisu.

Typowe błędy

  • Traktowanie tego jako formalności. Podpisanie bez rzeczywistego zastosowania nikogo nie chroni.
  • Korzystanie z niewłaściwych testerów. Programiści i kontrola jakości mają zbyt dużą wiedzę o systemie, aby reprezentować użytkowników.
  • Zaczynając od niestabilnej wersji. Testerzy szybko tracą zaufanie i zainteresowanie.
  • Zostawianie tego na ostatnią chwilę. Nie ma wtedy czasu na poprawianie tego, czego się nauczyłeś.
  • Korzystanie z nierealistycznych danych. Dane testowe rzadko charakteryzują się tak chaotycznymi przypadkami, jak w przypadku prawdziwej pracy.
  • Pozwól na rozwój zakresu. Traktuj nowe pomysły jako prośby o zmiany, chyba że faktycznie blokują.

Podsumowanie

UAT to ostatnia szansa, aby dowiedzieć się przed wydaniem, czy oprogramowanie naprawdę pomaga ludziom, którzy będą z niego korzystać. Zaplanuj to od początku projektu, zrekrutuj prawdziwych użytkowników i ustal, jak ma wyglądać sukces. W przypadku następnej wersji wypróbuj jedną prostą zmianę: usiądź z jednym użytkownikiem podczas rzeczywistego scenariusza i nic nie mów, gdy pracuje.

Najczęstsze pytania

Jak w prostych słowach wygląda testowanie akceptacji użytkownika?

Jest to ostateczna kontrola, podczas której prawdziwi użytkownicy wypróbowują oprogramowanie, wykonując realistyczne zadania, aby upewnić się, że spełnia ono ich potrzeby, zanim zostanie wypuszczone na rynek.

Kto jest odpowiedzialny za UAT?

Testy przeprowadzają użytkownicy biznesowi lub klienci. Właściciel produktu lub lider ds. kontroli jakości zwykle koordynuje działania, a ostateczną decyzję o podpisaniu podejmuje zazwyczaj sponsor biznesowy.

Jaka jest różnica między testowaniem UAT a testowaniem systemu?

Testowanie systemu sprawdza, czy oprogramowanie działa zgodnie ze specyfikacją, i jest przeprowadzane przez testerów. UAT sprawdza, czy spełnia potrzeby biznesowe, a robią to użytkownicy.

Kiedy ma miejsce UAT?

Zwykle po testach systemu i przed wydaniem wersji produkcyjnej, gdy oprogramowanie jest stabilne. Zwinne zespoły mogą również przeprowadzać mniejsze kontrole akceptacji w każdym sprincie.

Czy UAT można zautomatyzować?

Części, takie jak wielokrotne kontrole przepływów pracy. Jednak do oceny, czy oprogramowanie jest przydatne i odpowiednie do określonego celu, nadal potrzebni są prawdziwi ludzie.

Ucz się dalej

Pracuj z Stack Quora

Potrzebujesz pomocy przy testowaniu, WordPressie lub SEO?

Pomagamy zespołom dostarczać lepsze oprogramowanie i rozwijać ich witryny. Powiedz nam, nad czym pracujesz, a my zaproponujemy jasny następny krok.

Czytaj dalej

Więcej poradników na testowanie, sztuczna inteligencja i nowoczesny rozwój

Podobał Ci się ten artykuł? Wybierz temat i przejdź bezpośrednio do naszych najnowszych tutoriali.

Sztuczna inteligencja

Wyjaśnienie halucynacji AI: dlaczego modele językowe tworzą rzeczy i jak je zmniejszyć

Wyjaśniono halucynacje AI: czym są, dlaczego powstają w modelach językowych, typowe typy, jak je zredukować za pomocą uziemień i podpowiedzi oraz pr…

Przeczytaj artykuł →
DevOps

Wyjaśnienie zmiennych środowiskowych: pliki .env, sekrety i konfiguracja wykonana prawidłowo

Zmienne środowiskowe wyjaśnione na przykładach Pythona, które przeprowadziliśmy: ich odczytywanie i ustawianie, dlaczego każda wartość jest ciągiem …

Przeczytaj artykuł →
Tworzenie oprogramowania

Wyjaśnienie ograniczenia szybkości interfejsu API: algorytmy, nagłówki i obsługa błędów 429

Ograniczanie szybkości API wyjaśnione za pomocą przeprowadzonej przez nas symulacji: zasobnik tokenów, stałe okno, przesuwane okno, 429 odpowiedzi, …

Przeczytaj artykuł →
Automatyzacja testów

Wyśmiewanie w Pythonie: unittest.mock, patch i błędy, które sprawiają, że testy kłamią

Wyśmiewanie w Pythonie za pomocą unittest.mock, przetestowane: Mock i zwracana wartość, efekt uboczny, łatanie tam, gdzie używana jest nazwa, specyf…

Przeczytaj artykuł →
Testowanie oprogramowania

Wyjaśnienie zasięgu kodu: pokrycie linii i oddziału oraz co naprawdę oznacza 100%

Wyjaśnienie pokrycia kodu za pomocą prawdziwego pliku cover.py: pokrycie linii, gałęzi i warunków, przeczytanie raportu, dlaczego 100% pokrycia może…

Przeczytaj artykuł →
Bazy danych i SQL

DELETE vs TRUNCATE vs DROP w SQL: różnice, wycofywanie i kiedy używać każdego z nich

DELETE vs TRUNCATE vs DROP wyjaśnione za pomocą przetestowanego SQL: co każdy usuwa, wycofywanie, wyzwalacze, resetowanie tożsamości, prędkość i czy…

Przeczytaj artykuł →
Bazy danych i SQL

Wyjaśnienie widoków SQL: tworzenie, używanie i unikanie pułapek wraz z przykładami

Widoki SQL wyjaśnione za pomocą zapytań, które uruchomiliśmy: tworzenie widoku, wyniki na żywo, ukrywanie kolumn, wydajność, widoki z możliwością ak…

Przeczytaj artykuł →
Tworzenie oprogramowania

Interfejs TypeScript a typ: rzeczywiste różnice, testowane za pomocą kompilatora

Interfejs TypeScript a typ, sprawdzony z prawdziwym kompilatorem: co oba mogą zrobić, co tylko jeden, łączenie deklaracji, rozszerzenia a przecięcia…

Przeczytaj artykuł →
Tworzenie oprogramowania

Python *args i **kwargs wyjaśnione: elastyczne funkcje z przejrzystymi przykładami

Python *args i **kwargs wyjaśnione za pomocą uruchomionego przez nas kodu: pakowanie i rozpakowywanie, kolejność parametrów, argumenty zawierające t…

Przeczytaj artykuł →
Tworzenie oprogramowania

Funkcje Lambda w Pythonie: składnia, rzeczywiste zastosowania i kiedy ich nie używać

Funkcje lambda w Pythonie wyjaśnione za pomocą uruchomionego przez nas kodu: składnia, sortowanie za pomocą klucza, mapa i filtr, domknięcia, pułapk…

Przeczytaj artykuł →
Sztuczna inteligencja

Kim są agenci AI? Jak one działają, dzięki prostej pętli agenta, którą możesz uruchomić

Kim są agenci AI? Prosty przewodnik po pętli agenta, narzędziach, pamięci i poręczach, z małą pętlą w Pythonie, którą uruchomiliśmy, prawdziwymi zag…

Przeczytaj artykuł →
DevOps

Monitorowanie a obserwowalność: prawdziwa różnica z logami, wskaźnikami i śladami

Wyjaśnienie monitorowania a obserwowalności: znane i nieznane awarie, dzienniki, metryki i ślady, opis incydentu przy kasie, złote sygnały, OpenTele…

Przeczytaj artykuł →
DevOps

Woluminy platformy Docker a mocowania powiązań: utrwalanie danych kontenera we właściwy sposób

Wyjaśniono woluminy Dockera a montowanie powiązań: dlaczego dane kontenera znikają, nazwane woluminy, montowanie powiązań, tmpfs, przykłady tworzeni…

Przeczytaj artykuł →
Automatyzacja testów

TDD vs BDD: kluczowe różnice, jedna funkcja zbudowana w obie strony i kiedy używać każdej z nich

TDD vs BDD wyjaśnione za pomocą jednej funkcji rabatowej zbudowanej w obie strony: refaktoryzacja czerwono-zielona z uruchomionym przez nas kodem, s…

Przeczytaj artykuł →
Testowanie oprogramowania

Testowanie akceptacyjne użytkownika (UAT): proces, lista kontrolna i rzeczywiste przykłady

Wyjaśniono testy akceptacyjne użytkownika: kto je przeprowadza, czym różni się od kontroli jakości, siedmioetapowy proces, szablon przypadku testowe…

Przeczytaj artykuł →
Bazy danych i SQL

Wyjaśnienie wartości SQL NULL: IS NULL, COALESCE, NULLIF i pułapki, których należy unikać

Wartości SQL NULL wyjaśnione za pomocą zapytań, które wykonaliśmy: logika trójwartościowa, IS NULL, COALESCE, NULLIF, w jaki sposób agregacje, łącze…

Przeczytaj artykuł →
Bazy danych i SQL

Instrukcja SQL CASE WHEN: składnia, rzeczywiste przykłady i typowe błędy

SQL CASE WHEN wyjaśnione za pomocą zapytań, które uruchomiliśmy: proste i przeszukiwane formularze, kolejność warunków, elementy przestawne z SUM, s…

Przeczytaj artykuł →
Tworzenie oprogramowania

Co to jest JWT? Tokeny internetowe JSON wyjaśnione na przykładzie działania

Co to jest JWT? Wyjaśniono tokeny sieciowe JSON: trzy części, token zbudowany i zmodyfikowany w uruchomionym przez nas kodzie, JWT a sesje, pamięć m…

Przeczytaj artykuł →
Tworzenie oprogramowania

Wyjaśnienie pętli zdarzeń JavaScript: stos wywołań, mikrozadania i liczniki czasu z przykładami

Pętla zdarzeń JavaScript wyjaśniona za pomocą uruchomionego przez nas kodu: stos wywołań, kolejki zadań i mikrozadań, dlaczego setTimeout 0 nie jest…

Przeczytaj artykuł →
Tworzenie oprogramowania

Wyjaśnienie generatorów Pythona i wydajności: oszczędzaj pamięć dzięki prawdziwym przykładom

Generatory Pythona i wydajność wyjaśnione za pomocą uruchomionego przez nas kodu: sposób wstrzymywania i wznawiania, mierzone oszczędności pamięci, …

Przeczytaj artykuł →
Sztuczna inteligencja

Czym są osady? Wyjaśnienie wektorów i podobieństwa cosinusa

Czym są osadzania? Prosty przewodnik po wektorach, podobieństwie cosinusów i wyszukiwaniu semantycznym, z małym przykładem, który przeprowadziliśmy,…

Przeczytaj artykuł →
DevOps

Wdrożenie niebiesko-zielone a kanaryjskie: różnice, kompromisy i sposób wyboru

Wyjaśniono wdrożenie Blue-Green vs Canary: sposób działania każdego z nich, koszty, ryzyko i wycofywanie zmian, przetestowane przez nas stabilne łąc…

Przeczytaj artykuł →
Automatyzacja testów

Niestabilne testy: co je powoduje i jak je naprawić na dobre

Niestabilne testy wyjaśnione w przeprowadzonych przez nas demonstracjach: główne przyczyny, sposób potwierdzenia i zdiagnozowania jednej z nich, odp…

Przeczytaj artykuł →
Testowanie oprogramowania

Load Testing vs Stress Testing: Differences, Metrics and k6 Examples

Wyjaśniono testy obciążenia i testy warunków skrajnych: co dowodzi każdy z nich, testy szczytowe i nasiąkania, istotne metryki, dlaczego średnie wpr…

Przeczytaj artykuł →
Testowanie oprogramowania

Przypadek testowy a scenariusz testowy: kluczowe różnice, przykłady i kiedy stosować każdy z nich

Wyjaśnienie przypadków testowych i scenariuszy testowych: jasne definicje, tabela obok siebie, jedna funkcja resetowania hasła zaczerpnięta ze scena…

Przeczytaj artykuł →
Bazy danych i SQL

Optymalizacja zapytań SQL: czytaj plany wykonania i napraw powolne zapytania z synchronizacją

Optymalizacja zapytań SQL przetestowana na milionie wierszy: przeczytaj plany wykonania, dodaj odpowiednie indeksy, napraw filtry niesargowalne, uży…

Przeczytaj artykuł →
Bazy danych i SQL

SQL UNION vs UNION ALL: różnice, przykłady i testowana wydajność

SQL UNION vs UNION ALL wyjaśnione na podstawie zapytań, które uruchomiliśmy: duplikaty, obie reguły są zgodne, prawdziwy błąd danych, zmierzona wyda…

Przeczytaj artykuł →
Tworzenie oprogramowania

Samouczek API pobierania JavaScript: GET, POST, obsługa błędów i limity czasu

Samouczek JavaScript Fetch API testowany na serwerze lokalnym: GET i POST, dlaczego 404 nie rzuca, pomocnik wielokrotnego użytku, ciągi zapytań, prz…

Przeczytaj artykuł →
Tworzenie oprogramowania

Obsługa plików w Pythonie: odczyt, zapis, CSV, JSON i pathlib z przykładami

Obsługa plików w Pythonie wyjaśniona za pomocą uruchomionego przez nas kodu: tryby otwarte, czytanie dużych plików, CSV, JSON, pathlib, pliki binarn…

Przeczytaj artykuł →
Tworzenie oprogramowania

Klasy i obiekty Pythona: samouczek OOP z prawdziwymi przykładami

Klasy i obiekty Pythona objaśnione za pomocą uruchomionego przez nas kodu: __init__, metody, atrybuty klas i instancji, dziedziczenie, właściwości, …

Przeczytaj artykuł →
Sztuczna inteligencja

Co to jest model dużego języka? Jak działają LLM, wyjaśnione bez szumu

Co to jest model dużego języka? LLM wyjaśnione prostym językiem: tokeny, osadzanie, uwaga, szkolenie, temperatura i okna kontekstowe, mała demonstra…

Przeczytaj artykuł →
DevOps

Polecenia systemu Linux dla początkujących: niezbędny przewodnik po terminalu z przykładami

Polecenia systemu Linux dla początkujących, pogrupowane według zadań: nawigacja, pliki, przeglądanie logów, grep, potoki, uprawnienia, procesy i arc…

Przeczytaj artykuł →
Automatyzacja testów

Selenium kontra dramaturg: kluczowe różnice, porównanie kodu i wybór

Porównanie Selenium i Playwright: architektura, oczekiwanie, obsługa przeglądarki i języka, debugowanie, ten sam test w obu narzędziach, porady doty…

Przeczytaj artykuł →
Testowanie oprogramowania

Partycjonowanie równoważne: technika projektowania testów wyjaśniona na praktycznych przykładach

Wyjaśniono podział równoważny: jak znaleźć prawidłowe i nieprawidłowe partycje, sprawdzone przykłady dla grup wiekowych, hasła i kupony, przeprowadz…

Przeczytaj artykuł →
Testowanie oprogramowania

Ważność a priorytet w testowaniu oprogramowania: różnice, macierz i rzeczywiste przykłady

Wyjaśniono ważność a priorytet w testowaniu oprogramowania: jasne definicje, czterokierunkowa macierz z przykładami, skale poziomów, kto ustawia każ…

Przeczytaj artykuł →
Bazy danych i SQL

Samouczek dotyczący podzapytań SQL: typy, skorelowane podzapytania i ISTNIEJĄ z przykładami

Samouczek dotyczący podzapytań SQL z zapytaniami, które wykonaliśmy: podzapytania skalarne, IN, FROM i SELECT, podzapytania skorelowane, EXISTS, puł…

Przeczytaj artykuł →
Bazy danych i SQL

Wyjaśnienie transakcji SQL i ACID: COMMIT, ROLLBACK i poziomy izolacji

Transakcje SQL i ACID wyjaśnione za pomocą wykonanego przez nas przelewu bankowego: COMMIT, ROLLBACK, punkty zapisu, blokady, poziomy izolacji, brud…

Przeczytaj artykuł →
Tworzenie oprogramowania

Git merge vs rebase: różnice, przykłady i kiedy czego używać

Git merge vs rebase wyjaśnione na prawdziwym wyniku logu, z tabelą porównawczą, złotą zasadą rebase i bezpiecznym procesem pracy zespołu.

Przeczytaj artykuł →
Tworzenie oprogramowania

Python list comprehension: składnia, przykłady i kiedy jej unikać

Python list comprehension wyjaśnione: składnia, filtrowanie, if-else, zagnieżdżone pętle, zmierzone czasy i sytuacje, w których zwykła pętla for jes…

Przeczytaj artykuł →
Bazy danych i SQL

SQL JOIN – wyjaśnienie z przykładami (Inner, Left, Right, Full)

Zrozum złączenia SQL krok po kroku na przykładowych tabelach i zapytaniach: INNER, LEFT, RIGHT, FULL, CROSS i SELF, plus typowe błędy i wskazówki wy…

Przeczytaj artykuł →