Kategorie
Uncategorized

“Ciężki rozruch” po przerwie od projektów ;)

Cześć!

Dzielę się kawałkiem, który w niedzielne późne popołudnie powoduje u mnie zdecydowanie podniesienie motywacji do developmentu… Sprawdź to koniecznie! 🙂

Kategorie
Uncategorized

Skuteczna nauka Selenium – 5 najlepszych źródeł do darmowej nauki!

Cześć!

Dzisaj przedstawię Ci 5 źródeł zasobów, które pomogą Ci opanować Selenium w możliwie najszybszy i najbardziej skuteczny sposób!

Selenium jak już w pewnym wcześniejszym poście pisałem jest narzędziem typu must have dla wszystkich którzy chcą nauczyć się automatyzacji oprogramowania! Nie chodzi tutaj o samą popularność tego narzędzia, a jedynie o sposób oraz zasadę jego działania. Tak, dokładnie to proces w jaki ono działa pomoże Ci się rozwijać i myśleć jak.. automatyk oprogramowania!

Pamiętaj, że dopierane przez mnie materiały są celowo po angielsku. Cały świat IT stoi na tym języku, dlatego angielski powinien być przez nas szlifowany w każdej wolnej chwili.

Najważniejsze na początku jest pozyskanie dobrych materiałów do nauki – pewnych, które dadzą Ci szybką “trampolinę” do merytorycznej wiedzy wysokiej jakości.

Nasz czas, zasoby oraz energia w ciągu dnia jest ograniczona -> dlatego powinieneś wybrać tylko solide materiały z których wyciągniesz możliwie najwięcej wartościowej wiedzy! 🙂

Poniżej zestawiłem 5 topowych zródeł do nauki z “googlowego gąszczu” materiałów, oto one:

0. https://www.selenium.dev/documentation/en/getting_started/

Mój absolutny faworyt i numer jeden, są to oficjalne zasoby od Selenium do nauki. Jest wszystko czego potrzebujesz, do tego fajnie opisane z przykładami ze wszystkimi językami programowania obsługiwanymi przez Selenium aktualnie.

1. https://www.linkedin.com/learning/selenium-essential-training

Selenium tutorial prosto od Linkedin! świetny kurs polecam każdemu odrazu chciałbym trafić na tak wartościowy kontent kiedy uczyłem się tego narzędzia. Te zasoby są za darmo! o ile zastosujesz pewny prosty trick. 😛 Wystarczy ze zarejstrujesz się na portalu Linkedin i przez miesiąc “wykupisz” za darmo konto premium (pierwszy miesiąc subskrypcji jest darmowy).. Oczywiście zrezygnować z subskrypcji możesz w każdej chwili 😉

2. Selenium Full Course – Learn Selenium in 12 Hours | Selenium Tutorial For Beginners | Edureka

Świetny materiał od Edureka, który porusza na poziomie podstawowym wszystkie najistniejsze zagadnienia odnośnie Selenium. Językiem użyty w powyższym video jest Java (mój favoryt wśród języków programowania, jeżeli chodzi o korzystanie z Selenium, dodatkowo na Stackoverflow znajdziesz mnóstwo rozwiązanych problemów – co jest dodatkowym atutem) …ale bez obaw jeżeli nie znasz podstaw Javy. Uważam, że powinieneś poznać Selenium z dowolnym językiem programowania tak aby jak najszybciej załapać jak działa to narzędzie!

3. https://www.guru99.com/selenium-tutorial.html

Doskonałej jakości materiały znajdziesz również na stronie Guru99 – spędziłem na niej wiele czasu ucząc się własnie z tych zasobów, choć niektóre tutoriale obecnie wymagały by drobnych update’ów to jest to świetne źródło merytorcznej wiedzy dla osób, które wolą czytać niż uczyć się bezpośrednio z materiałów video.

4. Selenium Beginner TutorialAutomation Step by Step (Raghav Pal)

Z tych zasobów również korzystałem podczas nauki. Raghav Pal zrobił dla Ciebie świetną robotą w robi to w swoim odpowiednim stylu -> tak jak lubię przedstawia samo “mięso”. W zasadzie w tej playliście porusza wszystkie najważniejsze zagadanienia “w pigułce” dotyczące Selenium i wyjaśnia wszelkie wątpliwości względem tego narzędzia.

Podsumowanie:

Powyższa lista to tylko propozycje zasobów do nauki! Zachęcam Cię również do konsultacji z innymi programistami lub testerami -> podpytaj
w jaki sposób uczą się inni ludzie! To zawsze poszerzy Twoje horyzonty
i pamiętaj, że nic nie zastąpi Twojego działania i chęci do poznawania nowych narzędzi!

Owocnej nauki 🙂

Kategorie
Uncategorized

“Create to Inspire, Inspire to Create” czyli inspiracja do tworzenia w pigułce

Cześć!

Dziś dzielę się z Tobą kolejną dawką inspiracji do developmentu. Przypadkiem natrafiłem na stary filmik, który kiedyś mocno mnie zainspirował do pociągnięcia swoich umiejętności w tańcu… po blisko 15 latach nadal wydaje się być aktualny…

Tylko musisz skompilować w swojej głowie poniższą linijkę kodu pythona 😉

inspiration = "Dance to Inspire, Inspire to Dance"
myinspiration = ['Create']

print(inspiration.replace("Dance", "Create"))

Życzę Ci udanego, twórczego dnia.
Kris

Kategorie
Uncategorized

Certyfikaty ISTQB w pigułce – wszystko co musisz o nich wiedzieć!

Cześć!

W obecnych czasach pandemii i kryzysu wiele osób jest chętnych lub zmuszonych podnieść swoje kwalifikacje w dziedzinie testowania oprogramowania – czasem żeby utrzymać pracę.

Dobrym pomysłem i zarazem inwestycją jest rozważenie przystąpienia do testu online z zakresu ISTQB – może to pozwolić Ci nieco wyróżnić się na tle innych osób, poszerzyć możliwości kariery i (być może) zaowocować wyższym wynagrodzeniem.

Czym jest ISTQB?

Organizacja ISTQB to w skrócie  „International Software Testing Qualifications Board”, oferuje ona certyfikację potwierdzenia umiejętności odnośnie różnych poziomów testowania oprogramowania przy czym jest uznana i rozpoznawalna na całym świecie. Prowadzona jest przez organizację non-profit, w skład której wchodzą wybitni eksperci z wieloletnim doświadczeniem. Certyfikaty, takie jak ISTQB, pokazują Twoją biegłość i zainteresowanie branżą testowania oprogramowania dla rekruterów i przyszłych pracodawców.

Natomiast przed rozważeniem przystąpienia do certyfikatu warto żebyś wiedział, że:

0 Żadna certyfikacja nie pomoże Ci w karierze zawodowej bez odpowiedniego doświadczenia praktycznego w realnych projektach. Doświadczenie zawodowe daj kluczową wiedzę, podstawy i zrozumienie, co zadziała w danej praktycznej sytuacji.

1 Kandydaci posiadający doświadczenie zawodowe są zawsze preferowanym wyborem w firmach dla osób decyzyjnych, które kierują tychże kandydatów na kursy doszkalające (ale zakręciłem :P) czyli w skrócie – jeżeli masz doświadczenie zawodowe będzie Ci prościej 🙂

2 Nawet jeśli jesteś nowicjuszem w dziedzinie testowania oprogramowania, certyfikat z pewnością może Ci pomóc (na poziomie foundation level). Możesz też pomyśleć o odbyciu stażu lub studiów wyższych związanych z jakością oprogramowania.

Certyfikat ISTQB podzielony jest na 3 poziomy:

0 Poziom podstawowy

Certyfikat na poziomie podstawowym jest przeznaczony głównie mało doświadczonym osobom (ale jednak z jakimś doświadczeniem związanym z branżą oprogramowania) chętnym poszerzyć swoją wiedzę z zakresu testowania oprogramowania.

Celem tego certyfikatu jest upewnienie się, że kluczowe pojęcia i podstawowe praktyki są dobrze zrozumiane przez interesantów.

1 Poziom zaawansowany

Kurs na poziomie zaawansowanym jest przeznaczony dla profesjonalistów średniego poziomu, którzy posiadają minimum 2-letnie doświadczenie zawodowe. Celem jest poznanie i zrozumienie zaawansowanych najlepszych praktyk i koncepcji testowania. Sylabus obejmuje następujące tematy:

0. Zaawansowane testy behawioralne i standardy dla testerów zorientowanych biznesowo – Test Analyst

1. Zaawansowane testy strukturalne dla testerów zorientowanych technicznie – Technical Test Analyst

2. Doświadczone koncepcje zarządzania testami dla menedżerów – Test Manager

2 Poziom eksperta

Jak sama nazwa wskazuje, kursy na poziomie eksperckim są przeznaczone dla prawdziwych ekspertów w dziedzinie testowania oprogramowania. Poziom jest dedykowany specjalistom mającym ponad 8-letnie doświadczenie zawodowe. Celem jest zrozumienie i wdrożenie ulepszenie najnowocześniejszej technologii w procesie testów oprogramowania.

Program ekspercki porusza takie kwestie jak:

0 Doskonalenie procesu testowego

1 Zarządzanie testami

2 Automatyzacja testów

3 Techniki branżowe.

Podsumowanie w pigułce

Czy warto robić certyfikat ISTQB? musisz samemu to ocenić 🙂
Wszystko zależy od danej sytuacji, ale na pewno jest to dobry wybór w szczególności na początku drogi zawodowej związanej z testowaniem oprogramowania. Ja natomiast uważam, że wiedza zawarta w sylabusach – bez względu na poziom zaawansowania jest uporządkowana i wartościowa. Nauka naprawdę jest dobrą inwestycją i jestem przekonany, że wykorzystasz tą wiedzę w praktyce zawodowej jeszcze wiele razy. Certyfikat o niczym nie świadczy tak naprawdę, ale nabyć wiedzę z tych zasobów jest wysoce wskazane i to rekomenduję 🙂

Kategorie
Uncategorized

Jak skutecznie nauczyć się i zaliczyć certyfikat ISTQB Advanced level na przykładzie Test Analyst?

Cześć!

W dzisiejszym wpisie przedstawię Ci dokładnie jak skutecznie przygotować się do egzaminu na poziomie zaawansowanym ISTQB na przykładzie Analityka Testów (inne certyfikaty na tym poziomie będą różnić się materiałami ale zarówno dla Test Managera oraz Technical Test Analyst niektóre tematy są wspólne w tym sylabusie! Niezależnie, który certyfikat wybierzesz na poziomie Advance ta wiedza i tak będzie dla Ciebie przydatna). 

W mojej opinii to właśnie Test Analyst jest najbardziej wartościowy dla większości osób, które zajmują się biznesowym podejściem do testowania oprogramowania (zwróć uwagę na powyższej grafice, jakich dokładnie zagadnień dotyczy zakres materiału ISTQB Test Analyst) -> możesz poprzez ten certyfikat uzupełnić swoją wiedzę na temat dokładnego procesu testowego, zarządzania testami oraz poznania zaawansowanych technik testowych. Nauka tych zagadnień jest świetną inwestycją zawodową, jeżeli planujesz karierę jako tester oprogramowania. Test Analyst również porusza obszernie kwestie Review i narzędzi testowych do automatyzacji, co w szczególności może pomóc Ci uporządkować wiedzę odnośnie właśnie automatyzacji testowanego oprogramowania. Materiał zawarty w sylabusie Test Analyst zdecydowanie dostarczy Ci dużej dawki wartościowej wiedzy, ale na pewno nie wystarczy sama znajomość sylabusa do zaliczenia egzaminu ISTQB na poziomie zaawansowanym – musisz postawić na praktyczne wykorzystanie tych zagadnień!

W “polskim internecie” nie znalazłem samouczka jak skutecznie zaliczyć egzamin Test Analyst na poziomie zaawansowanym, więc postanowiłem go napisać opierając się o wpis napisany przez Ognjen Ninic w serwisie Linkedin.

Poziomy wiedzy, które należy przyswoić w sylabusie są podzielone według poniższych kryteriów:

K1wymaga umiejętności zapamiętywania bez ich głębszego zrozumienia.

K2wymaga umiejętności zrozumienia, chociaż możesz nie być wstanie zastosować ich w praktyce.

K3jak powyżej, z tą różnicą, że powinieneś umieć zastosować to chociaż częściowo w praktyce.

K4wymaga wszystkiego co powyżej, plus analitycznego zastosowania wiedzy w praktycznych projektach.

Poniżej zestawiłem materiały, które warto wykorzystać podczas nauki:

Materiały z oficjalnych zasobów ISTQB – Sylabusa sugeruje przeczytać wiele razy i koniecznie przerobić również przykładowy egzamin:

https://www.istqb.org/downloads/category/7-advanced-level-documents.html

https://astqb.org/resources/

Mapa myśli utworzona dla ATA

Polecam również zainteresować się, poniższą lekturą jest świetnie uporządkowana pod względem merytorycznym. Rex Black potrafi wyjaśnić skomplikowane zagadnienia w prosty sposób. Po opanowaniu przykładowych pytań i ich zrozumieniu nie powinieneś mieć większych problemów na teście:

Gdzie znaleźć przykładowe egzaminy/testy?

Dla Test Analyst jest dość trudno znaleźć przykładowe zadania, ale dla chcącego nic trudnego – możesz znaleźć wiele ciekawych materiałów w sieci o ile dobrze poszukasz. Skorzystaj z każdego możliwego egzaminu ISTQB od dostawców egzaminów online – to są prawdziwe pytania, które mogą być na egzaminie.
Polecam sprawdzić również nowe egzaminy próbne zależnie od poziomu zaawansowania, na platformie Test competence! Są bardzo zbliżone do realnego egzaminu i przetrenowanie kilku testów byłoby wskazane przed certyfikacją. Godne uwagi są również materiały od Patshala: https://istqb.patshala.com/tests/mode.php?tn=27

Przykładowe pytania, podobne do tych które mogą pojawić się na egzaminie:

https://www.softwaretestinggenius.com/certifications-resources/istqb-advanced-ctal-test-analysts-exam-crash-course/

https://istqbquestionbank.blogspot.com/2012/06/test-analyst-sample-question-set-1.html

ISTQB Mock Exam TestCompetence

Materiały do nauki do przypomnienia na poziomie foundation level, które warto powtórzyć niezależnie od zdawanego testu na poziomie zaawansowanym (zwróć uwagę w jaki sposób najbardziej optymalnie i szybko rozwiązywać testy):

https://www.youtube.com/watch?v=3sydes1xp4U&list=PLwlHul3skGA7U_hmvgmCSl4-vUnOtQrMY


Również godny uwagi jest kurs na Udemy:

Pass ISTQB Test Analyst Advanced Level Exam From First Trial

Ile czasu potrzeba na naukę poziomu zaawansowanego?

To w dużej mierze zależy od twojego doświadczenia zawodowego, motywacji oraz czasu który możesz poświęcić na naukę. Osobiście przygotowywałem się około 1,5-2 miesięcy. Myślę, że okres do 3 miesięcy jest wystarczający, aby zaliczyć certyfikat (oczywiście lepiej zminimalizować czas, a zwiększyć intensywność nauki) choć niektórzy przygotowują się nawet pół roku do tego certyfikatu. Po takim długim czasie najprawdopodobniej zapomnisz czego uczyłeś się kilka miesięcy temu :), o ile tego już nie praktykujesz zawodowo.

Na co w szczególności zwrócić uwagę:

Staraj się zrozumieć tematy tak jakie: minimalne pokrycie, testowanie konfiguracji, MTTR, WAMMI, SUMI, i wszystkie definicje odnośnie technik testowania na podstawie specyfikacji (są one najlepiej punktowane na egzaminie).

Gdy masz zadanie z analizą wartości brzegowych warto zwrócić uwagę, że często te zagadnienia dotyczą również różnych klas równoważności. Zadania z zakresu ISTQB Advanced level lubią łączyć ze sobą te 2 techniki. Również w pracy zawodowej często będziesz korzystać z analizy wartości brzegowych oraz klas równoważności.

Zignoruj ​​wszystkie zadania, w których jest mowa o normach, nie będziesz mieć tego na egzaminie, a standardy/normy ciągle się zmieniają.

Wiele zadań z tablicami decyzyjnymi polega na obliczeniu liczby przypadków testowych na podstawie liczby warunków (to po prostu potęga dwóch).

Gdy istnieje grupa zadań z tym samym diagramem lub opisem, po przejściu dalej, możliwe że znajdziesz rozwiązanie pierwszego zadania w treści kolejnego – zwróć na to uwagę.

Nie polegaj na zapamiętywaniu, ponieważ niektóre zadania są nieznacznie zmienione podczas egzaminu (nigdy nie ucz się na pamięć odpowiedzi!).

Samym uczeniem się tylko z książki i sylabusa nie zaliczysz tego testu, musisz praktykować

Certyfikat online czy klasycznie w centrum egzaminacyjnym?

Zdawałem oba, zdecydowanie mogę Ci polecić podejście do certyfikacji online – mniej stresu, więcej czasu zaoszczędzisz (zdecydowanie). Online też możesz robić notatki, więc w zasadzie nic nie tracisz w porównaniu z klasycznym podejściem do certyfikacji.

Jak się uczyć do egzaminu:

  1. Przeczytaj sylabusy FL -> podejdź do egzaminu FL,
  2. Przeczytaj szczegółowo Sylabus TA, przećwicz techniki testowe na próbnych egzaminach TA.
  3. Czytaj uważnie pytania, najlepiej kilka razy.
  4. Naucz się korzystać z technik testowych – opanuj je w praktycznych zadaniach i zastosowaniach, uważam że na to powinieneś postawić największy nacisk, to zaprocentuje również w pracy zawodowej.
  5. Podkreślaj i zwracaj szczególną uwagę na wszystkie słowa kluczowe, takie jak „zawsze”, „nigdy”, „trzeba”. Skorzystaj z zasady wykluczenia! Zwróć uwagę na klasyfikatory, takie jak „zwykle”, „ogólnie”, „przeważnie”, “w tej sytuacji”!
  1. Jeśli pytanie jest niejasne, warto najpierw przyjrzeć się odpowiedziom.
  2. Jeżeli tekst wprowadzający jest bardzo długi i zawiera tabele lub rysunki – zwróć uwagę najpierw na pytanie i odpowiedz, później na tabelę lub grafikę, a następnie przeczytaj ponownie tekst. To może pomóc Ci zaoszczędzić cenny czas.
  3. Odpowiedzi zawierające słowa „ryzyko”, „jakość” są często prawidłowe.
  4. Jeśli nie wiesz jak odpowiedź jest prawidłowa zaznacz cokolwiek!

Wskazówki dotyczące lepszej wydajności na egzaminie:

1) Przeczytaj uważnie Sylabus i dobrze go przestudiuj, staraj się dokładnie zrozumieć opisywane zagadnienia.

2) Rozwiąż jak najwięcej pytań testowych, aby zapoznać się ze sformułowaniem pytań, a także z ich rodzajami.

3) Chociaż jest to egzamin trwający stosunkowo długo (2h – 2019 v.) lub (3h – 2012 v.) zależenie od wersji, nadal będziesz odczuwać, że trudno jest dokładnie przestudiować cały test. Dlatego na początek przestudiuj cały artykuł, odpowiadając na pytania, które są proste i na które znasz odpowiedź.

4) Jeśli dobrze się przygotowałeś, możesz odpowiedzieć na 65 pytań w mniej niż 100 minut.

Podczas nauki do testu koniecznie zwróć uwagę na poniższą piramidę skutecznej nauki. Wynika z niej że, zdecydowanie najlepszym sposobem uczenia się jest rozmowa z innymi testerami na dany temat oraz tłumaczenie i uczenie innych ludzi! Także zachęcam Cię do aktywnego zdobywania wiedzy 🙂

Kategorie
Uncategorized

Top 3 polecane międzynarodowe certyfikacje testerskie w 2021 roku!

Cześć!

Testowanie oprogramowania służy do zrozumienia i oceny prawidłowego działania aplikacji. Zawodowi testerzy oprogramowania podczas rozwijania swoich umiejętności wraz z nabywaniem doświadczenia często certyfikują się i specjalizują w pewnych dziedzinach “gałęziach” inżynierii oprogramowania.

Certyfikaty z zakresu testowania oprogramowania to rodzaje egzaminów, które mogą znacznie wyróżnić zawodowo certyfikowaną osobę. Certyfikat ma również za zadanie potwierdzenie kompetencji w zakresie testowania oprogramowania.

Karierę można rozwijać, przechodząc stopniowo kolejne poziomy w inżynierii oprogramowania, tak aby finalnie stać się ekspertem w tej dziedzinie.

Poniżej zestawiłem najważniejsze certyfikaty z zakresu testowania oprogramowania, do których możesz przystąpić w 2021 r.

1. ISTQB (International Software Testing Qualifications Board)

ISTQB to jeden z wiodących certyfikatów testowania oprogramowania w świecie IT, który ma globalny charakter. Z siedzibą w Belgii, posiada centra egzaminacyjne na całym świecie. Jest postrzegany jako jeden z najbardziej wartościowych certyfikatów do zdobycia. W wielu firmach jest to pozycja wymagana do podjęcia pracy w zawodzie związanym z testowaniem/jakością oprogramowania. W ramach ISTQB istnieje kilka poziomów certyfikacji, od poziomu początkującego poprzez poziom zaawansowany aż do poziomu eksperta.

Dodatkowe wymagania odnośnie tego certyfikatu to określony program oraz standardy, które należy spełnić przed przystąpieniem do egzaminu.

2. CAST (Certified Associate in Software Testing)

Ten certyfikat jest wydawany przez Quality Assurance Institute w USA. Do udziału w tym kursie można zakwalifikować się tylko wtedy, gdy masz trzy lub czteroletnie doświadczenie w dziedzinie informatyki lub jeśli ukończyłeś uniwersystet i posiadasz roczne doświadczenie w zawodzie testera oprogramowania.

3. CSTE (Certified Software Testing Engineer)

Również ten certyfikat jest prowadzony przez Quality Assurance Institute w USA. Jest to poziom średniozaawansowany w certyfikacji dla testerów oprogramowania. Do przystąpienia kwalifikują się osoby z minimum pięcioletnim doświadczeniem w tej dziedzinie.

Organizacja dostarcza zarejestrowanym studentom uporządkowanego materiału wysokiej jakości w celu przygotowania się do egzaminu.

Po ukończeniu certyfikacji na poziomie początkującym i średniozaawansowanym można przejść do poziomu eksperta (wraz z nabyciem doświadczenia zawodowego), aby doskonalić się i dowiedzieć więcej o zaawansowanym testowaniu oprogramowania.

Powyżej wymieniłem 3 najlepsze certyfikaty z testowania oprogramowania dostępne w 2021 r. – które możesz rozważyć, w celu rozwinięcia swojej kariery! 🙂

Kategorie
Uncategorized

Ucz się automatyzacji oprogramowania jak… Rzemieślnik


Jeśli chcesz zostać mistrzem w dziedzinie automatyzacji oprogramowania, zachęcam Cię do przeczytania tego wpisu i przedstawię Ci rzemieślnicze podejście do tematu. Czym właściwie jest zdobycie mistrzostwa w dziedzinie automatyzacji?

To zdecydowanie więcej niż tylko bycie specjalistą w swojej dziedzinie, dostarczanie wysokiej jakości kodu i wartości biznesowej. Chodzi o traktowanie inżynierii oprogramowania jako stylu życia poprzez ciągłe doskonalenie – małymi kroczkami każdego dnia. Nie jest istotne czym się zajmujesz lub w jakiej dziedzinie się specjalizujesz – czy piszesz dokumentację, kod, poznajesz nowe Frameworki, czy nawet przycinasz trawę na swoim podwórku :). Najważniejsze, że trzymasz postawę rzemieślnika i codziennie starasz się być lepszy niż byłeś wczoraj. W tym procesie zawsze porównuj się tylko ze sobą z przeszłości. Osobiście definiuję to jako zasadę “Men in the Mirror” – dokładnie tak, jak słynna piosenka M.J.’a.

Jako rzemieślnik, na drodze do uzyskania najlepszych wyników, należy szukać najprostszych rozwiązań i wybierać narzędzia najlepiej pasujące do danej pracy. Rzemieślnik nie przywiązuje się do narzędzia, rzemieślnik poświęca całą swoją uwagę wykonanej pracy. W przypadku inżynierii oprogramowania wykorzystując to podejście, ważne jest, aby skupić się na rozwiązaniu problemu, a nie na pisaniu kodu (nie jesteś menedżerem – nie musisz pisać dokumentu na kilka stron, który nie zawiera konkretnych informacji:) Rzemieślnik rozumie procesy i zawsze stara się wykonywać swoją robotę w taki sposób, aby jak najbardziej uprościć również pracę innych członków swojego zespołu -> czy to programistów, testerów lub managerów.

Jeśli chcesz zostać prawdziwym rzemieślnikiem i opanować perfekcyjnie swoją dziedzinę, musisz być przy tym odważny i uczciwy. Czasami trzeba włożyć wiele wysiłku, aby zrealizować swoje plany i osiągnąć więcej niż inni ludzie. Bycie uczciwym wiąże się również z odmową. Rzemieślnik jest stanowczy, aby powiedzieć “nie”, gdy jest to konieczne bez względu na czyjąś opinię. Mówienie “nie” jest również profesjonalnym podejściem.

Czy ty również stosujesz rzemieślnicze podejście w swoim życiu zawodowym?

Kategorie
Uncategorized

Git w pigułce

Git jest podstawowym narzędziem potrzebnym do nauki automatyzacji -> bez względu na używany język programowania!. Jest czymś w rodzaju “fundamentu” do budowy domu (w tym przypadku Twojej aplikacji :). Bardziej oficjalnie jest to software typu open-source: rozproszony system kontroli wersji przechowujący pełną historię wersji projektu w jednym miejscu.

Opis:Komenda Gita:
Konfiguruje nazwę ->git config --global user.name "name"
Tworzy nowe lokalne repozytorium ->git init
Tworzy kopię roboczą lokalnego repozytorium ->git clone /path/to/repo
Klonuje repozytorium ->git clone username@host:/path/to/repo
Polecenie dodania jednego pliku ->git add <particular file>
Dodanie wszystkich plików ->git add *
Wyślij zmiany z treścią ->git commit -m " message"
Wyślij pliki ->git commit -a
Wypchnij zmiany do głównej gałęzi zdalnego repozytorium ->git push origin master
Aktualny status plików do zmiany/dodania/zatwierdzenia -> git status
Połącz się ze zdalnym repozytorium – dodaj serwer, aby móc do niego wypchnąć ->git remote add origin <server>
Lista wszystkich aktualnie skonfigurowanych repozytoriów zdalnych ->git remote -v
Utwórz nową gałęź i przejdź do niej ->git checkout -b <branchname>
Przełącz się z jednej gałęzi do drugiej ->git checkout <branchname>
Wypisz wszystkie gałęzie w swoim repozytorium ->git branch
Usuń gałąź funkcji ->git branch -d <branchname>
Wypchnij gałąź do zdalnego repozytorium, aby inni mogli z niego korzystać ->git push origin <branchname>
Wypchnij wszystkie gałęzie do zdalnego repozytorium ->git push --all origin
Usuń gałąź w swoim zdalnym repozytorium ->git push origin :<branchname>
Pobierz i scal zmiany na serwerze zdalnym do katalogu roboczego ->git pull
Scal gałąź z aktywną/bieżącą gałęzią ->git merge <branchname>
Wyświetl wszystkie konflikty scalania ->git diff
Zobacz konflikty z plikiem podstawowym ->git diff --base <filename>
Wyświetl podgląd zmian przed scaleniem ->git diff <sourcebranch> <targetbranch>
Możesz użyć tagowania, aby oznaczyć znaczący zestaw zmian, taki jak wydanie –
CommitId to identyfikator zestawu zmian, max 10; musi być unikalne ->
git tag 1.0.0 <commitID>
Wyświetla zatwierdzenia dokonane w tym repozytorium w odwrotnej kolejności chronologicznej; to znaczy, najnowsze zatwierdzenia pojawiają się jako pierwszą ->git log
Wypcha wszystkie tagi do zdalnego repozytorium ->git push --tags origin
Jeśli się pomylisz, możesz zastąpić zmiany w drzewie roboczym ostatnią zawartością w nagłówku ->git checkout -- <filename>
Zmiany już dodane do indeksu oraz nowe pliki zostaną zachowane. Zamiast tego, aby porzucić wszystkie lokalne zmiany i zatwierdzenia, pobrać najnowszą historię z serwera i wskazać na nią lokalną gałąź master, wykonaj następujące czynności ->git fetch origin

git reset --hard origin/master
Przeszukaj katalog roboczy foo() ->git grep "foo()"

Źródło: https://git-scm.com/book/en/v2

Polecane, z angielskim opisem -> Featured Git Commands

Kategorie
Uncategorized

Umiejętności testowania API: musisz je osiągnąć!

Cześć!

Ten post jest wprowadzeniem do interfejsów API, testowania API i ich znaczenia w świecie testów. Postaram się wyjaśnić Ci najprościej jak się da, dlaczego testy API są tak istotną inwestycją czasową w Twoim projekcie!

Systemy informatyczne stają się coraz bardziej rozproszone, a aplikacje i urządzenia są coraz bardziej ze sobą połączone, wykorzystanie interfejsów API odnotowuje wzrost popularności w ciągu ostatnich kilku lat. 

Tradycyjne (lub inaczej staromodne) systemy komputerowe miały charakter monolityczny, zostały zastąpione i obecnie często składają się one z komponentów wielokrotnego użytku, które komunikują się i wymieniają informacje między sobą za pośrednictwem różnych interfejsów API.

Interfejsy API stają się również coraz bardziej powszechne, co powoduje że właściwe testowanie tych interfejsów stało się sporym problemem zarówno dla dostawców API, jak i użytkowników. Jako dostawca nie chcesz być powiązany z interfejsem API o niskiej jakości. Jako użytkownik nie chciałbyś, aby Twój system oprogramowania lub Twoja firma polegały na wadliwym interfejsie API. Żeby właściwie ocenić, czy dane wyjściowe podane przez API są poprawne, tester musiałby wiedzieć przynajmniej coś o wewnętrznym działaniu API (tj. Przeprowadzić testy białoskrzynkowe zamiast tradycyjnych testów czarnoskrzynkowych). Może to sprawić, że testowanie API będzie się wydawać „trudne”.

Testowanie API jest ostatnio jeszcze ważniejsze, ponieważ w obecnej fali warstwowych systemów informacyjnych reguły biznesowe i logika biznesowa są często kodowane i egzekwowane w warstwie API (a nie na przykład w interfejsie użytkownika lub warstwie bazy danych).

Kategorie
Uncategorized

Ściąga MYSQL

OpisKomenda MySQL
Utwórz bazęCREATE DATABASE mabase

CREATE DATABASE mabase CHARACTER SET utf8

Usuń bazęDROP DATABASE mabase

ALTER DATABASE mabase CHARACTER SET utf8
Przeglądanie bazySHOW DATABASES
SHOW TABLES
SHOW FIELDS FROM table / DESCRIBE table
SHOW CREATE TABLE table
SHOW PROCESSLIST
KILL process_number
Wybór elementów z bazySELECT * FROM table
SELECT * FROM table1, table2, …

SELECT field1, field2, … FROM table1, table2, …
SELECT … FROM … WHERE condition
SELECT … FROM … WHERE condition GROUPBY field
SELECT … FROM … WHERE condition GROUPBY field HAVING condition2
SELECT … FROM … WHERE condition ORDER BY field1, field2
SELECT … FROM … WHERE condition ORDER BY field1, field2 DESC
SELECT … FROM … WHERE condition LIMIT 10
SELECT DISTINCT field1 FROM …
SELECT DISTINCT field1, field2 FROM …
Wybór/Łącznie rekordów w bazieSELECT … FROM t1 JOIN t2 ON t1.id1 = t2.id2 WHERE condition
SELECT … FROM t1 LEFT JOIN t2 ON t1.id1 = t2.id2 WHERE condition
SELECT … FROM t1 JOIN (t2 JOIN t3 ON …) ON …
Wstawianie do bazyINSERT INTO table1 (field1, field2, …) VALUES (value1, value2, …)
Usuwanie w bazieDELETE FROM table1 / TRUNCATE table1
DELETE FROM table1 WHERE condition
DELETE FROM table1, table2 FROM table1, table2 WHERE table1.id1 =
table2.id2 AND condition
Aktualizowanie w bazieUPDATE table1 SET field1=new_value1 WHERE condition
UPDATE table1, table2 SET field1=new_value1, field2=new_value2, … WHERE
table1.id1 = table2.id2 AND condition
KluczeCREATE TABLE table (…, PRIMARY KEY (field1, field2))
CREATE TABLE table (…, FOREIGN KEY (field1, field2) REFERENCES table2
(t2_field1, t2_field2))
Tworzenie/Usuwanie/Modyfikacja TabeliCREATE TABLE table (field1 type1, field2 type2, …)
CREATE TABLE table (field1 type1, field2 type2, …, INDEX (field))
CREATE TABLE table (field1 type1, field2 type2, …, PRIMARY KEY (field1))
CREATE TABLE table (field1 type1, field2 type2, …, PRIMARY KEY (field1,field2))
CREATE TABLE table1 (fk_field1 type1, field2 type2, …,
FOREIGN KEY (fk_field1) REFERENCES table2 (t2_fieldA))
[ON UPDATE|ON DELETE] [CASCADE|SET NULL]

CREATE TABLE table1 (fk_field1 type1, fk_field2 type2, …,
FOREIGN KEY (fk_field1, fk_field2) REFERENCES table2 (t2_fieldA,
t2_fieldB))

CREATE TABLE table IF NOT EXISTS (…)
CREATE TEMPORARY TABLE table (…)
DROP TABLE table
DROP TABLE IF EXISTS table
DROP TABLE table1, table2, …
ALTER TABLE table MODIFY field1 type1
ALTER TABLE table MODIFY field1 type1 NOT NULL …
ALTER TABLE table CHANGE old_name_field1 new_name_field1 type1
ALTER TABLE table CHANGE old_name_field1 new_name_field1 type1 NOT NULL …
ALTER TABLE table ALTER field1 SET DEFAULT …
ALTER TABLE table ALTER field1 DROP DEFAULT
ALTER TABLE table ADD new_name_field1 type1
ALTER TABLE table ADD new_name_field1 type1 FIRST
ALTER TABLE table ADD new_name_field1 type1 AFTER another_field
ALTER TABLE table DROP field1
ALTER TABLE table ADD INDEX (field);

Zmień kolejność pól ->

ALTER TABLE table MODIFY field1 type1 FIRST

ALTER TABLE table MODIFY field1 type1 AFTER another_field
ALTER TABLE table CHANGE old_name_field1 new_name_field1 type1 FIRST
ALTER TABLE table CHANGE old_name_field1 new_name_field1 type1 AFTER
another_field
Warunkifield1 = value1 field1 <> value1
field1 LIKE 'value _ %' field1 IS NULL field1 IS NOT NULL
field1 IS IN (value1, value2)
field1 IS NOT IN (value1, value2) condition1 AND condition2 condition1 OR condition2
Użytkownicy i uprawnieniaGRANT ALL PRIVILEGES ON base.* TO 'user'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, DELETE ON base.* TO 'user'@'localhost' IDENTIFIED BY 'password';
REVOKE ALL PRIVILEGES ON base.* FROM 'user'@'host'; -- one permission only
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'host'; -- all permissions
SET PASSWORD = PASSWORD('new_pass')
SET PASSWORD FOR 'user'@'host' = PASSWORD('new_pass')

SET PASSWORD = OLD_PASSWORD('new_pass')
DROP USER 'user'@'host'
host ‘%’ indicates any host.
Główne typy danychTINYINT (1o: -217+128) SMALLINT (2o: +-65 000)
MEDIUMINT (3o: +-16 000 000) INT (4o: +- 2 000 000 000)
BIGINT (8o: +-9.10^18)
Precise interval: -(2^(8N-1)) -> (2^8N)-1
/!\ INT(2) = "2 digits displayed" -- NOT "number with 2 digits max"

FLOAT(M,D) DOUBLE(M,D) FLOAT(D=0->53)
/!\ 8,3 -> 12345,678 -- NOT 12345678,123!

TIME (HH:MM) YEAR (AAAA) DATE (AAAA-MM-JJ) DATETIME (AAAA-MM-JJ HH:MM; années 1000->9999)
TIMESTAMP (like DATETIME, but 1970->2038, compatible with Unix)

VARCHAR (single-line; explicit size)
TEXT (multi-lines; max size=65535) BLOB (binary; max
size=65535)
Variants for TEXT&BLOB: TINY (max=255) MEDIUM (max=~16000) LONG (max=4Go)
Ex: VARCHAR(32), TINYTEXT, LONGBLOB, MEDIUMTEXT

ENUM ('value1', 'value2', …) -- (default NULL, or '' if NOT NULL)
Tworzy kopię zapasową bazy danych do pliku SQLmysqldump -u Username -p DatabaseName > databasename_backup.sql
Przywróć z kopii zapasowej pliku SQLmysql - u Username -p DatabaseName < databasename_backup.sql
Resetuje hasło roota
$ /etc/init.d/mysql stop
$ mysqld_safe --skip-grant-tables
$ mysql # on another terminal
mysql> UPDATE mysql.user SET password=PASSWORD('new_pass') WHERE user='root';

Switch back to the mysqld_safe terminal and kill the process using Control + \
$ /etc/init.d/mysql start
Naprawia tabele po resecie
mysqlcheck --all-databases
mysqlcheck --all-databases --fast