Testowanie Smallwold GIS – zdradzamy nasze dobre praktyki

Testowanie opropgramowania

Nie będzie chyba zaskoczeniem, jeśli powiemy, że jakość rozwiązań IT w dużej mierze zależy od jakości testów, które te rozwiązania przeszły. Ponieważ testy odgrywają bardzo ważną rolę w naszym procesie wytwarzania i dostarczania oprogramowania, postanowiliśmy przekazać kilka dobrych praktyk testowania zaczerpniętych z naszej działalności związanej z GE Smallworld GIS. Dodatkowo pokazujemy, jak proces testowania wygląda w Globemie.

Zacznijmy od porad związanych z testowaniem GE Smallworld GIS:

  • pamiętaj, aby skopiować środowisko produkcyjne razem z bazą danych i z niego utworzyć osobne środowisko testowe
  • nie testuj na serwerze, gdzie jest zainstalowane środowisko, ale uruchamiaj aplikację na stacjach roboczych po zmapowanym udziale
  • nie zapominaj o przebudowywaniu obrazów, aby być pewnym, że wszystkie poprawki są załadowane
  • uruchamiaj aplikację z konsolą emacs. Z tej konsoli jesteś w stanie wyczytać podstawowe informacje na temat napotkanego błędu oraz skopiować jego treść
  • przygotuj różne grupy z użytkownikami i odpowiednio skonfiguruj poziomy dostępu
  • przygotuj odpowiedni pakiet testaliów, na których będziesz wykonywał niektóre testy, na przykład: pliki wektorowe i rastrowe w różnych formatach i w różnych układach współrzędnych, dokumenty dołączane do obiektów itp.
  • testuj w odpowiednich alternatywach w bankach ACE, STYLE, GIS itp.
  • patche z poprawkami wgrywaj do ustalonej lokalizacji, na przykład dla EC.GIS …\SW_APP\EC\…….\source\image_patches a numery patchy w sposób chronologiczny i bez przerw wpisuj do patchlisty
  • wygląd edytorów w aplikacji może się różnić w zależności od tego, jak są skonfigurowany pliki xml odpowiadające za ich budowę. Należy pamiętać, że na poziomie struktury katalogów … \SW_APP są 2-3 różne konfiguracje, które hierarchicznie się nadpisują.

Dodatkowo warto napisać testy dla:

  • różnych środowisk Smallworld – na przykład jednomonitorowe, dwumonitorowe itp.
  • dla różnych użytkowników, z różnym poziomem dostępu do: tabel, parametrów i alternatyw
  • testów regresji – błędy znalezione wcześniej i poprawione powinny być ponownie przetestowane wraz z obszarem funkcjonalnym wokół poprawionego błędu
  • dla różnych typów testów: wydajności, skalowalności, bezpieczeństwa, użyteczności, procedur utrzymaniowych, funkcjonalnych.
Testowanie Oprogramowania
Testowanie Oprogramowania

A jak testowanie wygląda u nas?

Przede wszystkim bazujemy na podejściu iteracyjnym z zastosowaniem metodyk zwinnych, jak na przykład Scrum. Iteracyjny model tworzenia oprogramowania pozwala już na wczesnym etapie na współpracę programistów, testerów, analityka i klienta.

Podejście takie umożliwia:

  • walidację sporządzonych wymagań z potrzebami klienta
  • elastyczne reagowanie na ewentualne zmiany w wymaganiach. Wczesne wykrywanie niezgodności pomiędzy wymaganiami, wynikami projektowania i wynikami implementacji
  • wykrywanie i neutralizowanie największych zagrożeń podczas początkowych operacji scalania – testowanie integracyjne małe
  • minimalizację liczby poprawek – każda iteracja kończy się scalaniem
  • obiektywną ocenę stanu projektu i jakości usługi
  • sam proces wytwórczy jest ulepszany podczas trwania projektu – retrospekcja dokonywana na koniec każdej iteracji obejmuje również to, co można poprawić w następnej.

Defekty oprogramowania nie wynikają jedynie z błędów samego kodowania – duża ich część jest wynikiem błędów popełnionych podczas spisywania wymagań. Dlatego też testy zaczynamy już na etapie analizy:

  • przeprowadzamy walidację wymagań (m.in. wymagania mają być: wykonalne, jednoznaczne, mierzalne, jednostkowe, zgodne ze sobą, zrozumiałe)
  • nadajemy wymaganiom priorytety
  • definiujemy ryzyka projektowe i produktowe
  • znając cel projektu i wymagania układamy Strategię testową.

Warto także zaznaczyć, że aby zapewnić wysoką jakość oprogramowania, w procesie testowania biorą udział głównie osoby posiadające certyfikat ISTQB, ITIL oraz REQB.

Podkreślmy na koniec, iż testowanie jest absolutnie niezbędnym elementem wytwarzania i dostarczania oprogramowania. Powodów jest wiele, między innymi:

Testowanie opropgramowania