Kategorie
Uncategorized

Idealny przykład intuicyjnego interfejsu użytkownika w aplikacji mobilnej

Kategorie
Uncategorized

Dlaczego powinieneś uczyć się chmury AWSa? – 5 Faktów

Cześć! Dzisiaj będę Cię zachęcał do zapoznania się z chmurą AWS (choćby nawet w niewielkim stopniu), poniżej zestawiłem 5 faktów, dlaczego powinieneś znać tą konkretną chmurę.

1 AWS jest liderem rynku dostawców chmury i coraz więcej najbogatszych firm na świecie z niej korzysta.

2 Certyfikacja AWS staje się coraz bardziej pożądana przez pracodawców z branży IT, a wiele nowych ofert pracy na rynku wymaga znajomości AWS (często dodana w ofertach pracy jako “Nice to have”). Ścieżki certyfikacji AWS przygotowane przez twórców są bardzo dobrze przemyślane, zatem świetnym pomysłem jest rozważenie certyfikacji w interesującym nas kierunku.

3 Chcesz zachować swoje dotychczasowe stanowisko pracy.
Chmura rozszerza Twoje kompetencje, czyni Cię jeszcze bardziej pożądaną osobą na rynku pracy. Oczywiście wpływa to również na Twój wizerunek jako eksperta w dziedzinie inżynierii oprogramowania.

4 Nie chcesz pozostawać w tyle za technologią.
Nowe technologie są seksowne, a ucząc się AWS’a zdobędziesz ogólne umiejętności i poszerzysz swoje horyzonty, zresztą nigdy nie wiesz co Ci się przyda w karierze :P. Próg wejścia do nauki AWS jest bardzo mały, każdy może założyć konto i zacząć korzystać z architektury AWS. Po zalogowaniu się do konsoli otrzymujesz dostęp do wszystkich usług oferowanych przez platformę.

5 Chcesz zwiększyć swoje zarobki.
Technologia chmury jest stosunkowo młoda i może dać Ci przewagę na drodze do kolejnych awansów i podwyżek. Oczywiście, jeśli nauczysz się efektywnie korzystać z chmury AWSa.

Podsumowanie:
Zacznij od dzisiaj w małych krokach. Poniższe video przedstawia przegląd najważniejszych funkcji chmury AWSa:

Kategorie
Uncategorized

Na co zwrócić szczególną uwagę podczas testów aplikacji webowej? (czyli porady dla nie testerów w pigułce)


Cześć!

Dzisaj pokażę Ci na co w szczególności powinno się zwrócić uwagę podczas testowania aplikacji webowej.

Jeżeli nie jesteś doświadczonym testerem oprogramowania, a chciałbyś mieć pewność że Twoja strona lub aplikacja WWW jest wykonana poprawnie powinieneś sprawdzić następujące funkcjonalności (możesz to zrobić w formie checklisty):

  • Testuj aplikację na najpopularniejszych przeglądarkach
  • Sprawdź czy aplikacja jest responsywna -> zwróć uwagę na użycie na różnych urządzeniach mobilnych -> z roku na rok popularność tych urządzeń wzrasta
  • Testuj zgodność ze standardami oraz normami
  • Testuj dostępność dla użytkowników
  • Testuj pod kątem SEO
  • Testuj poprawność treści
  • Testuj pod względem bezpieczeństwa
  • Testuj pod kątem prawidłowej instalacji i działania Google Analytics
  • Monitoruj wydajność aplikacji
Rodzaje testów, które należy mieć na uwadze podczas sprawdzania aplikacji webowej

Testowanie aplikacji internetowych można ogólnie podzielić na poszczególne elementy:

  • Testy funkcjonalności – Sprawdź czy aplikacja działa zgodnie ze specyfikacją wymagań
  • Testowanie zgodności działania różnych przeglądarek
  • Test użyteczności – Twoja witryna powinna być łatwa w obsłudze dla użytkowników
  • Testowanie dostępności – warto pamiętać o sprawdzeniu czy aplikacja może być używana przez osoby niepełnosprawne
  • Test wydajności i obciążenia – Testy wydajnościowe aplikacji internetowej są wykonywane w celu sprawdzenia stabilności pod określonym obciążeniem. Warto również poznać jak działa aplikacja przy dużym obciążeniu użytkownikami
  • Testowanie współczynnika konwersji – czyli testowanie sposobów przekształcania większej liczby odwiedzających w klientów
  • Testowanie bezpieczeństwa – witryny internetowe są podatne na ataki hakerów
  • Sprawdzanie pisowni i gramatyki – powinieneś unikać błędów ortograficznych i gramatycznych bez względu na rodzaj aplikacji

W celu uzyskania możliwie najlepszych rezultatów testów:

  • Zintegruj testowanie eksploracyjne z konwencjonalnymi technikami testowania
  • Staraj się nie pomijać Sanity testów przy release’ie nowej wersji
  • Sprawdź poprawność wszystkich aplikacji, wtyczek i rozszerzeń od zewnętrznych dostawców
  • Postaraj się zautomatyzować testowanie chatbota – o ile go używasz
  • Testuj jak hacker i myśl krytycznie, co można popsuć w aplikacji
  • Bądź częścią zespołu deweloperskiego -> wraz z rosnącą adaptacją metodologii Agile ucz się współpracować z programistami, analitykami biznesowymi i klientami, jeżeli Twoja aplikacja jest złożona i skomplikowana.
Kategorie
Uncategorized

“Epic automation burger” czyli o poziomach w automatyzacji testów oprogramowania

Cześć!

Przy lekturze kilku zagranicznych blogów o tematyce automatyzacji oprogramowania, zauważyłem że dość często jest poruszana koncepcja “piramidy automatyzacji testów”, która opisuje trzy poziomy automatyzacji testów, ich relacje oraz względne znaczenie. Zdecydowanie podoba mi się to podejście, dlatego chciałbym się nim z Tobą podzielić!

Żeby być oryginalnym zrezygnuję z schematu piramidy na rzecz smakowitego burgera 🙂 zobacz poniżej:

Warstwa podstawowa: testy jednostkowe

Testy jednostkowe stanowią podstawę każdego solidnego podejścia do testowania automatycznego. Można je napisać stosunkowo szybko z porównaniem do raportu o błędzie (otrzymanym np. od testera), który zwykle brzmi „funkcja X i Y nie działa, kiedy wpisuję A lub B, napraw to proszę itd. itp.” Często taka forma wymaga większej analizy (odtworzenie, debugowanie), zatem wymaga więcej czasu od programisty na naprawienie problemu. Zaletą testów jednostkowych jest to, że nie tylko można je szybko napisać, ale także wykonanie testów jest bardzo szybkie, co w rezultacie daje deweloperowi natychmiastową informację zwrotną.

Wady testów jednostkowych polegają na tym, że koncentrują się głównie na małych fragmentach kodu (metodach, klasach) i dlatego nie są w stanie wykryć błędów na poziomie integracji lub systemu.

Warstwa środkowa: testy integracyjne/API

Większość współczesnych aplikacji oferuje pewnego rodzaju API (poprzez rzeczywisty interfejs programistyczny lub przez usługę sieciową udostępniającą funkcjonalność na zewnątrz), może ono być użyte przez testera do testowania aplikacji. Testy te są często znacznie “stabilniejsze”, ponieważ interfejsy API zmieniają się znacznie rzadziej niż testy interfejsu użytkownika i są wykonywane znacznie szybciej z mniejszą liczbą fałszywie negatywnych wyników.

Górna warstwa: testy na poziomie interfejsu użytkownika

Najlepiej jest minimalizować testy w tej warstwie, ponieważ często są one najbardziej “kruche” i zajmują najwięcej czasu zarówno podczas tworzenia przypadków testowych, jak i wykonywania testów. Uważam, że ta forma automatyzacji testów powinna być używana tylko wtedy, gdy faktycznie testowany jest interfejs użytkownika, a nie podstawowa funkcjonalność systemu, lub wtedy gdy nie ma innej alternatywy.

Podsumowanie:

Spróbuj zrozumieć mechanizm stosowania poszczególnych testów i ich praktyczne wykorzystanie, przyglądaj się innym deweloperom -> co testują i jakie pokrycie jest osiągane w pisanych testach jednostkowych. Co do testów, które nie są objęte testami jednostkowymi, spróbuj dowiedzieć się -> czy testowana aplikacja oferuje interfejs API, na którym można wdrożyć testy automatyczne. Początkowo testowanie „pod maską” bez interfejsu użytkownika do przeprowadzania testów może wydawać się trudne, ale korzyści dla projektu są warte włożonego trudu.

Pomimo, że kształt burgera automatyzacji testów powinien być mniej więcej zachowany, to pamiętaj składniki i proporcje burgera muszą być dobrane odpowiednio dla gustów zamawiających klientów -> dokładnie tak jak w przypadku proporcji stosowania odpowiednich testów w zależności od projektu informatycznego (indywidualne podejście).

Przestrzeganie powyższych sugestii znacznie pomoże Ci w uzyskaniu idealnego burgera automatyzacji testów. 🙂

Kategorie
Uncategorized

10 punktów do przestrzegania podczas budowania ścieżki kariery w branży automatyzacji/oprogramowania

0 Cel kariery zawodowej – określ, co chciałbyś osiągnąć.

1 Jakie kroki należy podjąć, aby osiągnąć ten cel? Albo jakie kroki należy podjąć najpierw, aby zbliżyć się do tego celu.

2 Czy ta praca spełnia moje oczekiwania?

3 Czy ta praca odpowiada moim wymaganiom finansowym?

4 Jaką wartość wnoszę do firmy?

5 Jaki będzie zwrot z inwestycji w moją osobę?

6 Ile czasu zajmie ta inwestycja (jaki zakres)?

7 W jaki sposób ta praca może przybliżyć mnie do rozwoju zawodowego?

8 Czy mogę liczyć na partnerstwo, w którym korzyści będą wspólne (z mojej strony oraz pracodawcy)?

9 Potraktuj proces rekrutacji jako spotkanie z dobrym przyjacielem – przed rozpoczęciem współpracy możecie się wiele o sobie dowiedzi

Kategorie
Uncategorized

Najważniejsze zasady testowania oprogramowania – każdy powinien to wiedzieć! :)

Główne zasady testowania są również podstawą programu nauczania ISTQB. W poniższym wpisie przedstawię Ci tę wiedzę w krótkiej, zwięzłej formie – zaczynajmy!

0 Testowanie ujawnia usterki, ale nie może dowieść ich braku

Jasna sprawa. Każda szczegółowa weryfikacja błędów nie dowodzi, że nie można znaleźć ich więcej w aplikacji – zawsze jest to tylko kwestia czasu i budżetu poświęconego na testy.

W tym miejscu poruszę jeszcze jedną kwestię – warto poprosić innego testera o przetestowanie tego, co sami testowaliśmy. Dodatkowa para oczu na pewno jeszcze dokładniej wychwyci pozornie niewidoczne dla nas błędy.

1 Dokładne testowanie (gruntowne) nie jest możliwe

Zasada wskazuje, że żadna aplikacja nie może być w pełni przetestowana (wszystkie funkcje złożonej aplikacji lub systemu), wyjątkiem od reguły są bardzo proste aplikacje.

2 Wczesne testowanie oszczędza czas i pieniądze

Gdy we wczesnym etapie pracy znajdziemy błędy, znacznie łatwiej i taniej jest je usunąć.

3 Nagromadzenie (kumulacja) defektów

Zasada kumulacji błędów polega na tym, że w niektórych modułach aplikacji może występować więcej błędów – tą wiedzę zdobywamy wraz z doświadczeniem podczas przeprowadzenia testów w aplikacji.

4 Paradoks pestycydów

Ta zasada odnosi się do sytuacji, w której zawsze testujemy te same scenariusze w aplikacji. Prowadzi to do sytuacji, w której przestajemy znajdować błędy.

5 Błędem jest założenie, że nie ma żadnych błędów w aplikacji

Krótko i zwięźle – musisz założyć, że aplikacja zawsze zawiera jakieś błędy lub problemy. Czasami w trudniejszych i złożonych projektach IT akceptowalna jest pewna liczba drobnych usterek.

Podsumowanie:
Powyższa treść to tylko schemat, zasady są ponadczasowe i warto o nich pamiętać podczas testów zarówno prostej aplikacji, jak i skomplikowanego systemu informatycznego. 

Kategorie
Uncategorized

Najlepsze praktyki przy testowaniu funkcjonalnym

Cześć!

Opowiem Ci dzisiaj trochę o dobrych praktykach przy przeprowadzaniu testów funkcjonalnych. Testy funkcjonalne są wykonywane w celu przetestowania podstawowej funkcjonalności danej aplikacji lub oprogramowania bez ingerencji w jego budowę (jest to też często określane terminem czarnej skrzynki). Każda funkcjonalność jest testowana poprzez dostarczenie danych wejściowych, a następnie obserwację i porównanie otrzymanych wyników z oczekiwanymi. Poniżej przedstawię Ci kilka skutecznych procedur, które mogą Ci się przydać podczas przeprowadzania testów funkcjonalnych.

0 Przygotuj wcześniej plan testów i przypadki testowe

Planowanie tego, co należy zrobić, aby poprawnie przeprowadzić testowanie obejmuje:
– cel i zakres testów,
– ludzi potrzebnych do przeprowadzenia testów,
– potrzebny sprzęt,
– narzędzia oraz harmonogram testów,
– sporządzenie przypadków testowych.

1 Zbierz informacje wymagane do wykonania testów

Zbierz wszelkie potrzebne informacje i najpierw przetestuj krytyczne funkcjonalności pod względem ryzyka (ustal priorytety).

2 Wykonanie testów

Plany testów i rzeczywista funkcjonalność powinny być zgodne, aby test został wykonany poprawnie.

3 Zarządzaj defektami

Korzystaj z oprogramowania i standardowych szablonów do zgłaszania i weryfikacji defektów.

4 Przedstawiaj wyniki

Raport z wyników testu powinien być przedstawiony w jasny i prosty sposób, aby umożliwić łatwe zrozumienie przez zespół programistów.

5 Analizuj

Podczas analizy można wykryć problemy i nieścisłości zarówno podczas testowania, jak i programowania. Analiza przyczynia się do ulepszania procedur stosowanych w rozwoju produktu.

6 Rozważ testy automatyczne

Testowanie automatyczne ma na celu poprawę jakości produktu lub oprogramowania, a także oszczędność czasu -> o ile podejdziesz do tego jak do inwestycji. Testowanie automatyczne jest droższe w krótkim okresie czasu, natomiast w dłuższej perspektywie dobrze zaprojektowane testy automatyczne mogą być bardzo korzystne dla jakości finalnego projektu
i docelowo produktu.

Kategorie
Uncategorized

10 Codzienne rzeczy do zautomatyzowania (w celu oszczędzenia czasu i pieniędzy)

0 Automatyzuj swój czas!
Tak! Możesz zautomatyzować swój czas. Najlepszym sposobem jest rozpoczęcie pisania planu każdego wieczoru na następny dzień. Może on być zautomatyzowany również w formie papierowej lub w twoich cyfrowych notatkach.

1 Automatyzuj swoje finanse!
Każdy człowiek na świecie dokonuje płatności w jakieś formie, ale ten proces również można spróbować zautomatyzować. Ta procedura może być różna w zależności od Twojego banku… ale zazwyczaj prosta automatyzacja jest możliwa na każdym koncie bankowym, tylko od Ciebie zależy w jaki sposób to wykorzystasz.

2 Zautomatyzuj maile!
Aby pozostać produktywnym, powinieneś unikać e-maili w ciągu pracy. Możesz użyć innego narzędzia do komunikacji, aby mądrze wykorzystywać czas w swojej codziennej robocie, na przykład Slack jest bardzo dobrym narzędziem do zwiększenia wydajności i koncentracji przy konieczności komunikacji z zespołem.

3 Zautomatyzuj swoją przeglądarkę!
Zautomatyzuj skróty w Twojej przeglądarce dla najważniejszych i najczęściej używanych stron internetowych. Użyj wtyczek do swojego Google Chrome w przeglądarce, tak aby zautomatyzować procesy i mieć “pod ręką” najważniejsze narzędzia. Zachęcam Cię do przeprowadzenia research’u i znalezienia najlepszych -> na Twoje potrzeby, rozszerzeń dla przeglądarki.

4 Automatyzuj tworzenie prezentacji!
Zrób research i znajdź narzędzie do zautomatyzowania Twojej kolejnej prezentacji. Polecam sprawdzić to narzędzie jak przykład i dobry punkt wejścia w temat: mindmeister.

5 Przestań publikować manualnie w mediach społecznościowych!
Możliwość publikowania treści w mediach społecznościowych również doczekała się narzędzi do automatyzacji tego procesu. Osobiście polecam Ci sprawdzić to narzędzie: https://coschedule.com/

6 Przestań marnować swój czas na czytanie wiadomości!
Osobiście słucham wiadomości w formie podcastów lub radia – w przypadku jazdy samochodem, jest to dla mnie o wiele bardziej efektywne. Znajdź najlepszy sposób, który działa w Twoim przypadku, by zabierać ważne informacje dla Ciebie.

7 Zautomatyzuj wypełnianie formularzy online!
Czasami subskrypcja lub zapisanie się do serwisu czy strony internetowej może być dość czasochłonne. Można rozważyć automatyzację tego procesu za pomocą narzędzia: https://www.roboform.com/

8 Zautomatyzuj swoje kontakty!
W tym celu sprawdź to narzędzie: site.addappt.com

9 Zautomatyzuj skanowanie dokumentów w swoim biurze!
Najlepszym narzędziem, które przyspieszy skanowanie dokumentów według mnie jest scanbot.io.

Kategorie
Uncategorized

“Automatyzować lub nie automatyzować” – rady w pigułce

Cześć!

Dzisiaj odpowiem Ci na pytanie: kiedy warto automatyzować testy oprogramowania? W sposób krótki i zwięzły, tak aby pokazać Ci zalety i wady tej procedury.

0 Pierwsza zasada, którą uważam za najważniejszą, to określenie celu i planu automatyzacji. 

Musisz więc rozważyć, co dokładnie chcesz zautomatyzować, dlaczego i jakie korzyści chcesz osiągnąć z tego procesu, np. w ciągu dłuższego okresu czasu (co najmniej roku).

1 Jeżeli podejmujesz się automatyzacji w projekcie powinieneś wiedzieć, że najlepiej jest zautomatyzować testy regresji, ponieważ są one powtarzalne.

2 Pamiętaj też, że pisanie zautomatyzowanych skryptów trwa X do XX razy dłużej niż pisanie testów manualnych.

3 Utrzymanie zautomatyzowanych skryptów jest znacznie droższe niż utrzymywanie testów manualnych.
Automatyzacja, przynajmniej w krótkim okresie wdrożenia, generuje więcej kosztów niż zysków (więc myślimy zawsze długoterminowo).

4 Automatyczne testy nie są nastawione na wyszukiwanie błędów. “Automaty” służą głównie do potwierdzania, że jakość tworzonego oprogramowania nie uległa pogorszeniu.

5 Nie można zautomatyzować oprogramowania bez umiejętności kodowania, więc trzeba znać przynajmniej jeden język programowania. W przypadku prostej automatyzacji, a w bardziej zaawansowanych przypadkach trzeba będzie również użyć Stackoverflow 😉

Podsumowanie:

Automatyzacja projektów informatycznych jest wskazana w przypadku złożonych, powtarzanych działań w dużych i długoterminowych projektach informatycznych. Przed rozpoczęciem automatyzacji należy zawsze stosować “technikę Jeffa Bezosa”, starać się myśleć z perspektywy kilku lat do przodu i zadawać sobie pytania, czy w tych obszarach powstaną dodatkowe funkcjonalności. Warto również starać się przewidzieć: ile można zyskać (pieniędzy, zasobów, czasu lub zaufania klientów) w przypadku automatyzacji projektu.

Dodatkowo poniżej zestawiam 3 błędne podejścia do automatyzacji:

  1. Wszystko powinno być zautomatyzowane
  2. Automatyzacja testów wykrywa więcej błędów
  3. Automatyzacja testów to jednorazowy koszt i szybki zwrot z inwestycji
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! 🙂