CRUD jest skrótem od angielskich słów create, read, update, delete czyli utwórz, odczytaj, aktualizuj, usuń. Czasami litera R jest rozwijana jako retrieve (pobierz), a czasem również litera D jest rozwijana jako destroy (zniszcz).
Jak CRUD wygląda w aplikacjach bazodanowych i w protokole komunikacyjnym:
Działanie | Instrukcja SQL | HTTP |
---|---|---|
Create | INSERT | PUT / POST |
Read (Retrieve) | SELECT | GET |
Update | UPDATE | POST / PUT / PATCH |
Delete (Destroy) | DELETE | DELETE |
W interfejsie użytkownika CRUD jest stosowany w odniesieniu do interfejsu użytkownika aplikacji, które zazwyczaj pozwalają użytkownikowi na:
- utworzenie lub dodanie nowych informacji (create),
- odczytanie lub wyświetlenie istniejących informacji (read),
- modyfikowanie lub edycję istniejących informacji (update),
- usuwanie istniejących informacji (delete).
Bez tych czterech działań oprogramowanie w pełnej wersji zazwyczaj nie może być uznane za kompletne. Przykładowo, w niektórych przypadkach próbne lub darmowe wersje oprogramowania różnią się od pełnych wersji tym, że nie mają wsparcia dla wszystkich z operacji CRUD (np. program Adobe Acrobat firmy Adobe zawiera funkcje pozwalające na realizację wszystkich operacji CRUD, podczas gdy darmowa wersja – Acrobat Reader – pozwala na odczytywanie i wyświetlanie dokumentów, a nie tworzenie i modyfikację).
Przeanalizujmy CRUD w podstawowym ujęciu zakładania konta w systemie. Załóżmy, że dla użytkownika o loginie user1 chcemy utworzyć konto.
Create (stwórz)
Zakładamy konto użytkownikowi przy pomocy następujących danych:
Login: user1
Imię: Jan
Nazwisko: Kowalski
Adres e-mail: jan.kowalski@@gmial.com
Read (odczytaj)
Aby zweryfikować, czy użytkownik rzeczywiście został zapisany, możemy albo sprawdzić to w bazie, albo wyszukać go w interfejsie. Oczytanie powinno nam zwrócić:
Login: user1
Imię: Jan
Nazwisko: Kowalski
Adres e-mail: jan.kowalski@@gmial.com
Update (aktualizuj)
Możemy uznać, że dane email są niepoprawnie wpisane, więc aktualizujemy dane edytując adres i zmieniamy adres na poprawny. Uzyskujemy:
Login: user1
Imię: Jan
Nazwisko: Kowalski
Adres e-mail (po aktualizacji): jan.kowalski@@gmail.com
Delete (usuń)
Kolejną operacją może być sprawdzenie czy użytkownika można skasować. Po skasowanie w próbie read (odczytania) nie powinniśmy mieć możliwości odczytania danych user1.
Podczas testowania zadaniem testera będzie znalezienie miejsca, gdzie dane można stworzyć, odczytać, zaktualizować i skasować. Typowym scenariuszem operującym na danych z jednoczesną weryfikacją poprawności wykonania operacji na danych będzie np. CRURDR - użytkownik jest stworzony (C), następnie sprawdzamy czy został stworzony (R), następnie próbujemy go zaktualizować (U) i znów odczytać czy dane zostały zaktualizowane, a na końcu usunąć (D) i określić czy rzeczywiście został usunięty (R).
Kilka innych pozytywnych scenariuszy, które można sobie wyobrazić:
- CRUU – wielokrotna aktualizacja danych,
- CRR – wielokrotne odczytanie danych,
- CD – pomyłkowe wpisanie danych i ich usunięcie,
- itp.
Wśród ciekawych scenariuszy z potencjałem na znalezienie defektów może być np.:
- CC – próba stworzenia użytkowników z identycznymi danymi,
- CDC – próba stworzenia użytkownika, jego usunięcie i założenie konta na takie same dane,
- CDR – oczytanie nieistniejących danych,
- CDD – próba usunięcia tego co zostało już usunięte,
- CURC – stworzenie użytkownika następnie aktualizacja danych i próba stworzenia użytkownika o danych początkowych,
- itp.
Pamiętajmy, że takie scenariusze możemy mnożyć i wydłużać w nieskończoność, np. poprzez dodawanie kolejnych operacji na danych CRUDCURURDCRUD… W definiowaniu scenariuszy warto wcześniej rozpoznać kontekst systemu i określić, co jest realnie możliwe i prawdopodobne.
CRUD samo w sobie nie jest techniką. Wspiera jedynie inne techniki, takie jak techniki testujące dane czy funkcje wg klasyfikacji Technik testowania 2.0.