Testowanie baz danych - rodzaje
W oparciu o funkcję i strukturę bazy danych, testy DB można podzielić na trzy kategorie -
Structural Database Testing - Zajmuje się testowaniem tabel i kolumn, testowaniem schematów, testowaniem procedur składowanych i widoków, sprawdzaniem wyzwalaczy itp.
Functional Testing- Polega na sprawdzeniu funkcjonalności bazy danych z punktu widzenia użytkownika. Najpopularniejszym rodzajem testów funkcjonalnych są testy białoskrzynkowe i testy czarnoskrzynkowe.
Nonfunctional Testing - Obejmuje testy obciążenia, testy ryzyka w bazie danych, testy warunków skrajnych, minimalne wymagania systemowe i zajmuje się wydajnością bazy danych.
Testowanie strukturalnych baz danych
Testowanie strukturalne bazy danych polega na weryfikacji tych elementów bazy danych, które nie są widoczne dla użytkowników końcowych. Obejmuje wszystkie komponenty repozytorium, które służą do przechowywania danych i nie są zmieniane przez użytkowników końcowych. Administratorzy baz danych z dobrą znajomością procedur składowanych SQL i innych koncepcji zwykle przeprowadzają te testy.
Omówiono typowe komponenty testowane pod kątem testów strukturalnych -
Testowanie schematu / mapowania
Obejmuje walidację obiektów aplikacji frontendowej za pomocą mapowania obiektów bazy danych.
W testowaniu schematu -
Czasami zdarza się, że obiekty aplikacji użytkownika końcowego nie są poprawnie odwzorowane lub nie są zgodne z obiektami bazy danych. Dlatego wymagane jest sprawdzenie walidacji różnych formatów schematów powiązanych z bazami danych.
Wymagane jest znalezienie niezamapowanych obiektów w bazie danych, takich jak tabele, widoki, kolumny itp.
Na rynku dostępne są różne narzędzia, których można użyć do mapowania obiektów w schematach.
Example - W Microsoft SQL Server tester może pisać proste zapytania w celu sprawdzenia i walidacji schematów w bazie danych.
Jeśli tester chce wprowadzić zmiany w strukturze tabeli, powinien upewnić się, że wszystkie pliki stored procedury posiadające tę tabelę są zgodne z tą zmianą.
Testowanie procedur składowanych i widoków
W tym testowaniu tester zapewnia, że ręczne wykonanie procedur składowanych i widoków generuje wymagany wynik.
Tester zapewnia -
Jeśli umożliwia wykonanie wymaganych wyzwalaczy zgodnie z oczekiwaniami.
Jeśli zespół programistów uwzględnił wszystkie pętle i warunki, przekazując dane wejściowe do aplikacji w procedurach.
Jeśli w bazie danych znajdują się nieużywane procedury składowane.
Operacje TRIM są stosowane prawidłowo, gdy dane są pobierane z wymaganych tabel w bazie danych.
Walidacja ogólnej integracji modułów procedur składowanych zgodnie z wymaganiami testowanej aplikacji.
Przestrzegane są mechanizmy obsługi wyjątków i błędów.
Najpopularniejszymi narzędziami używanymi do przeprowadzania testów procedur składowanych są LINQ, SP Test toolitp.
Testowanie wyzwalacza
Podczas testowania wyzwalaczy tester musi zapewnić:
Czy konwencje kodowania są przestrzegane podczas fazy kodowania wyzwalaczy.
Zobacz, czy wykonane wyzwalacze spełniają wymagane warunki.
Czy wyzwalacz poprawnie aktualizuje dane po ich wykonaniu.
Sprawdzanie poprawności Aktualizuj / Wstaw / Usuń uruchamia funkcjonalność testowanej aplikacji.
Tabele i testy kolumnowe
Kluczowe obszary objęte tym testem to:
Sprawdzanie poprawności typów danych w bazie danych do wartości pól w aplikacji frontonu.
Walidacja długości pola danych w bazie danych do długości typów danych w aplikacji.
Sprawdzanie, czy w bazie danych znajdują się niezamapowane tabele lub kolumny z obiektów pól aplikacji.
Konwencje nazewnictwa tabel i kolumn bazy danych są weryfikowane, czy są zgodne z wymaganiami biznesowymi, czy nie.
Sprawdzanie poprawności kluczy i indeksów w bazie danych, tj. Klucze podstawowe i obce w tabelach są definiowane zgodnie z wymaganiami.
Sprawdź, czy klucze podstawowe i odpowiadające im klucze obce są takie same w dwóch tabelach.
Sprawdź, czy są zachowane unikalne i NIE NULL cechy kluczy.
Długość i typ danych kluczy i indeksów są utrzymywane zgodnie z wymaganiami.
Sprawdzanie serwera bazy danych
Sprawdzanie serwera bazy danych obejmuje weryfikację -
Czy serwer bazy danych może obsłużyć oczekiwaną liczbę transakcji zgodnie z wymaganiami biznesowymi.
Jeśli szczegóły konfiguracji serwerów baz danych spełniają wymagania biznesowe.
Jeśli autoryzacja użytkownika jest utrzymywana zgodnie z wymaganiami.
Testy funkcjonalności
Testowanie funkcjonalne przeprowadza się z uwzględnieniem punktu widzenia użytkownika końcowego; czy wymagane transakcje i operacje wykonywane przez użytkowników końcowych są zgodne ze specyfikacjami biznesowymi.
Testowanie czarnoskrzynkowe
Testowanie czarnoskrzynkowe polega na weryfikacji integracji bazy danych w celu sprawdzenia funkcjonalności. Przypadki testowe są proste i służą do weryfikacji danych przychodzących i wychodzących z funkcji.
Do testowania funkcjonalności bazy danych stosuje się różne techniki, takie jak technika graficzna przyczynowo-skutkowa, podział równoważności i analiza wartości brzegowych.
Jego advantages są następujące -
- Jest to dość proste i wykonywane na wczesnych etapach rozwoju.
- Koszt opracowania przypadków testowych jest niższy w porównaniu z testami białoskrzynkowymi.
Jego wady są następujące -
- Nie można wykryć kilku błędów
- Nie wiadomo, ile programu należy przetestować.
Testowanie w białej skrzynce
White Box Testing zajmuje się wewnętrzną strukturą bazy danych, a szczegóły specyfikacji są ukryte przed użytkownikami. Obejmuje testowanie wyzwalaczy bazy danych i widoków logicznych, które będą wspierać refaktoryzację bazy danych.
Wykonuje modułowe testowanie funkcji bazy danych, wyzwalaczy, widoków, zapytań SQL itp. Ten rodzaj testów sprawdza poprawność tabel bazy danych, modeli danych, schematów bazy danych itp. Sprawdza zasady integralności referencyjnej. Wybiera domyślne wartości tabeli, aby sprawdzić spójność bazy danych.
Najpopularniejsze techniki używane do testowania białoskrzynkowych to pokrycie warunków, pokrycie decyzji, pokrycie instrukcji itp.
Błędy kodowania można wykryć podczas testów białoskrzynkowych, dzięki czemu można wyeliminować wewnętrzne błędy w bazie danych. Ograniczeniem testowania białoskrzynkowego jest to, że instrukcje SQL nie są uwzględniane.
Testowanie niefunkcjonalne
Testowanie niefunkcjonalne obejmuje wykonywanie testów obciążeniowych, testów warunków skrajnych, sprawdzanie minimalnych wymagań systemowych w celu spełnienia specyfikacji biznesowej, znajdowanie ryzyka i optymalizację wydajności bazy danych.
Testowanie obciążenia
Głównym celem testowania obciążenia jest sprawdzenie, czy większość uruchomionych transakcji ma wpływ na wydajność bazy danych.
W testach obciążenia tester sprawdza -
- Czas odpowiedzi na wykonanie transakcji dla wielu zdalnych użytkowników.
- Czas potrzebny bazie danych na pobranie określonych rekordów.
Examples of load testing in different testing types -
- Uruchamianie najczęściej używanych transakcji wielokrotnie, aby zobaczyć wydajność systemu bazy danych.
- Pobieranie serii dużych plików z Internetu.
- Jednoczesne uruchamianie wielu aplikacji na komputerze lub serwerze.
Test naprężeń
Testy warunków skrajnych są wykonywane w celu zidentyfikowania punktu przerwania systemu. W tym teście aplikacja jest ładowana w taki sposób, że w pewnym momencie system zawiedzie. Ten punkt nazywa siębreakpoint systemu baz danych.
Określenie stanu transakcji w bazie danych wymaga dużego nakładu pracy. Aby uniknąć problemów związanych z czasem i kosztami, wymagane jest właściwe planowanie.
Najczęściej używanymi narzędziami do testów warunków skrajnych są LoadRunner i WinRunner.
Weźmy exampletestów warunków skrajnych. Aplikacja CRM może przyjąć maksymalnie 50000 jednoczesnych użytkowników. Załóżmy, że zwiększasz obciążenie do 51000 i dokonujesz pewnych transakcji, takich jak aktualizacja rekordów lub dodanie wpisu. Jak tylko wykonasz transakcję, aplikacja może zsynchronizować się z systemem bazy danych. Zatem następny test jest wykonywany przy obciążeniu użytkownika równym 52000. Czasami nazywane jest również testowaniem warunków skrajnychFatigue Testing.