Jednym z głównych wyzwań, jakie pojawiają się w toku realizacji projektów IT jest zapewnienie odpowiedniej jakości. Zadaniem tym zajmują się inżynierowie QA (Quality Assurance), którzy na bieżąco testują działanie aplikacji i oceniają efekty pracy zespołów deweloperskich. W przypadku systemów informatycznych, których głównym celem jest gromadzenie, porządkowanie, przetwarzanie i przesyłanie danych, nie można jednak mówić o skutecznej weryfikacji działań bez odpowiednich danych testowych.
Czym są dane testowe?
Testowanie systemu polega na ręcznym lub automatycznym przeprowadzeniu takich scenariuszy testowych, które od razu wychwycą błędy w jego funkcjonowaniu. Do realizacji tych scenariuszy potrzebne są odpowiednie, nieprzypadkowe dane, przygotowane pod kątem charakterystyki analizowanego systemu. Testerzy mogą odpowiednie rekordy tworzyć ręcznie, z poziomu interfejsu użytkownika lub przygotowywać je wcześniej, wspomagając się narzędziami do automatyzacji testów.
Dane testowe, jest to więc zbiór rekordów, które umożliwiają skorzystanie z wszystkich funkcji testowanej aplikacji w celu sprawdzenia jakości jej działania: komunikacji między frontem a backendem, wydajności bazy danych, stabilności API czy spójności logiki systemu.
Dane testowe mogą być wprowadzane ręcznie lub generowane automatycznie. Te pierwsze lepiej sprawdzają się podczas testów eksploracyjnych, gdy tester intencjonalnie używa oprogramowania w nietypowy sposób. W tym wypadku, zwłaszcza jeśli dane nie są zbyt skomplikowane, szybciej i efektywniej utworzymy je manualnie. Kiedy jednak pojawia się konieczność wielokrotnego wpisywania danych, podczas testów innego typu, bardziej efektywne może się okazać generowanie ich automatycznie. Wytwarzanie złożonych danych w dużej ilości staje się wręcz koniecznością w przypadku testowania rozbudowanych systemów bankowych czy telekomunikacyjnych – ze względu na wielość i różnorodność aplikacji, przez które muszą przejść dane klienta tworzenie ich ręcznie za każdym razem znacznie wydłużyłoby cały proces testowy, czyniąc go nieopłacalnym.
Skąd wziąć dane testowe?
Z punktu widzenia metodyki testów rozwiązaniem optymalnym jest wykorzystanie autentycznych danych produkcyjnych – działanie aplikacji weryfikowane jest w ten sposób na tych samych rekordach, na których pracuje ona na co dzień. Niestety wiąże się to z poważnym ryzykiem wycieku danych klientów. Powstaje więc pytanie, jak zapewnić bezpieczeństwo wrażliwych danych w środowiskach testowych, które z definicji nie są tak zabezpieczone, jak środowisko produkcyjne? I dalej: jak zachować ich integralność i spójność w przypadku aplikacji wykorzystujących wiele systemów i wiele baz?
Soflab GALL
Odpowiedzią na te wyzwania jest Soflab GALL (Global Anonimization Linked Loader). Rozwiązanie to umożliwia zespołom programistów i testerów korzystanie z baz danych, zbudowanych w oparciu o dane produkcyjne, z zachowaniem ich oryginalnej struktury i wewnętrznych relacji między tabelami. Utworzona w ten sposób baza testowa posiada taką samą wartość biznesową i statystyczną, jak baza produkcyjna. Przechowywane w niej dane nie muszą być jednak chronione, ponieważ zostały poddane procesowi anonimizacji.
Przyjrzyjmy się konkretnemu przypadkowi. Wyobraźmy sobie, że zakład ubezpieczeń musi ocenić jakość procesu odnawiania indywidualnej polisy z możliwością dokupienia nowego, wchodzącego na rynek produktu, kierowaną do klientów o ściśle określonym profilu. Jak dotąd istniały dwie możliwości przeprowadzenia takiej ewaluacji: wymyślenie całej grupy hipotetycznych odbiorców danej usługi oraz ręczne wprowadzenie informacji do systemu lub skorzystanie z oryginalnych danych z bazy ubezpieczyciela. Dzisiaj, z pomocą GALLA, można w krótkim czasie wygenerować setki danych wirtualnych klientów, spełniające ściśle określone kryteria biznesowe, nawet jeśli w naszej bazie istnieje tylko jeden rekord o pożądanym profilu.
Dzięki procesowi anonimizacji, wygenerowane rekordy zachowują strukturę danych wejściowych – imiona pozostają imionami, nazwiska nazwiskami, a numery polisy, chociaż wirtualne, są zgodne ze schematem i jako takie przechodzą walidację w wewnętrznych systemach ubezpieczyciela. Co bardzo ważne, proces anonimizacji jest nieodwracalny – nie ma możliwości, by na podstawie danych testowych zrekonstruować oryginalne wpisy. Możemy więc być pewni, że tylko upoważnione osoby mają dostęp do wrażliwych danych klientów.
Soflab GALL został stworzony przez nasz zespół ekspertów od BI (Business Intelligence) w oparciu o doświadczenia zdobyte podczas wielu różnych wdrożeń. I chociaż powstał jako odpowiedź na wymagania wynikające z unijnego rozporządzenia RODO, nie tylko sprostał temu wyzwaniu, ale przerósł wszelkie oczekiwania i okazał się doskonałym narzędziem do generowania wartościowych i spójnych danych testowych.
Zalety GALLa są nie do przecenienia:
- może zarządzać danymi testowymi na dużą skalę, w złożonych środowiskach, przy użyciu anonimowych danych produkcyjnych, co znacznie przyspiesza proces walidacji,
- umożliwia mapowanie wielu źródłowych baz danych, osobno dla każdego projektu,
- pozwala na monitorowanie zmian w strukturze danych baz produkcyjnych,
- daje możliwość konfigurowania osobnych reguł anonimizacji dla każdego projektu,
- działa w kilku trybach; obsługuje formaty SQL script, JSON, XML, CSV,
- jest wyposażony w moduł harmonogramowania działań,
- działa zdalnie z pomocą własnego API,
- potrafi generować dane w oparciu o wcześniej określone reguły, bez dostępu do danych wejściowych.
Soflab GALL może być także wykorzystywany do pseudonimizacji, czyli, w uproszczeniu, odwracalnej anonimizacji. Jest ona konieczna w przypadku oceny funkcjonowania aplikacji dla wybranego zestawu klientów, których dane wrażliwe musimy na ten czas zamaskować. Dzięki odwracalności tego procesu, po przeprowadzeniu analizy możemy przywrócić oryginalne dane i zastosować do nich znalezione rozwiązanie.
Na koniec warto podkreślić, że GALL umożliwia realizację wszystkich przepisów RODO odnośnie dostępu do poufnych informacji, w tym tzw. prawa do bycia zapomnianym. Z pomocą tego narzędzia można w środowiskach produkcyjnych zanonimizować nie tylko podstawowe dane konkretnego klienta, ale i wszystkie powiązane z nim rekordy. W ten sposób realizujemy ustawowo zagwarantowane prawo przy równoczesnym zachowaniu warunków technicznych dla integralności bazy danych.
W warunkach postępującej cyfryzacji to dane są najcenniejszym surowcem. Przetwarzanie ich w czasie rzeczywistym pozwala firmom zdobywać przewagę konkurencyjną. Wygrywają ci, którzy przetwarzają je mądrzej, efektywniej, skuteczniej. Soflab GALL jest właśnie dla nich.
anonimizacja – nieodwracalna modyfikacja danych trwale uniemożliwiająca identyfikację konkretnej osoby.
pseudonimizacja – modyfikacja danych uniemożliwiająca identyfikację konkretnej osoby bez pomocy dodatkowych informacji przechowywanych osobno (np. klucza deszyfrującego)