Przewodnik QA po testowaniu baz danych w 2026 roku

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Przedstawiam przegląd testowania baz danych, który pomoże Ci przygotować się do zapewnienia, że Twoje dane są weryfikowalne, możliwe do pobrania, dokładne i kompletne, dzięki czemu mogą być wykorzystywane do realizacji logiki biznesowej aplikacji.

Testowanie baz danych obejmuje testowanie czarnoskrzynkowe, testowanie białoskrzynkowe oraz ACID (atomowość, spójność, izolacja i trwałość). W tym przewodniku przedstawię definicje, instrukcje i przykłady.

Czym jest testowanie baz danych?

Testowanie baz danych, testowanie zaplecza lub testowanie danych różni się od testowania interfejsu użytkownika tym, że w ogóle nie koncentruje się na wizualnym interfejsie oprogramowania systemowego. Jego głównym celem jest sprawdzenie, czy wszystkie procesy wewnętrzne działają prawidłowo oraz czy dane można szybko, dokładnie i bezpiecznie pobierać.

Testowanie baz danych obejmuje testowanie schematu bazy danych, tabel i wyzwalaczy. Poddaje bazę danych obciążeniu i może obejmować uruchamianie złożonych zapytań w celu dokładnego sprawdzenia jej możliwości i szybkości reakcji. Testuje również systemy zarządzania bazami danych (DBMS), takie jak Oracle i SQL Server.

Powiązany artykuł: POZYTYWNE REZULTATY TESTOWANIA NEGATYWNEGO

Czym jest schemat bazy danych?

Schemat bazy danych to struktura logiczna definiująca organizację danych i relacje między nimi w bazie danych. Określa plan sposobu przechowywania, uzyskiwania dostępu do danych i manipulowania nimi w systemie zarządzania bazą danych. Schemat opisuje typy danych, ograniczenia i relacje między jednostkami bazy danych, takimi jak tabele, widoki, indeksy i wyzwalacze.

Schemat bazy danych ma kluczowe znaczenie dla zapewnienia integralności i spójności danych w bazie danych. Zapewnia programistom i administratorom baz danych ramy do organizowania i strukturyzowania danych w znaczący sposób. Pomaga również zapewnić, że dane przechowywane w bazie danych spełniają określone wymagania, takie jak walidacja danych, bezpieczeństwo danych i dostępność danych. Organizacje mogą używać schematu bazy danych do zapewnienia uporządkowania i optymalizacji baz danych na potrzeby efektywnego zarządzania danymi, usprawniania operacji biznesowych i podejmowania decyzji.

Dlaczego testowanie baz danych jest ważne?

Testowanie baz danych jest ważne, ponieważ

  1.  Niektóre błędy można wykryć wyłącznie podczas testowania baz danych
  2.  Niektóre warunki użytkowania można przetestować wyłącznie na poziomie bazy danych
  3.  Testowanie baz danych poprawia stabilność i bezpieczeństwo 
  4.  Testowanie baz danych zapewnia spójność

Przykład działania bazy danych

Wyobraź sobie, że otwierasz aplikację bankowości internetowej na telefonie (albo po prostu otwórz aplikację bankowości internetowej na swoim telefonie). Następnie przelej niewielką sumę pieniędzy z rachunku bieżącego na rachunek oszczędnościowy.  Kiedy skończysz, pomyśl o wszystkich rzeczach, które musiały wydarzyć się w tle w ciągu tych kilku sekund.

  1. Aplikacja wysłała informacje o transakcji do bazy danych.
  2. Żadne z Twoich informacji (tj. PIENIĄDZE) nie zostały po drodze utracone.
  3. Aplikacja nie uległa awarii ani nie przerwała realizacji przelewu.
  4. Transakcja została przeprowadzona bezpiecznie.
  5. Twoje pieniądze znajdują się teraz bezpiecznie na rachunku oszczędnościowym (gratulacje!)

Wszystkie te funkcje są realizowane w bazie danych. Proces testowania bazy danych jest ważny, ponieważ jeśli system bazodanowy ulegnie krytycznej awarii, cały system przestaje działać. Nie można wysyłać, pobierać, przesyłać ani zabezpieczać żadnych informacji. Aplikacja może pozornie działać (możesz poruszać się po oknach i przygotowywać transakcje), ale nic istotnego się nie wydarzy.

Na zewnątrz wszystko wygląda dobrze, ale wewnątrz panuje katastrofa.

Obraz „Wszystko w porządku”

Testowanie baz danych zapobiega katastrofom. Nie ma pożaru, przestojów ani brakujących pieniędzy. W interesie wszystkich leży przeprowadzanie testów baz danych. Dlatego napisałem kompleksowy przewodnik, który pomoże Ci mieć pewność, że po zakończeniu pracy wszystko zostało dokładnie przetestowane.

Zasady testowania baz danych

Słowo „zasady” może brzmieć bardziej jak odpowiedź na pytanie „dlaczego” niż „jak”. Zaufaj mi, są to dwa ważne, praktyczne pojęcia. 

  1. Właściwości ACID
    • Atomowość
    • Spójność
    • Izolacja
    • Trwałość
  2. Integralność danych

Czym są właściwości ACID?

To najbezpieczniejsza wersja kwasu, jakiej kiedykolwiek użyjesz. Nie są wymagane rękawiczki — właściwości ACID oznaczają atomowość, spójność, izolację i trwałość. Każda pojedyncza transakcja podczas testowania bazy danych musi spełniać te zasady. 

Transakcja to grupa zadań. Nawet prosta transakcja w świecie rzeczywistym, taka jak wspomniany wcześniej przeze mnie przelew bankowy, obejmuje kilka zadań niższego rzędu. Właściwości ACID służą potwierdzeniu, że każda transakcja została zakończona dokładnie, w całości i z zachowaniem integralności.

Get Free Access
Get regular tech leadership wisdom for delivering better software and systems.
Get Free Access

Have an account? Log In

Właściwości ACID

  • Atomowość oznacza, że każda transakcja musi być traktowana jako jednostka atomowa. Mówiąc nietechnicznie, oznacza to, że każda transakcja musi zostać ukończona w całości albo zakończyć się niepowodzeniem. Traktowanie każdej transakcji w ten sposób pozwala uniknąć chaotycznej sytuacji, w której przelew pieniędzy zostaje zrealizowany tylko częściowo. Brzmi stresująco, prawda?  Dzięki atomowości, jeśli podczas realizacji transakcji coś pójdzie nie tak, cała transakcja kończy się niepowodzeniem. Pieniądze wracają. Żadnego stresu. 
  • Spójność wymaga, aby baza danych pozostała spójna po zakończeniu transakcji. Żadna transakcja nie może negatywnie wpływać na inne dane w bazie danych. Wpłacenie pieniędzy na własne konto bankowe nie spowoduje ich wypłaty z konta innej osoby. 
  • Izolacja zapobiega mieszaniu się strumieni danych. Gwarantuje, że w przypadku jednoczesnego wykonywania wielu transakcji każda transakcja jest traktowana tak, jakby była jedyną transakcją zachodzącą w bazie danych. Informacje jednej osoby nie mieszają się z informacjami innych osób.  
  • Trwałość wymaga, aby baza danych była wystarczająco trwała, by przechowywać wszystkie najnowsze transakcje, nawet w przypadku awarii systemu. Ponownie, istnieją praktyczne powody, dla których wymaga się takiej trwałości od bazy danych. Jeśli wykonasz przelew pieniędzy, a baza danych przestanie działać dziesięć minut później, skąd będziesz wiedzieć, że musisz wykonać przelew ponownie? Tak rygorystyczne wymagania zapobiegają dezorientacji użytkowników końcowych.  

Integralność danych

Integralność danych to praktyka polegająca na weryfikowaniu, czy wszystkie najnowsze dane zostały zaktualizowane we wszystkich miejscach. Istnieją cztery odrębne elementy, które łącznie potwierdzają integralność danych. Aby zapewnić wysoki poziom integralności danych, tester QA musi potwierdzić, że:

  1. Dane można zweryfikować
  2. Dane można pobrać
  3. Dane są dokładne
  4. Dane są kompletne

Jeśli dane nie spełniają tych czterech wymagań, prawdopodobnie nie spełniają również standardu integralności danych. Narzędzia do zarządzania danymi mogą w tym pomóc, ale ostatecznie to od Ciebie zależy zapewnienie najwyższej jakości danych.

Jak zauważył Huw Price w odcinku podcastu The QA Lead Podcast zatytułowanym Jakość Twoich danych jest beznadziejna, zapewnienie, że systemy działają w oparciu o wysokiej jakości i bezpieczne dane, zyskuje na znaczeniu, ponieważ coraz więcej firm buduje własne banki danych.

Język manipulowania bazą danych

Język manipulowania bazą danych (DML) to język programowania używany do manipulowania danymi w systemie zarządzania bazą danych. DML służy przede wszystkim do wykonywania takich zadań jak wstawianie, aktualizowanie, usuwanie i pobieranie danych z bazy danych. Zasadniczo DML udostępnia zestaw poleceń i funkcji, które umożliwiają użytkownikom interakcję z danymi w bazie danych oraz modyfikowanie lub pobieranie tych danych według określonych kryteriów. DML jest niezbędnym elementem każdego systemu baz danych, umożliwiając użytkownikom wykonywanie operacji na danych bez konieczności rozumienia podstawowej struktury lub technologii bazy danych.

Polecenia DML są zwykle używane w połączeniu z językiem definicji bazy danych (DDL), który służy do tworzenia i modyfikowania obiektów baz danych, takich jak tabele, widoki i indeksy. DDL i DML stanowią podstawowe elementy systemu baz danych, umożliwiając użytkownikom tworzenie, modyfikowanie i manipulowanie danymi w bezpieczny, wydajny i niezawodny sposób. Wykorzystanie DML w zarządzaniu bazami danych umożliwia organizacjom przechowywanie, zarządzanie i analizowanie dużych ilości danych, co czyni go kluczowym narzędziem dla firm w dzisiejszym świecie opartym na danych.

Rodzaje testowania baz danych

Po omówieniu dwóch podstawowych zasad testowania baz danych możemy przejść do różnych rodzajów testów. Prawdopodobnie słyszałeś już wcześniej o niektórych z tych podejść. Pamiętaj, mówiłem, że jeśli rozumiesz testowanie QA, to bez problemu opanujesz testowanie baz danych. Wyjaśnię tutaj, jak każda z tych koncepcji ma zastosowanie w testowaniu baz danych. 

Istnieją trzy rodzaje testowania baz danych:

  1. Strukturalne
  2. Funkcjonalne
  3. Niefunkcjonalne

W ramach tych trzech rodzajów testowania baz danych wyróżnia się podtypy. Nie martw się, je również wyjaśnię. 

Testowanie strukturalne

Testowanie strukturalne sprawdza elementy repozytorium danych wykorzystywane do przechowywania danych. Elementy te są ukryte przed użytkownikami końcowymi i działają całkowicie w tle. Testerzy baz danych wykonują te testy, pisząc zapytania SQL. 

Testowanie mapowania danych

Mapowanie struktur danych to proces ustanawiania połączeń między dwoma różnymi modelami danych. Test mapowania danych, określany również jako testowanie schematu, sprawdza zarówno warstwę front-endową, jak i back-endową. Testy te zapewniają, że obie warstwy prawidłowo się ze sobą komunikują.

Na przykład, jeśli wypełniasz formularz rejestracyjny na stronie internetowej, prawidłowe mapowanie danych pobierze dane z formularza internetowego i przekaże je do bazy danych. Twoje imię i nazwisko, adres e-mail oraz hasło zostaną zapisane we właściwym miejscu. Testowanie mapowania danych potwierdza, że ten proces działa. 

Tester QA będzie pracować z kilkoma narzędziami do mapowania danych. Krótka lista narzędzi do mapowania danych obejmuje:

Testowanie tabel bazy danych

Testowanie tabel przeprowadza kilka kontroli struktury mapowania danych. Sprawdza, czy pola w interfejsie użytkownika i zapleczu są ze sobą zgodne. Weryfikuje długość pól bazy danych. Potwierdza również, czy istnieją nieprzypisane tabele lub kolumny bazy danych, którymi należy się zająć. 

Walidacja serwera bazy danych

Walidacja serwera upewnia się, że jego konfiguracja spełnia wymagania. Zapewnia również, że każda osoba próbująca uzyskać dostęp do określonych obszarów serwera bazy danych ma odpowiednie uprawnienia. Jest to ważny krok w zapewnieniu bezpieczeństwa bazy danych i ochronie jej użytkowników. Na koniec walidacja serwera sprawdza, czy serwer może jednocześnie obsłużyć maksymalną liczbę transakcji. 

Na przykład walidacja serwera aplikacji bankowej sprawdzi, czy serwer może obsłużyć transakcje finansowe określonej liczby użytkowników oraz czy wszyscy użytkownicy mogą uzyskać dostęp wyłącznie do własnych informacji. 

Testowanie funkcjonalne

Przywrócimy testowaniu funkcjonalnemu trochę dobrej zabawy. Naprawdę. Testowanie funkcjonalne polega na sprawdzeniu, czy baza danych spełnia specyfikacje klienta oraz czy działania użytkownika końcowego są zgodne z tymi wymaganiami. Oznacza to wiele udawania użytkownika końcowego. Brzmi zabawnie, prawda? Moim zdaniem brzmi świetnie. 

Testowanie czarnoskrzynkowe

Testowanie czarnoskrzynkowe to strategia testowania oprogramowania, w której tester nie zna projektu testowanego systemu oprogramowania. Bez szczegółowej wiedzy o projekcie oprogramowania tester podchodzi do niego z oczekiwaniami podobnymi do oczekiwań użytkownika końcowego. 

Testowanie czarnoskrzynkowe jest przeprowadzane podczas testowania bazy danych, ponieważ pozwala znaleźć błędy w typowych ścieżkach, na które prawdopodobnie natrafi użytkownik końcowy. To ostateczny test przeprowadzany z perspektywy użytkownika końcowego. 

Omówiliśmy testowanie czarnoskrzynkowe szczegółowo w naszym przewodniku 9 rodzajów testów oprogramowania, które powinien znać każdy analityk QA. 

Testowanie białoskrzynkowe

Testowanie białoskrzynkowe jest całkowitym przeciwieństwem testowania czarnoskrzynkowego. W testowaniu białoskrzynkowym członek zespołu QA w pełni rozumie wewnętrzną strukturę i projekt testowanego oprogramowania. 

Podchodzi do testu jak inspektor. Testowanie białoskrzynkowe jest czasami nazywane testowaniem przezroczystej skrzynki, ponieważ tester obserwuje interakcje między jednostkami podczas testowania oprogramowania. W przeciwieństwie do testowania czarnoskrzynkowego tester białoskrzynkowy nie jest aż tak zainteresowany doświadczeniem użytkownika. 

Testowanie jednostkowe

Testowanie jednostkowe to technika testowania oprogramowania polegająca na testowaniu poszczególnych jednostek lub komponentów aplikacji w izolacji od reszty systemu. Ten rodzaj testów służy do testowania poszczególnych obiektów bazy danych, takich jak tabele, widoki, procedury składowane i funkcje. Testując te obiekty w izolacji, programiści mogą upewnić się, że każdy z nich działa zgodnie z przeznaczeniem.

Testy jednostkowe baz danych zazwyczaj polegają na tworzeniu zautomatyzowanych testów, które wykonują określone polecenia SQL względem obiektu lub modułu bazy danych i sprawdzają, czy zwracane są oczekiwane wyniki. Na przykład test jednostkowy procedury składowanej może polegać na przekazaniu do procedury zestawu parametrów wejściowych i sprawdzeniu, czy dane wyjściowe są prawidłowe. Korzystając z testów jednostkowych w ten sposób, programiści mogą upewnić się, że każdy obiekt bazy danych działa zgodnie z oczekiwaniami oraz że zmiany w schemacie bazy danych lub kodzie aplikacji nie powodują niezamierzonych skutków ani błędów.

Testowanie niefunkcjonalne

Testowanie niefunkcjonalne nie przejmuje się użytkownikiem końcowym. Nie oznacza to, że użytkownik końcowy nie jest ważny. Po prostu testy te dotyczą innych kwestii. Testy niefunkcjonalne sprawdzają wydajność bazy danych pod obciążeniem i w warunkach stresowych oraz wyszukują obszary, w których można zoptymalizować wydajność.

Testowanie obciążeniowe 

Testowanie obciążenia bazy danych to rodzaj testowania wydajności bazy danych, który sprawdza, czy obciążenie użytkowników nie wpłynie znacząco negatywnie na wydajność bazy danych. Tester QA uruchomi wiele zapytań obciążających, a następnie będzie wykonywać je wielokrotnie, aby zasymulować aktywną bazę użytkowników. 

Testowanie warunków skrajnych

Testy warunków skrajnych są testami obciążenia, ale bardziej intensywnymi. Nie chodzi w nich o sprawdzenie, czy baza danych zwolni, lecz o ustalenie, w jakich warunkach można doprowadzić do jej awarii. Jest to znacznie bardziej destrukcyjne. No cóż, brzmi świetnie. 

Czy kiedykolwiek z niecierpliwością oczekiwałeś na premierę nowej gry wideo lub telefonu? Jeśli tak, być może znasz sytuację, w której próbujesz załadować stronę internetową lub otworzyć aplikację, aby dokonać zakupu, a w odpowiedzi pojawiają się wyjątkowo długie ekrany ładowania, nieoczekiwane kody błędów i problemy z przetworzeniem danych. To właśnie baza danych poddana obciążeniu.

Różni się to od testowania obciążenia, ponieważ baza danych zostaje poddana nagłemu, nieoczekiwanie dużemu natężeniu ruchu. 

More Articles

Automatyzacja testowania baz danych

Automatyzacja testowania baz danych stała się w ostatnich latach bardziej popularna. Ręczne testowanie bazy danych trwałoby zbyt długo, wymagałoby zaangażowania zbyt wielu osób i po prostu kosztowałoby za dużo.

Istnieje wiele sposobów przeprowadzania testowania automatycznego. Oto lista niektórych narzędzi do zarządzania bazami danych, które oferują funkcje testowania.

Lista narzędzi do zarządzania bazami danych

Testowanie bazy danych za pomocą interfejsu API

API (interfejs programowania aplikacji) to zbiór protokołów i standardów umożliwiających różnym aplikacjom programowym komunikowanie się ze sobą. W testowaniu baz danych API może łączyć się z bazą danych i wykonywać różne operacje, takie jak wstawianie, aktualizowanie, usuwanie i pobieranie danych.

Związek między API a testowaniem baz danych polega na tym, że interfejsy API mogą służyć do automatyzacji i usprawnienia procesu testowania. Korzystając z API do połączenia z bazą danych, testerzy mogą automatyzować zadania takie jak wstawianie, aktualizowanie i usuwanie danych, a także wykonywać zapytania w celu pobierania danych i sprawdzania wyników. Może to znacząco ograniczyć czas i wysiłek wymagane do ręcznego testowania oraz poprawić dokładność i spójność wyników testów.

Dodatkowe materiały

Po przeczytaniu tego artykułu powinieneś rozumieć, jak przeprowadzać testowanie baz danych. Oczywiście nie da się omówić absolutnie wszystkiego w jednym artykule. Oto dwa dodatkowe materiały, które mogą pomóc w rozwiązaniu konkretnych problemów.

  1. Jak przeprowadzać testy regresji relacyjnej bazy danych
  2. Jak przeprowadzić test wydajności instancji SQL Server

Co o tym sądzisz?

Odpowiedzialność za testowanie bazy danych może wydawać się dużym wyzwaniem. Jestem przekonany, że sobie z tym poradzisz. Czy czujesz się teraz pewniej, jeśli chodzi o swoje podejście do testowania baz danych? Daj mi znać w komentarzach!

Jason Boog
Over his 15-year career, Jason Boog has worked as a QA tester, QA analyst, and Senior QA Analyst on video games, commercial sites, and interactive web applications. He spent more than a decade building out the QA team and process as Director of Quality & Client Support at a full-service digital agency.
Follow the author: