![]()
GIT to najpopularniejszy system kontroli wersji, stosowany w większości nowoczesnych projektów IT. Zarówno programiści, jak i testerzy automatyzujący korzystają z niego na co dzień do zarządzania kodem, współdzielenia zmian oraz utrzymania porządku w repozytorium. Dla testera automatyzującego znajomość GIT jest nie tylko użyteczna – jest wręcz niezbędna. Dzięki GIT można w pełni kontrolować rozwój testów, analizować zmiany, które mogły wpłynąć na ich wyniki, i skutecznie współpracować z zespołem programistycznym. W tym opracowaniu szczegółowo omówimy podstawowe i bardziej zaawansowane komendy GIT, koncentrując się na ich zastosowaniu w praktyce testera.
Podstawowe polecenia Giti
Podstawowe komendy systemu kontroli wersji GIT stanowią fundament pracy każdego testera automatyzującego. Pozwalają na tworzenie repozytoriów, dodawanie zmian, wykonywanie commitów oraz analizę historii projektu.
- git init
Opis: Tworzy nowe lokalne repozytorium w bieżącym katalogu. Dzięki temu GIT zaczyna śledzić zmiany plików w danym projekcie.
Zastosowanie: Stosowane przy zakładaniu nowych projektów testowych. Przykład: tworząc framework w Pythonie dla Playwrighta, użyj tej komendy w katalogu głównym projektu.
- git clone
Opis: Służy do skopiowania istniejącego repozytorium zdalnego (np. z GitHub lub GitLab) na komputer lokalny.
Przykład:
git clone https://github.com/uzytkownik/projekt.git
Zastosowanie: Dzięki tej komendzie tester może pobrać repozytorium zawierające testy automatyczne, uruchomić je lokalnie lub dodać własne scenariusze.
- git add
Opis: Dodaje pliki do obszaru staging (przygotowania do zapisu). Można dodawać pojedyncze pliki lub wszystkie zmodyfikowane elementy.
Przykład:
git add test_login.py
git add .
Zastosowanie: Pozwala przygotować konkretne pliki testowe do commitowania, co ułatwia kontrolę nad zmianami.
- git commit
Opis: Tworzy nowy zapis zmian w repozytorium. Każdy commit powinien mieć opis (komunikat), który jasno określa, co zostało zmienione.
Przykład:
git commit -m 'Dodano testy logowania dla użytkowników admin’
Zastosowanie: Regularne commitowanie pozwala na łatwe śledzenie postępu pracy i szybki rollback w razie problemów.
- git status
Opis: Wyświetla informacje o bieżącym stanie repozytorium — zmodyfikowane pliki, pliki oczekujące na commit lub nieśledzone pliki.
Przykład:
git status
Zastosowanie: Pomaga kontrolować, co dokładnie zostanie zapisane w kolejnym commicie.
- git log
Opis: Pokazuje historię commitów, wraz z autorami i datami. Można rozszerzyć widok o parametry np. –oneline, –graph dla wizualizacji historii.
Przykład:
git log –oneline –graph
Zastosowanie: Testerzy często korzystają z tej komendy, aby zidentyfikować zmiany wprowadzone przed pojawieniem się błędów testów.
Praca z gałęziami (branchami)
Gałęzie (branches) to jedna z najpotężniejszych funkcjonalności GIT. Pozwalają tworzyć równoległe wersje projektu, nad którymi można pracować niezależnie. Dzięki nim testerzy mogą rozwijać nowe scenariusze testowe bez ryzyka ingerencji w stabilny kod główny.
- git branch
Opis: Wyświetla listę dostępnych gałęzi oraz wskazuje aktywną gałąź. Można użyć też 'git branch nazwa’ do utworzenia nowej gałęzi.
- git checkout
Opis: Pozwala przełączać się między gałęziami. Używana, gdy tester chce pracować nad inną funkcjonalnością lub poprawką.
- git checkout -b
Opis: Tworzy nową gałąź i automatycznie przełącza się na nią, np. dla nowych przypadków testowych.
- git merge
Opis: Łączy zmiany z jednej gałęzi z drugą. Tester może połączyć nowe testy z główną gałęzią po ich przetestowaniu.
Praca z repozytoriami zdalnymi
W projektach zespołowych testerzy pracują z repozytoriami zdalnymi, które przechowują wspólną wersję kodu. Dzięki nim każdy członek zespołu ma dostęp do najnowszych zmian i może współdzielić własne modyfikacje.
- git remote -v
- Opis: Pokazuje listę repozytoriów zdalnych oraz adresy URL, z którymi lokalne repozytorium jest powiązane.
- git push
2. Opis: Wysyła zmiany z lokalnego repozytorium do repozytorium zdalnego, np. na GitHub.
- git pull
3. Opis: Pobiera najnowsze zmiany z repozytorium zdalnego i scala je z lokalną gałęzią.
Zaawansowane komendy GIT
Po opanowaniu podstaw warto poznać bardziej zaawansowane funkcje Git, które pomagają w codziennych scenariuszach pracy testera.
- git stash
Opis: Odkłada bieżące zmiany w tymczasowej przestrzeni. Tester może przełączyć się na inną gałąź bez utraty rozpoczętej pracy.
- git cherry-pick
Opis: Pozwala przenieść konkretny commit z jednej gałęzi do drugiej, np. gdy trzeba dodać poprawkę testu bez pełnego merge’a.
- git rebase
Opis: Porządkuje historię commitów poprzez przeniesienie zmian z jednej gałęzi na drugą, co daje liniową strukturę zmian.
Praktyczne zastosowania GIT w testach automatyzujących
Testerzy automatyzujący korzystają z GIT w wielu aspektach pracy. Poniżej przykłady zastosowań w praktyce:
Zarządzanie kodem testowym: Testerzy automatyzujący mogą tworzyć osobne gałęzie (branches) dla rozwoju nowych przypadków testowych lub modyfikacji istniejących skryptów. Po zakończeniu prac nad daną funkcjonalnością, gałąź może zostać scalona (merge) z głównym środowiskiem projektu, co pozwala utrzymać porządek i czytelność historii zmian. Takie podejście umożliwia bezpieczne eksperymentowanie z kodem, bez ryzyka wprowadzania błędów do głównej wersji testów.
Monitorowanie zmian: Dzięki komendzie git log testerzy mogą śledzić ewolucję kodu oraz dokładnie przeanalizować, które commity mogły mieć wpływ na wyniki testów automatycznych. Historia zmian pozwala na szybkie odnalezienie momentu wprowadzenia błędu, co znacznie skraca czas diagnozy i ułatwia współpracę z programistami przy rozwiązywaniu problemów.
Tymczasowe odkładanie pracy z wykorzystaniem git stash: W sytuacji, gdy tester musi natychmiast przełączyć się na inną gałąź – na przykład w celu weryfikacji krytycznej poprawki – ale nie chce jeszcze utrwalać swoich bieżących zmian, może użyć komendy git stash. Pozwala ona „schować” aktualny stan pracy, by później łatwo go przywrócić i kontynuować zadanie dokładnie od momentu przerwania. To bardzo praktyczne rozwiązanie w dynamicznych projektach testowych.
Aktualizacja lokalnego środowiska: Regularne wykonywanie komendy git pull gwarantuje, że lokalne repozytorium testera jest zawsze zsynchronizowane z najnowszym stanem kodu w repozytorium zdalnym. Dzięki temu testy automatyczne są uruchamiane na aktualnej wersji aplikacji, co eliminuje ryzyko testowania nieaktualnych funkcji lub błędnych zależności w projekcie.
Dobre praktyki korzystania z Git przez testerów
1. Używaj konwencji nazewnictwa commitów
Pisz zrozumiałe i spójne wiadomości commitów, które wyraźnie opisują wprowadzone zmiany. Dzięki temu historia zmian będzie bardziej przejrzysta.
2. Regularne commitowanie
Nie czekaj z commitowaniem do zakończenia pracy nad większą funkcjonalnością. Regularne commitowanie ułatwia śledzenie postępów oraz rollback, jeśli zajdzie taka potrzeba.
3. Wykorzystuj gałęzie
Każda nowa funkcjonalność lub poprawka powinna być rozwijana w osobnej gałęzi. Ułatwia to współpracę w zespole i minimalizuje ryzyko konfliktów.
4. Sprawdzaj zmiany przed commitowaniem
Używaj git status oraz git diff przed każdym commitem, aby upewnić się, że dodajesz do repozytorium tylko te zmiany, które są zamierzone.
5. Zachowaj porządek
Regularnie przeglądaj swoje gałęzie, aby usunąć te, które są już niepotrzebne, co pomoże w utrzymaniu porządku w repozytorium.
Podsumowanie
System kontroli wersji GIT w pracy testera automatyzującego to temat, który obejmuje nie tylko znajomość komend, ale przede wszystkim zrozumienie procesów i dobrych praktyk pracy z kodem testowym. GIT stanowi kręgosłup współczesnych projektów opartych o ciągłą integrację (CI) i ciągłe dostarczanie (CD).
Dzięki GIT testerzy mogą nie tylko rozwijać i utrzymywać własne frameworki testowe, ale także aktywnie uczestniczyć w procesie tworzenia oprogramowania. Pozwala to na lepszą komunikację z zespołem developerskim, szybsze reagowanie na błędy oraz transparentne śledzenie zmian w kodzie. Repozytorium Git staje się centrum informacji o jakości systemu, gdzie można śledzić historię testów, raporty i automatyczne wyniki.
Co więcej, GIT integruje się z wieloma platformami wspierającymi testowanie – od Jenkinsa, przez GitHub Actions, po Azure DevOps. Umożliwia to automatyczne uruchamianie testów przy każdym pushu czy merge’u. W połączeniu z narzędziami takimi jak Selenium, Cypress czy Robot Framework, GIT staje się niezastąpionym elementem efektywnego środowiska QA.
Podsumowując – znajomość GIT to nie tylko umiejętność techniczna, ale element profesjonalizmu testera. Dzięki niej praca nad automatyzacją testów staje się bardziej uporządkowana, skalowalna i bezpieczna. Każdy tester, który chce rozwijać się w kierunku inżynierii testów i DevOps, powinien opanować Git do poziomu swobodnego wykorzystania w codziennej praktyce.
BIO
Michał Banaszyk – Tester automatyzujący oraz lider techniczny w obszarze testów automatycznych, związany głównie z branżą bankową. Specjalizuje się w projektowaniu i rozwoju testów automatycznych, przede wszystkim z wykorzystaniem frameworka Playwright.
Prywatnie pasjonat kinematografii, filozofii oraz sportu. Z dużym zainteresowaniem śledzi rozwój sztucznej inteligencji i jej praktyczne zastosowania w biznesie — zwłaszcza tam, gdzie może usprawniać procesy i zwiększać efektywność.
