5.12.15 QA Lab: тестирование ПО.
Upcoming events: goo.gl/I2gJ4H
Доклад о популярных и/или лучших практиках в веб-автоматизации с точки зрения принципа KISS. Мы быстро пробежимся и оставим след в следующих темах и технологиях: Selenium, обертки вокруг Selenium, xUnit, BDD, длинные и не очень - End to End сценарии, маленькие независимые тесты Unit стиля, простые или красивые репорты, Allure репортинг, PageObject, виджеты-элементы, парадигмы программирования для автоматизации - ООП, процедурное и модульное.
QA Lab: тестирование ПО. Станислав Шмидт: "Self-testing REST APIs with API Fi...GeeksLab Odessa
5.12.15 QA Lab: тестирование программного обеспечения.
Upcoming events: goo.gl/I2gJ4H
Доклад о Play-Swagger, проекте с открытым исходным кодом, разрабатываемом в Zalando с использованием Scala и Play Framework. О том, как использование API First и Swagger позволяет ускорить процесс разработки, упростить взаимодействие команд и повысить качество продукта.
In 2010, I told everyone how to start unit testing Zend Framework applications. In 2011, let’s take this a step further by testing services, work flows and performance. Looking to raise the bar on quality? Let this talk be the push you need to improve your Zend Framework projects.
This document provides an overview of quality assurance for PHP projects. It discusses the importance of revision control, documentation, testing, and automation in QA. Revision control systems like SVN and Git are recommended for team development and tracking code versions. PHP Lint is introduced for syntax checking files from the command line. Documenting code with PHPDoc is suggested. Unit testing forms and models is demonstrated using PHPUnit. Validation, filtering, and sanitizing user input is important for protection against exploits. Overall the document promotes establishing strong quality practices like testing, revision control, and documentation for PHP projects.
Everyone talks about raising the bar on quality of code, but it's always hard to start implementing it when you have no clue where to start. With this talk I'm shooing that there are many levels developers can improve themselves by using the right tools. In this talk I'll go over each tool with examples how to use them against your codebase. A must attend talk for every developer that wants to scale up their quality. Most PHP developers deploy code that does what the customer requested but they don't have a clue about the quality of the product they deliver. Without this knowledge, maintenance can be a hell and very expensive. In this workshop I cover unit testing, code measuring, performance testing, debugging and profiling and give tips and tricks how to continue after this workshop.
Nothing is as frustrated as deploying a new release of your web application to find out functionality you had doesn't work anymore. Of course you have all your unit tests in place and you run them through your CI environment, but nothing prepared you to a failing javascript error or a link that doesn't work anymore. Welcome to User Acceptance testing or UAT. Before you start putting real people in front of your application, create macros and export them as PHPUnit test classes. Then run them in an automated way just like your unit tests and hook them into your CI. In this talk I will show you how easy it is to create Selenium macros that can be converted into PHPUnit scripts and run automatically on different virtual machines (VM's) so you can test all different browsers on a diversity of operating systems.
This workshop is a hands-on training where a real Zend Framework application is used as an example to start improving QA using tools to test, document and perform software metric calculations to indicate where the software can be improved. I also explain the reports produced by a CI system.
The document discusses unit testing Zend Framework applications. It provides an overview of setting up PHPUnit for testing, including creating a phpunit.xml file and TestHelper bootstrap file. It also discusses testing Zend Forms and Models, including writing tests to validate form data and test that models are empty on construction. Code examples are provided for writing tests for a CommentForm and CommentModel class.
The document discusses different strategies for testing persistence in PHP applications, including unit testing with mocks and dependencies, integration testing using DbUnit to insert test data and assert expected results, and techniques for setting up common initial states across tests. It also covers the benefits and downsides of different types of tests, such as layer crossing tests that test interactions across layers but may be more brittle, versus end-to-end black box tests that test through the public API but are harder to debug.
QA Lab: тестирование ПО. Станислав Шмидт: "Self-testing REST APIs with API Fi...GeeksLab Odessa
5.12.15 QA Lab: тестирование программного обеспечения.
Upcoming events: goo.gl/I2gJ4H
Доклад о Play-Swagger, проекте с открытым исходным кодом, разрабатываемом в Zalando с использованием Scala и Play Framework. О том, как использование API First и Swagger позволяет ускорить процесс разработки, упростить взаимодействие команд и повысить качество продукта.
In 2010, I told everyone how to start unit testing Zend Framework applications. In 2011, let’s take this a step further by testing services, work flows and performance. Looking to raise the bar on quality? Let this talk be the push you need to improve your Zend Framework projects.
This document provides an overview of quality assurance for PHP projects. It discusses the importance of revision control, documentation, testing, and automation in QA. Revision control systems like SVN and Git are recommended for team development and tracking code versions. PHP Lint is introduced for syntax checking files from the command line. Documenting code with PHPDoc is suggested. Unit testing forms and models is demonstrated using PHPUnit. Validation, filtering, and sanitizing user input is important for protection against exploits. Overall the document promotes establishing strong quality practices like testing, revision control, and documentation for PHP projects.
Everyone talks about raising the bar on quality of code, but it's always hard to start implementing it when you have no clue where to start. With this talk I'm shooing that there are many levels developers can improve themselves by using the right tools. In this talk I'll go over each tool with examples how to use them against your codebase. A must attend talk for every developer that wants to scale up their quality. Most PHP developers deploy code that does what the customer requested but they don't have a clue about the quality of the product they deliver. Without this knowledge, maintenance can be a hell and very expensive. In this workshop I cover unit testing, code measuring, performance testing, debugging and profiling and give tips and tricks how to continue after this workshop.
Nothing is as frustrated as deploying a new release of your web application to find out functionality you had doesn't work anymore. Of course you have all your unit tests in place and you run them through your CI environment, but nothing prepared you to a failing javascript error or a link that doesn't work anymore. Welcome to User Acceptance testing or UAT. Before you start putting real people in front of your application, create macros and export them as PHPUnit test classes. Then run them in an automated way just like your unit tests and hook them into your CI. In this talk I will show you how easy it is to create Selenium macros that can be converted into PHPUnit scripts and run automatically on different virtual machines (VM's) so you can test all different browsers on a diversity of operating systems.
This workshop is a hands-on training where a real Zend Framework application is used as an example to start improving QA using tools to test, document and perform software metric calculations to indicate where the software can be improved. I also explain the reports produced by a CI system.
The document discusses unit testing Zend Framework applications. It provides an overview of setting up PHPUnit for testing, including creating a phpunit.xml file and TestHelper bootstrap file. It also discusses testing Zend Forms and Models, including writing tests to validate form data and test that models are empty on construction. Code examples are provided for writing tests for a CommentForm and CommentModel class.
The document discusses different strategies for testing persistence in PHP applications, including unit testing with mocks and dependencies, integration testing using DbUnit to insert test data and assert expected results, and techniques for setting up common initial states across tests. It also covers the benefits and downsides of different types of tests, such as layer crossing tests that test interactions across layers but may be more brittle, versus end-to-end black box tests that test through the public API but are harder to debug.
The document discusses the evolution of the author's views on JavaScript and front-end frameworks. It begins by expressing dislike for JavaScript but acknowledging the need for it. Various frameworks like Backbone, Angular, and Ember are explored but found lacking. React is then introduced and praised for its declarative and composable approach similar to HTML. The author comes to understand JSX and how React implements unidirectional data flow to separate the UI from data logic. This allows building full-stack applications with React handling both client and server rendering based on shared intentions, state, and data flow patterns.
The document discusses the importance of unit testing and describes how developers are returning to write good tests after cutting corners during economic difficulties. It provides examples of unit tests being written for an order management system using PHPUnit to test the createOrder method by mocking dependencies and asserting the return value.
This document discusses deploying code directly to production using a "scientist approach" with experiments. It introduces the Scientist framework, which allows refactoring and improving existing code in a live environment without risk. Scientist experiments allow running a control and trials to gradually change a system. Branch by abstraction is described as a technique to make large changes gradually while continuing regular releases. The document provides examples using Scientist experiments to refactor validation logic in a production system.
PHPUnit is a test suite framework that is widely used for PHP projects. It provides improvements over older testing frameworks like SimpleTest, including better command line tools, code coverage reports, assertions, mock objects, and tool chain support. PHPUnit uses annotations and assertions to make tests stricter and more consistent. It supports features like fixtures, mock objects, and code coverage reporting to help test codebases thoroughly. PHPUnit can be run from the command line or a web interface, and integrates with continuous integration servers to run tests automatically.
This document discusses testing untestable code. It begins with an introduction and agenda. It then discusses what constitutes untestable code and some techniques for making code more testable, including dependency injection, manipulating include paths, namespaces, and mocking filesystems. It also discusses strategies for testing procedural code and internal functions. Finally, it introduces the concept of generative programming and generating test code from configurations.
The document discusses Test Driven Development (TDD) using PhpSpec. It begins with an overview of TDD vs Behavior Driven Development (BDD). It then covers key aspects of using PhpSpec including describing object behavior with examples, verifying behavior by running tests, matchers for assertions, describing collaborations and exceptions. The rest of the document demonstrates a TDD workflow using PhpSpec to develop a greeter class and related classes like Person in a step-by-step manner.
Concise and elegant automated tests?
Pain free ( almost ) web UI test stack?
More time for drinking coffee/playing Cuphead/starring into the void* ?
Jump in, we’ll talk Lombok, Vavr, Owner, why you should use ready solutions and how to make tests more concise and readable. Vaper and/or hoverboard required.
The document provides information about jQuery selectors and filters. It discusses using CSS selectors like ID, class, and tag name to select elements. It also covers jQuery filters like :first, :last, :even, :odd to select elements based on their position. Additionally, it mentions content filters like :empty and :contains to select elements based on their content, and attribute filters like [attribute] and [attribute=value] to select elements based on their attributes. Examples are given to demonstrate applying basic, content, and attribute filters to style and modify elements on a student list table.
Unit testing, everyone talks about it and wants to do it but never gets around to actually start testing. Complex spaghetti code and time / budget pressures are often the reasons why nobody dives in and gets started with testing. But when the application breaks, and people loose money or worse it's often too late.
In this talk I will take you on a journey with real examples that will show you how you can set up your tests, how to test complex situations with legacy spaghetti code, test web services, database interactions and how to gradually build a solid foundation to safeguard the core code base and everything around it.
Don't you want to be confident when you walk out the office?
The document provides guidelines for testing Rails applications. It recommends that any code change should be driven by a failed test. Tests should be close to the code being tested and focus on functionality rather than specific code. It discusses testing models, associations, named scopes, validations, controllers, views, helpers, emails, user interactions, Ajax requests, external sites, Rake tasks, file uploads, legacy applications, and more. The goal is to have tests that result in high-quality code through a test-first approach.
Когда тестировать, что тестировать, как тестировать, Как ускорить тесты и упростить их написание. Отказываемся от классических фикстур в пользу динамически создаваемых моделей.
This document discusses quality assurance (QA) for PHP projects. It introduces various QA tools and techniques including syntax checking, documentation, testing, version control and code coverage. Screenshots are provided to illustrate concepts like detecting bugs early, observing behavior and preventing mistakes. The document also includes exercises for attendees to practice setting up version control with Git, running syntax checks with PHP Lint, generating documentation with phpDocumentor, and testing models with PHPUnit.
This talk is primarily for web developers. It's about understanding how to write an API client that is testable and sensible without being more opinionated than necessary.
A Python-centric talk given at PyTennessee 2015 in Nashville, TN.
Introduction to Active Record at MySQL Conference 2007Rabble .
Active Record is an object-relational mapping pattern that allows mapping database tables to object classes. It uses the principle of "convention over configuration" to minimize configuration work. The Active Record pattern is implemented in Ruby on Rails through the ActiveRecord library, which provides methods for CRUD operations and associations between models. It aims to make working with databases and ORM intuitive for developers.
Why Your Test Suite Sucks - PHPCon PL 2015CiaranMcNulty
Many teams adopt TDD attracted by the promise of a more productive workflow, fewer regressions and higher code quality. Sometimes this goes wrong and these benefits do not materialise, despite a healthy-seeming test suite. In this talk we will look at what the common pitfalls of testing are, why teams fall into these traps, and they can dig themselves out.
A way to identify trusted developer strings (aka "literals", which have been defined within the PHP script) which need to be used for HTML templates, SQL strings, CLI strings; and keep those completely separate from user controlled (attacker tainted) strings.
The document discusses software testing techniques like white box testing, black box testing, test-driven development (TDD), behavior-driven development (BDD) and the RSpec testing framework for Ruby. It provides instructions on installing and using RSpec to test controllers, models and views. Code coverage with Rcov is also briefly covered.
Symbiosis of test automation tools. Several tools (graphwalker/selenide/allure/sikuli/browsermob proxy) overview and practical appliance in your Selenium automation project will be presented
The document discusses the evolution of the author's views on JavaScript and front-end frameworks. It begins by expressing dislike for JavaScript but acknowledging the need for it. Various frameworks like Backbone, Angular, and Ember are explored but found lacking. React is then introduced and praised for its declarative and composable approach similar to HTML. The author comes to understand JSX and how React implements unidirectional data flow to separate the UI from data logic. This allows building full-stack applications with React handling both client and server rendering based on shared intentions, state, and data flow patterns.
The document discusses the importance of unit testing and describes how developers are returning to write good tests after cutting corners during economic difficulties. It provides examples of unit tests being written for an order management system using PHPUnit to test the createOrder method by mocking dependencies and asserting the return value.
This document discusses deploying code directly to production using a "scientist approach" with experiments. It introduces the Scientist framework, which allows refactoring and improving existing code in a live environment without risk. Scientist experiments allow running a control and trials to gradually change a system. Branch by abstraction is described as a technique to make large changes gradually while continuing regular releases. The document provides examples using Scientist experiments to refactor validation logic in a production system.
PHPUnit is a test suite framework that is widely used for PHP projects. It provides improvements over older testing frameworks like SimpleTest, including better command line tools, code coverage reports, assertions, mock objects, and tool chain support. PHPUnit uses annotations and assertions to make tests stricter and more consistent. It supports features like fixtures, mock objects, and code coverage reporting to help test codebases thoroughly. PHPUnit can be run from the command line or a web interface, and integrates with continuous integration servers to run tests automatically.
This document discusses testing untestable code. It begins with an introduction and agenda. It then discusses what constitutes untestable code and some techniques for making code more testable, including dependency injection, manipulating include paths, namespaces, and mocking filesystems. It also discusses strategies for testing procedural code and internal functions. Finally, it introduces the concept of generative programming and generating test code from configurations.
The document discusses Test Driven Development (TDD) using PhpSpec. It begins with an overview of TDD vs Behavior Driven Development (BDD). It then covers key aspects of using PhpSpec including describing object behavior with examples, verifying behavior by running tests, matchers for assertions, describing collaborations and exceptions. The rest of the document demonstrates a TDD workflow using PhpSpec to develop a greeter class and related classes like Person in a step-by-step manner.
Concise and elegant automated tests?
Pain free ( almost ) web UI test stack?
More time for drinking coffee/playing Cuphead/starring into the void* ?
Jump in, we’ll talk Lombok, Vavr, Owner, why you should use ready solutions and how to make tests more concise and readable. Vaper and/or hoverboard required.
The document provides information about jQuery selectors and filters. It discusses using CSS selectors like ID, class, and tag name to select elements. It also covers jQuery filters like :first, :last, :even, :odd to select elements based on their position. Additionally, it mentions content filters like :empty and :contains to select elements based on their content, and attribute filters like [attribute] and [attribute=value] to select elements based on their attributes. Examples are given to demonstrate applying basic, content, and attribute filters to style and modify elements on a student list table.
Unit testing, everyone talks about it and wants to do it but never gets around to actually start testing. Complex spaghetti code and time / budget pressures are often the reasons why nobody dives in and gets started with testing. But when the application breaks, and people loose money or worse it's often too late.
In this talk I will take you on a journey with real examples that will show you how you can set up your tests, how to test complex situations with legacy spaghetti code, test web services, database interactions and how to gradually build a solid foundation to safeguard the core code base and everything around it.
Don't you want to be confident when you walk out the office?
The document provides guidelines for testing Rails applications. It recommends that any code change should be driven by a failed test. Tests should be close to the code being tested and focus on functionality rather than specific code. It discusses testing models, associations, named scopes, validations, controllers, views, helpers, emails, user interactions, Ajax requests, external sites, Rake tasks, file uploads, legacy applications, and more. The goal is to have tests that result in high-quality code through a test-first approach.
Когда тестировать, что тестировать, как тестировать, Как ускорить тесты и упростить их написание. Отказываемся от классических фикстур в пользу динамически создаваемых моделей.
This document discusses quality assurance (QA) for PHP projects. It introduces various QA tools and techniques including syntax checking, documentation, testing, version control and code coverage. Screenshots are provided to illustrate concepts like detecting bugs early, observing behavior and preventing mistakes. The document also includes exercises for attendees to practice setting up version control with Git, running syntax checks with PHP Lint, generating documentation with phpDocumentor, and testing models with PHPUnit.
This talk is primarily for web developers. It's about understanding how to write an API client that is testable and sensible without being more opinionated than necessary.
A Python-centric talk given at PyTennessee 2015 in Nashville, TN.
Introduction to Active Record at MySQL Conference 2007Rabble .
Active Record is an object-relational mapping pattern that allows mapping database tables to object classes. It uses the principle of "convention over configuration" to minimize configuration work. The Active Record pattern is implemented in Ruby on Rails through the ActiveRecord library, which provides methods for CRUD operations and associations between models. It aims to make working with databases and ORM intuitive for developers.
Why Your Test Suite Sucks - PHPCon PL 2015CiaranMcNulty
Many teams adopt TDD attracted by the promise of a more productive workflow, fewer regressions and higher code quality. Sometimes this goes wrong and these benefits do not materialise, despite a healthy-seeming test suite. In this talk we will look at what the common pitfalls of testing are, why teams fall into these traps, and they can dig themselves out.
A way to identify trusted developer strings (aka "literals", which have been defined within the PHP script) which need to be used for HTML templates, SQL strings, CLI strings; and keep those completely separate from user controlled (attacker tainted) strings.
The document discusses software testing techniques like white box testing, black box testing, test-driven development (TDD), behavior-driven development (BDD) and the RSpec testing framework for Ruby. It provides instructions on installing and using RSpec to test controllers, models and views. Code coverage with Rcov is also briefly covered.
Symbiosis of test automation tools. Several tools (graphwalker/selenide/allure/sikuli/browsermob proxy) overview and practical appliance in your Selenium automation project will be presented
Selenium Conference 2015 - Mobile Selenium Grid SetupJustin Ison
This document demonstrates how to set up a mobile grid for running automated tests on connected Android devices in 5 minutes. It shows how to programmatically connect devices, launch Appium nodes, run tests in distributed and parallel formats, feed test data into Allure reports, and briefly discusses the code, rake file, spec helper, and spec example. It acknowledges challenges like random disconnects and lack of documentation but provides contact information for support.
- Why Selenide for Web UI Automation
- Demo on how to implement your own Selenide in Python (link to video (in Russian) and github sources attached)
- Benefits and Comparison to other approaches
How To Use Selenium Successfully (Java Edition)Sauce Labs
Dave Haeffner, a Selenium expert and active member of the Selenium project, steps through the why, how, and what of Selenium (the open-source automated web-testing tool for functional testing).
He also discusses how to start from nothing and build out a well-factored, maintainable, resilient, fast and scalable set of tests in Java. These will test your app across all of the browsers you care about, while exercising relevant functionality that matters to your business.
How to cover your web pages with easy tests in Python using easy wrapper over selenium of Selenide style. What are the styles of test coverage? How to start automation on your project? Which tool to choose?
This is a presentation to correspondent workshop (in russian) happened to have place in Kiev, during "Black Tea Testing #8" testing event, organized by Cogniance (cogniance.com) and IT Labs (itlabs.net.ua).
See video (in russian) at https://youtu.be/m1lopvj4nNg
See code src at https://github.com/yashaka/easy-web-tests-python/
The document discusses automation testing for mobile apps using Appium. Appium allows for cross-platform mobile app testing by using the same tests across iOS and Android platforms. It functions by proxying commands to the devices to run tests using technologies like UIAutomation for iOS and UiAutomator for Android. While useful for local testing, Appium has limitations for scaling tests in continuous integration environments, where services like Sauce Labs are better suited.
These are the slides for the talk given at https://www.meetup.com/South-Florida-Software-Testing/events/233980212
Short summary:
KISS (Keep It Simple Stupid) techniques and practices in Web UI Automation on topics:
- selenium webdriver vs wrappers
- XPath vs CSS Selectors + Selene
- End to End vs Atomic tests
- Pretty vs Simple reports
- BDD vs XUnit style of tests
- PageObject vs PageModules (OOP vs Procedural/Modular programming)
In this intro-level session on utilizing jQuery with SharePoint, the focus will be to empower users on how to satisfy some of the common UI changes clients request by writing clean and unobtrusive Javascript with the help of the jQuery library. We'll begin by diving into the different ways that jQuery can be hooked up to SharePoint. We'll talk about CDN versus local copies of the library, as well as linking jQuery via masterpages, custom actions, content editor web parts, and more.
We'll then spend time discussing css selectors, and some of the common patterns and jQuery methods you'll want to familiarize yourself with when targeting page-level elements. After that, the remainder of the presenation will be focused on walking through real-life scenarios of altering the UI with jQuery, such as adding interaction and animation to content query webparts, changing the behavior of links inside a page, and more. The code utilized in the presentation will be made available online after the Conference is completed.
Javascript unit testing, yes we can e bigAndy Peterson
This document discusses test-driven development for JavaScript using ScrewUnit and BlueRidge. It introduces the Carbon Five consulting firm and covers why JavaScript unit testing is important. It then demonstrates how to write behavioral tests using ScrewUnit's BDD style and shows a live example testing a wizard component. Some challenges of JavaScript testing like DOM cleanup and structure are addressed. The document emphasizes that JavaScript testing is possible and can be integrated into the development process.
Writing HTML5 Web Apps using Backbone.js and GAERon Reiter
A walkthrough of how to write a complete HTML5 web app (both front end and back end) using Google App Engine (Python), Backbone.js, Require.js, underscore.js and jQuery.
What do you know about Page Object Pattern? Simon Stewart who first applied it in 2009 using the Selenium WebDriver. Next appear a helpful wrapper for Page Object, such as Page Element, ScreenPlay, LoadabLe Component and etc. If you are interested to see how the interface changed the presentation of the Page Object, look at this presentation
Rails-like JavaScript using CoffeeScript, Backbone.js and JasmineRaimonds Simanovskis
This document discusses using CoffeeScript, Backbone.js, and Jasmine to provide a Rails-like structure for developing rich JavaScript web applications. It provides examples of CoffeeScript code for a Todo model, collection, and view using Backbone.js. It also shows sample Jasmine tests for the Todo model.
The document provides an overview of jQuery including:
- What jQuery is and its main features like DOM manipulation and AJAX
- How to include jQuery in an HTML document and basic usage syntax
- jQuery selectors to find elements and filters to refine selections
- Common jQuery methods for manipulating attributes, events, HTML, CSS, and more
- Examples of using various jQuery functions and concepts
This document discusses testing AngularJS applications. It introduces popular testing frameworks like Jasmine and Karma that can be used to write unit tests and automate testing. Jasmine is typically used for testing AngularJS code and examples are given of writing tests with Jasmine. Karma is presented as a tool to automate testing by running tests in browsers. Protractor is introduced for end-to-end testing of front-end DOM elements. The document argues that front-end testing will become more important and integrated into development as tools continue to improve.
This talk was given at "The KISS Method and PageObjects" meetup (https://goo.gl/2DBuxj).
The talk is about KISS (Keep It Simple Stupid) principle applied to PageObjects design with a comparison to other more classic approaches.
The slides contain both Selenium Webdriver and Selenide examples.
src code for the talk: https://github.com/yashaka/talks/tree/master/kiss-pageobjects
Main instruments used for Web UI test automation.
Drivers: Selenium WebDriver, Sikuli X.
Frameworks: PageFactory, TestNG.
Other tools: Apache Ant, Jenkins CI.
Javascript and first-class citizenry: require.js & node.js
Javascript on web pages is ubiquitous and its problems are legendary. Javascript, seen as a second-class code citizen, is usually hacked together even by seasoned developers. New libraries (jQuery, prototype, backbone, knockout, underscore) and runtime tools (firebug, jasmine) look like they solve many problems - and they do. But they still leave poorly written code as just that. One key problem is that all javascript code lives globally and this results in poorly managed, tested and delivered code.
In this session, I will illustrate that we can treat javascript as a first-class citizen using with require.js and node.js: it can be modular, encapsulated and easily unit tested and added to continuous integration cycle. The dependencies between javascript modules can also be managed and packaged just like in C# and Java. In the end, we can resolve many javascript difficulties at compile time rather than waiting until runtime.
Zepto.js, a jQuery-compatible mobile JavaScript framework in 2KThomas Fuchs
The document discusses the goals and design of Zepto.js, a JavaScript framework for mobile web applications. It aims to have a very small codebase that is easy to use, extends native browser APIs, and avoids non-essential browser implementations. It provides a jQuery-like API but takes advantage of mobile features for better performance on small screens and devices with limited bandwidth.
The document discusses jQuery, a JavaScript library. It provides information on:
- What jQuery is and its main functionality, including DOM scripting, Ajax, user interface effects, and form validation.
- How to get started with jQuery, including downloading the file, adding it to a page via a script tag, and using common selectors like ID, class, and tag name to select elements.
- Common jQuery methods for manipulating elements, like adding and removing classes, traversing the DOM, making GET/POST requests, and loading content via Ajax.
- Ensuring the document is ready before running jQuery code by using the ready function.
So in summary, the document provides an overview
This document discusses using pluggable applications with TurboGears2. It provides an overview of TurboGears2 features like object dispatch, declarative models, and XML template engines. It then demonstrates how to quickly start an application and explore options to add photo galleries, blogs, and wiki pages by plugging in additional applications and customizing templates and models.
This document provides an overview of jQuery, including what it is, why it's useful, how to get started, and some common jQuery syntax. jQuery is a JavaScript library that makes it much easier to use JavaScript on websites. It simplifies tasks like DOM manipulation, event handling, animation, and Ajax. The document explains how to download jQuery, includes some basic jQuery syntax using selectors and methods, and covers various features like effects, HTML/CSS manipulation, events, traversing, and Ajax.
This document provides an overview of jQuery training presented by Narendra Dabhi. It discusses the basic structure of jQuery, creating and manipulating content, working with CSS, creating custom plugins, using AJAX, and animation. Key topics covered include selecting elements, adding/removing content, getting and setting attributes and styles, and common jQuery effects like hide, slide, and fade.
Jython: Python para la plataforma Java (EL2009)Leonardo Soto
This document discusses using Python on the Java platform. It begins by asking if a Java platform can exist without Java, and explores using Python, Ruby, Scala and Groovy instead. It then highlights features of Python like being dynamic, flexible and readable. Jython is introduced as a way to use Python on the Java platform. The document demonstrates using Swing GUIs from Jython and shows a Django web application example. It also discusses testing Python code including doctests and integration tests using HtmlUnit. Finally, it mentions some companies that use Jython and provides resources for learning more.
This document discusses integration testing frameworks like Cucumber, Webrat, and Capybara as well as Selenium. It describes how to build page object models in Selenium to help with test organization, readability, and reuse. Locators, waiting rules, and custom RSpec matchers are also covered. The benefits of test-driven development like better code design, focus, documentation, and avoiding test debt are highlighted.
Similar to QA Lab: тестирование ПО. Яков Крамаренко: "KISS Automation" (20)
DataScience Lab, 13 мая 2017
Коррекция геометрических искажений оптических спутниковых снимков
Алексей Кравченко (Senior Data Scientist at Zoral Labs)
Мы рассмотрим разнообразие существующих спутниковых данных и способов их применения в сельском и лесном хозяйстве, картографировании земной поверхности. Далее сфокусируемся на задаче геометрической коррекции снимков как первом шаге процесса обработки спутниковых данных, включая геопривязку снимков, регистрацию изображений, субпиксельную идентификацию контрольных точек, совмещение каналов. Также расскажем о некоторых интересных и неожиданных подходах к определению ориентации и jitter спутников и построению маски облачности.
Все материалы: http://datascience.in.ua/report2017
DataScience Lab 2017_Kappa Architecture: How to implement a real-time streami...GeeksLab Odessa
DataScience Lab, 13 мая 2017
Kappa Architecture: How to implement a real-time streaming data analytics engine
Juantomás García (Data Solutions Manager at OpenSistemas, Madrid, Spain)
We will have an introduction of what is the kappa architecture vs lambda architecture. We will see how kappa architecture is a good solution to implement solutions in (almost) real time when we need to analyze data in streaming. We will show in a case of real use: how architecture is designed, how pipelines are organized and how data scientists use it. We will review the most used technologies to implement it from apache Kafka + spark using Scala to new tools like apache beam / google dataflow.
Все материалы: http://datascience.in.ua/report2017
Semgrex allows users to extract information from text using patterns that match syntactic dependencies in sentences. It provides examples of patterns that match parts of speech tags and dependency relations. The document also includes links to the Semgrex npm package, a demo application on GitHub, and resources for natural language processing and syntactic dependencies.
DataScience Lab 2017_Обзор методов детекции лиц на изображениеGeeksLab Odessa
DataScience Lab, 13 мая 2017
Обзор методов детекции лиц на изображение
Юрий Пащенко ( Research Engineer, Ring Labs)
В данном докладе мы предлагаем обзор наиболее новых и популярных методов обнаружения лиц, таких как Viola-Jones, Faster-RCNN, MTCCN и прочих. Мы обсудим основные критерии оценки качества алгоритма а также базы, включая FDDB, WIDER, IJB-A.
Все материалы: http://datascience.in.ua/report2017
DataScienceLab2017_Сходство пациентов: вычистка дубликатов и предсказание про...GeeksLab Odessa
DataScience Lab, 13 мая 2017
Сходство пациентов: вычистка дубликатов и предсказание пропущенных диагнозов
Виктор Сарапин (CEO at V.I.Tech)
Как эффективно определять дубликаты на десятках миллионов пациентов, и как определять пропущенные диагнозы и лечебные действия.
Все материалы доступны по ссылке: http://datascience.in.ua/report2017
DataScience Lab, 13 мая 2017
Recent deep learning approaches for speech generation
Дмитрий Белевцов (Techlead at IBDI)
В последние пол года появилось несколько важных моделей на базе глубоких нейронных сетей, способных успешно синтезировать человеческую речь на уровне отдельных сэмплов. Это позволило обойти многие недостатки классических спектральных подходов. В этом докладе я сделаю небольшой обзор архитектур наиболее популярных сетей, таких как Wavenet и SampleRNN.
Все материалы доступны по ссылке: http://datascience.in.ua/report2017
DataScience Lab, 13 мая 2017
Распределенные вычисления: использование BOINC в Data Science
Виталий Кошура (Software Developer at Lohika)
BOINC - это открытое программное обеспечение для распределенных вычислений. Данный доклад освещает использование приложения BOINC в различных областях науки, которые связаны с обработкой огромных массивов данных, на примере текущих активных исследовательских проектов.
Все материалы доступны по ссылке: http://datascience.in.ua/report2017
DataScience Lab, 13 мая 2017
Магистерская программа "Data Science" в УКУ
Орест Купин(Master's Student at UCU)
В этом докладе я расскажу вам о магистерской программе со специализацией в анализе данных в Украинском Католическом Университете. Я расскажу про структуру программы, основные курсы, а также опишу свой опыт как студента УКУ и поговорю об вызовах с которыми мы столкнулись в этом году.
Все материалы доступны по ссылке: http://datascience.in.ua/report2017
DataScienceLab2017_Cервинг моделей, построенных на больших данных с помощью A...GeeksLab Odessa
DataScience Lab, 13 мая 2017
Cервинг моделей, построенных на больших данных с помощью Apache Spark
Степан Пушкарев (GM (Kazan) at Provectus / CTO at Hydrosphere.io)
После подготовки данных и обучения моделей на больших данных с использованием Apache Spark встает вопрос о том, как использовать обученные модели в реальных приложениях. Помимо модели важно не забывать про весь пайплайн пре-процессинга данных, который должен попасть в продакшн в том виде, в котором его спроектировал и реализовал дата саентист. Такие решения, как PMML/PFA, основанные на экспорте/импорте модели и алгоритма имеют очевидные недостатки и ограничения. В данном докладе мы предложим альтернативное решение, которое упрощает процесс использования моделей и пайплайнов в реальных боевых приложениях.
Все материалы доступны по ссылке: http://datascience.in.ua/report2017
DataScienceLab2017_BioVec: Word2Vec в задачах анализа геномных данных и биоин...GeeksLab Odessa
DataScience Lab, 13 мая 2017
BioVec: Word2Vec в задачах анализа геномных данных и биоинформатики
Дмитрий Новицкий (Старший научный сотрудник в ИПММС НАНУ)
Этот доклад посвящен bioVec: применению технологии word2vec в задачах биоинфоматики. Сначала мы напомним как работает Word2vec и аналогичные ему методы Word Embedding. Затем расскажем об особенностях Word2vec в применении к геномным последовательностям-- основному виду данных в биоинформатике. Как обучать bioVec, и применять эту технологию к задачам классификации белков, предсказания их функции и др. В заключении мы продемонстрируем примеры кода для обучения и использования bioVec.
Все материалы доступны по ссылке: http://datascience.in.ua/report2017
DataScienceLab2017_Data Sciences и Big Data в Телекоме_Александр Саенко GeeksLab Odessa
DataScience Lab, 13 мая 2017
Data Sciences и Big Data в Телекоме
Александр Саенко (Software Engineer at SoftServe/CISCO)
Александр расскажет о некоторых интересных примерах использования Big Data и Data Science в Телекоме: оптимизация сотовой сети, улучшение клиентского опыта, модели прогнозирования местоположения мобильных устройств, предотвращения оттока абонентов, обнаружение фрода и других. Рассмотрит основные современные подходы к их решению на основе алгоритмов машинного обучения.
Все материалы доступны по ссылке: http://datascience.in.ua/report2017
DataScienceLab2017_Высокопроизводительные вычислительные возможности для сист...GeeksLab Odessa
DataScience Lab, 13 мая 2017
Высокопроизводительные вычислительные возможности для систем анализа данных
Михаил Федосеев ( Архитектор инфраструктурных решений, LanTec)
В докладе мы поговорим о hardware стороне систем анализа данных для случаев построения приватных облаков или локальных высокопроизводительных вычислительных кластеров. Рассмотрим какие технологии и комплексные решения от компании Hewlett Packard Enterprise позволяют ускорить процесс анализа данных. Это не только зарекомендовавшие в своей области лучшие в своем сегменте сервера линейки HPE Apollo, а так же высокоскоростные сетевые коммутаторы HPE, но и дополнительные вспомогательные элементы решения, такие как мощные графические карты NVIDIA и хост-процессоры Xeon Phi. Так же будет рассмотрен стек HPE Core HPC Software Stack, который позволяет администраторам контролировать использование ресурсов системы.
Все материалы доступны по ссылке: http://datascience.in.ua/report2017
DataScience Lab 2017_Мониторинг модных трендов с помощью глубокого обучения и...GeeksLab Odessa
DataScience Lab, 13 мая 2017
Мониторинг модных трендов с помощью глубокого обучения и TensorFlow, Ольга Романюк (Data Scientist at Eleks)
В течении последних 8 месяцев мы в Eleks работали над системой отслеживания модных трендов, основанной на глубинной остаточной нейронной сети с тождественным отображением. При тренировке сети мы использовали онлайн увеличение объема данных, а также распараллеливание данных по двум картам GPU. Мы создали эту систему с нуля при помощи TensorFlow. В презентации я расскажу о практической стороне проекта, нюансах реализации и подводных камнях, с которыми мы столкнулись во время работы.
Все материалы: http://datascience.in.ua/report2017
DataScience Lab 2017_Кто здесь? Автоматическая разметка спикеров на телефонны...GeeksLab Odessa
DataScience Lab, 13 мая 2017
Кто здесь? Автоматическая разметка спикеров на телефонных разговорах
Юрий Гуц (Machine Learning Engineer, DataRobot)
Автоматическая аннотация спикеров — интересная задача в обработке мультимедиа-данных. Нам нужно ответить на вопрос "Кто говорит когда?", не зная ничего о количестве и личности спикеров, присутствующих на записи. В этом докладе мы рассмотрим работающие методы для аннотации спикеров на телефонных разговорах.
Все материалы: http://datascience.in.ua/report2017
DataScience Lab 2017_From bag of texts to bag of clusters_Терпиль Евгений / П...GeeksLab Odessa
From bag of texts to bag of clusters
Терпиль Евгений / Павел Худан (Data Scientists / NLP Engineer at YouScan)
Мы рассмотрим современные подходы к кластеризации текстов и их визуализации. Начиная от классического K-means на TF-IDF и заканчивая Deep Learning репрезентациями текстов. В качестве практического примера, мы проанализируем набор сообщений из соц. сетей и попробуем найти основные темы обсуждения.
Все материалы: http://datascience.in.ua/report2017
DataScience Lab 2017_Графические вероятностные модели для принятия решений в ...GeeksLab Odessa
Графические вероятностные модели для принятия решений в проектном управлении
Ольга Татаринцева (Data Scientist at Eleks)
Как часто вам приходится принимать решения, используя знания в определенной предметной области? На сколько хороши такие решения? А теперь представьте, что вы собрали знания лучших экспертов в предметной области. Похоже, что ваши решения, основанные на этих знаниях, будут куда более взвешенными, не так ли? Мы будем говорить о системе ProjectHealth, которая была построена на основе опыта лучших экспертов в проектном управлении в компании Eleks. Для реализации поставленной задачи была использована графовая вероятностная модель, а именно байесовская сеть, имплементированная на Python. За время работы над проектом мы прошли шаги от извлечения требований, поиска данных и построения модели с нуля до реализации BI дашборда с возможностью углубиться в детали, доходя до сырых данных. Сейчас ProjectHealth экономит большое количество времени для топ менеджмента и ресурсов компании, так как мониторит состояние бизнеса в малейших деталях ежедневно и делает это как настоящий эксперт.
Все материалы: http://datascience.in.ua/report2017
DataScienceLab2017_Оптимизация гиперпараметров машинного обучения при помощи ...GeeksLab Odessa
DataScienceLab, 13 мая 2017
Оптимизация гиперпараметров машинного обучения при помощи Байесовской оптимизации
Максим Бевза (Research Engineer at Grammarly)
Все алгоритмы машинного обучения нуждаются в настройке (тьюнинге). Часто мы используем Grid Search или Randomized Search или нашу интуицию для подбора гиперпараметров. Байесовская оптимизация поможет нам направить Randomized Search в те места, которые наиболее перспективны, так, чтобы тот же (или лучший) результат мы получили за меньшее количество итераций.
Все материалы: http://datascience.in.ua/report2017
DataScienceLab2017_Как знать всё о покупателях (или почти всё)?_Дарина Перемот GeeksLab Odessa
DataScienceLab, 13 мая 2017
Как знать всё о покупателях (или почти всё)?
Дарина Перемот (ML Engineer at SynergyOne)
Раскроем собственный ответ на вопрос "Чего же хочет покупатель?". Поделимся результатами исследований транзакций и расскажем, есть ли у вас домашний питомец. А так же, продемонстрируем, как машинное обучение уже сейчас помогает узнавать вас ближе.
Все материалы: http://datascience.in.ua/report2017
JS Lab 2017_Mapbox GL: как работают современные интерактивные карты_Владимир ...GeeksLab Odessa
JS Lab 2017, 25 марта
Mapbox GL: как работают современные интерактивные карты
Владимир Агафонкин (Lead JavaScript Engineer at MapBox)
Mapbox GL JS — открытая JS-библиотека для создания современных интерактивных карт на основе WebGL. В разработке более трех лет, она сочетает в себе множество удивительных технологий, сложных алгоритмов и идей для достижения плавной отрисовки тысяч векторных объектов с миллионами точек в реальном времени. В этом докладе вы узнаете, как работает библиотека внутри, и с какими сложностями сталкиваются разработчики современных WebGL-приложений. В докладе: отрисовка шрифтов, триангуляция линий и полигонов, пространственные индексы, определение коллизий, расстановка надписей, кластеризация точек, обрезка фигур, упрощение линий, упаковка спрайтов, компактные бинарные форматы, параллельная обработка данных в браузере, тестирование отрисовки и другие сложности.
Все материалы: http://jslab.in.ua/2017
JS Lab2017_Под микроскопом: блеск и нищета микросервисов на node.js GeeksLab Odessa
JS Lab2017, 25 марта, Одесса
Под микроскопом: блеск и нищета микросервисов на node.js
Илья Климов (CEO at Javascript.Ninja)
"- Что это?
- Микросервис!
- И что он делает?
- Микропадает".
Про микросервисы сейчас не рассуждает только ленивый. Все рассказывают про то, как микросервисы спасают от сложности разработки, снижают время развертывание и повышают общую надежность систем. Этот доклад - про подводные камни, которые ждут оседлавших волну этого хайпа с Node.JS. Мы поговорим про ошибки, которые стоили мне и моей компании бессонных ночей, потерянной прибыли и, временами, веры в могущество микросервисной архитектуры.
Все материалы: http://jslab.in.ua/
Организаторы: http://geekslab.org.ua/
8 Best Automated Android App Testing Tool and Framework in 2024.pdfkalichargn70th171
Regarding mobile operating systems, two major players dominate our thoughts: Android and iPhone. With Android leading the market, software development companies are focused on delivering apps compatible with this OS. Ensuring an app's functionality across various Android devices, OS versions, and hardware specifications is critical, making Android app testing essential.
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
SMS API Integration in Saudi Arabia| Best SMS API ServiceYara Milbes
Discover the benefits and implementation of SMS API integration in the UAE and Middle East. This comprehensive guide covers the importance of SMS messaging APIs, the advantages of bulk SMS APIs, and real-world case studies. Learn how CEQUENS, a leader in communication solutions, can help your business enhance customer engagement and streamline operations with innovative CPaaS, reliable SMS APIs, and omnichannel solutions, including WhatsApp Business. Perfect for businesses seeking to optimize their communication strategies in the digital age.
Most important New features of Oracle 23c for DBAs and Developers. You can get more idea from my youtube channel video from https://youtu.be/XvL5WtaC20A
Top 9 Trends in Cybersecurity for 2024.pptxdevvsandy
Security and risk management (SRM) leaders face disruptions on technological, organizational, and human fronts. Preparation and pragmatic execution are key for dealing with these disruptions and providing the right cybersecurity program.
Malibou Pitch Deck For Its €3M Seed Roundsjcobrien
French start-up Malibou raised a €3 million Seed Round to develop its payroll and human resources
management platform for VSEs and SMEs. The financing round was led by investors Breega, Y Combinator, and FCVC.
UI5con 2024 - Bring Your Own Design SystemPeter Muessig
How do you combine the OpenUI5/SAPUI5 programming model with a design system that makes its controls available as Web Components? Since OpenUI5/SAPUI5 1.120, the framework supports the integration of any Web Components. This makes it possible, for example, to natively embed own Web Components of your design system which are created with Stencil. The integration embeds the Web Components in a way that they can be used naturally in XMLViews, like with standard UI5 controls, and can be bound with data binding. Learn how you can also make use of the Web Components base class in OpenUI5/SAPUI5 to also integrate your Web Components and get inspired by the solution to generate a custom UI5 library providing the Web Components control wrappers for the native ones.
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...XfilesPro
Wondering how X-Sign gained popularity in a quick time span? This eSign functionality of XfilesPro DocuPrime has many advancements to offer for Salesforce users. Explore them now!
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesQuickdice ERP
Explore the seamless transition to e-invoicing with this comprehensive guide tailored for Saudi Arabian businesses. Navigate the process effortlessly with step-by-step instructions designed to streamline implementation and enhance efficiency.
9. public class ExamplePage{
@FindBy(css = "#element")
WebElement element;
}
...
WebDriver driver = new FirefoxDriver();
ExamplePage page = PageFactory.initElements(driver, ExamplePage.class);
(new WebDriverWait(driver, 6)).until(textToBePresentInElement(page.element, ":-*"));
Wait for text
10. public class ExamplePage{
@FindBy(css = "#element")
WebElement element;
}
...
WebDriver driver = new FirefoxDriver();
ExamplePage page = PageFactory.initElements(driver, ExamplePage.class);
(new WebDriverWait(driver, 6)).until(textToBePresentInElement(page.element, ":-*"));
Wait for text
11. public class ExamplePage{
@FindBy(css = "#element")
WebElement element;
}
...
WebDriver driver = new FirefoxDriver();
ExamplePage page = PageFactory.initElements(
driver, ExamplePage.class);
(new WebDriverWait(driver, 6)).until(
textToBePresentInElement(page.element, ":-*"));
12. public class ExamplePage{
@FindBy(css = "#element")
WebElement element;
}
...
WebDriver driver = new FirefoxDriver();
ExamplePage page = PageFactory.initElements(
driver, ExamplePage.class);
(new WebDriverWait(driver, 6)).until(
textToBePresentInElement(page.element, ":-*"));
16. Not mandatory, still possible…
public class ExamplePage{
WebElement element = $(“#element");
}
...
ExamplePage page = new ExamplePage();
page.element.shouldHave(text(":-*"));
18. public class ExamplePage{
@FindBy(css = "#element")
WebElement element;
}
...
WebDriver driver = new FirefoxDriver();
ExamplePage page = PageFactory.initElements(
driver, ExamplePage.class);
(new WebDriverWait(driver, 6)).until(
textToBePresentInElement(page.element, ":-*"));
SelenideElement element = $(“#element");
...
element.shouldHave(text(":-*"));vs
WrappersSelenium
19. public class ExamplePage{
@FindBy(css = "#element")
WebElement element;
}
...
WebDriver driver = new FirefoxDriver();
ExamplePage page = PageFactory.initElements(
driver, ExamplePage.class);
(new WebDriverWait(driver, 6)).until(
textToBePresentInElement(page.element, ":-*"));
SelenideElement element = $(“#element");
...
element.shouldHave(text(":-*"));vs
WrappersSelenium
Test logic
Test logic messed up
with tech details
20. public class ExamplePage{
@FindBy(css = "#element")
WebElement element;
}
...
WebDriver driver = new FirefoxDriver();
ExamplePage page = PageFactory.initElements(
driver, ExamplePage.class);
(new WebDriverWait(driver, 6)).until(
textToBePresentInElement(page.element, ":-*"));
SelenideElement element = $(“#element");
...
element.shouldHave(text(":-*"));vs
WrappersSelenium
Test logic
Test logic messed up
with tech details
21. public class ExamplePage{
@FindBy(css = "#element")
WebElement element;
}
...
WebDriver driver = new FirefoxDriver();
ExamplePage page = PageFactory.initElements(
driver, ExamplePage.class);
(new WebDriverWait(driver, 6)).until(
textToBePresentInElement(page.element, ":-*"));
SelenideElement element = $(“#element");
...
element.shouldHave(text(":-*"));vs
WrappersSelenium
may be SlowerFast
22. public class ExamplePage{
@FindBy(css = "#element")
WebElement element;
}
...
WebDriver driver = new FirefoxDriver();
ExamplePage page = PageFactory.initElements(
driver, ExamplePage.class);
(new WebDriverWait(driver, 6)).until(
textToBePresentInElement(page.element, ":-*"));
SelenideElement element = $(“#element");
...
element.shouldHave(text(":-*"));vs
WrappersSelenium
may be SlowerFast
40. vs
“Unit”/“Feature”E2E
+ more coverage
+ in less time
+ in case of bugs, gives
more complete report
+ easier to identify reason
from the report
=>
+ less time and efforts in
support
+ with less efforts during
POC implementation
+ integration coverage
41. vs
“Unit”/“Feature”E2E
SimpleEasy
+ more coverage
+ in less time
+ in case of bugs, gives
more complete report
+ easier to identify reason
from the report
=>
+ less time and efforts in
support
+ with less efforts during
POC implementation
+ integration coverage
42. vs
“Unit”/“Feature”E2E
SimpleEasy
+ more coverage
+ in less time
+ in case of bugs, gives
more complete report
+ easier to identify reason
from the report
=>
+ less time and efforts in
support
+ with less efforts during
POC implementation
+ integration coverage
43. vs
“Unit”/“Feature”E2E
SimpleEasy
+ more coverage
+ in less time
+ in case of bugs, gives
more complete report
+ easier to identify reason
from the report
=>
+ less time and efforts in
support
+ with less efforts during
POC implementation
+ integration coverage
56. vs
xUnitBDD
1. Write scenarios with steps
2. Define steps
2.1 Introduce state
3. Map steps
4. Configure Runner
5. Run
6. Get pretty reports
1. Write tests with steps
2. Define steps
3. Run
4. Get reports
57. vs
xUnitBDD
1. Write scenarios with steps
2. Define steps
2.1 Introduce state
3. Map steps
4. Configure Runner
5. Run
6. Get pretty reports
1. Write tests with steps
2. Define steps
3. Run
4. Get reports
still pretty with Allure
58. vs
xUnitBDD
Simple & Easy? :)
1. Write scenarios with steps
2. Define steps
2.1 Introduce state
3. Map steps
4. Configure Runner
5. Run
6. Get pretty reports
1. Write tests with steps
2. Define steps
3. Run
4. Get reports
still pretty with Allure
59. vs
xUnitBDD
Simple & Easy? :)
1. Write scenarios with steps
2. Define steps
2.1 Introduce state
3. Map steps
4. Configure Runner
5. Run
6. Get pretty reports
1. Write tests with steps
2. Define steps
3. Run
4. Get reports
still pretty with Allure
60. vs
xUnitBDD
Less coding,
Full power of PL
No vars & return from steps
1. Write tests with steps
2. Define steps
3. Run
4. Get reports
still pretty with Allure
61. vs
xUnitBDD
Less coding,
Full power of PL
No vars & return from steps
1. Write tests with steps
2. Define steps
3. Run
4. Get reports
still pretty with Allure
62. vs
xUnitBDD
Less coding,
Full power of PL
Monkeys-friendly
1. Write tests with steps
2. Define steps
3. Run
4. Get reports
still pretty with Allure
63. vs
xUnitBDD
Less coding,
Full power of PL
Monkeys-friendly
1. Write tests with steps
2. Define steps
3. Run
4. Get reports
still pretty with Allure