SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
Software quality assurance days
19 Международная конференция
по вопросам качества ПО
sqadays.com
Санкт-Петербург. 20–21 мая 2016
Владислав Романенко
Intellectsoft. Минск, Беларусь
Игры с огнём: знакомимся с BDD
и Cucumber фреймворком BDDfire
QA-инженер в Intellectsoft
В тестировании >2 лет,
до этого работал инженером
географических информационных
систем (ГИС)
Тестирую мобильные и веб
приложения
Сертификат ISTQB Foundation level
v.romanenko_
laechoppe@gmail.com
BDD is like Jazz.
There is no
authoritative
definition of what it is
BDD
is a process designed to aid
the management and the delivery
of software development projects
by improving communication
between engineers and business
professionals
w o r k s h o p
1.
1.
BA
QA
dev
2.=> Cucumber format
Given…
When…
Then…
Gherkin:
3.
ruby
=> step definitions
3. => tests execution
- prevent the bug
To do list:
- exhaustive list
of scenarios
To do list:
What’s to avoid?
What’s to avoid?
- Leaking scenarios
Given When Then
A BX
What’s to avoid?
- All is end-to-end
What’s to avoid?
- Fixtures
BDD is not:
Equal to
Functional testing
BDD is not:
Only about
testing
a quick fix,...
BDD is not:
...an investment
BDD is:
SQA DAys-18 talk:
“Behat-trick:...”
w e b d r i v e r
bddfire:
Write your tests,
not framework
Why “Cucumber”?
bddfire:
Capybara
Selenium Webdriver
Docker
RestClient
Poltergeist
Gatling
Appium
Saucelabs
Relish, Yard
Axe accessibility engine
Rubocop
Installation:
$ gem install bddfire
$ bddfire fire_cucumber
$ cd cucumber & bundle install
Predefined steps:
Given I am on “url”
When I click on element having text “foo"
Then The page title is “bar"
Predefined steps definitions:
Then(/^page contains "(.*?)"$/) do |element|
page.should have_css(element)
end
Then(/^I should see "(.*?)"$/) do |text|
page.should have_content text
end
Scenario: Signing in as an existing user
Given I am on "http://test.org/auth"
When I fill in "email" with the text "vlad@r.by"
And I fill in "password" with the text "qwerty"
And I click on element having text "Sign In"
Then The page title is "Homepage"
Hello world scenario:
Natural risks
forest fire
avalanche
Project overview:
Actions
Rescue people
Put out the fire
Warn alpinists
1. Features
Project structure:
Scenario: I can see the quantity of risks in each state
Given I'm a rescue team member
When I observe the table of risks
Then I see the correct quantity of risks by state
Project structure:
When (/^I want to view the details of a Risk/) do
risk_num = rand(1...10).to_s
link = '#/steps/' + risk_num + '/details'
find(:xpath,"(//*[@href='#{link}'])[1]").click
end
2. Step definitions
Project structure:
Capybara.configure do |config|
config.run_server = false
...
config.default_selector = :xpath
config.default_wait_time = 60
end
3. Support code
Project structure:
After do
page.evaluate_script('window.confirm = function()
{ return true; }')
find(:xpath, '//*[@ng-click="vm.logOut()"]').click
end
4. Hooks
Project structure:
default: -p selenium
html: --format --out reports/test.html
api : DRIVER=poltergeist --tags @api
chrome: DRIVER=chrome
pretty: -f pretty
5. Configuration file
Project structure:
source 'http://rubygems.org'
gem 'cucumber'
gem 'capybara'
gem 'bddfire'
gem 'selenium-webdriver'
6. Dependencies
Project structure:
6. Reports / Docs folders
What’s included?
1. Capybara
Acceptance test framework for web
applications.
It simulates how a real user would
interact with the app
Why “Capybara”?
Why “Capybara”?
Webrat => Capybara
What’s included?
1. Capybara
Given(/^I am on homepage$/) do
visit('http://risk.piemont.org/#/login')
end
Given(/^I want to see Risk timeline/) do
find(:xpath,'//*[@ui-sref="risk.timeline"]').click
end
What’s included?
2. Poltergeist
allows runNing Capybara tests on a headless browser
What’s included?
2. Poltergeist
@poltergeist
Scenario: Signing in as an existing user
Given I am on "http://test.org/auth"
When I fill in "email" with the text "vlad@r.by"
And I fill in "password" with the text "qwerty"
And I click on element having text "Sign In"
Then The page title is "Homepage"
What’s included?
3. parallel_tests
What’s included?
4. BrowserStack
Cloud-based cross-browser testing tool
What’s included?
4. BrowserStack
What’s included?
5. Rubocop
Code style checker
based on the community-driven Style Guide
What’s included?
5. Rubocop
What’s included?
6. CukeSniffer
Static analysis tool for the Cucumber.
What’s included?
6. CukeSniffer
What’s included?
7. Yard
A Requirements Documentation Tool
What’s included?
7. Yard
What’s included?
8. RestClient
Simple HTTP and REST client for Ruby
What’s included?
8. RestClient
Given I send a GET request for "<your_uri>"
Given I send a GET/PUT/POST/DELETE request
for "<your_uri>" with the following:
"""
<your_payload>
"""
Then the response should be JSON
What’s included?
9. Axe
What’s included?
9. Axe
What’s included?
10. Gatling
load testing framework
What’s included?
10. Gatling
What’s included?
11. Docker
platform for distributed applications
Summary:
$ gem install bddfire
$ bddfire fire_cucumber
$ cd cucumber & bundle install
Thanks!
Questions?
v.romanenko_
laechoppe@gmail.com

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Implementing Quality on Java projects (Short version)
Implementing Quality on Java projects (Short version)Implementing Quality on Java projects (Short version)
Implementing Quality on Java projects (Short version)
 
An Introduction to Gradle for Java Developers
An Introduction to Gradle for Java DevelopersAn Introduction to Gradle for Java Developers
An Introduction to Gradle for Java Developers
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
 
Groovy on the shell
Groovy on the shellGroovy on the shell
Groovy on the shell
 
Automation testing with Drupal 8
Automation testing with Drupal 8Automation testing with Drupal 8
Automation testing with Drupal 8
 
Buildr - build like you code
Buildr -  build like you codeBuildr -  build like you code
Buildr - build like you code
 
うさぎ組 in G* WorkShop -うさみみの日常-
うさぎ組 in G* WorkShop -うさみみの日常-うさぎ組 in G* WorkShop -うさみみの日常-
うさぎ組 in G* WorkShop -うさみみの日常-
 
Hands on the Gradle
Hands on the GradleHands on the Gradle
Hands on the Gradle
 
GroovyFX - groove JavaFX Gr8Conf EU 2017
GroovyFX - groove JavaFX Gr8Conf EU 2017GroovyFX - groove JavaFX Gr8Conf EU 2017
GroovyFX - groove JavaFX Gr8Conf EU 2017
 
Automated Testing in WordPress, Really?!
Automated Testing in WordPress, Really?!Automated Testing in WordPress, Really?!
Automated Testing in WordPress, Really?!
 
Gearman work queue in php
Gearman work queue in phpGearman work queue in php
Gearman work queue in php
 
PHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding stylePHP & JavaScript & CSS Coding style
PHP & JavaScript & CSS Coding style
 
Groovy and noteworthy
Groovy and noteworthyGroovy and noteworthy
Groovy and noteworthy
 
Ant, Maven and Jenkins
Ant, Maven and JenkinsAnt, Maven and Jenkins
Ant, Maven and Jenkins
 
Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Gradle build tool that rocks with DSL JavaOne India 4th May 2012Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Gradle build tool that rocks with DSL JavaOne India 4th May 2012
 
Gradle Introduction
Gradle IntroductionGradle Introduction
Gradle Introduction
 
Magento and Continuous Integration - Damian Luszczymak
Magento and Continuous Integration - Damian LuszczymakMagento and Continuous Integration - Damian Luszczymak
Magento and Continuous Integration - Damian Luszczymak
 
Использование Docker в CI / Александр Акбашев (HERE Technologies)
Использование Docker в CI / Александр Акбашев (HERE Technologies)Использование Docker в CI / Александр Акбашев (HERE Technologies)
Использование Docker в CI / Александр Акбашев (HERE Technologies)
 
[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...
[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...
[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...
 
Gorush: A push notification server written in Go
Gorush: A push notification server written in GoGorush: A push notification server written in Go
Gorush: A push notification server written in Go
 

Destacado

Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
CEE-SEC(R)
 

Destacado (20)

Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous DeliveryJenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
 
Оценка методологии автоматизации - MBT
Оценка методологии автоматизации - MBTОценка методологии автоматизации - MBT
Оценка методологии автоматизации - MBT
 
Как мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в BadooКак мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в Badoo
 
Тестирование в изоляции: Играем в драконий покер
Тестирование в изоляции: Играем в драконий покерТестирование в изоляции: Играем в драконий покер
Тестирование в изоляции: Играем в драконий покер
 
Полуавтоматизация third-party API
Полуавтоматизация third-party APIПолуавтоматизация third-party API
Полуавтоматизация third-party API
 
GUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test StudioGUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test Studio
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегий
 
Проникновение в Docker с примерами
Проникновение в Docker с примерамиПроникновение в Docker с примерами
Проникновение в Docker с примерами
 
Cross browser testing with browser stack
Cross browser testing with browser stackCross browser testing with browser stack
Cross browser testing with browser stack
 
Как подготовить себе преемника?
Как подготовить себе преемника?Как подготовить себе преемника?
Как подготовить себе преемника?
 
Введение в performance management
Введение в performance managementВведение в performance management
Введение в performance management
 
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
 
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью Selenium
 
Cloud api
Cloud apiCloud api
Cloud api
 
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
BDD JBehave или Cucumber JVM + Appium для эффективной кроссплатформенной авто...
 
Лекция 7. Исключения и менеджеры контекста.
Лекция 7. Исключения и менеджеры контекста.Лекция 7. Исключения и менеджеры контекста.
Лекция 7. Исключения и менеджеры контекста.
 
Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.
 
Лекция 6. Классы 1.
Лекция 6. Классы 1.Лекция 6. Классы 1.
Лекция 6. Классы 1.
 
Лекция 11. Тестирование.
Лекция 11. Тестирование.Лекция 11. Тестирование.
Лекция 11. Тестирование.
 
Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.
 

Similar a Игры с огнём: знакомимся с BDD и Cucumber фреймворком BDDfire

IR Journal (itscholar.codegency.co.in).pdf
IR Journal (itscholar.codegency.co.in).pdfIR Journal (itscholar.codegency.co.in).pdf
IR Journal (itscholar.codegency.co.in).pdf
RahulRoy130127
 
Jboss Exploit
Jboss ExploitJboss Exploit
Jboss Exploit
drkimsky
 

Similar a Игры с огнём: знакомимся с BDD и Cucumber фреймворком BDDfire (20)

Story about module management with angular.js
Story about module management with angular.jsStory about module management with angular.js
Story about module management with angular.js
 
Application Security from the Inside - OWASP
Application Security from the Inside - OWASPApplication Security from the Inside - OWASP
Application Security from the Inside - OWASP
 
Running MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesRunning MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on Kubernetes
 
Denis Zhuchinski Ways of enhancing application security
Denis Zhuchinski Ways of enhancing application securityDenis Zhuchinski Ways of enhancing application security
Denis Zhuchinski Ways of enhancing application security
 
SE2016 Android Denis Zhuchinski "Ways of enhancing application security"
SE2016 Android Denis Zhuchinski "Ways of enhancing application security"SE2016 Android Denis Zhuchinski "Ways of enhancing application security"
SE2016 Android Denis Zhuchinski "Ways of enhancing application security"
 
SPKonferenz 2017 - Introducing SDKs for Microsoft Graph
SPKonferenz 2017 - Introducing SDKs for Microsoft GraphSPKonferenz 2017 - Introducing SDKs for Microsoft Graph
SPKonferenz 2017 - Introducing SDKs for Microsoft Graph
 
What makes me "Grunt"?
What makes me "Grunt"? What makes me "Grunt"?
What makes me "Grunt"?
 
오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread
오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread
오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread
 
PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...
PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...
PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerC...
 
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agentsPVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
 
CloudLand 2023: Rock, Paper, Scissors Cloud Competition - Go vs. Java
CloudLand 2023: Rock, Paper, Scissors Cloud Competition - Go vs. JavaCloudLand 2023: Rock, Paper, Scissors Cloud Competition - Go vs. Java
CloudLand 2023: Rock, Paper, Scissors Cloud Competition - Go vs. Java
 
C# Production Debugging Made Easy
 C# Production Debugging Made Easy C# Production Debugging Made Easy
C# Production Debugging Made Easy
 
IR Journal (itscholar.codegency.co.in).pdf
IR Journal (itscholar.codegency.co.in).pdfIR Journal (itscholar.codegency.co.in).pdf
IR Journal (itscholar.codegency.co.in).pdf
 
不只自動化而且更敏捷的Android開發工具 gradle mopcon
不只自動化而且更敏捷的Android開發工具 gradle mopcon不只自動化而且更敏捷的Android開發工具 gradle mopcon
不只自動化而且更敏捷的Android開發工具 gradle mopcon
 
Node in Production at Aviary
Node in Production at AviaryNode in Production at Aviary
Node in Production at Aviary
 
No drama here - E2E-testing django with playwright
No drama here - E2E-testing django with playwrightNo drama here - E2E-testing django with playwright
No drama here - E2E-testing django with playwright
 
FP - Découverte de Play Framework Scala
FP - Découverte de Play Framework ScalaFP - Découverte de Play Framework Scala
FP - Découverte de Play Framework Scala
 
DevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh CityDevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh City
 
Jboss Exploit
Jboss ExploitJboss Exploit
Jboss Exploit
 
MongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local Austin 2018: MongoDB Ops Manager + KubernetesMongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
 

Más de SQALab

Más de SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Último

Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
negromaestrong
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 

Último (20)

PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Third Battle of Panipat detailed notes.pptx
Third Battle of Panipat detailed notes.pptxThird Battle of Panipat detailed notes.pptx
Third Battle of Panipat detailed notes.pptx
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 

Игры с огнём: знакомимся с BDD и Cucumber фреймворком BDDfire