Wydawca: Helion
Od początku swojej działalności wydawnictwo Helion wspiera rozwój specjalistów z szeroko pojętej branży IT. To doskonała baza wiedzy dla osób, które chcą poznać tajniki informatyki, programowania, sztucznej inteligencji, cyberbezpieczeństwa czy grafiki komputerowej i innych umiejętności związanych z nowoczesnymi technologiami.
Helion oferuje szeroki wybór książek oraz ebooków z różnych dziedzin informatyki, zawsze aktualnych i zgodnych z najnowszymi trendami technologicznymi.
TDD z wykorzystaniem C# 7. Programowanie sterowane testami
John Callaway, Clayton Hunt
Coraz więcej profesjonalnych środowisk produkcyjnych opiera się na oprogramowaniu. Ewentualne błędy w pracy kodu mogą prowadzić do poważnych konsekwencji - dlatego od rozwiązań informatycznych wymaga się solidności i poprawności. Równocześnie oczekuje się wydajnego działania, skalowalności i podatności na modyfikacje, a także możliwości łatwego utrzymania kodu. Aplikacje utworzone zgodnie z paradygmatem TDD są w większym stopniu testowalne i zapewniają wysoki poziom poprawnej, stabilnej pracy. Sprawia to, że coraz więcej zespołów programistycznych skłania się ku TDD, mimo że zautomatyzowane testowanie bywa czasochłonne, pracochłonne i dość trudne w implementacji. To książka przeznaczona dla tych, którzy chcą dogłębnie zrozumieć istotę TDD. Omówiono tu wszystkie aspekty TDD, włączając w to podstawy, dzięki którym średnio zaawansowany programista komfortowo rozpocznie budowę aplikacji zgodnie z tym paradygmatem. Przedstawiono zasady definiowania i testowania granic, a także pojęcie abstrahowania kodu zewnętrznego. W książce pojawiają się też - wprowadzane stopniowo - bardziej zaawansowane koncepcje, takie jak szpiedzy, imitacje i fałszywki. Pokazano w niej, w jaki sposób za pomocą TDD można przekształcić wymagania i historie użytkownika w funkcjonującą aplikację. Sporo miejsca poświęcono pisaniu różnych rodzajów testów, również integracyjnych. Poszczególne koncepcje zostały zilustrowane praktycznymi fragmentami kodu napisanego w C# i JavaScripcie. W tej książce między innymi: koncepcje programowania sterowanego testami i przygotowanie środowiska do pracy różne podejścia do budowania aplikacji i sterowania testami poprawa elastyczności aplikacji i jej podatności na przyszłe modyfikacje TDD w warunkach zmieniających się wymagań rozwiązywanie problemów z kodem zastanym TDD: tak pracują najlepsi programiści!
Technika HDR. Warsztaty fotograficzne
Pete Carr, Robert Correll
Fotografuj metodą HDR, aby pokazać kunszt i potęgę swojej wyobraźni Jak technika HDR kompensuje ograniczenia aparatu? Jak stworzyć kilka plików HDR z jednego zdjęcia? Jak przetwarzać zdjęcia HDR za pomocą programów Photomatix i Photoshop Elements? Jeśli zgłębisz tajemnice fotografii o wysokiej rozpiętości tonalnej (HDR), zdobędziesz umiejętności, które pozwolą Ci przekładać Twoje artystyczne wizje na fantastyczne obrazy o niezwykłym bogactwie szczegółów. W książce, którą trzymasz w rękach, odnajdziesz źródło twórczej inspiracji oraz wiedzę o tym, jak wykorzystać możliwości tej niezwykłej techniki — od dokładnych instrukcji w kwestii wykonywania zdjęć, po ich perfekcyjną obróbkę metodą HDR. Dzięki temu podręcznikowi nauczysz się oceniać potencjał scen pod kątem techniki HDR, a także fotografować krajobrazy, architekturę, pejzaże miejskie, wnętrza i ludzi w wielu różnych stylach. Dowiesz się, jakie narzędzia warto zastosować i w jaki sposób połączyć kilka ekspozycji, aby uzyskać zdjęcia przypominające impresjonistyczne sceny lub surrealistyczne wizje. Poznasz sposoby wykorzystywania programów komputerowych Photomatix i Photoshop Elements do przetwarzania zdjęć w celu uzyskania doskonałej szczegółowości obrazu i zadziwiającego efektu artystycznego. Rozpiętość tonalna w fotografii cyfrowej Ekspozycja Oświetlenie i filtry Fotografia HDR Metody uzyskiwania kilku ekspozycji Fotografia krajobrazowa, uliczna i portrety Programy komputerowe — Photomatix i Photoshop Elements Metody przetwarzania fotografii Zdjęcia czarno-białe Krosowanie
Techniki twórców złośliwego oprogramowania. Elementarz programisty
Dawid Farbaniec
Sięgnij po wiedzę, która pozwoli Ci skutecznie odpierać wszelkie ataki! Poznaj architekturę procesorów 80x86 i systemów operacyjnych Windows Odkryj słabe punkty środowiska i techniki wykorzystywane przez hakerów Naucz się rozpoznawać typowe zagrożenia i skutecznie się przed nimi bronić W światowych mediach wciąż pojawiają się wiadomości o mniej lub bardziej udanych próbach ataków hakerskich na potężne systemy informatyczne banków czy instytucji rządowych. Straty poniesione przez setki tysięcy zwykłych użytkowników komputerów w wyniku działania wirusów również stanowią znaczący problem. Internet pełen jest złośliwego oprogramowania napisanego w celu nielegalnego zdobycia poufnych danych, zniszczenia efektów czyjejś pracy, wyłudzenia pieniędzy, skompromitowania atakowanego podmiotu, przejęcia kontroli nad działaniem cudzej infrastruktury informatycznej lub po prostu dla zabawy. W odpowiedzi na rosnące zagrożenie pojawiają się kolejne narzędzia zabezpieczające, skanery antywirusowe, procedury i inne mechanizmy, które mają nas ustrzec przed problemem złośliwego oprogramowania. Jednak aby skutecznie uchronić się przed atakami, nie wystarczy tylko instalacja pakietu antywirusowego czy mechaniczne przestrzeganie kilku prostych wskazówek. Najskuteczniejszą bronią w tej wojnie jest odpowiednia wiedza na temat istniejących zagrożeń i konsekwentne stosowanie właściwych praktyk bezpieczeństwa, wroga można się bowiem ustrzec jedynie dzięki znajomoci sposobów, które wykorzystuje on sam, próbując włamać się do naszego komputera. Wiedzę tę można zdobyć dzięki książce "Techniki twórców złoliwego oprogramowania. Elementarz programisty". Jej autor dzieli się z nami swoim doświadczeniem w zakresie tworzenia złśoliwego kodu i obrony przed atakami przeprowadzanymi za jego pomocą. Publikacja prezentuje różne rodzaje zagrożeń czyhających na użytkowników komputerów PC z systemem Windows i metody pozwalające się ich ustrzec. Architektura i zasada działania procesorów należących do rodziny 80x86 Struktura, działanie i podstawowe mechanizmy obronne systemów Windows Rodzaje zagrożeń i słabe punkty architektury systemów firmy Microsoft Techniki wykorzystywane przez twórców złośliwego oprogramowania Metody zabezpieczenia komputera i narzędzia ograniczające zagrożenie Nie czekaj, aż padniesz ofiarą złośliwego oprogramowania broń się już dziś!
Technologiada. Młodzi kompetentni
Piotr Synowiec
Doświadczyć znaczy zrozumieć Świat biegnie do przodu coraz szybciej i szybciej, w rytmie, w jakim rozwija się ludzka wiedza i technologia, jaka dzięki niej powstaje. Z jednej strony to świetnie - kto czterdzieści lat temu przypuszczał, że nosić będzie w kieszeni mały, supersprawny i wszechwiedzący komputer, dla niepoznaki zwany "telefonem"? Z drugiej, to trochę przerażające. Ciężko nadążyć. Bo choć większość z nas, starszych i młodszych, na co dzień korzysta z nowoczesnych technologii, to jednak rzadko kto je naprawdę rozumie. Bo żeby zrozumieć, żeby się nauczyć i móc pójść dalej, trzeba spróbować: zaprojektować trójwymiarowy obiekt w programie pCon.planner zbudować silnik z klocków LEGO stworzyć animację, a może i grę w Scratchu Potem można ruszyć do przodu. Na ścieżkę twórców, odkrywców, naukowców i inżynierów na miarę XXI wieku. Potem można dorosnąć i przemienić pasję w pracę. Najpierw jednak trzeba sięgnąć do zasobów nieograniczonej w młodym wieku wyobraźni i połączyć ją z możliwościami, jakie daje nam dzisiejszy świat, już teraz pukający do drzwi przyszłości. Z niewielką pomocą tej książki Twoje nastoletnie dziecko bawiąc się aplikacjami i narzędziami dostępnymi na wyciągnięcie ręki i kliknięcie myszką, opanuje umiejętności, które mogą okazać się kluczowe dla jego przyszłego życia. Podaruj mu Technologiadę, a wraz z nią kompetencje przyszłości!
TensorFlow. 13 praktycznych projektów wykorzystujących uczenie maszynowe
Ankit Jain, Armando Fandango, Amita Kapoor
TensorFlow służy do projektowania i wdrażania zaawansowanych architektur głębokiego uczenia. Jego zaletami są prostota, wydajność i elastyczność. Umożliwia budowanie złożonych rozwiązań na bazie różnorodnych zbiorów danych. Co więcej, pozwala na stosowanie różnych technik uczenia nadzorowanego, nienadzorowanego oraz uczenia przez wzmacnianie. TensorFlow zmienił sposób postrzegania uczenia maszynowego. Dzięki temu środowisku każdy, kto chce uczynić z dużych zbiorów danych wiarygodne źródło wiedzy, może ten cel osiągnąć - niezależnie od tego, czy jest analitykiem danych, naukowcem, projektantem, czy pasjonatem metod sztucznej inteligencji. To książka przeznaczona dla osób, które chcą nauczyć się tworzyć całościowe rozwiązania z wykorzystaniem uczenia maszynowego. Poszczególne zagadnienia zilustrowano trzynastoma praktycznymi projektami, w których wykorzystano między innymi analizy sentymentów, przetwarzanie języka naturalnego, systemy rekomendacyjne, generatywne sieci kontradyktoryjne czy sieci kapsułowe. Pokazano, w jaki sposób używać TensorFlow z interfejsem APO Spark i wspomagać obliczenia układami GPU. Przedstawiono zastosowanie rozkładu macierzy (SVD++), modeli rankingowych i odmian splotowej sieci neuronowej. Nie zabrakło prezentacji nowych rozwiązań o dużym potencjale, takich jak sieci DiscoGAN. Dołączony do książki kod źródłowy, liczne wskazówki i porady pozwolą na płynne rozpoczęcie pracy z TensorFlow oraz innymi narzędziami do budowy sieci neuronowych. W tej książce między innymi: podstawy pracy z TensorFlow wykorzystanie TensorFlow do wizualizacji sieci neuronowych zastosowanie procesu gaussowskiego do prognozowania cen akcji wykrywanie oszukańczych transakcji za pomocą TensorFlow i Keras implementacja sieci kapsułowych w TensorFlow techniki uczenia przez wzmacnianie TensorFlow: prostota, wydajność i imponujący potencjał!
Terraform. Krótkie wprowadzenie. Tworzenie infrastruktury za pomocą kodu. Wydanie II
Yevgeniy Brikman
Terraform jest narzędziem open source służącym do tworzenia i wdrażania kodu infrastruktury licznych platform wizualizacji i chmury, takich jak Amazon Web Services, Google Cloud, Azure, oraz zarządzania tym kodem. Migracja korporacyjnych systemów IT do chmury jest niezwykle obiecującą możliwością i wielu menedżerów wysokiego szczebla dostrzega zalety technologii chmurowych. Terraform znakomicie ułatwia wdrażanie rozwiązań opartych na chmurze, jest też narzędziem szczególnie predysponowanym do pracy zgodnej z metodyką DevOps, dzięki której współdziałanie ludzi, procesów i technologii pozwala na zapewnienie wysokiej jakości i niezawodności produktu. Ta książka jest drugim, wzbogaconym i uzupełnionym wydaniem praktycznego samouczka, dzięki któremu rozpoczęcie pracy z Terraform stanie się bardzo łatwe. Zapoznasz się z językiem programowania Terraform i zasadami tworzenia kodu. Szybko zaczniesz go wdrażać i zarządzać infrastrukturą za pomocą zaledwie kilku poleceń. Istotną częścią publikacji jest ukazanie metodologii DevOps w działaniu oraz wyjaśnienie zasad kodowania infrastruktury. Dziesiątki jasnych przykładów kodu, które można samodzielnie wypróbować w akcji, ułatwią zrozumienie podstaw. Niezależnie od tego, czy jesteś początkującym programistą, weteranem DevOps lub doświadczonym administratorem systemów, szybko przejdziesz od podstaw Terraform do przygotowania pełnego stosu, który zapewni obsługę ogromnego ruchu sieciowego i dużych zespołów programistów. W książce między innymi: wprowadzenie do Terraform wraz ze zmianami w kolejnych wydaniach tworzenie wysokiej jakości modułów Terraform testy ręczne i zautomatyzowane kodu wdrażanie klastrów serwerów, mechanizmy równoważenia obciążenia i bazy danych zarządzanie informacjami o stanie infrastruktury zaawansowana składnia Terraform Infrastruktura: koduj, wdrażaj i zarządzaj!
Terraform. Tworzenie infrastruktury za pomocą kodu. Wydanie III
Yevgeniy Brikman
Jeszcze do niedawna praca administratora systemu polegała na ręcznym przygotowywaniu infrastruktury do działania. Mozolne konfigurowanie serwerów, baz danych i elementów sieci niosło za sobą ryzyko przestojów środowiska produkcyjnego i wprowadzenia błędnych ustawień, a wdrożenia przebiegały powoli i łączyły się z nieuchronnym poszukiwaniem błędów. Dziś do tego rodzaju prac służy Terraform, narzędzie open source przeznaczone do tworzenia i wdrażania kodu infrastruktury, a także zarządzania nim; rozwiązanie stosowane w takich platformach jak Amazon Web Services, Google Cloud, Azure i wiele innych. To trzecie, wzbogacone i uzupełnione wydanie praktycznego samouczka, dzięki któremu błyskawicznie rozpoczniesz pracę z Terraform. Zapoznasz się z językiem programowania Terraform i zasadami tworzenia kodu. Szybko zaczniesz wdrażać infrastrukturę i zarządzać nią za pomocą zaledwie kilku poleceń. Istotną częścią książki jest pokazanie metodologii DevOps w działaniu, a także wyjaśnienie zasad kodowania infrastruktury. Dziesiątki jasnych przykładów kodu, które można samodzielnie wypróbować w akcji, ułatwią zrozumienie podstaw. Nie musisz być weteranem DevOps ani doświadczonym administratorem systemów - z tym podręcznikiem nawet początkujący programiści sprawnie przygotują pełny stos, który zapewni obsługę ogromnego ruchu sieciowego w rzeczywistych środowiskach produkcyjnych. Dzięki książce: zrozumiesz, kiedy używać Terraform, a kiedy innych narzędzi wdrożysz klastry serwerów, mechanizmy równoważenia obciążenia i bazy danych nauczysz się tworzyć infrastrukturę Terraform przetestujesz moduły Terraform wieloma metodami skonfigurujesz potoki CI/CD i zaczniesz się posługiwać zaawansowaną składnią Terraform nauczysz się pracować w środowiskach chmurowych Infrastruktura jako kod: od sukcesu dzieli Cię kilka poleceń!
Adam Tibi
Spośród wielu koncepcji tworzenia oprogramowania na szczególną uwagę zasługuje model programowania sterowanego testami - TDD. Zastosowanie podejścia TDD ułatwia utrzymanie wysokiej jakości kodu. Technika ta opiera się na dodawaniu funkcjonalności do produktu dopiero po utworzeniu i przeprowadzeniu testów jednostkowych. TDD coraz częściej jest wyborem szanowanych firm programistycznych. W tej praktycznej książce przedstawiono zasady TDD na rzeczywistych przykładach z użyciem popularnych frameworków, takich jak ASP.NET Core i Entity Framework. Po zapoznaniu się z solidnym wprowadzeniem do koncepcji TDD dowiesz się, jak można używać Visual Studio 2022 do tworzenia aplikacji internetowej z wykorzystaniem Entity Framework, a także baz danych SQL Server i Cosmos DB. Nauczysz się też korzystać z różnych wzorców, takich jak repozytorium, usługi i budowniczy. Ponadto omówiono tu architekturę DDD i inne najlepsze praktyki stosowane podczas tworzenia oprogramowania, w tym reguły SOLID i wskazówki FIRSTHAND. Nie zabrakło przydatnych uwag o biznesowych aspektach podejścia TDD. W książce między innymi: testy jednostkowe i mechanizm wstrzykiwania zależności NSubstitute: imitacje i dublery używane podczas testów zastosowanie TDD dla ASP.NET API, Entity Framework i baz danych tworzenie potoków ciągłej integracji za pomocą GitHub zaawansowane scenariusze używania imitacji korzyści z wdrażania podejścia TDD przez zespoły i firmy TDD wprowadza dobre praktyki i doskonali programistę!
Eran Kinsbruner
Nawet bardzo doświadczony zespół niekiedy popełnia błędy, które mogą przesądzić o porażce obiecującego projektu. Aby uniknąć takich sytuacji, trzeba zadbać o odpowiednie testowanie kodu. To jednak bywa prawdziwym wyzwaniem dla frontendowców, którzy na co dzień skupiają się na innych aspektach pracy aplikacji. Obecnie deweloperzy mogą wybierać spośród rozlicznych narzędzi do testowania i wielu nowych metodyk. Na uwagę zasługują zwłaszcza frameworki służące do automatyzacji testów wieloprzeglądarkowych, dostępne na licencji open source. Oto przewodnik po koncepcjach testowania i wiodących frameworkach, za pomocą których automatyzuje się testy aplikacji internetowych, takich jak Selenium, Cypress, Puppeteer i Playwright. Zaprezentowano w nim unikatowe funkcjonalności tych rozwiązań, ich wady i zalety, a także wyjaśniono zasady konfiguracji każdego z nich, aby testowanie przebiegało bezawaryjnie nawet po wprowadzeniu zmian w kodzie. Dzięki tej książce nie tylko wybierzesz najlepszy framework, ale także zintegrujesz go z przepływem pracy programowania frontendowego i utworzysz wstępny zestaw automatyzacji testów oparty na JavaScripcie. Zapewni to szybką informację zwrotną przy zmianach w kodzie i zwiększy niezawodność automatyzacji testów. W książce między innymi: wybór narzędzi do testowania aplikacji zaawansowana automatyzacja testów pomiar pokrycia kodu i pokrycia testowego w ocenie jakości aplikacji kompromisy przy wyborze narzędzi do testowania frameworki: Cypress, Selenium, Playwright i Puppeteer przegląd narzędzi do niskokodowego testowania aplikacji internetowych Automatyzacja testów aplikacji - tak zagwarantujesz niezawodność!
Testowanie aplikacji Java za pomocą JUnit
Radosław Sokół
Testuj swój kod profesjonalnie — pisz testy jednostkowe! Poznaj niezbędne narzędzia Twórz testy jednostkowe Korzystaj z technik TDD i TAD Jednym z największych wyzwań współczesnej inżynierii oprogramowania jest zapewnienie właściwej jakości tworzonych produktów, którą można osiągnąć w dużej mierze dzięki odpowiedniej weryfikacji kodu. Odpowiedzią na potrzeby branży są testy automatyczne, a wśród najważniejsze to z pewnością testy jednostkowe. Nie tylko umożliwiają one ciągłe, bezproblemowe i szybkie sprawdzanie poprawności pisanego kodu, lecz również pozwalają wyeliminować regresję i poprawić jakość architektury tworzonych rozwiązań, a także stanowią dla nich doskonałą dokumentację. Jeśli nie chcesz zostać w tyle, również Ty powinieneś zacząć pisać testy jednostkowe do swoich programów tworzonych w języku Java. Pomoże Ci w tym książka prezentująca koncepcję UT, bibliotekę JUnit, rozszerzenie AssertJ oraz biblioteki EqualsVerifier, Mockito i Google Guava. Poznasz dzięki niej sposoby pisania testów, refaktoryzowania kodu oraz imitowania działania funkcji i bazy danych. Dowiesz się też, jak w praktyce stosować metodyki TDD i TAD. A wszystkiego nauczysz się dzięki wziętym z życia przykładom oraz zadaniom do samodzielnego wykonania. Tworzenie testów jednostkowych za pomocą biblioteki JUnit Ścieżki kodu, pokrycie testami i refaktoryzacja kodu Unikanie zależności za pomocą imitacji i zastosowanie Mockito Płynne definiowanie testów za pomocą biblioteki AssertJ Programowanie ukierunkowane na testy i wspomagane testami Imitowanie baz danych przy użyciu rozwiązania Apache Derby Popraw jakość swoich programów, korzystając z testów jednostkowych!
Testowanie bezpieczeństwa aplikacji internetowych. Receptury
Paco Hope, Ben Walther
Poznaj i wykorzystaj mechanizmy testowania zabezpieczeń, a nikt nie prześlizgnie się przez Twoją witrynę! Jak zainstalować i skonfigurować narzędzia do testowania zabezpieczeń? Jak szybko i sprawnie znaleźć problemy w aplikacjach? Jak wykorzystywać testy powtarzalne? Witryny internetowe oraz ich aplikacje stanowią swoistą wirtualną furtkę do wszystkich korporacji i instytucji. Jak zatem zadbać, aby nikt niepożądany nie przedostał się do środka? Co sprawia, że witryna jest naprawdę bezpieczna? I w jaki sposób testować aplikację, aby nie był to proces żmudny i czasochłonny, a raczej sprawny i skuteczny? Oto rozwiązanie -- niniejsza książka zawiera proste receptury, dzięki którym z łatwością znajdziesz luki w aplikacjach, zanim zrobią to różni hakerzy. Książka "Testowanie bezpieczeństwa aplikacji internetowych. Receptury" to napisany zrozumiałym językiem podręcznik, dzięki któremu szybko poznasz mechanizmy testowania zabezpieczeń. Praktyczne przykłady zawarte w tym przewodniku sprawią, że szybko nauczysz się włączać systemy zabezpieczeń do standardowych procedur kontroli aplikacji. Bez problemu stworzysz testy dotyczące funkcji AJAX, a także przeprowadzisz rozbudowane, wieloetapowe testy podatności na klasyczne problemy: skrypty krzyżowe oraz wstrzykiwanie kodu. Bezpieczeństwo oprogramowania Instalacja darmowych narzędzi i rozszerzeń Kodowanie danych w Internecie Manipulowanie danymi wejściowymi Fałszowanie informacji przesyłanych w nagłówkach przez przeglądarki Przesyłanie na serwer plików o dużej objętości Obchodzenie ograniczeń interfejsu użytkownika Autoryzacja masowego skanowania Ataki przeciwko aplikacjom AJAX Manipulowanie sesjami Testy wielostronne Niech bezpieczeństwo Twoich aplikacji nie spędza Ci snu z powiek!
Testowanie full stack. Praktyczny przewodnik dostarczania oprogramowania wysokiej jakości
Gayathri Mohan
Wysoka jakość aplikacji nie bierze się znikąd! Aby ją zapewnić, testowanie musi być integralnym aspektem inżynierii oprogramowania, wplecionym w każdy etap cyklu jego dostarczania. Błędy czy niedoskonałości w kodzie, pominięte z powodu niedokładnego testowania, mogą się okazać niezwykle kosztowne, jeśli ujawnią się w środowisku produkcyjnym. Oznacza to, że wdrożenie mądrej strategii testowania jest warunkiem sukcesu w branży dostarczania oprogramowania. Ten praktyczny przewodnik zawiera szeroki przegląd strategii, wzorców i form testowania oprogramowania, ułatwiających dobór ścieżek i podejść do konkretnych projektów w zależności od zakresu, budżetu i ram czasowych. Książka uczy przydatnych umiejętności w zakresie przeprowadzania testów wydajności, bezpieczeństwa i dostępności, w tym testów eksploracyjnych, automatyzacji testów, testów wielofunkcyjnych, testowania danych, testowania mobilnego i wielu innych. Zaprezentowano tu także łączenie testów w potokach ciągłej integracji, co pozwala na szybkie otrzymywanie informacji zwrotnych. W ten sposób łatwiejsze staje się kontrolowanie trudnych przepływów pracy programistycznej i uzyskiwanie wysokiej jakości aplikacji. Najciekawsze zagadnienia: ponad 40 narzędzi do testowania kodu zasady dobierania testów pod kątem jakości oprogramowania strategie i koncepcje dotyczące testowania praktyczne korzystanie z poszczególnych narzędzi do testowania najlepsze praktyki przeprowadzania testów Po pierwsze, po drugie i po trzecie: testuj swój kod!
Dave Westerveld
Znaczenie interfejsów API systematycznie rośnie. Głównie za sprawą tego, że ułatwiają komunikację - zarówno zewnętrzną, jak i tę, która zapewnia spójne działanie elementów nowoczesnych systemów. I podobnie jak dobre porozumienie jest podstawą relacji międzyludzkich, tak samo sprawna komunikacja między usługami ma kluczowe znaczenie dla prawidłowego funkcjonowania aplikacji. Z tego powodu od jakości API zależy jakość systemu oprogramowania jako całości. Warto zatem dobrze poznać Postmana. Dzięki tej praktycznej książce poznasz pełnię możliwości Postmana. Znajdziesz tu przystępnie wyjaśnione koncepcje, a także zestaw rzeczywistych przykładów, co ułatwi Ci korzystanie z tego narzędzia do tworzenia doskonale zaprojektowanych, udokumentowanych i przetestowanych interfejsów programowania aplikacji. Za pomocą praktycznych projektów nauczysz się dodawać automatyzację testów do istniejącego API. Poznasz również nowe funkcjonalności Postmana, stanowiące dużą pomoc w unikaniu błędów. W drugim, w pełni zaktualizowanym wydaniu znajdziesz nowe rozdziały dotyczące testowania przepływu pracy, tworzenia i używania serwerów imitacji, testowania bezpieczeństwa API, jak również testowania wydajności. W książce: użycie Postmana do poprawy jakości interfejsu API Postman i testowanie sterowane danymi serwery mock w Postmanie i testowanie kontraktowe zasady testowania bezpieczeństwa funkcjonalne i niefunkcjonalne podejście do testowania API praca ze standardami przemysłowymi, na przykład przy użyciu OpenAI i imitacji API? Lepiej przetestować dziś niż debugować jutro!
Renu Rajani
Doświadczeni deweloperzy wiedzą, że testowanie oprogramowania jest procesem żmudnym i wymagającym, niemniej rzetelnie przeprowadzone testy są konieczne, aby uznać kod za godny zaufania. Co więcej, testowanie kodu jest tą gałęzią techniki, która rozwija się bardzo dynamicznie. Ma to związek z rosnącymi konsekwencjami ewentualnych incydentów, przerw w działaniu oprogramowania czy wręcz ataków hakerskich. Oznacza to, że tester musi być na bieżąco z nowinkami ze swojej branży. Ta książka jest nieodzowną pomocą każdego testera. Stanowi wyczerpujące źródło potrzebnych informacji, prezentuje przeróżne perspektywy, praktyki, trendy, narzędzia i rozwiązania związane z testowaniem aplikacji. Omówiono różne modele działań testowych i rozmaite cykle życia oprogramowania. Pokazano nieoczywiste aspekty analizy jakości oraz prowadzenia testów w przypadku mediów społecznościowych, urządzeń mobilnych, danych analitycznych i technologii chmury. Opisano technologie, które najprawdopodobniej będą kształtować przyszłość testów oprogramowania. W publikacji nie zabrakło informacji o najlepszych praktykach, które warto stosować w celu zapewnienia stabilności i bezpieczeństwa oprogramowania. W tej książce między innymi: Najnowsze trendy w dziedzinie działań testowych i modeli operacyjnych Automatyzacja testów Uczenie maszynowe i systemy kognitywne: testowanie i wykorzystywanie w testach Testowanie na potrzeby różnych branż: ochrona zdrowia, marketing cyfrowy i inne Testowanie aplikacji na potrzeby rozwoju IoT (internetu rzeczy) Podoba Ci się ten kod? Przetestuj, zanim pochwalisz!
Scottie Crump
W ostatnich latach zdecydowanie wzrosła popularność frameworka React, pozwalającego w pełni skorzystać z możliwości nowoczesnych przeglądarek i urządzeń mobilnych. Nowym narzędziem służącym do testowania obiektowego modelu dokumentu (DOM) jest React Testing Library. Zostało ono zaprojektowane tak, aby ułatwiać projektantom pracę zgodną z podejściem test-driven development (TDD). Jest to bardzo cenna właściwość, gdyż prawidłowo napisane komponenty testowe znacznie obniżają ryzyko wystąpienia poważnych błędów aplikacji. W tej książce przystępnie wyjaśniono, w jaki sposób używać nowoczesnego narzędzia, jakim jest React Testing Library (RTL), do testowania komponentów napisanych w React. Dzięki niej zrozumiesz główne aspekty działania tej biblioteki. Nauczysz się symulować interakcje użytkownika i zrozumiesz podejście TDD. Znajdziesz tu wskazówki, jak tworzyć testy jednostkowe komponentów, które wchodzą w interakcje z interfejsami API, a także jak testować komponenty za pomocą takich bibliotek jak GraphQL i Redux. Zapoznasz się też z technikami testowania aplikacji, które podległy poważnej refaktoryzacji. Na koniec dowiesz się, jak pisać całościowe testy funkcjonalne z wykorzystaniem biblioteki Cypress i które wzorce projektowe są najbardziej przydatne do ustrukturyzowania profesjonalnego zbioru testów. W książce między innymi: wprowadzenie do RTL i jego zastosowań użycie jest-dom do rozbudowy testów opartych na RTL techniki tworzenia komponentów testowych łatwych do modyfikacji integracja zestawów testowych z Cucumber i Cypress podejście TDD React: z łatwością napiszesz doskonałe komponenty testowe!
Testowanie oprogramowania. Podręcznik dla początkujących
Rafał Pawlak
Testuj programy i śpij spokojnie! Ogólna teoria testowania, czyli po co nam testy i jak sobie z nimi radzić Projekt a proces testowania, czyli kiedy zacząć testować i jak to robić z głową Automatyzacja i dokumentacja, czyli jak ułatwić sobie pracę podczas testowania Testowanie oprogramowania jest niesłychanie ważnym czynnikiem, wręcz decydującym o sukcesie lub porażce systemu, aplikacji czy sieci. Bezlitośni użytkownicy wykryją najdrobniejszy błąd, skutkujący choćby niewielkim spowolnieniem działania programu… i nie omieszkają wyrazić swojej opinii w internecie. Jeśli chcesz uniknąć takich niespodzianek, a ponadto zależy Ci na jak najszybszym ukończeniu realizowanego projektu i wypuszczeniu perfekcyjnego produktu, musisz natychmiast zacząć go testować! Ta książka pomoże Ci zorientować się w metodach i technikach testowania. Jej autor, praktyk z wieloletnim doświadczeniem, zawarł w niej informacje o narzędziach i procesach, opisał również własne doświadczenia związane z konkretnymi projektami. Dowiesz się między innymi, jak radzić sobie na kolejnych etapach weryfikacji jakości oprogramowania — wybrać odpowiedni typ testu i przejść przez proces jego projektowania — a także jak uporać się ze znużeniem nieustannym testowaniem. Odkryjesz też, do czego służy automatyzacja i jak przejrzyście dokumentować całe przedsięwzięcie. Usuń błędy, zanim zaczną sprawiać Ci kłopoty! Poziomy wykonywania testów Typy testów Wprowadzenie do projektowania testów Psychologiczne aspekty procesu testowania Syndrom zniechęcenia testami Testowanie usług sieciowych (WebServices) Wprowadzenie do automatyzacji testów Generowanie sumy kontrolnej i danych testowych Membrane HTTP/SOAP Monitor SoapUI Postaw na jakość! To się opłaca!
Testuj oprogramowanie jak Google. Metody automatyzacji
James A. Whittaker, Jason Arbon, Jeff Carollo
Poznaj najlepszą na świecie metodę testowania! Oprogramowanie firmy Google to miliony linii kodu źródłowego, dziesiątki wersji językowych, różne systemy operacyjne, przeglądarki i preferencje użytkownika. Jak przy takich wymogach dostarczyć klientom produkt najwyższej jakości? Tu mogą pomóc tylko testy automatyczne. Dzięki nim codziennie bez trudu można uruchomić miliony testów! Google opanowało tę sztukę do mistrzostwa. Warto uczyć się od najlepszych! Dzięki tej książce dowiesz się, jak zorganizować proces testowania tak, żeby był elastyczny, skuteczny i spełniał Twoje oczekiwania. Poznasz rolę inżyniera do spraw testowania oprogramowania, kierownika zespołów inżynierskich oraz inżyniera testującego. Zobaczysz, na jakie problemy natykają się oni każdego dnia oraz jak sobie z nimi radzą. Ponadto nauczysz się oceniać ryzyko, dokumentować proces testowania czy raportować błędy. Książka ta jest obowiązkową lekturą dla wszystkich osób, które doskonalą swoje umiejętności programistyczne i chcą polepszyć jakość dostarczanego oprogramowania. Dzięki tej książce: poznasz najlepsze metody zapewniania jakości oprogramowania nauczysz się planować i przeprowadzać testy poprawnie ocenisz ryzyko udoskonalisz proces wytwarzania oprogramowania! Sprawdź, jak testują najlepsi!
Testy A/B. Od kliknięcia do klienta
Dan Siroker, Pete Koomen
Odkryj możliwości testów A/B! Kampanie reklamowe to nie lada obciążenie dla firmowego budżetu. W dodatku badania pokazują, że zaledwie 2% osób klikających reklamę i odwiedzających Twoją witrynę staje się Twoimi klientami. Łatwo z tego wyciągnąć smutny wniosek - aż 98% z nich nie skorzysta z Twoich usług! Zmień to! Poznaj sposoby na zwiększenie współczynnika konwersji! Istnieją narzędzia, które pozwolą Ci polepszyć ten wskaźnik. Ta książka omawia jedną z najskuteczniejszych technik - testy A/B. Polegają one na prezentowaniu użytkownikom różnych wersji strony i mierzeniu, jak reagują ci użytkownicy. W trakcie lektury tego wyjątkowego poradnika dogłębnie poznasz tę metodykę i odkryjesz najlepsze sposoby jej wdrażania. A potem dowiesz się, jakie pułapki i problemy czekają na Ciebie oraz jak sobie z nimi poradzić. Książka ta jest poświęcona niełatwym zagadnieniom, jednak ta wiedza przekazywana jest w niezwykle przyjazny i prosty sposób. Popraw wyniki swoich kampanii! Dzięki tej książce: poznasz testy A/B wdrożysz testy A/B krok po kroku unikniesz najczęstszych błędów zwiększysz współczynnik konwersji Zwiększ skuteczność Twoich działań marketingowych!
Testy jednostkowe. Świat niezawodnych aplikacji. Wydanie II
Roy Osherove
Poznaj możliwości testów jednostkowych! System informatyczny to inteligentne połączenie modułów i zależności, otoczone setkami tysięcy, a nawet milionami linii kodu źródłowego. Zmiana w jednym obszarze może mieć fatalny wpływ na działanie systemu w zupełnie innym miejscu. Ta zależność prowadzi do ogromnych kosztów wprowadzenia nawet najdrobniejszej zmiany w oprogramowaniu. Czy istnieje rozwiązanie tego problemu? Jak stworzyć system, w którym błyskawiczna weryfikacja lub wprowadzona zmiana nie spowodują nowych błędów w innej części? Oczywiście, że można to zrobić! Odpowiedzią na te i wiele innych problemów są testy automatyczne. Ten przewodnik to doskonała okazja, by głębiej poznać temat testów jednostkowych. Jeżeli uważasz, że ich pisanie jest uciążliwe, czasochłonne, trudne lub po prostu nie wiesz, jak je tworzyć, ta książka rozwiąże wszystkie Twoje problemy! W trakcie lektury dowiesz się, jak pisać testy, tworzyć zestawy testowe oraz przygotowywać makiety i namiastki. Poznasz narzędzia Moq, FakeItEasy oraz Typemock Isolator. Ponadto zdobędziesz wiedzę na temat organizacji testów oraz strategii testowania kodu odziedziczonego. Książka ta jest obowiązkową lekturą dla wszystkich programistów C# szukających świetnego przewodnika po świecie testów jednostkowych! Dzięki tej książce: rozwiejesz swoje wątpliwości dotyczące testów poznasz najpopularniejsze narzędzia wspomagające testowanie zorganizujesz swoje testy jednostkowe zapoznasz się z kluczowymi elementami dobrych testów stworzysz niezawodny i tani w utrzymaniu kod Niezawodny kod jest w Twoim zasięgu!
Testy jednostkowe. Zasady, praktyki i wzorce
Vladimir Khorikov
Każdy inżynier oprogramowania zna teoretyczne podstawy testowania. O tym, że sumienne przeprowadzenie testów ma podstawowe znaczenie dla jakości gotowego produktu, nie trzeba nikogo przekonywać. A jednak wciąż zbyt często okazuje się, że zaplanowanie, napisanie i przeprowadzenie testów jednostkowych w praktyce nie jest łatwym zadaniem. Co gorsza, niewłaściwe testy psują kod, mnożą błędy i zabierają mnóstwo cennego czasu i pieniędzy. Okazuje się, że dla uzyskania maksymalnej jakości projektu, który trzeba dostarczyć w krótkim czasie, konieczne jest nauczenie się praktycznego stosowania zasad i wzorców testowania jednostkowego. Jeśli znasz już podstawy testowania jednostkowego, dzięki tej książce nauczysz się projektowania i pisania testów, które obierają za cel model domeny i pozostałe kluczowe obszary kodu. Ten przejrzyście napisany przewodnik poprowadzi Cię przez proces tworzenia zestawów testowych o optymalnej wartości, bezpiecznej automatyzacji testowania i umiejętnego włączania go w cykl życia oprogramowania. W książce znalazły się uniwersalne wskazówki dotyczące analizy dowolnych testów jednostkowych oraz porady odnoszące się do zmian testów następujących wraz ze zmianami kodu produkcyjnego. Nie zabrakło również informacji, dzięki którym sprawnie zidentyfikujesz i wykluczysz ewentualne antywzorce testowania. Materiał został bogato zilustrowany przejrzystymi przykładami kodu napisanego w C#. Naturalnie, mają one zastosowanie także dla innych języków programowania. W książce między innymi: cel testowania jednostkowego i cechy dobrych testów fundamenty porządnego testowania jednostkowego wpływ zaślepek i sterowników na stabilność testów style testowania jednostkowego zalety i ograniczenia testowania integracyjnego Przed wdrożeniem dobrze przetestuj swój kod!
Testy penetracyjne dla zaawansowanych. Hakowanie najlepiej zabezpieczonych sieci na świecie
Wil Allsopp
Zgodnie z obiegową opinią typowy haker godzinami przeszukuje ogromne ilości danych o ruchu sieciowym w celu znalezienia słabiej zabezpieczonego systemu, a potem przeprowadza atak i uzyskuje dostęp do cennych zasobów. Obrona przed takimi cyberprzestępcami jest stosunkowo prosta. Prawdziwe wyzwanie rzuca silnie zmotywowany napastnik, który jest znawcą systemów i sprawnym programistą. Dzisiejsi administratorzy stoją w obliczu advanced persistent threat (APT), co oznacza dosłownie trwałe zagrożenie zaawansowanym atakiem. Ta książka jest znakomitym wprowadzeniem do zaawansowanych technik forsowania dobrze zabezpieczonych środowisk. Metody tu opisane nie są przedstawiane w żadnym poradniku ani na żadnych szkoleniach. Autor skoncentrował się na modelowaniu ataków APT w rzeczywistych warunkach: prezentuje różne nowe technologie i techniki ataków w szerokim kontekście rozmaitych dziedzin i branż działalności. Poza skutecznymi wektorami ataku przedyskutowano tak ważne koncepcje jak unikanie wykrycia szkodliwych programów, świadomość sytuacyjną, eksplorację poziomą i wiele innych umiejętności, które są kluczowe dla zrozumienia ataków APT. W tej książce między innymi: Makroataki i ataki typu „człowiek w przeglądarce” Wykorzystywanie apletów Javy do ataków Metody eskalacji uprawnień Maskowanie fizycznej lokalizacji za pomocą ukrytych usług w sieci Tor Eksperymentalne metody C2 Techniki inżynierii społecznej Sam sprawdź, czy Twój system odeprze prawdziwy atak? Wil Allsopp jest ekspertem w dziedzinie bezpieczeństwa systemów informatycznych. Testami penetracyjnymi zajmuje się od ponad 20 lat. Specjalizuje się w działaniach red team, ocenie systemów pod kątem podatności na ataki, audytach bezpieczeństwa, kontroli bezpieczeństwa kodu źródłowego, a także w inżynierii społecznej oraz rozpoznawaniu zaawansowanych stałych zagrożeń. Przeprowadził setki etycznych testów hakerskich i penetracyjnych dla wielu firm z listy „Fortune 100”. Mieszka w Holandii.
Testy penetracyjne nowoczesnych serwisów. Kompendium inżynierów bezpieczeństwa
Prakhar Prasad
Testy penetracyjne nowoczesnych serwisów. Kompendium inżynierów bezpieczeństwa Sieć stała się niebezpiecznym miejscem. Między grasującymi złoczyńcami a inżynierami bezpieczeństwa aplikacji trwa ciągły wyścig zbrojeń. Mimo to oczywiste jest, że uzyskanie stuprocentowego bezpieczeństwa jest niemożliwe. Jedną z technik zabezpieczania aplikacji są testy penetracyjne, które polegają na atakowaniu systemu różnymi metodami, aby odnaleźć jego słabe punkty i pokazać, jak można się do niego włamać. Niniejsza książka stanowi wyczerpujące źródło wiedzy dla testerów przeprowadzających analizę aplikacji internetowej. Opisano tu zarówno najnowsze, jak i klasyczne techniki łamania zabezpieczeń — bardzo często starsze metody rozwijają się w różnych kierunkach i nie należy o nich zapominać. Między innymi przedstawiono informacje o atakach XML, w tym XXE, oraz metody wykorzystywania słabych stron OAuth 2.0. Omówiono również XSS, CSRF, Metasploit i wstrzykiwanie SQL. Nie zabrakło również opisu rzeczywistych przypadków testowania aplikacji. Nowe lub mniej popularne techniki ataku na strony WWW takie jak wstrzykiwanie obiektów PHP lub wykorzystanie danych XML. Sposób pracy z narzędziami do przeprowadzania testów bezpieczeństwa, aby w ten sposób zautomatyzować żmudne zadania. Różne rodzaje nagłówków HTTP wspomagających zapewnienie wysokiego poziomu bezpieczeństwa aplikacji. Wykorzystywanie i wykrywanie różnego rodzaju podatności XSS. Ochronę aplikacji dzięki technikom filtracji. Stare techniki ataku takie jak XSS, CSRF i wstrzykiwanie SQL, ale w nowej osłonie. Techniki ataku takie jak XXE i DoS wykorzystujące pliki XML. Sposoby testowania API typu REST w celu znalezienia różnego rodzaju podatności i wycieków danych. Testy penetracyjne — klucz do bezpieczeństwa Twojej aplikacji! Prakhar Prasad mieszka w Indiach. Jest ekspertem w dziedzinie bezpieczeństwa aplikacji specjalizującym się w testach penetracyjnych. W 2014 roku został sklasyfikowany na dziesiątej pozycji w światowym rankingu HackerOne. Zdobył kilka nagród za znalezienie luk bezpieczeństwa w takich serwisach, jak Google, Facebook, Twitter, PayPal czy Slack. Posiada certyfikaty z OSCP. Przeprowadza testy bezpieczeństwa dla różnych organizacji rządowych, pozarządowych i edukacyjnych.
Testy penetracyjne środowiska Active Directory i infrastruktury opartej na systemie Windows
Denis Isakov
Cyberprzestępczość to obecnie wielki biznes i wielka polityka. Zaangażowane podmioty nieustannie dążą do doskonalenia technik ataków. Cyberprzestępcy dysponują własną metodologią, narzędziami i wykwalifikowanym personelem. Aby obronić się przed nimi, musisz zrozumieć, w jaki sposób atakują, a potem dobrze poznać ich taktyki i techniki. W trakcie lektury tej książki przygotujesz własne laboratorium, a następnie przeanalizujesz każdy etap zabójczego łańcucha ataków i zastosujesz nową wiedzę w praktyce. Dowiesz się, jak ominąć wbudowane mechanizmy bezpieczeństwa, między innymi AMSI, AppLocker i Sysmon, przeprowadzać działania rozpoznawcze i wykrywające w środowisku domeny, a także zbierać dane uwierzytelniające w całej domenie. Przeczytasz również, jak poruszać się ruchem bocznym, aby wtopić się w ruch środowiska i pozostać niewykrytym przez radary obrońców, a ponadto jak eskalować uprawnienia wewnątrz domeny i w całym lesie domen czy osiągać stan przetrwania na poziomie domeny i w kontrolerze domeny. W efekcie nauczysz się przeprowadzać ocenę bezpieczeństwa różnych produktów i usług Microsoftu, takich jak Exchange Server, SQL Server i SCCM. Ciekawsze zagadnienia: techniki atakowania usług: Active Directory, Exchange Server, WSUS, SCCM, AD CS i SQL Server skuteczne unikanie wykrycia w środowisku ofensywne bezpieczeństwo operacyjne (OpSec) sposoby naprawy błędnych konfiguracji przygotowanie rzeczywistych scenariuszy Testuj granice odporności swojej infrastruktury!
The Smashing Book #1. Edycja polska
Sven Lennartz (Editor), Vitaly Friedman (Author)
Smashing Magazine to marka znana w branży webowej na całym świecie. Profesjonalny blog o technologiach i projektowaniu stron, oferujący setki merytorycznych i aktualnych artykułów opartych na realnych przykładach, podbił serca milionów użytkowników. Ta książka to zbiór najlepszych artykułów i porad dla projektantów stron internetowych. Znajdziesz w niej fachowe i sprawdzone informacje na temat tworzenia interfejsu użytkownika oraz typografii w sieci. Autorzy bardzo dużo uwagi poświęcają użyteczności nowoczesnych stron internetowych. W dzisiejszych czasach nawet najdoskonalszy pomysł się nie sprzeda, jeżeli nie będzie opakowany w intuicyjny i przyjazny interfejs użytkownika. Co jeszcze znajdziesz w tej biblii twórców stron WWW? Optymalizacja wydajności witryn, tworzenie projektów zwiększających sprzedaż, teoria kolorów to tylko część zagadnień, które muszą zwrócić Twoją uwagę. Sięgnij po tę książkę, naprawdę warto! Smashing Book. Edycja polska. Kultowy podręcznik dla projektantów i twórców stron internetowych!