Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Тестирование как паразработка
Search
Alex Rodionov
December 07, 2013
Technology
0
85
Тестирование как паразработка
Talk from HappyDev'13 about test automation and paradevelopment
Alex Rodionov
December 07, 2013
Tweet
Share
More Decks by Alex Rodionov
See All by Alex Rodionov
Alumnium - Open-source AI-powered Test Automation
p0deje
1
10
Bazel for Ruby
p0deje
0
8
Crystalball: predicting test failures
p0deje
1
7.3k
Тестирование и параразработка
p0deje
0
130
Petri Nets Based Testing
p0deje
0
21
Тестирование на основе сетей Петри
p0deje
2
350
Tester's Anxieties
p0deje
0
130
Как тестируют в Toptal
p0deje
0
270
YARD - больше чем просто документация
p0deje
0
210
Other Decks in Technology
See All in Technology
株式会社EventHub・エンジニア採用資料
eventhub
0
4.3k
ビジネスモデリング道場 目的と背景
masuda220
PRO
9
550
組織貢献をするフリーランスエンジニアという生き方
n_takehata
2
1.3k
2025-02-21 ゆるSRE勉強会 Enhancing SRE Using AI
yoshiiryo1
1
370
一度 Expo の採用を断念したけど、 再度 Expo の導入を検討している話
ichiki1023
1
170
オブザーバビリティの観点でみるAWS / AWS from observability perspective
ymotongpoo
8
1.5k
Oracle Cloud Infrastructure:2025年2月度サービス・アップデート
oracle4engineer
PRO
1
220
OpenID BizDay#17 KYC WG活動報告(法人) / 20250219-BizDay17-KYC-legalidentity
oidfj
0
250
CZII - CryoET Object Identification 参加振り返り・解法共有
tattaka
0
380
インフラをつくるとはどういうことなのか、 あるいはPlatform Engineeringについて
nwiizo
5
2.6k
個人開発から公式機能へ: PlaywrightとRailsをつなげた3年の軌跡
yusukeiwaki
11
3k
関東Kaggler会LT: 人狼コンペとLLM量子化について
nejumi
3
600
Featured
See All Featured
Designing Experiences People Love
moore
140
23k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
10
1.3k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.3k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Code Review Best Practice
trishagee
67
18k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Statistics for Hackers
jakevdp
797
220k
Bash Introduction
62gerente
611
210k
Transcript
ТЕСТИРОВАНИЕ КАК ПАРАРАЗРАБОТКА @p0deje
[email protected]
• 7+ лет в тестировании • Head QA @ Toptal
• Code monkey @ Watir • (ex) Контрибутор @ Mozilla АЛЕКСЕЙ РОДИОНОВ
КАЧЕСТВО
КАЧЕСТВО соответствие реализации заданным характеристикам
КАЧЕСТВО соответствие реализации заданным характеристикам (функциональная спека, дизайн, юзабилити, etc.)
ТЕСТИРОВАНИЕ получение информации о качестве
ЗАЧЕМ?
ЗАЧЕМ? изменение текущих процессов разработки
ЗАЧЕМ? более лучшее качество
ЗАЧЕМ? выше конкурентоспособность
ЗАЧЕМ? увеличение прибыли
PROFIT!
N.B. Иллюстрация принципа “why stack” компании ThoughtWorks
КАК? Верификация и Валидация
ВЕРИФИКАЦИЯ мы сделали то, что требовалось
ВАЛИДАЦИЯ то, что мы сделали, соответствует ожиданиям (клиента, пользователей)
КАК?
КАК? Требования, планы, кейсы, трэкер и т.д.
КАК? Требования, планы, кейсы, трэкер и т.д. Требования, планы, кейсы,
трэкер и т.д.
КАК? Требования, планы, кейсы, трэкер и т.д. Требования, планы, кейсы,
трэкер и т.д. Требования, планы, кейсы, трэкер и т.д.
КАК? Требования, планы, трэкер и т.д. Требования, планы, трэкер и
т.д. Требования, планы, трэкер и т.д.
КАК? Требования, трэкер и т.д. Требования, трэкер и т.д. Требования,
трэкер и т.д.
КАК? Требования и т.д. Требования и т.д. Требования и т.д.
КАК? Как-то так
“РЕГРЕССИОННАЯ СПИРАЛЬ СМЕРТИ”
РУЧНОЕ ТЕСТИРОВАНИЕ НЕ МАСШТАБИРУЕТСЯ
КОЛИЧЕСТВО ➜ КАЧЕСТВО
АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ
УРОВНИ Юнит тесты Интеграционные тесты Системные тесты
ЮНИТ ТЕСТЫ • Методы и классы • В 90% случаев
разработчики
ИНТЕГРАЦИОННЫЕ ТЕСТЫ • Взаимодействие отдельных компонентов • Big bang, bottom-up,
top-down
СИСТЕМНЫЕ ТЕСТЫ • Полностью собранная система • GUI, Exploratory, Ad
hoc, Security, Usability, etc.
Входные данные Тестируемая система Оракул ТЕСТ
ВХОДНЫЕ ДАННЫЕ daysInMonthToString(days)
ВХОДНЫЕ ДАННЫЕ daysInMonthToString(days) daysInMonthToString(10) #=> “10 days”
ВХОДНЫЕ ДАННЫЕ daysInMonthToString(days) daysInMonthToString(10) #=> “10 days” daysInMonthToString(50) #=> Error:
“No more than 31 days”
АНАЛИЗ ПОГРАНИЧНЫХ ЗНАЧЕНИЙ … -1 0 31 32 …
АНАЛИЗ ПОГРАНИЧНЫХ ЗНАЧЕНИЙ … -1 0 31 32 … Неверно
Неверно Верно
АНАЛИЗ ПОГРАНИЧНЫХ ЗНАЧЕНИЙ daysInMonthToString(-1) daysInMonthToString(0) daysInMonthToString(31) daysInMonthToString(32)
КЛАССЫ ЭКВИВАЛЕНТНОСТИ Единственное число - day Множественное число - days
КЛАССЫ ЭКВИВАЛЕНТНОСТИ daysInMonthToString(-1) daysInMonthToString(0) daysInMonthToString(31) daysInMonthToString(32) daysInMonthToString(1)
Входные данные Тестируемая система Оракул ТЕСТ
ОРАКУЛ • Предсказывает поведение системы • Определяет результат теста (pass/fail)
• Джеймс Бах / Майкл Болтон: “FEW HICCUPPS” • Дуг Хоффман: “Таксономия оракулов”
ЧТО ДАЛЬШЕ?
ЧТО ДАЛЬШЕ? Непрерывная интеграция, деплоймент, ATDD, etc.
ЧТО ДАЛЬШЕ? Непрерывная интеграция, деплоймент, ATDD, etc. Оптимизация тестов, инфраструктура,
etc.
ТЕСТИРОВАНИЕ?
ТЕСТИРОВАНИЕ? ПАРАРАЗРАБОТКА!
ПАРАДЕВ Человек в команде разработки, который не является разработчиком
ПАРАДЕВ Человек со множеством скиллов и неограниченный формальными рамками
ПАРАДЕВ Цель тестирования - перестать тестировать
ПАРАДЕВ “Test is dead” - Alberto Savoia
@p0deje
[email protected]
СПАСИБО!