Przypadek testowy a scenariusz testowy: Kluczowe różnice, przykłady i kiedy stosować każdy z nich
Scenariusz mówi, co należy przetestować. Przypadek mówi dokładnie, jak. Skorzystaj z jednej funkcji resetowania hasła, począwszy od wymagań, poprzez scenariusze, a skończywszy na pełnych przypadkach testowych, i dowiedz się, ile szczegółów naprawdę potrzebuje Twój zespół.
- scenariusz testowy to jednowierszowe zestawienie co do sprawdzenia.
- Przypadek testowy zawiera kroki, dane i oczekiwany wynik pokazujący, jak to sprawdzić.
- Jeden scenariusz zwykle tworzy kilka przypadków testowych.
- Dopasuj szczegóły do ryzyka: lekkie scenariusze dla szybkich zespołów, pełne przypadki do pracy krytycznej lub regulowanej.
Nowi testerzy często słyszą te dwa terminy używane tak, jakby oznaczały to samo. Oni nie. Różnica między przypadkiem testowym a scenariuszem testowym polega głównie na poziomie szczegółowości, a jego zrozumienie pomaga zdecydować, ile napisać przed rozpoczęciem testowania.
W tym przewodniku opisano każdy z nich, a następnie omówiono funkcję resetowania pojedynczego hasła, począwszy od wymagań, przez scenariusze, aż po pełne przypadki testowe. Funkcja i jej zasady są wymyślonym przykładem. Terminologia również różni się nieco w zależności od zespołu i narzędzia, więc uzgodnij, co te słowa oznaczają w Twoim zespole.
Krótka odpowiedź
Scenariusz testowy opisuje sytuację, którą należy sprawdzić, na przykład „sprawdź, czy użytkownik może zresetować zapomniane hasło”. Zwykle jest to jedna linia i szczegóły pozostawia testerowi.
Przypadek testowy dokładnie opisuje, jak sprawdzić jeden warunek w tej sytuacji: warunki wstępne, kroki, dane testowe i oczekiwany wynik. Dwóch testerów podążających za nim powinno dojść do tego samego werdyktu.
Pomyśl o zaplanowaniu podróży. Scenariusz to „podróż z Pune do Delhi”. Przypadek testowy to pełny plan podróży, z numerem lotu, godziną odlotu i czynnościami do wykonania na każdym etapie.
Przypadek testowy i scenariusz testowy obok siebie
| Aspekt | Scenariusz testowy | Sprawa testowa |
|---|---|---|
| Odpowiedź na pytanie | Co powinniśmy przetestować? | Jak dokładnie to testujemy? |
| Szczegół | Wysoki poziom | Niski poziom i konkret |
| Typowa długość | Jedna linia | Kilka pól i kroków |
| Pochodzi z | Wymagania, historie użytkowników | Scenariusze testowe |
| Zawiera dane testowe? | Rzadko | Tak |
| Zawiera oczekiwany wynik? | Sugerowane | Tak, wyraźnie |
| Czas pisać | Minuty | Znacznie dłużej |
| Konserwacja | Niski | Wyżej, bo zmieniają się detale |
| Wolność testera | Wysoka | Niski |
| Najlepsze dla | Przegląd zasięgu, szybkie zespoły | Przepływy krytyczne, audyty, przekazania |
Co to jest scenariusz testowy?
Scenariusz testowy to krótki opis czynności, którą może wykonać użytkownik, lub sytuacji, z którą musi sobie poradzić system. Koncentruje się na tym, co ważne z zewnątrz i zwykle wynika bezpośrednio z wymagań lub historii użytkownika.
Scenariusze są cenne, ponieważ są szybkie. Możesz wymienić trzydzieści w czasie potrzebnym na napisanie trzech szczegółowych przypadków, co czyni je doskonałym sposobem na sprawdzenie zasięgu z właścicielem produktu: „czy pomyśleliśmy o wszystkim?” Czytelnik nietechniczny może bez problemu śledzić listę scenariuszy.
Co to jest przypadek testowy?
Przypadek testowy to zestaw określonych warunków i kroków służących do ustalenia, czy dana rzecz działa. Typowy przypadek testowy zawiera:
- Unikalny identyfikator i wyraźny tytuł
- Warunki wstępne, czyli to, co musi być spełnione przed rozpoczęciem
- Numerowane kroki
- Konkretne dane testowe
- oczekiwany wynik
- rzeczywisty wynik i stan wypełniane podczas uruchamiania
Przypadki testowe wyróżniają się, gdy liczy się spójność. Nowy członek zespołu może je uruchomić, wyniki można porównać w różnych wersjach, a Ty masz zapis tego, co zostało zweryfikowane. Zagłębiamy się w nasz przewodnik na temat jak pisać przypadki testowe.
Jedna funkcja, od początku do końca
Krok 1: Wymaganie
Użytkownicy, którzy zapomną hasła, mogą poprosić o link resetujący za pośrednictwem poczty elektronicznej. Link działa jednorazowo i wygasa po 30 minutach. Nowe hasło musi mieć co najmniej 8 znaków.
Krok 2: Scenariusze testowe
| Identyfikator | Scenariusz testowy |
|---|---|
| TS-01 | Sprawdź, czy zarejestrowany użytkownik może zresetować hasło, korzystając z łącza przesłanego e-mailem |
| TS-02 | Sprawdź zachowanie, gdy adres e-mail nie jest zarejestrowany |
| TS-03 | Sprawdź, czy nie można użyć wygasłego łącza |
| TS-04 | Sprawdź, czy link nie może zostać użyty dwukrotnie |
| TS-05 | Sprawdź, czy nowe reguły dotyczące haseł są egzekwowane |
Spójrz na TS-02. Wymóg nigdy nie określa, co powinno się stać z nieznanym adresem e-mail, a napisanie scenariusza ujawniło tę lukę. Czy strona powinna ujawniać, że adres nie jest zarejestrowany? Ze względów bezpieczeństwa zwykle nie powinno, ponieważ umożliwia to atakującym odkrycie prawidłowych kont. Wczesne znalezienie tych pytań jest jedną z największych korzyści pisania scenariuszy.
Krok 3: Przypadki testowe
Teraz rozszerzamy tylko TS-05 o przypadki testowe. Jeden scenariusz staje się kilkoma:
| Identyfikator | Tytuł | Dane testowe | Oczekiwany wynik |
|---|---|---|---|
| TC-051 | Akceptuje hasło o długości dokładnie 8 znaków | abcd1234 |
Hasło zostanie zmienione i pojawi się potwierdzenie |
| TC-052 | Odrzuca hasło składające się z 7 znaków | abcd123 |
Błąd: potrzeba co najmniej 8 znaków |
| TC-053 | Odrzuca puste hasło | (blank) | Błąd: wymagane hasło |
| TC-054 | Odrzuca niedopasowane potwierdzenie | abcd1234, abcd9999 |
Błąd: hasła nie pasują |
Wartości te nie były przypadkowe. TC-051 i TC-052 znajdują się po obu stronach granicy, wykorzystując analizę wartości brzegowych, a pozostałe pochodzą z podziału równoważności.
Szablon przypadku testowego
Oto pełna wersja TC-052. Skopiuj ten układ, jeśli Twój zespół nie ma jeszcze standardu:
ID: TC-052
Title: Reset rejects a password of 7 characters
Scenario: TS-05 New password rules are enforced
Priority: High
Preconditions: Account asha@example.com exists
A valid, unused reset link has been requested
Test data: New password: abcd123
Steps:
1. Open the reset link from the email
2. Enter abcd123 in New password
3. Enter abcd123 in Confirm password
4. Click Reset password
Expected: Error "Password must be at least 8 characters"
Password is unchanged, and the link stays valid
Actual: (filled in during the run)
Status: (Pass / Fail / Blocked)
Zauważ, że oczekiwany wynik sprawdza więcej niż komunikat o błędzie. Potwierdza również, że stare hasło nadal działa i że link jest nadal użyteczny. Słabe przypadki testowe często zatrzymują się na tym, co widać na ekranie.
Wskazówka: Przetestuj jeden warunek w każdym przypadku testowym. Jeśli sprawa obejmująca pięć rzeczy zakończy się niepowodzeniem, nie będziesz wiedział, która z nich się zepsuła. Krótkie, skoncentrowane sprawy są również znacznie łatwiejsze do późniejszej automatyzacji.
Tam, gdzie mieszczą się w szerszym obrazie
| Poziom | Odpowiedzi | Przykład |
|---|---|---|
| Strategia testowa | Jakie jest nasze ogólne podejście? | Automatyzuj regresję, odkrywaj nowe funkcje |
| Plan testów | Co zrobimy w ramach tej wersji? | Funkcje konta testowane od 3 do 7 marca |
| Scenariusz testowy | Co sprawdzimy? | Reguły dotyczące haseł są egzekwowane |
| Sprawa testowa | Jak to sprawdzimy? | TC-052 i jego kroki |
| Skrypt testowy | Jak maszyna to sprawdzi? | Automatyczny kod dla TC-052 |
Tradycyjnie scenariusze i przypadki są pisane na etapie projektowania testów w cyklu życia testowania oprogramowania.
Kiedy używać każdego z nich
Scenariusze są często wystarczające, gdy:
- Zespół jest mały, doświadczony i dobrze zna produkt.
- Czasu jest mało lub wymagania często się zmieniają.
- Cechą jest niskie ryzyko.
- Chcesz szybko przejrzeć zasięg z zainteresowanymi stronami.
- Kierujesz testami eksploracyjnymi.
Szczegółowe przypadki testowe są warte wysiłku, gdy:
- Awaria byłaby kosztowna, podobnie jak w przypadku płatności, bezpieczeństwa czy danych zdrowotnych.
- Organy regulacyjne lub audytorzy potrzebują dowodów na to, co zostało przetestowane.
- Testy muszą przeprowadzić nowi lub zewnętrzni testerzy.
- Wyniki należy powtórzyć dokładnie, tak jak w zestawie regresji.
- Kroki staną się testami automatycznymi.
Większość dojrzałych zespołów używa obu. Sporządzają listę scenariuszy wszystkiego i piszą pełne przypadki tylko dla najwyższego ryzyka. Nie ma potrzeby dokumentowania każdego kroku na stronie ustawień niskiego ryzyka w taki sam sposób, jak przelew bankowy.
Scenariusze, przypadki i automatyzacja
Dobrze napisany przypadek testowy można niemal bezpośrednio powiązać z testem automatycznym. Warunki wstępne stają się konfiguracją, kroki stają się działaniami, a oczekiwany wynik staje się asercją. Ramy programistyczne oparte na zachowaniu używają nawet słowa „scenariusz” w odniesieniu do specyfikacji plików wykonywalnych:
Scenario: Reset rejects a short password
Given I have opened a valid reset link
When I submit the new password "abcd123"
Then I see "Password must be at least 8 characters"
And my password is unchanged
Co mylące, to, co BDD nazywa scenariuszem, jest znacznie bliższe przypadkowi testowemu, ponieważ zawiera określone dane i wyniki. To dobre przypomnienie, aby uzgodnić warunki. Aby zautomatyzować te kontrole, zapoznaj się z naszym samouczkiem Playwright lub samouczkiem pytest.
Co czyni je dobrymi
| Dobry scenariusz | Dobry przypadek testowy |
|---|---|
| Opisuje cel lub sytuację użytkownika | Testuje jeden konkretny warunek |
| Linki z powrotem do wymagania | Ma dokładnie oczekiwany wynik |
| Obejmuje porażki i sukcesy | Zawiera listę warunków wstępnych i danych |
| Nie zawiera zbędnych szczegółów | Może być prowadzony przez kogoś nowego |
| Mieści się w jednej linii | Nie zależy od innych testów |
Typowe błędy
- Zapisuję tylko szczęśliwe ścieżki. Większość błędów występuje w warunkach błędu, więc uwzględnij to, co powinno zakończyć się niepowodzeniem.
- Korzystanie z niejasnych oczekiwanych wyników. „To powinno działać poprawnie” pozwala każdemu testerowi zdecydować o czymkolwiek.
- Dokładne dokumentowanie wszystkiego. Tysiące przypadków, których nikt nie prowadzi, są gorsze niż przydatny mały zestaw.
- Pomijanie scenariuszy. Przechodzenie od razu do spraw może spowodować, że całe obszary zostaną zapomniane.
- Pozwalanie na przedawnienie spraw. Kiedy produkt się zmienia, stare sprawy wprowadzają ludzi w błąd. Regularnie je przeglądaj.
- Wiązanie kroków z delikatnymi szczegółami. „Kliknij niebieski przycisk u góry” łamie wszelkie przeprojektowania.
Podsumowanie
Scenariusze zapewniają szeroki zakres, a przypadki testowe zapewniają głębię. Zacznij od scenariuszy następnej funkcji i przejrzyj je z programistą i właścicielem produktu. Następnie rozwiń tylko te ryzykowne w pełne przypadki. Luki znajdziesz wcześniej, a czas pisania spędzisz tam, gdzie się to liczy.
Najczęstsze pytania
Jaka jest główna różnica między przypadkiem testowym a scenariuszem testowym?
Scenariusz testowy to instrukcja wysokiego poziomu określająca, co należy przetestować. Przypadek testowy podaje konkretne kroki, dane i oczekiwany wynik, jak go przetestować.
Co jest pierwsze: scenariusz testowy czy przypadek testowy?
Zwykle scenariusz. Scenariusze pochodzą z wymagań, następnie przypadki testowe są pisane na podstawie scenariuszy, które wymagają więcej szczegółów.
Ile przypadków testowych ma jeden scenariusz?
Nie ma stałego numeru. Zależy to od zasad i związanego z tym ryzyka, a typowy scenariusz może mieć kilka, obejmujących sukces, porażkę i granice.
Czy zespoły Agile potrzebują szczegółowych przypadków testowych?
Nie zawsze. Wiele z nich opiera się na scenariuszach, kryteriach akceptacji i automatyzacji, a szczegółowe przypadki przechowuje tylko w przypadku krytycznych przepływów lub potrzeb związanych ze zgodnością.
Czy skrypt testowy to to samo co przypadek testowy?
Nie całkiem. Przypadek testowy opisuje, co należy sprawdzić, podczas gdy skrypt testowy to zwykle kod, który automatycznie przeprowadza te kontrole, chociaż niektóre zespoły używają tych terminów luźno.
Ucz się dalej
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.
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.
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ł →DevOpsWyjaś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 oprogramowaniaWyjaś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ówWyś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 oprogramowaniaWyjaś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 SQLDELETE 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 SQLWyjaś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 oprogramowaniaInterfejs 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 oprogramowaniaPython *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 oprogramowaniaFunkcje 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 inteligencjaKim 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ł →DevOpsMonitorowanie 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ł →DevOpsWoluminy 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ówTDD 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 oprogramowaniaTestowanie 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 SQLWyjaś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 SQLInstrukcja 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 oprogramowaniaCo 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 oprogramowaniaWyjaś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 oprogramowaniaWyjaś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 inteligencjaCzym 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ł →DevOpsWdroż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ówNiestabilne 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 oprogramowaniaLoad 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 oprogramowaniaPrzypadek 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 SQLOptymalizacja 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 SQLSQL 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 oprogramowaniaSamouczek 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 oprogramowaniaObsł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 oprogramowaniaKlasy 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 inteligencjaCo 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ł →DevOpsPolecenia 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ówSelenium 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 oprogramowaniaPartycjonowanie 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 oprogramowaniaWaż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 SQLSamouczek 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 SQLWyjaś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 oprogramowaniaGit 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 oprogramowaniaPython 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 SQLSQL 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ł →