Prezentacja powstała na potrzeby webinara pt. Kobiety do testów. Praktykujemy.
Podczas webinara omawialiśmy 7 zasad testowania oraz podział testów. Pokazaliśmy również, jakie rodzaje błędów możemy napotkać przy testowaniu aplikacji oraz jak je poprawnie zgłosić i opisać.
Prezentacja dostępna jest jako kolejny slajd po wyświetlonym filmie.
Prezentacja powstała na potrzeby webinara pt. Proces testowania od kuchni.
Podczas webinara opowiadaliśmy o tym, jak jak powstaje oprogramowanie, jakie są modele cyklu życia oprogramowania oraz dlaczego komunikacja to podstawa pracy w IT. Nie zabrakło także smaczków, dotyczących obowiązków testera i dokumentacji, którą tworzy.
Prezentacja dostępna jest jako kolejny slajd po wyświetlonym filmie.
An Overview of User Acceptance Testing (UAT)Usersnap
What is User Acceptance Testing? Also known as UAT or UAT testing.
it's basically, a process of verifying that a solution works for the user.
And the key word here, is user. This is crucial, because they’re the people who will use the software on a daily basis. There are many aspects to consider with respect to software functionality. There’s unit testing, functional testing, integration testing, and system testing, amongst many others.
What Is User Acceptance Testing?
I’ll keep it simple; according to Techopedia, UAT (some people call it UAT testing as well) is:
User acceptance testing (UAT) is the last phase of the software testing process. During UAT, actual software users test the software to make sure it can handle required tasks in real-world scenarios, according to specifications. UAT is one of the final and critical software project procedures that must occur before newly developed software is rolled out to the market.
User acceptance testing (UAT), otherwise known as Beta, Application, or End-User Testing, is often considered the last phase in the web development process, the one before final installation of the software on the client site, or final distribution of it.
[Meet Magento 2015, Germany] In this presentation I'll show some pure evil bad practices that somehow made it into way too many Magento modules out there making it hard to integrate, adapt, scale, debug, secure or extend your project. Join this presentation and help making the Magento module ecosystem be a better place instead by spotting these "code smells" in your modules or the modules you're using.
Acceptance & Functional Testing with Codeception - Devspace 2015 Joe Ferguson
The document discusses using Codeception for acceptance and functional testing. It begins with an introduction to the speaker and defines unit, functional, and acceptance testing. It then demonstrates how to install and configure Codeception, generate tests for a sample Laravel application, and run different types of tests including functional API tests and acceptance tests using PhantomJS. Challenges with acceptance tests like speed and pinpointing failures are also addressed. Resources for further learning about Codeception and testing are provided.
Prezentacja powstała na potrzeby webinara pt. Kobiety do testów. Praktykujemy.
Podczas webinara omawialiśmy 7 zasad testowania oraz podział testów. Pokazaliśmy również, jakie rodzaje błędów możemy napotkać przy testowaniu aplikacji oraz jak je poprawnie zgłosić i opisać.
Prezentacja dostępna jest jako kolejny slajd po wyświetlonym filmie.
Prezentacja powstała na potrzeby webinara pt. Proces testowania od kuchni.
Podczas webinara opowiadaliśmy o tym, jak jak powstaje oprogramowanie, jakie są modele cyklu życia oprogramowania oraz dlaczego komunikacja to podstawa pracy w IT. Nie zabrakło także smaczków, dotyczących obowiązków testera i dokumentacji, którą tworzy.
Prezentacja dostępna jest jako kolejny slajd po wyświetlonym filmie.
An Overview of User Acceptance Testing (UAT)Usersnap
What is User Acceptance Testing? Also known as UAT or UAT testing.
it's basically, a process of verifying that a solution works for the user.
And the key word here, is user. This is crucial, because they’re the people who will use the software on a daily basis. There are many aspects to consider with respect to software functionality. There’s unit testing, functional testing, integration testing, and system testing, amongst many others.
What Is User Acceptance Testing?
I’ll keep it simple; according to Techopedia, UAT (some people call it UAT testing as well) is:
User acceptance testing (UAT) is the last phase of the software testing process. During UAT, actual software users test the software to make sure it can handle required tasks in real-world scenarios, according to specifications. UAT is one of the final and critical software project procedures that must occur before newly developed software is rolled out to the market.
User acceptance testing (UAT), otherwise known as Beta, Application, or End-User Testing, is often considered the last phase in the web development process, the one before final installation of the software on the client site, or final distribution of it.
[Meet Magento 2015, Germany] In this presentation I'll show some pure evil bad practices that somehow made it into way too many Magento modules out there making it hard to integrate, adapt, scale, debug, secure or extend your project. Join this presentation and help making the Magento module ecosystem be a better place instead by spotting these "code smells" in your modules or the modules you're using.
Acceptance & Functional Testing with Codeception - Devspace 2015 Joe Ferguson
The document discusses using Codeception for acceptance and functional testing. It begins with an introduction to the speaker and defines unit, functional, and acceptance testing. It then demonstrates how to install and configure Codeception, generate tests for a sample Laravel application, and run different types of tests including functional API tests and acceptance tests using PhantomJS. Challenges with acceptance tests like speed and pinpointing failures are also addressed. Resources for further learning about Codeception and testing are provided.
This document discusses aspect-oriented programming (AOP) and how it can be used to clean up code. It begins with an introduction to AOP and what aspects are, which are pieces of cross-cutting functionality used across multiple parts of a system. Examples are given of common cross-cutting concerns like logging and caching. The document then demonstrates how to refactor code to use aspects through examples and discusses benefits like improved encapsulation and reuse. It also covers how to test aspects by testing pointcuts and advice functionality.
The document discusses how business has not adapted to agile development. It notes that new programmers and QA staff should be involved in both development and business. It advocates for maximizing the amount of work not done by focusing on main requirements first, then subsequent requirements within budget and time constraints, and getting products to market quickly. An agile approach involves full engagement, unknown deadlines, and developing in small pieces over time.
Michał Sajdak, Testy bezpieczeństwa -‐ teoria a praktykaFuture Processing
Wykład prezentowany podczas ósmej odsłony Quality Meetup, 12 maja 2016 roku w Gliwicach.
Autor: Michał Sajdak (IT Security Consultant, Securitum.pl)
Prezentacja wskazuje problemy, z którymi często borykają się osoby realizujące testy bezpieczeństwa oraz firmy zlecające tego typu działania. Dzięki prezentacji otrzymamy praktyczne wskazówki umożliwiające zwiększenie efektywności testów oraz sprawne przeprowadzenie całości takiego procesu. Prezentacja powstała na bazie wieloletniego doświadczenia, które Michał zdobył podczas realizacji testów bezpieczeństwa.
[FDD 2016] Krzysztof Bartnicki - Wszechświat kontra programista systemów wbud...Future Processing
Krzysztof przybliżył sposób pracy i najczęściej spotykane problemy podczas rozwoju oprogramowania dla systemów wbudowanych. Prelekcja poprowadzona została w oparciu o przykład prostego projektu, zrealizowanego przez FP Instruments, który obejmował dodanie nowej, fizycznej funkcjonalności (czytnik kart) do istniejącego już sprzętu.
Poruszone na wykładzie zagadnienia obejmują: pracę z istniejącym kodem złej jakości, pracę z procesorem o ograniczonej architekturze, problemy z dostosowaniem kodu do wykonanych zmian sprzętowych oraz optymalizację kodu pod względem szybkości wykonywania.
[QE 2015] Jarosław Pałka - Systematyczny architekt na drodze ku planowanemu p...Future Processing
Czym jest planowane postarzanie produktu? Zapewne wielu z was spotkało się z tym określeniem, oznaczającym planowane działania mające na celu skrócenie czasu życia produktu na rynku w mniej lub bardziej szczytnym celu. Jak to się ma do tworzenia oprogramowania?
Ciągle mamy do czynienia z nieustannym procesem postarzania naszych bibliotek, kontenerów aplikacji, języków, narzędzi i API. Oprócz sił wywieranych przez biznes na naszą aplikację, jest ona także pod wpływem potężnych ruchów technologicznych, wynikających z nieustannych zmian w trendach tworzenia oprogramowania. Jak efektywnie uniknąć powolnego postarzania się technologicznego naszej aplikacji? Jak uniknąć wysokich kosztów, odkładanych w nieskończoność modernizacji technologicznych aplikacji? Jak uzasadnić wartość biznesową kolejnego „big up front total next generation rewrite”?
[QE 2015] Mateusz Kocielski - W każdym programie jest jeszcze jeden błądFuture Processing
Błędy w oprogramowaniu dosięgają nas każdego dnia w postaci rebootujących się telefonów, zawieszających się komputerów, czy programów niespodziewanie kończących swoje działanie. Przyjrzymy się błędom, które miały znacznie gorsze konsekwencje, powodując ogromne straty finansowe lub, w skrajnych przypadkach, śmierć użytkowników. Postaramy się przeanalizować wybrane przypadki, aby nauczyć się na błędach innych, jak pisać kod, który działa.
Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...Lukasz Kaluzny
Zagadnienia:
Nowe funkcjonalności Microsoft Windows Server 2016 w kontekście budowy aplikacji typu cloud-native:
Zastosowanie Nano Servera, czyli odchudzonej wersji Windows Server 2016, oszczędniej korzystającej z zasobów IT.
Uruchamianie na Nano Serwerach WS2016 aplikacji napisanych w .NET, Javie, Pythonie (Django) czy JavaScript (Node.js).
Migracja - bez konieczności zmiany kodu - istniejących aplikacji do architektury opartej o kontenery. Kontenery to rozwiązania oparte na szybkiej wirtualizacji na poziomie procesów. Nie tworzą dodatkowych instancji jądra systemu operacyjnego. Na tym samym hoście można uruchomić większą ilość kontenerów niż maszyn wirtualnych. Uruchamianie i zamykanie kontenera jest też znacznie szybsze, niż uruchamianie i zamykanie maszyny wirtualnej.
Wspólna praca developerów i administratorów nad produktem, czyli DevOps z wykorzystaniem Windows Server 2016 i Visual Studio Team Services w chmurze Azure. Automatyczne budowanie obrazów kontenerów dla każdego nowego kodu i wdrażania ich w różne środowiska
Łatwiejsze zarządzanie obciążeniami aplikacji pomiędzy zasobami we własnej infrastrukturze i w chmurze Azure dzięki WS2016 oraz Azure Service Fabric.
Funkcjonalności Windows Server 2016 powstałe z myślą o wygodzie administratorów:
Nowa wersja PowerShell 5.0 - przynosząca lepsze funkcjonowanie powłoki linii poleceń oraz udoskonalony język skryptowy,
Azure Remote Server Management Tools – zdalne zarządzanie Nano i Windows Server 2016 z Azure,
PowerShell Direct,
Nested Virtualization jako wsparcie ułatwienia nauki i testów.
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...Michal Furmankiewicz
Azure oferuje wiele platform na których możesz uruchomić swoją aplikację. Każda ma swoje zalety i wady. Zrobiłem przegląd tych platform dla Ciebie. W prezentacji wyrażam swoją prywatną opinię.
This document discusses aspect-oriented programming (AOP) and how it can be used to clean up code. It begins with an introduction to AOP and what aspects are, which are pieces of cross-cutting functionality used across multiple parts of a system. Examples are given of common cross-cutting concerns like logging and caching. The document then demonstrates how to refactor code to use aspects through examples and discusses benefits like improved encapsulation and reuse. It also covers how to test aspects by testing pointcuts and advice functionality.
The document discusses how business has not adapted to agile development. It notes that new programmers and QA staff should be involved in both development and business. It advocates for maximizing the amount of work not done by focusing on main requirements first, then subsequent requirements within budget and time constraints, and getting products to market quickly. An agile approach involves full engagement, unknown deadlines, and developing in small pieces over time.
Michał Sajdak, Testy bezpieczeństwa -‐ teoria a praktykaFuture Processing
Wykład prezentowany podczas ósmej odsłony Quality Meetup, 12 maja 2016 roku w Gliwicach.
Autor: Michał Sajdak (IT Security Consultant, Securitum.pl)
Prezentacja wskazuje problemy, z którymi często borykają się osoby realizujące testy bezpieczeństwa oraz firmy zlecające tego typu działania. Dzięki prezentacji otrzymamy praktyczne wskazówki umożliwiające zwiększenie efektywności testów oraz sprawne przeprowadzenie całości takiego procesu. Prezentacja powstała na bazie wieloletniego doświadczenia, które Michał zdobył podczas realizacji testów bezpieczeństwa.
[FDD 2016] Krzysztof Bartnicki - Wszechświat kontra programista systemów wbud...Future Processing
Krzysztof przybliżył sposób pracy i najczęściej spotykane problemy podczas rozwoju oprogramowania dla systemów wbudowanych. Prelekcja poprowadzona została w oparciu o przykład prostego projektu, zrealizowanego przez FP Instruments, który obejmował dodanie nowej, fizycznej funkcjonalności (czytnik kart) do istniejącego już sprzętu.
Poruszone na wykładzie zagadnienia obejmują: pracę z istniejącym kodem złej jakości, pracę z procesorem o ograniczonej architekturze, problemy z dostosowaniem kodu do wykonanych zmian sprzętowych oraz optymalizację kodu pod względem szybkości wykonywania.
[QE 2015] Jarosław Pałka - Systematyczny architekt na drodze ku planowanemu p...Future Processing
Czym jest planowane postarzanie produktu? Zapewne wielu z was spotkało się z tym określeniem, oznaczającym planowane działania mające na celu skrócenie czasu życia produktu na rynku w mniej lub bardziej szczytnym celu. Jak to się ma do tworzenia oprogramowania?
Ciągle mamy do czynienia z nieustannym procesem postarzania naszych bibliotek, kontenerów aplikacji, języków, narzędzi i API. Oprócz sił wywieranych przez biznes na naszą aplikację, jest ona także pod wpływem potężnych ruchów technologicznych, wynikających z nieustannych zmian w trendach tworzenia oprogramowania. Jak efektywnie uniknąć powolnego postarzania się technologicznego naszej aplikacji? Jak uniknąć wysokich kosztów, odkładanych w nieskończoność modernizacji technologicznych aplikacji? Jak uzasadnić wartość biznesową kolejnego „big up front total next generation rewrite”?
[QE 2015] Mateusz Kocielski - W każdym programie jest jeszcze jeden błądFuture Processing
Błędy w oprogramowaniu dosięgają nas każdego dnia w postaci rebootujących się telefonów, zawieszających się komputerów, czy programów niespodziewanie kończących swoje działanie. Przyjrzymy się błędom, które miały znacznie gorsze konsekwencje, powodując ogromne straty finansowe lub, w skrajnych przypadkach, śmierć użytkowników. Postaramy się przeanalizować wybrane przypadki, aby nauczyć się na błędach innych, jak pisać kod, który działa.
Jak zbudować aplikacje z wykorzystaniem funkcjonalności windows server 2016...Lukasz Kaluzny
Zagadnienia:
Nowe funkcjonalności Microsoft Windows Server 2016 w kontekście budowy aplikacji typu cloud-native:
Zastosowanie Nano Servera, czyli odchudzonej wersji Windows Server 2016, oszczędniej korzystającej z zasobów IT.
Uruchamianie na Nano Serwerach WS2016 aplikacji napisanych w .NET, Javie, Pythonie (Django) czy JavaScript (Node.js).
Migracja - bez konieczności zmiany kodu - istniejących aplikacji do architektury opartej o kontenery. Kontenery to rozwiązania oparte na szybkiej wirtualizacji na poziomie procesów. Nie tworzą dodatkowych instancji jądra systemu operacyjnego. Na tym samym hoście można uruchomić większą ilość kontenerów niż maszyn wirtualnych. Uruchamianie i zamykanie kontenera jest też znacznie szybsze, niż uruchamianie i zamykanie maszyny wirtualnej.
Wspólna praca developerów i administratorów nad produktem, czyli DevOps z wykorzystaniem Windows Server 2016 i Visual Studio Team Services w chmurze Azure. Automatyczne budowanie obrazów kontenerów dla każdego nowego kodu i wdrażania ich w różne środowiska
Łatwiejsze zarządzanie obciążeniami aplikacji pomiędzy zasobami we własnej infrastrukturze i w chmurze Azure dzięki WS2016 oraz Azure Service Fabric.
Funkcjonalności Windows Server 2016 powstałe z myślą o wygodzie administratorów:
Nowa wersja PowerShell 5.0 - przynosząca lepsze funkcjonowanie powłoki linii poleceń oraz udoskonalony język skryptowy,
Azure Remote Server Management Tools – zdalne zarządzanie Nano i Windows Server 2016 z Azure,
PowerShell Direct,
Nested Virtualization jako wsparcie ułatwienia nauki i testów.
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...Michal Furmankiewicz
Azure oferuje wiele platform na których możesz uruchomić swoją aplikację. Każda ma swoje zalety i wady. Zrobiłem przegląd tych platform dla Ciebie. W prezentacji wyrażam swoją prywatną opinię.
Co nowego w VS 2013 dla programistów ASP.NET?Bartlomiej Zass
Sesja z konferencji Microsoft Technology Summit 2013 na temat nowości, które pojawiły się w ASP.NET 4.5.1 oraz Visual Studio 2013 dla web deweloperów. Poruszane zagadnienia to m.in.: zmiany w IDE / Web Essentials, Web Forms, ASP.NET MVC 5, OWIN, SignalR, Web API 2
Stwórz aplikacje internetowe w technologii ASP.NET 3.5
* Poznaj i skonfiguruj środowisko programistyczne
* Zaprojektuj strukturę aplikacji
* Połącz aplikację z bazą danych
* Wyświetl dane na stronach
Technologie PHP i ASP.NET mają kilka cech wspólnych — obie służą do tworzenia aplikacji internetowych, uruchamianych za pośrednictwem przeglądarki internetowej, i generują wynik swojego działania w postaci dokumentów XHTML. Jednak istnieje między nimi jedna istotna różnica — PHP wykorzystuje rozwiązania open source, a ASP.NET rozwiązania komercyjne, rozwijane przez firmę Microsoft. ASP.NET opiera się na platformie .NET — uniwersalnym frameworku, pozwalającym na korzystanie z różnych języków programowania w celu tworzenia skalowalnych, szybkich i łatwych do rozwijania aplikacji sieciowych. Nie bez znaczenia jest także środowisko programistyczne — Visual Studio to doskonałe narzędzie, znacznie przyspieszające i usprawniające proces tworzenia oprogramowania.
„ASP.NET 3.5 dla programistów PHP” to wprowadzenie do technologii ASP dla wszystkich twórców aplikacji internetowych, którzy dotychczas korzystali z PHP. Czytając tę książkę, zrozumiesz główne zasady korzystania z platformy .NET i techniki budowania aplikacji sieciowych. Dowiesz się, jak skonfigurować środowisko pracy i zaprojektować strukturę aplikacji. Nauczysz się korzystać z najważniejszych elementów platformy .NET — kontrolek będących gotowymi „cegiełkami” do budowy stron internetowych ASP. Poznasz podstawowe kontrolki, tworzące interfejs użytkownika i zarządzające sesją, połączysz aplikację z bazą danych i zastosujesz kontrolki do wyświetlenia danych na stronie. Przeczytasz o sprawdzaniu poprawności danych wprowadzanych do formularzy i przypisywaniu ról użytkownikom aplikacji. Znajdziesz tu także informacje o tym, w jaki sposób wykorzystać technologię AJAX do budowy interfejsów użytkownika aplikacji ASP.NET.
* Porównanie technologii służących do tworzenia aplikacji sieciowych
* Konfiguracja bazy MS SQL i instalacja narzędzi programistycznych
* Kontrolki interfejsu użytkownika
* Zarządzanie sesją i plikami cookie
* Komunikacja z bazami danych za pomocą ADO.NET
* Wyświetlanie danych na stronach
* Weryfikacja poprawności danych z formularzy
* Obsługa kont użytkowników
* AJAX w aplikacjach ASP.NET
Spróbuj czegoś nowego. Może w ASP.NET 3.5 odnajdziesz to, czego brakowało Ci w PHP?
Poznaj nowoczesne technologie tworzenia aplikacji sieciowych
* Jak wykorzystywać kontrolki .NET?
* W jaki sposób pobierać i wyświetlać dane z bazy?
* Jak zabezpieczać i personalizować aplikacje?
Wprowadzenie na rynek technologii .NET 2.0 zrewolucjonizowało sposób projektowania i tworzenia aplikacji internetowych. Arsenał programistów wzbogacił się o narzędzia cechujące się niespotykaną dotychczas wydajnością i elastycznością. Potężna biblioteka gotowych komponentów, nowe mechanizmy dostępu do danych, udoskonalone techniki zabezpieczania i personalizowania aplikacji oraz ich uruchamiania w środowisku produkcyjnym -- wszystko to sprawiło, że budowanie nowoczesnych systemów działających w sieci stało się łatwe i szybkie. Jednak wraz ze wzrostem możliwości wzrosła także ilość wiedzy, którą musi przyswoić sobie programista zamierzający korzystać z technologii .NET 2.0.
Książka "ASP.NET 2.0. Projektowanie aplikacji internetowych" to doskonały podręcznik, za którego pomocą opanujesz niesamowite możliwości platformy .NET 2.0 w zakresie budowania systemów sieciowych. Dowiesz się, jak działają aplikacje ASP.NET, jak tworzyć formularze na stronach WWW i korzystać ze standardowych kontrolek udostępnianych przez platformę .NET 2.0. Nauczysz się łączyć aplikacje z bazami danych za pomocą mechanizmu ADO.NET oraz wyświetlać dane na stronach z wykorzystaniem kontrolek. Przeczytasz także o technikach projektowania złożonych aplikacji, o zarządzaniu sesjami, zabezpieczaniu aplikacji, stosowaniu mechanizmów personalizacji oraz wdrażaniu aplikacji w środowisku produkcyjnym.
* Tworzenie formularzy
* Model zdarzeń ASP.NET
* Stosowanie kontrolek serwera .NET
* Obsługa wyjątków
* Zarządzanie wyglądem witryny WWW
* Operacje na danych z wykorzystaniem ADO.NET
* Projektowanie aplikacji .NET
* Uwierzytelnianie użytkowników
* Tworzenie usług sieciowych
* Technologia ASP.NET AJAX
Opanuj do perfekcji zasady wykorzystywania technologii .NET 2.0
w programowaniu aplikacji sieciowych!
Cometari Dedicated Solutions jest firmą technologiczną zlokalizowaną w Krakowie. Posiadamy wiedzę i kompetencje w zakresie projektowania, produkcji i utrzymania
złożonych systemów informatycznych. Nasi inżynierowie posiadają wieloletnie doświadczenie branżowe dzięki czemu do każdego tematu podchodzimy indywidualnie. Kładziemy nacisk na szybkość komunikacji z klientem oraz jakość wytwarzanych rozwiązań. Specjalizujemy się w produkcji zaawansowanych systemów serwerowych jak również lekkich rozwiązań webowych oraz mobilnych. Jeśli potrzebujesz rzetelnego partnera technologicznego jesteśmy do dyspozycji.
Stwórz własną dynamiczną witrynę WWW.
* Zainstaluj i skonfiguruj PHP oraz serwery Apache i MySQL
* Naucz się zasad programowania w PHP
* Połącz aplikację WWW z bazą danych
* Poznaj sekrety zabezpieczania i optymalizowania aplikacji sieciowych
Dynamiczne witryny WWW spotykamy w sieci coraz częściej. Po mechanizmy bazodanowe i technologie skryptowe działające po stronie serwera sięgają już nie tylko twórcy portali i sklepów internetowych, ale także ci, którym jeszcze do niedawna wystarczał zwykły, statyczny HTML. Wśród technologii wykorzystywanych do tworzenia dynamicznych stron WWW od dawna prym wiedzie duet PHP i MySQL, instalowany na serwerach WWW pracujących pod kontrolą Apache’a. Te właśnie narzędzia są najczęściej wykorzystywane do tworzenia galerii, forów dyskusyjnych, giełd ogłoszeniowych i wielu innych aplikacji WWW.
"PHP, MySQL i Apache dla każdego. Wydanie II" to podręcznik dla wszystkich, którzy chcą poznać zasady tworzenia dynamicznych witryn WWW z wykorzystaniem najpopularniejszych obecnie technologii. Książka opisuje proces instalacji i konfiguracji Apache’a, MySQL-a i PHP na serwerze oraz na stacji roboczej, elementy języka PHP oraz zasady stosowania języka SQL. Na praktycznych przykładach przedstawia możliwości wykorzystywania PHP i bazy danych do tworzenia elementów dynamicznych stron WWW oraz całych projektów. Czytając ją, nauczysz się zabezpieczać aplikacje WWW oraz poprawiać wydajność ich działania.
* Instalowanie i konfigurowanie narzędzi
* Programowanie w języku PHP
* Funkcje, tablice i obiekty
* Przetwarzanie danych z formularzy
* Obsługa sesji oraz systemu plików
* Dynamiczne generowanie grafiki
* Integracja PHP z MySQL
* Operacje na danych w tabelach i język SQL
* Tworzenie prostych projektów aplikacji WWW
* Monitorowanie pracy aplikacji
* Mechanizmy bezpieczeństwa i uwierzytelniania użytkowników
* Poprawa wydajności aplikacji
Stwórz aplikacje sieciowe, wykorzystując uniwersalne mechanizmy wymiany danych
* Wykorzystaj technologie COM, SOAP i ActiveX
* Zaimplementuj złożone mechanizmy dostępu do baz danych
* Napisz bezpieczne aplikacje, stosując szyfrowanie przesyłanych danych
* Użyj w aplikacjach języka XML
Aplikacje rozproszone są coraz częściej uruchamiane nie tylko w sieciach lokalnych, ale także w sieci WWW. Wymiana danych w tak rozległym środowisku sieciowym wymagała opracowania technologii, które zapewniałyby jednoznaczność i bezpieczeństwo przesyłanych danych. Na rynku pojawiły się mechanizmy COM i COM+, SOAP oraz kilka innych. Coraz większą popularność zyskuje język XML pozwalający na unifikację struktur danych w aplikacjach. W oparciu o takie mechanizmy powstają rozproszone aplikacje biznesowe i obliczeniowe, zwane usługami sieciowymi lub usługami WWW.
Książka "Delphi. Techniki bazodanowe i internetowe" opisuje możliwości tworzenia aplikacji sieciowych za pomocą środowiska Delphi z wykorzystaniem różnych technologii. Przedstawia kolejno najpopularniejsze z nich oraz możliwości ich zastosowania w projektach realizowanych w Delphi. Zawiera informacje poświęcone przetwarzaniu danych z wykorzystaniem języka XML oraz protokołu SOAP, a także tworzeniu usług WWW opartych na tych technologiach. W książce opisano również zagadnienia związane z korzystaniem z baz danych – systemy lokalne, mechanizmy klient-serwer oraz rozproszone, a także technologie dostępu do danych, od ADO do dbExpress.
* Mechanizmy COM i COM+
* Kontrolki ActiveX
* Architektura aplikacji bazodanowych
* Technologia DataSnap
* Aplikacje internetowe
* Obsługa gniazd w Delphi
* Kryptografia i ochrona przesyłanych danych
* Korzystanie z danych w formacie XML
* Protokół SOAP
* Stosowanie mechanizmów WebSnap
Wykorzystaj najpopularniejsze środowisko programistyczne do stworzenia aplikacji rozproszonych.
Zestaw projektów do natychmiastowego wykorzystania!
* Opisy założeń projektowych
* Instrukcje w kwestii instalacji
* Wskazówki dla programistów
Rosnąca popularność platformy .NET 2.0 widoczna jest także w internecie. Coraz więcej aplikacji internetowych powstaje z wykorzystaniem technologii ASP.NET 2.0. Kontrolki i biblioteki udostępniane programistom zdecydowanie ułatwiają budowanie nawet najbardziej złożonych systemów. Biblioteki .NET 2.0 to także zmieniona architektura witryn, nowe mechanizmy dostępu do danych i znacznie większa szybkość działania aplikacji. Jednak tak ogromna liczba zmian wiąże się z koniecznością opanowania przez programistów nowych możliwości i zasad stosowania ich w praktyce. Jednym z najlepszych sposobów nauki jest analiza gotowych projektów i implementowanie ich we własnych systemach.
Książka "ASP.NET 2.0. Gotowe rozwiązania" to przegląd 12 projektów zrealizowanych z wykorzystaniem tej technologii. Znajdziesz tu omówienie najpopularniejszych elementów witryn i aplikacji internetowych - założenia projektowe, kod źródłowy, wykorzystane w projekcie biblioteki i kontrolki, wskazówki dotyczące instalacji i uruchamiania oraz porady związane z samodzielnym modyfikowaniem omawianego modułu. Każdy z projektów przedstawia różne aspekty stosowania technologii ASP.NET 2.0 i stanowi doskonałe źródło wiedzy.
* Internetowy dziennik i kalendarz
* System wymiany plików
* Serwer chatów
* Mechanizm obsługi ankiet
* CMS
* Blog
* Album fotograficzny
* Witryna pomocy dla klienta
* Sklep internetowy
* System rezerwacji online
* Kartki internetowe
* Baza błędów
Poznaj ASP.NET 2.0 na praktycznych przykładach.
Continuous Integration w konfiguracji urządzeń sieciowychDreamLab
Konfigurowanie urządzeń sieciowych można traktować jak pisanie kodu. To co programiści znają jako continous integration może być wykorzystane również w zarządzaniu siecią, nawet tak dużą jak w Grupie Onet-RAS Polska. Na PLNOG Piotr Pieprzycki przedstawilł model w jakim wprowadzamy w DreamLabie zmiany w naszym środowisku i z jakimi problemami zetknęliśmy się po drodze.
Poznasz wartość biznesową testów, a prelegentka udowodni, że tester jest fajną rolą i potrzebną osobą w organizacji. Potem zastanowimy się nad tym, czy automatyzacja jest zawsze najlepszym rozwiązaniem dla testera.
Jak radzić sobie z projektami o wysokiej złożoności? Jak organizować kod, aby uzyskać wysoki poziom elastyczności rozwiązania? Prezentacja stanowi krótkie wprowadzenie do świata architektury oprogramowania. Omówiona zostanie przykładowa implementacja z wykorzystaniem frameworka ASP .NET Core oraz korzyści płynące z zastosowania wzorców Clean Architecture
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurzeFuture Processing
W dzisiejszych czasach praca z chmurą pozwala niesamowicie zmniejszyć koszta wejścia na rynek z rozwiązaniami typu PoC i MVP oraz w późniejszych etapach rozwoju produktów skalować oprogramowanie według potrzeb. Niestety nie jest to złoty środekt i rozwiązując stare problemy, tworzy nowe. Dlatego, oprócz zapoznania się z technologią serverless, czy Infrastructure as a Code, spróbujemy przede wszystkim stworzyć bezpieczne środowisko, pozwalające na Continuous Deployment.
Dodatkowe materiały: https://www.dropbox.com/sh/tbf1l7omvopv1rg/AACxbDcdOhpzfF7u9SIWSnqUa/Filmiki%20i%20gify%20z%20prezentacji?dl=0
Testowanie aplikacji mobilnych bywa nie lada wyzwaniem. Niejednokrotnie samo urządzenie testowe jest niewystarczające nawet do przetestowania pojedynczej funkcjonalności, a wykonanie niektórych testów zależy od dostępności do programisty lub zewnętrznego oprogramowania. Istnieją jednak narzędzia ułatwiające pracę, o których marzy każdy tester. Mogą one znacząco wpłynąć na poprawę jakości w projekcie jak i zwiększenie ilości i różnorodności testów, które są przeprowadzane. Podczas prezentacji Dorota skupia się na debug screenie Hyperion, który sprawia, że zyskujemy szereg nowych możliwości, od testowania wydajności aplikacji, po podglądanie zapytań i odpowiedzi API.
Efekt potwierdzenia. Samospełniająca się przepowiednia. Iluzja grupowania. Paradoks hazardzisty… i dziesiątki innych, które próżno wymieniać. Homo Sapiens, jako gatunek, choć tak doskonale wierzący w ideały, jest doskonale nieidealny. Błędy (skrzywienia) poznawcze sprawiają, że ufamy sobie bardziej, niż powinniśmy.
Omawiając błędy poznawcze, przytrafiające się w codziennej pracy, Magda starała się przekonać nas do tego, co i tak podejrzewamy — że za błędy możemy odpowiadać tylko przed sobą.
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletkaFuture Processing
Teoria gier wywodzi się z matematycznego opisu gier hazardowych i określa międzyludzkie zachowania w ujęciu graczy, nagród, obranych strategii oraz ryzyka. Dlaczego by więc nie spojrzeć na proces wytwarzania oprogramowania (w tym na pracę testerów) przez pryzmat tej teorii? Jest on w końcu naturalnie związany z zarządzaniem ryzykiem i uwzględnianiem możliwych scenariuszy.
W kilku przykładach znanych z teorii gier, Adrian pokazał, jak teoretyczne koncepcje można odnieść do testowania oprogramowania i jakie lekcje dla naszej codziennej pracy płyną z tej ciekawej gałęzi matematyki.
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...Future Processing
Tworzenie skalowalnych i wydajnych mikroserwisów w rozproszonym środowisku chmurowym wymaga dużej dyscypliny u programisty oraz zastosowania wielu narzędzi ułatwiających to zadanie. Im większy system, tym większej uwagi wymaga. Rozproszone środowisko dodatkowo wymusza korzystanie z zewnętrznych rozwiązań ułatwiających pracę ze stanem systemu, takich jak cache.
Zdarzyło Ci się kiedyś pogubić w tym, gdzie leży która usługa i skąd się wziął błąd w systemie? Czy nie łatwiej byłoby mieć jedno narzędzie, które utrzyma wszystkie usługi pod kontrolą i zapewni niezawodne zarządzanie stanem aplikacji bez konieczności używania zewnętrznych systemów? W czasie swojej prelekcji Krzysiek przedstawił, jak sprawdzony w bojach Azure Service Fabric zapewnia stabilną kontrolę nad systemem mikroserwisów oraz pozwala stworzyć aplikację bez użycia zewnętrznej bazy danych i systemu cachingu. Swoje doświadczenie z Azure Service Fabric nabył w codziennej pracy w dużym projekcie dla korporacji finansowej w FP.
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...Future Processing
Uważa się, że karty graficzne / CUDA to technologia wykorzystywana do wykonywania dużej ilości skomplikowanych obliczeń w implementacji sieci neuronowych. Jakie jeszcze praktyczne problemy można rozwiązać za jej pomocą? Czy w medycynie przydatna jest realistyczna grafika rodem z gier komputerowych? Bazując na wiedzy wyciągniętej z pracy w projekcie Cardiac, prelegenci postarają się odpowiedzieć na te pytania. Celem tego projektu jest stworzenie narzędzia wspomagającego lekarzy w podejmowaniu decyzji i stawianiu diagnozy chorób wieńcowych. Aby to osiągnąć, niezbędne jest pozyskanie geometrii naczyń wieńcowych w wysokiej rozdzielczości, co wymaga wykonania ponad 7 bilionów operacji.
Pozyskana geometria służy do symulacji przepływu krwi, w trakcie której w każdej sekundzie generowane jest 100 GB danych, a te trzeba następnie wizualizować. Wykorzystując odpowiednie algorytmy i współczesne karty graficzne, wszystkie ww. problemy są do rozwiązania.
Zastosowanie technologii Blockchain we współczesnym biznesie staje się coraz bardziej powszechne. W czasie prelekcji Lech wprowadził słuchaczy do podstawowych technologii, kryjących się za prywatnym Blockchainem i zdecentralizowanymi aplikacjami oraz wskazał różnicę pomiędzy stosowanymi obecnie dowodami autoryzującymi bloki. Pokazał również, jak w prosty sposób postawić prywatny Blockchain na platformie Azure z PoA (Proof of Authority) i przedstawił narzędzia, które mogą być zastosowane przy procesie developmentu oprogramowania opartego o Ethereum Dapps (Truffle, Genache, Metamask).
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈XFuture Processing
Jednym z ciekawszych kierunków w Deep Learning jest idea autoenkoderów, czyli sieci neuronowych aproksymujących funkcję F(X)=X. W trakcie wystąpienia dowiecie się, w jaki sposób ten jeden prosty trik pozwala komputerom malować obrazy, tworzyć muzykę, zapobiegać atakom hakerów, diagnozować choroby, odkrywać nowe leki i wstawiać twarz Nicolasa Cage’a do każdego zdjęcia.
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...Future Processing
RFC 679 to specyfikacja standardu autoryzacji o nazwie OAuth2. Jego rozszerzenie stanowi OpenId Connect, którego szczegółowy opis możecie znaleźć pod adresem https://openid.net/developers/specs. Aby zacząć z nim pracę, należałoby dodatkowo dobrze poznać IdentityServer – scentralizowany i modularny magazyn tożsamości umożliwiający łatwe rozszerzanie. Oczywiście można próbować przebrnąć przez stos definicji, by dowiedzieć się, w jaki sposób pracować z tymi technologiami. Jeżeli jednak nie przepadacie za czytaniem suchych dokumentów technicznych, a chcecie dowiedzieć się czegoś więcej o sposobach zabezpieczania aplikacji, koniecznie zobaczcie prelekcję Jarka.
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...Future Processing
Tworzenie skalowalnych i wydajnych mikroserwisów w rozproszonym środowisku chmurowym wymaga dużej dyscypliny u programisty oraz zastosowania wielu narzędzi ułatwiających to zadanie. Im większy system, tym większej uwagi wymaga. Rozproszone środowisko dodatkowo wymusza korzystanie z zewnętrznych rozwiązań ułatwiających pracę ze stanem systemu, takich jak cache.
Zdarzyło Ci się kiedyś pogubić w tym, gdzie leży która usługa i skąd się wziął błąd w systemie? Czy nie łatwiej byłoby mieć jedno narzędzie, które utrzyma wszystkie usługi pod kontrolą i zapewni niezawodne zarządzanie stanem aplikacji bez konieczności używania zewnętrznych systemów?
W czasie swojej prelekcji Krzysiek przedstawi, jak sprawdzony w bojach Azure Service Fabric zapewnia stabilną kontrolę nad systemem mikroserwisów oraz pozwala stworzyć aplikację bez użycia zewnętrznej bazy danych i systemu cachingu. Swoje doświadczenie z Azure Service Fabric nabył w codziennej pracy w dużym projekcie dla korporacji finansowej w Future Processing.
The document discusses monads in .NET, including examples using the Maybe monad to avoid null references. It provides code samples for defining a Maybe monad in C# and using it to chain operations together safely. It also discusses other monads like Task and how monads can increase the representational power of types. Finally, it lists some references for learning more about monads and functional programming concepts in .NET.
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...Future Processing
W dobie technologii rozwijających się niemal wykładniczo łatwo jest zapomnieć o tym, że zarówno wytwórcy, jak i użytkownicy oprogramowania są ludźmi z całym ogromem możliwości, ale jednocześnie z pewnymi ograniczeniami poznawczymi. Projektując rozwiązanie, warto zastanowić się jak sprawić, by użytkownicy chcieli go używać oraz by robili to w sposób jak najbliższy zaprojektowanemu.
Ola podczas swojej prelekcji zapoznała uczestników z kognitywnym (poznawczym) podejściem do testowania aplikacji mobilnych. W tym celu przywołała kilka teorii i zjawisk, pokazujących, jak umysł konstruuje rzeczywistość oraz tym samym uświadamiających, gdzie mogą czaić się błędy w postrzeganiu.
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...Future Processing
Świat technologii mobilnych od pewnego czasu przechodzi rewolucję – odchodzi się od natywnych aplikacji mobilnych. Jak zatem twórcy aplikacji mobilnych odpowiadają na potrzeby rynku? Czy osoby automatyzujące testy aplikacji mobilnych mają do dyspozycji narzędzia gotowe na technologie, takie jak React Native czy Flutter? Czy można uniknąć pisania oddzielnego kodu testów dla Androida i iOS-a?
W czasie wykładu, na przykładzie aplikacji stworzonej w oparciu o technologię React Native oraz narzędzia Detox, Adam przedstawił praktyczną implementację testów end-to-end oraz ich konfigurację z Continuous Integration.
Apache Spark jest narzędziem do przetwarzania danych na dużą skalę. Zastosowanie tego narzędzia w rozproszonym środowisku, w celu przetwarzania dużych zbiorów danych daje ogromne korzyści.
Ale co z szybką pętlą zwrotną podczas opracowywania aplikacji z użyciem Apache Spark? Testowanie aplikacji w klastrze jest niezbędne, lecz nie wydaje się być tym, do czego większość programistów przywykło podczas praktykowania TDD.
Podczas wystąpienia, Łukasz podzielił się z kilkoma wskazówkami, jak można napisać testy jednostkowe oraz integracyjne i jak Docker może być używany do testowania Sparka na lokalnej maszynie.
[QE 2018] Marek Puchalski – Web Application Security Test AutomationFuture Processing
Zachodząca w ostatnich latach transformacja procesów wytwarzania oprogramowania zorientowana jest głównie w kierunku zespołów zwinnych, wykorzystujących podejście DevOps. Następstwem tych zmian jest potrzeba przemyślenia na nowo sposobów zapewniania bezpieczeństwa tworzonych aplikacji.
Krótkie sprinty nie pozostawiają już miejsca na testy manualne. O ile jednak nie znikną one całkowicie, główną osią ochrony projektu stają się testy automatyczne, które zespół projektowy musi zaimplementować i utrzymać. Teraz w kompetencjach developerów i testerów będzie leżeć kwestia znajomości zasad bezpieczeństwa, w kontekście działania ich systemu.
[QE 2018] Rob Lambert – How to Thrive as a Software TesterFuture Processing
Thriving as a Tester is different to just succeeding or just getting by, or just having a decent career. To thrive means to grow vigorously. Wow. To grow vigorously!
In a nutshell, this means to grow personally and pretty quickly; and this is what the job market needs – and of course, this is what your career needs too.
Thriving as a Tester is about adopting a mindset of success and then building the habits to support your goals.
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOpsFuture Processing
Paul Gerrard discusses the future of testing and automation in an environment focused on digital transformation and continuous delivery. He argues that the traditional testing models are no longer relevant and proposes a new model of testing focused on exploration, judgment, and building test models from various sources of knowledge. Under this new model, all testing is seen as exploratory in nature. Gerrard also emphasizes the importance of shifting testing activities left in the development process through early collaboration to help address issues with requirements. Automation is framed as only one part of the overall testing process and trust in automation requires proactive efforts to reduce doubts through addressing underlying issues identified earlier in development.
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
Testy akceptacyjne w pigułce.
1.
2. Klient
0 Korporacja specjalizująca się w tworzeniu
oprogramowania dla użytkowników transportu
publicznego i prywatnego
0 Bogaty portfel projektów, od aplikacji internetowych
po aplikacje na urządzenia mobilne, webowe i
natywne
3. Problem
0Częste release jak poradzić sobie z
zapewnieniem jakości dla kolejnych wersji
oprogramowania ułatwiającego korzystanie z
komunikacji miejskiej w Wielkiej Brytanii?
0Wiele klientów dedykowane rozwiązania pod
wybrane obszary Wielkiej Brytanii o zbliżonej
funkcjonalności
0Wiele aplikacji wachlarz implementacji... od
aplikacji internetowych po aplikacje internetowe
mobilne oraz natywne mobilne
13. Ograniczenia
0 Co z osobami, które nie mają doświadczenia w
programowaniu... Czy oni mogą tworzyć
automatyczne skrypty?
0 Przy dobrej architekturze mogą tworzyć
automatyczne przypadki testowe, skorzystać ze
stworzonych kroków testowych
15. Page Objects
0 Niech nasza strona bedzie zbudowana z
komponentów, obiektów, specjalizujących się w
wybranych funkcjach
HomePage
*SearchPane
- (void) search(String term)
*ResultsPane
- (Collection<SearchResult>)
getResults()
16. Page Factory
0 Zamiast ręcznie wyszukiwać elementy użyj czytelnych anotacji
@FindBy(how = How.NAME, using = "q")
private WebElement searchBox;
0 Skorzystaj z opóźnionego wyszukiwania przy AJAX
ElementLocatorFactory finder = new
AjaxElementLocatorFactory(
this.driver, TIMEOUT);
PageFactory.initElements(finder, this);
17. Loadable Components
0 Niech twoje narzędzie samo zarządza wczytywaniem odpowiednich
PageObjects i sprawdzaniem ich poprawności
@Override
protected void load() {
driver.get("http://code.google.com/p/selenium/issues/en
try");
}
@Override
protected void isLoaded() throws Error {
String url = driver.getCurrentUrl();
assertTrue("Not on the issue entry page: " + url,
url.endsWith("/entry"));
}
18. Data Driven Testing
0 Generuj nowe dane testowe z różnych podzbiorów,
testuj swoje oprogramowanie zbiorami rozmytymi,
nie popadaj w rutynę! Staraj sie tworzyć unikalne
zbiory testowe, by jeszcze bardziej uniezależnić swoje
testy.
19. Wstrzykiwanie kontekstu
0 Korzystaj z narzędzi umożliwiających zarządzanie
kontekstem poprzez wstrzykiwanie. Wstrzykuj
inormacje o środowisku testowym, wstrzykuj
informacje o testowanym serwisie, dane testowe,
reguły tworzenia obiektów, etc.
20. Set up & Tear down
0 Korzystaj z Set up i Tear down do generacji
unikalnych danych testowych i tworzenia
odpowiedniej konfiguracji bazy danych i innych
zależności, dzięki czemu będziesz w stanie tworzyć
testy niezależne, które będziesz w stanie uruchomić
jednocześnie na wielu maszynach.
40. Stabilne Środowisko
0 Przydatne narzędzia
0 PsExec – zdalna kontrola nad maszynami z systemem
Windows z poziomu linii poleceń
0 Ssh – zdalna kontrola nad maszynami z systemem Linux z
poziomu linii poleceń
0 CCleaner – czyszczenie cache i historii aplikacji, przeglądarek,
systemu operacyjnego
0 VMRun – zdalna kontrola nad maszynami VMWare,
restartowanie, przywracanie obrazów, z poziomu linii poleceń
0 Adb – kontrola nad emulatorami Androida z poziomu linii
poleceń
42. Zarządzanie Przypadkami
Testowymi
0 Scenariusze w BDD - Cucumber
Feature: As a user I want to find places and nearby stops
@web @mobile
Scenario Outline: As a user I want to places matching my
choice
Given I navigated to the home page
When I search for <place> from the home page
Then the following list of matched places is returned
| name
| postcode
|
| <first-name>
| <first-postcode>
|
| <second-name>
| <second-postcode>
|
| <third-name>
| <third-postcode>
|
| <fourth-name>
| <fourth-postcode>
|
45. Zarządzanie Konfiguracjami
Testowymi
0 Narzędzia
0 Maven
0 PicoContainer
0 Jenkins
0 Technika
0 Parametryzowanie
0 Wstrzykiwanie
0 Rezultat
0 Możliwość definiowania konfiguracji testowej w pliku XML
0 Możliwość uruchamiania testów dla odpowiedniej konfiguracji z
poziomu lini poleceń
0 Rozszerzalność konfiguracji
0 Definicje uruchomień dla różnych konfiguracji
46. Zarządzanie Harmonogramem
Testów
0 Narzędzia
0 Jenkins
0 Technika
0 Nasłuchiwanie na wykonanie projektu nadrzędnego
0 Wykonywanie z zadaną częstotliwością
0 Rezultat
0 Okresowa kontrola jakości projektu
Pokazać pare przykładowych stron, aplikacji na androida, pokazać funkcjonalnośc aplikacji.
Pokazać przykłady aplikacji tworzonych dla web, web mobile i native z jednego portfela.
Zazanczyć, że każda z warstw jest bardzo ważna i rozpatrywanie ich oddzielnie może powodować problemu we wdrażaniu automatyzacji.
Zaznaczyć, że jak w przypadku warstw problemu również należy implementować skrypty zwracając uwagę na wszystkie trzy czynniki.Zaznaczyć, że dobry software tester powinien być również dobrym developerem, gdyż jakość tworzonych skryptów i ich wdrażanie oraz maintenance zależy od jakości jego kodu.
Pokazać przykładowe testy napisane z wykorzystaniem API WebDriver i Robotium.Wskazać wspólne cechy, wskazać różnice.Opisać proces instalacji narzędzi oraz wykonywania testów.
Wspomnieć, że przykładowe rozwiązanie problemu zostanie przedstawione w dalszej części prezentacji.
Narzędzia są niczym bez zastosowania dobrych praktyk tworzenia skryptów automatyzujacych testowanie.Pokazać przykładowe fragmenty kodu bez wykorzystania technik i dobrych praktyk oraz z ich zastosowaniem.Zaprezentować Page Objects i Page Factory, wspomnieć o Data Driven Testing oraz poinformować, że przykad tej techniki będzie pokazany w późniejszej cześci wykładu.Wskazać argumenty za stosowanie dobrych praktyk, rozszerzalność, czytelność, łatwość zmiany, etc.Przygotowywanie danych testowych pod wilowatkowe wywolanie, korzystanie z set up i tear down, tworzenie wlasnych zbiorow danych testowych, niezaleznych testow.
Wszystki trzy składniki tworzą kompletne środowisko.Środowiska powinny być tworzone pod produkty, na podstawie ich specyfikacji.
Omówić zagadnienie rozproszenia na przykładzie komunikacji Master – Slave.
Rozproszenie z wykorzystaniem WebDriver Grida.Pokazać przy pomocy dwu maszyn wirtualnych jak proste jest zestawienie grida.Pokazać jak proste jest połączenie do grida, wybranie przeglądark i odpalenie testu.Pokazać grid firmowy.Wspomnieć, że na jednym slave może być dostępnych wiele przeglądarek oraz, że możliwy jest wybór na której przeglądarce, wraz z wersją, chcemy uruchomić test, poinformować, że idea będzie przedstawiona przy omawianiu zagadnienia zarządzania.
Jenkins jest masterem... ale troszke innym, gdyż nie rozdziela zadań tak jak w przypadku grida.Pokazać jak instaluje się webdriver na emulatorach i urzadzeniach rzeczywistych.Uświadomić róninice pomiędzy webdriver grid a testowaniem webmobile z użyciem iponedriver, czy androidriver.Wspomnieć, że na jednym slave może być dostępnych wiele emulatorów oraz, że możliwy jest wybór na którym emulatorze chcemy uruchomić test, poinformować, że idea będzie przedstawiona przy omawianiu zagadnienia zarządzania.Wspomnięć, że tak samo jak emulatora do slave mogą zostać przyłączone rzeczywiste urządzenia na których mogą być uruchamiane testy.
Rozproszenie za pomocą jenkins master-slave.Pokazać jak proste jest przyłączenie slave do mastera w jenkinsie.Pokazać jak sie definiuje, który job ma być wykorzystywany na jakim slave.Wskazać różnice tego rozwiązania z innymi.Wspomnieć, że na jednym slave może być dostępnych wiele emulatorów oraz, że możliwy jest wybór na którym emulatorze chcemy uruchomić test, poinformować, że idea będzie przedstawiona przy omawianiu zagadnienia zarządzania.Wspomnięć, że tak samo jak emulatora do slave mogą zostać przyłączone rzeczywiste urządzenia na których mogą być uruchamiane testy.
Omówić co tak na prawdę znaczy zróżnicowane, że chodzi o ilość dostępnych, różnych konfiguracji testowych.Wspomnieć w jaki sposób zdefiniować konfiguracje testowe w środowisku, na podstawie dokumentacji projektu, statystyk użytkowania urządzeń, przeglądarek, systemów operacyjnych, czy rzeczywistych statystyk użytkowania aplikacji.
Wspomnięć o różnych przeglądarkach, wersjach przeglądarek, popularyzcji IE w korporacjach, szczególnie niższych wersji ze względu na politykę bezpieczeństa i podejście do tworzenia dedykowanego oprogramowania.
Wspomieć o dostępnych systemach operacyjnych, o tym, że powinny być dzielone na rodziny (rodzina systemów windows), że nie powinniśmy testować np. przeglądarki chrome dla wielu systemów operacyjnych rodziny windows (sandbox).
Wspomnieć o różnych dostępnych rodzinach urządzeń mobilnych, o tym, że testować możemy emulatory i urządzenia rzeczywiste.Poinformować, że chociaż jest dostępny webdriver dla blackberry, jest on jednak bardzo niestabilny i nie będzie omawiany.Poopowiadać troche o developmencie na BlackBerry.
Wspomnieć o różnych systemach operacyjnych na urządzeniach mobilnych.Wspomnięc również o konieczności testowania różnych rożdzielczości, landscape, portrait.
Zaznaczyć, że prezentacja będzie omawiała jedynie testowanie Native Mobile pod Androidem.Chociaż można testować na urządzeniach, to lepiej żeby byłu zrootowane, tj. z dostępem do ciemnych zakamarków pamięci, by odzyskać wyniki testów.
Wspomnięć o konieczności testowania aplikacji na różnych wersjach androida, back capability.
Co to znaczy środowisko stabilne? Takie, które dla każdego przebiegu testów będzie zachowywało się tak samo, nie będzie podatne na zmiany wynikające z czynników zewnętrznych (aktualizacji), jak i przez same testy (zapisywanie informacji w cache, historii, etc.).
Wspomnięć o napotkanych problemach i w jaki sposób je rozwiązano.Wspomnieć o pre, post stepach w Jenkinsie, o dodatkowym serwerze zarządzającym stanem slave i masterem.
Najważniejsza kwestia.Sama implementacja i środowisko jest nieważne, jeżeli nie będziemy w stanie odpowiednio wszystkim zarządzać, otrzymywać odpowiednie rezultaty.Wspomnieć, że często do automatyzacji nie podchodzi się jak do projektu, pomijając kwestie zarządzania, przez co automatyzacja może zakończyć się klęską.
Co tak na prawdę definiuje gdzie jakie testy zostaną uruchomione.Wspomnieć, że automatyzacja to nie tylko automatyzacja przypadków testowych ale również całego procesu.Pokazać na przykładzie jak łatwo definiować kontekst testu, konfigurację testową na jakiej ma zostać wykonany.
Wspomnieć, że nie zawsze wykonywanie testów po każdej zmianie jest optymalne.Testy akceptacyjne po GUI są relatywnie wolne.Wspomnieć o różnych typach testów aumatycznych, jednostkowe, integracyjne, systemowe, akceptacyjne, w jakich częstotliwościach powinny być wykonywane.Wspomnieć o problemie zatykania kolejek uruchomieniowych przez testy automatyczne, o problemie jednoczesnego uruchomienia, ustalenia dobrego harmonogramu.