SlideShare a Scribd company logo
1 of 76
Download to read offline
Communication
1/9
Cucumber
cukes.info
Maintainability
2/9
Page object pattern
code.google.com/p/selenium/wiki/PageObjects
github.com/cheezy/page-object
Browser automation
3/9
Selenium
seleniumhq.org
rubygems.org/gems/selenium-webdriver
Combinatorial explosion
browser / operating system / version
4/9
Sauce Labs
saucelabs.com
Visibility / transparency
5/9
Code: Git, Gerrit, GitHub
git-scm.com
gerrit.wikimedia.org
github.com/wikimedia
Communication:
mailing lists
lists.wikimedia.org
lists.wikimedia.org/mailman/listinfo/qa
Bug tracker: Bugzilla
bugzilla.wikimedia.org
Continuous integration:
Jenkins
integration.wikimedia.org
wmf.ci.cloudbees.com
Test results: Sauce Labs
saucelabs.com
Code reuse
6/9
mediawiki-selenium
Ruby gem
github.com/wikimedia/mediawiki-selenium
Speed
7/9
Not there yet :(
github.com/grosser/parallel_tests
Help wanted!
8/9
volunteering
internship
lists.wikimedia.org/mailman/listinfo/qa
Works at my machine!
9/9
Jenkins
wmf.ci.cloudbees.com
MediaWiki-Vagrant
Git, VirtualBox, Vagrant
mediawiki.org/wiki/Mediawiki-Vagrant
Ruby Version Manager
(RVM)
Ruby versions and gemsets
rvm.io
Bundler
bundler.io
Why Ruby!?
ruby-lang.org
10/9
Communication: Cucumber
Maintainability: page-object gem
Browser automation: selenium-webdriver gem
Combinatorial explosion: Sauce Labs
Code reuse: mediawiki-selenium gem
(Speed: parallel_tests gem)
Help wanted: Ruby
Works at my machine: RVM, Bundler gem
How to fail at test
automation?
11/9
Contact
lists.wikimedia.org/mailman/listinfo/qa
filipin.eu
business cards
How software that runs Wikipedia is tested

More Related Content

What's hot (7)

JReleaser - Releasing at the speed of light
JReleaser - Releasing at the speed of lightJReleaser - Releasing at the speed of light
JReleaser - Releasing at the speed of light
 
Android Testing by Rebootd v2
Android Testing by Rebootd v2Android Testing by Rebootd v2
Android Testing by Rebootd v2
 
Introducing Git to your FTP workflow
Introducing Git to your FTP workflow Introducing Git to your FTP workflow
Introducing Git to your FTP workflow
 
Github
GithubGithub
Github
 
Java-Vienna: Spring Boot 1.x Overview/Intro by Dominik Dorn
Java-Vienna: Spring Boot 1.x Overview/Intro by Dominik DornJava-Vienna: Spring Boot 1.x Overview/Intro by Dominik Dorn
Java-Vienna: Spring Boot 1.x Overview/Intro by Dominik Dorn
 
Adding Source Control to Your Life
Adding Source Control to Your LifeAdding Source Control to Your Life
Adding Source Control to Your Life
 
componentDidCatch and Error Boundaries in React v16+
componentDidCatch and Error Boundaries in React v16+componentDidCatch and Error Boundaries in React v16+
componentDidCatch and Error Boundaries in React v16+
 

Viewers also liked

Viewers also liked (20)

Excel всё подскажет или "Вот сколько времени понадобится на тестирование" (ма...
Excel всё подскажет или "Вот сколько времени понадобится на тестирование" (ма...Excel всё подскажет или "Вот сколько времени понадобится на тестирование" (ма...
Excel всё подскажет или "Вот сколько времени понадобится на тестирование" (ма...
 
Tips and Tricks в тестировании поиска
Tips and Tricks в тестировании поиска Tips and Tricks в тестировании поиска
Tips and Tricks в тестировании поиска
 
Команды из разных стран - секреты успешного тестирования и дипломатии
Команды из разных стран - секреты успешного тестирования и дипломатииКоманды из разных стран - секреты успешного тестирования и дипломатии
Команды из разных стран - секреты успешного тестирования и дипломатии
 
Тестировщик на территории заказчика
Тестировщик на территории заказчика Тестировщик на территории заказчика
Тестировщик на территории заказчика
 
Рефакторинг - на позитиве
Рефакторинг - на позитивеРефакторинг - на позитиве
Рефакторинг - на позитиве
 
Why I do not like to be a tester in Agile project?
Why I do not like to be a tester in Agile project?Why I do not like to be a tester in Agile project?
Why I do not like to be a tester in Agile project?
 
Особенности тестирования NoSQL приложений
Особенности тестирования NoSQL приложенийОсобенности тестирования NoSQL приложений
Особенности тестирования NoSQL приложений
 
How to manoeuvre as test/QA responsible in agile teams to get the "right" pro...
How to manoeuvre as test/QA responsible in agile teams to get the "right" pro...How to manoeuvre as test/QA responsible in agile teams to get the "right" pro...
How to manoeuvre as test/QA responsible in agile teams to get the "right" pro...
 
The evolution of QA at JUST EAT
The evolution of QA at JUST EATThe evolution of QA at JUST EAT
The evolution of QA at JUST EAT
 
Работа с подчиненными. 4 скрытых типовых проблем поведения менеджера
Работа с подчиненными. 4 скрытых типовых проблем поведения менеджераРабота с подчиненными. 4 скрытых типовых проблем поведения менеджера
Работа с подчиненными. 4 скрытых типовых проблем поведения менеджера
 
Тестирование крупных проектов командой из одного тестировщика
Тестирование крупных проектов командой из одного тестировщика Тестирование крупных проектов командой из одного тестировщика
Тестирование крупных проектов командой из одного тестировщика
 
Passionate Partnering, for Testers
Passionate Partnering, for TestersPassionate Partnering, for Testers
Passionate Partnering, for Testers
 
Приключение тестировщика на фрилансе
Приключение тестировщика на фрилансе Приключение тестировщика на фрилансе
Приключение тестировщика на фрилансе
 
От архитектуры приложения до приемочных автоматических тестов, или тестирован...
От архитектуры приложения до приемочных автоматических тестов, или тестирован...От архитектуры приложения до приемочных автоматических тестов, или тестирован...
От архитектуры приложения до приемочных автоматических тестов, или тестирован...
 
Reversed Test Pyramid - Testing and dealing with Legacy Code
Reversed Test Pyramid - Testing and dealing with Legacy CodeReversed Test Pyramid - Testing and dealing with Legacy Code
Reversed Test Pyramid - Testing and dealing with Legacy Code
 
Нагрузочное тестирования в сжатые сроки (мастер-класс)
Нагрузочное тестирования в сжатые сроки (мастер-класс)Нагрузочное тестирования в сжатые сроки (мастер-класс)
Нагрузочное тестирования в сжатые сроки (мастер-класс)
 
Шаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проекте
 
Оракулы в тестировании
Оракулы в тестированииОракулы в тестировании
Оракулы в тестировании
 
Software development outsourcing via the eyes of purchacer
Software development outsourcing via the eyes of purchacer Software development outsourcing via the eyes of purchacer
Software development outsourcing via the eyes of purchacer
 
Тестирование данных с помощью Data Quality Services (MS SQL 12)
Тестирование данных с помощью Data Quality Services (MS SQL 12)Тестирование данных с помощью Data Quality Services (MS SQL 12)
Тестирование данных с помощью Data Quality Services (MS SQL 12)
 

Similar to How software that runs Wikipedia is tested

Developing modern java web applications with java ee 7 and angular js
Developing modern java web applications with java ee 7 and angular jsDeveloping modern java web applications with java ee 7 and angular js
Developing modern java web applications with java ee 7 and angular js
Shekhar Gulati
 

Similar to How software that runs Wikipedia is tested (20)

Hacking Selenium @ JSConf
Hacking Selenium @ JSConfHacking Selenium @ JSConf
Hacking Selenium @ JSConf
 
IAC_PuppetCampLondon_2016
IAC_PuppetCampLondon_2016IAC_PuppetCampLondon_2016
IAC_PuppetCampLondon_2016
 
Write microservice in golang
Write microservice in golangWrite microservice in golang
Write microservice in golang
 
Testing Toolbox
Testing ToolboxTesting Toolbox
Testing Toolbox
 
DWX 2022 - DevSecOps mit GitHub
DWX 2022 - DevSecOps mit GitHubDWX 2022 - DevSecOps mit GitHub
DWX 2022 - DevSecOps mit GitHub
 
JDD 2017: 7 things which you should care about before release your code to pr...
JDD 2017: 7 things which you should care about before release your code to pr...JDD 2017: 7 things which you should care about before release your code to pr...
JDD 2017: 7 things which you should care about before release your code to pr...
 
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в KubernetesDevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
 
drone continuous Integration
drone continuous Integrationdrone continuous Integration
drone continuous Integration
 
Measuring web performance
Measuring web performanceMeasuring web performance
Measuring web performance
 
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie..."How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
"How to Use Bazel to Manage Monorepos: The Grammarly Front-End Team’s Experie...
 
Automated Web Testing With Selenium
Automated Web Testing With SeleniumAutomated Web Testing With Selenium
Automated Web Testing With Selenium
 
Versions
VersionsVersions
Versions
 
Acceptance testing with Geb
Acceptance testing with GebAcceptance testing with Geb
Acceptance testing with Geb
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopment
 
Testing In Java
Testing In JavaTesting In Java
Testing In Java
 
Testing In Java4278
Testing In Java4278Testing In Java4278
Testing In Java4278
 
Pseudo-versions, moving to Go1.13 and later versions
Pseudo-versions, moving to Go1.13 and later versionsPseudo-versions, moving to Go1.13 and later versions
Pseudo-versions, moving to Go1.13 and later versions
 
Riding on rails3 with full stack of gems
Riding on rails3 with full stack of gemsRiding on rails3 with full stack of gems
Riding on rails3 with full stack of gems
 
Developing modern java web applications with java ee 7 and angular js
Developing modern java web applications with java ee 7 and angular jsDeveloping modern java web applications with java ee 7 and angular js
Developing modern java web applications with java ee 7 and angular js
 
Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
 

More from SQALab

More from 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 или как тест-менеджеру перекроить внут...
 

Recently uploaded

Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
MateoGardella
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdf
SanaAli374401
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
heathfieldcps1
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
Chris Hunter
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
PECB
 

Recently uploaded (20)

Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
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
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdf
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
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
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 

How software that runs Wikipedia is tested