Дело тестера боится: как в опытных руках могут заиграть Java и TestNgIT61
Вячеслав Марков, QA engineer в Weezlabs
Я расскажу о том, как в нашей фирме организовано тестирование бэкенда с помощью тестового фреймворка TestNG и Java. Расскажу о data-driven тестировании и о том, почему его удобно применять. Покажу и опишу разработанную нами структуру типового тестового проекта. Представлю применяемые нами способы сбора и документирования результатов, а так же их анализ в условиях CI.
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...QAFest
- Вы думаете, ваша система автоматизации тестирования работает на полную катушку?
- Сделано всё и задачи автоматизации исчерпаны?
- Вы чувствуете - что-то не сделано и ищите?
Тогда этот доклад для вас и для всех кто интересуется автоматизацией тестирования и её гранями. Долго ли коротко ли системы автоматизированного тестирования приходят к зрелому состоянию, когда она работает годно и результаты релевантные. Подходя к такому состоянию, мы можем обмануться, что всё сделано и «дальше жизни нет», только унылая актуализация авто-тестов. Лучик света, о том, что доводится делать полезного в рамках и вокруг автоматизации тестирования.
В этой презентации я рассказываю не только об автотестах, а о целом комплексе автоматических инструментов для обеспечения качества веб-сервиса на разных этапах разработки.
Как обеспечить проверку формата? Как поддерживать документацию в актуальном виде? Какую архитектуру выбрать для функциональных тестов?
Немного интересного про JSON-схемы и параметризованные тесты, про тестирование API методом чёрного ящика и про выбор исходных данных для тестирования.
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgIT61
Вячеслав Марков, QA engineer в Weezlabs
Я расскажу о том, как в нашей фирме организовано тестирование бэкенда с помощью тестового фреймворка TestNG и Java. Расскажу о data-driven тестировании и о том, почему его удобно применять. Покажу и опишу разработанную нами структуру типового тестового проекта. Представлю применяемые нами способы сбора и документирования результатов, а так же их анализ в условиях CI.
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...QAFest
- Вы думаете, ваша система автоматизации тестирования работает на полную катушку?
- Сделано всё и задачи автоматизации исчерпаны?
- Вы чувствуете - что-то не сделано и ищите?
Тогда этот доклад для вас и для всех кто интересуется автоматизацией тестирования и её гранями. Долго ли коротко ли системы автоматизированного тестирования приходят к зрелому состоянию, когда она работает годно и результаты релевантные. Подходя к такому состоянию, мы можем обмануться, что всё сделано и «дальше жизни нет», только унылая актуализация авто-тестов. Лучик света, о том, что доводится делать полезного в рамках и вокруг автоматизации тестирования.
В этой презентации я рассказываю не только об автотестах, а о целом комплексе автоматических инструментов для обеспечения качества веб-сервиса на разных этапах разработки.
Как обеспечить проверку формата? Как поддерживать документацию в актуальном виде? Какую архитектуру выбрать для функциональных тестов?
Немного интересного про JSON-схемы и параметризованные тесты, про тестирование API методом чёрного ящика и про выбор исходных данных для тестирования.
Презентация Бибичева Андрея "Аналитик в Agile" с конференции SEF-09 (г. Минск). Видео доступно по ссылке: http://video.yandex.ru/users/stas-fomin/view/33/
А текст статьи - http://www.slideshare.net/biBIGine/agile-2029792
Из данной презентации Вы узнаете:
Кто такой Аналитик?
Чем он занимается?
Что он должен знать и уметь?
Почему требования так важны?
Что Вас ждет дальше?
Презентация предназначена для знакомства с ролью Аналитика (или ИТ специалиста, работающего с требованиями) и презентации полного курса «Разработка и управление требований к ПО".
Запись вебинара: http://vimeo.com/61915197
Кто такой аналитик и чем он занимается в компании и в команде разработки. Юлия Закс из компании сКЮ Контур рассказывает о тонкостях работы аналитиком и о том, как понять, что это твоя профессия.
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...Igor Khrol
Когда мы говорим об автоматизации тестирования, чаще всего вспоминается Selenium, Microsoft Coded UI, QTP и другие аналогичные инструменты. Мы хотим воспроизводить действия ручного тестирования с максимальной точностью, чтобы можно было с уверенностью сказать, что тот или иной тест-скрипт повторяет какую-то часть сложившихся на проекте тестов. Когда же тестов становится чуть больше, то мы обнаруживаем, что наши тесты запускаются долго, работают нестабильно. После чего мы начинаем говорить о параллелизации, виртуализации, четырёхслойной архитектуре фреймворка и прочих жутко интересных вещах… Это всё очень хорошо, но главная цель где-то остаётся в стороне – контроль качества нашего продукта.
В своём докладе я попытаюсь слегка задать направление другой альтернативе: отойти от автотестов через пользовательский интерфейс в сторону более низкоуровневых, которые значительно быстрее и стабильнее. Если вас также волнует “переворачивание” пирамиды автоматизации тестирования, то приглашаю присоединиться к обсуждению этой сложной и важной темы.
Presentation from https://heisenbug-piter.ru/en/talks/2018/spb/kkw6oivsoywayacggksmk/
Once upon a time, we got a requirement to finish all testing in 2 days despite the number of tests to run. That number grew, and grew, and grew, and now there are tens of millions of them. So this is a story about building a dam against the never-ending flood which turned out to be not that scary. You are very welcome to join and see it for yourself.
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGDataArt
Дмитрий Лукьяненко, QA Automation рассматривает:
- Selenium IDE;
- Selenium WebDriver;
- Page Obgect Pattern;
- Page Factory Pattern;
- локаторы;
- как построить фреймворк и куда его можно дальше развивать.
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Badoo Development
Доклад о том, как выжить в условиях двух релизов в день, не понижая планку
качества проекта и дать разработчикам и QA-инженерам больше времени на
полезные дела.
Подробно:
Прослушав доклад, вы узнаете:
1. Что НА САМОМ ДЕЛЕ называется непрерывной интеграцией;
2. Кому и зачем нужно переходить на Continious Integration;
3. Почему процесс контроля качества начинается ещё до написания кода;
4. Как программисты учавствуют в процессе тестирования;
5. Как устроен наш поток тестирования с пятью (!) уровнями контроля;
6. Как наши QA-инженеры тестируют задачи до релиза в максимально
реалистичных условиях;
7. Как помогает тестированию плотная интеграция Git, Jira и TeamCity;
8. Зачем нужны более 20 тысяч автоматических тестов и кто их должен
разрабатывать и поддерживать;
9. Чем непрерывно занимаются более 10 агентов-тестировщиков в нашей
TeamCity;
10. Какими средствами мы добились того, чтобы пункты 8 и 9 не превращал
QA-процесс в долгое и унылое действо.
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QAFest
Раньше мы в Badoo фокусировались в основным на ручном тестировании. Получался этакий дедлок мануальной регрессии: не было времени, чтоб писать тесты, потому что много тестировали руками, а много тестировали руками, потому что не было автотестов.
Но мы смогли наладить свою систему автоматизации и процессы, разорвали этот порочный круг и начали писать годные тесты.
В своем докладе я расскажу, как нам удалось сократить ручную регрессию с 90% до 30% рабочего времени, при этом сохранить достойный уровень качества и профессионально вырасти!
Как построить свой фреймворк для автотестов?Dmitry Buzdin
Мы пройдемся по всем основным блокам построения тестового фреймворка и тому, как они связаны между собой. Вы научитесь собирать свое решение по автоматизации из библиотек с открытым кодом и делать так, чтобы они дополняли друг друга.
Svyatoslav Login "How to test authentication and authorization for security"Fwdays
The login page is the most important page on the site since with the help of it we understand to give access to this or that user. Most often, hackers crack this particular functionality, in order to get access to the accounts, especially access to admin accounting. Using the Burp Suite tool and beef, I'll show you how you can check it out.
3. ...и про технологии
У нас было 2 веб-сайта, 4 разных мобильных платформы
и целое море различных версий мобильных приложений,
а также версия для мобильных браузеров и приложения в
социальных сетях. Не то что бы все это было
категорически необходимо для бизнеса, но если уж
начали делать социальную сеть, то становится трудно
остановиться. Единственное, что вызывало у меня
опасения - это релизы вечером в пятницу. Нет ничего
более беспомощного, безответственного и испорченного,
чем пятничный релиз. Я знал, что рано или поздно мы
перейдем и эту грань.
“
”
4. Что такое QaApi?
QaApi - это API (Application Programming
Interface) для отдела QA (Quality Assurance).
Это API предназначено для изменения
внутреннего состояния системы в процессе
ручного или автоматизированного
тестирования приложения.
5. Что такое QaApi?
QaApi - это API (Application Programming
Interface) для отдела QA (Quality Assurance).
Это API предназначено для изменения
внутреннего состояния системы в процессе
ручного или автоматизированного
тестирования приложения.
БОЖЕ МОЙ!
ДА ЧТО Ж ТАК
СКУЧНО-ТО, А?
10. Пользователи, зарегистрированные
на Badoo более месяца назад, в день
своего рождения получают в подарок
100 кредитов*.
Типичный тест-кейс
“
”
* Пример выдуманный! :)
11. Как будем тестировать?
● регистрируемся
● ждем месяц???
● ждем ещё...
● … до дня рождения?
● получаем кредиты
● PROFIT?
13. Эволюция обращений к программистам:
“Подкрутите мне в базе…”
1. “А сделайте мне, чтоб дата
регистрации была месяц назад?”
2. “А скажите, где в базе хранится дата
регистрации, я вручную изменю?”
3. “А давайте сделаем интерфейс, где
каждый сможет менять дату?”
4. “А запилите нам API?”
Все любят короткие пути!
15. Calabash
Система тестирования
мобильных приложений,
основанная на Ruby и Cucumber.
Автотесты
Selenium
Мощный инструмент
автоматизации
браузеров.
Эти инструменты легко интегрировать с API, но очень сложно - с веб-интерфейсом:
Интеграционные
тесты
Тестирование клиент-серверного
взаимодействия.
16. Наша идея вам подойдет, если:
● ваше приложение имеет
серверную часть
QaApi не поможет тестировщикам
оффлайн-игры на телефоне
● ваше приложение хранит
состояние между запросами
частный случай ‒ в системе
регистрируются пользователи
● вы уже как минимум на 3 этапе
интерфейс уже есть, пора пилить API
17. Что за API такое?
Лапа̀ роскопи́ я (др.-греч. λαπάρα — пах,
чрево + др.-греч. σκοπέω — смотрю) —
современный метод хирургии, в котором
операции на внутренних органах
проводят через небольшие (обычно
0,5—1,5 см) отверстия, в то время как
при традиционной хирургии требуются
большие разрезы.
“
”QaApi - это то самое
небольшое отверстие, через
которое тестировщики смогут
вмешиваться в деятельность
живой (“боевой”) системы.
18. Как это работает
дай мне нового юзера
да пожалуйста!
добавь ему фото
нет проблем!
и дату регистрации смени
как скажешь, хозяин!
registerNewUser(age=25)
{success:true, user_id:123, name:Alex, login:test123, passwd:Aj8SD8}
addPhoto(count=1)
{success: true}
setRegistrationDate(date=2014-02-12)
{success: true}
19. Что оно должно уметь?
Зависит от вашего проекта. У каждого - своё API.
Наше API умеет:
● регистрировать, изменять и удалять юзеров
● голосовать за пользователей
● отправлять сообщения
● включать/выключать платные услуги
● добавлять “кредиты”
● загружать и “модерировать” фотки
● давать информацию (например свойства юзера)
● и всякое другое
20. Куда идти?
Отдел QA Отдел разработки
Запилите мне API, тысяча чертей! Okay
Конечно, к разработчикам! Можно так:
22. ● все функции в одном месте
● простота протокола
● страничка помощи
● система авторизации
● управление тестовыми юзерами
● безопасность “боевых” данных
Что мы хотим получить?
25. ✓ все функции в одном месте
✓ простота протокола
● страничка помощи
● система авторизации
● управление тестовыми юзерами
● безопасность “боевых” данных
Что у нас есть?
26. Страница помощи
В QaApi есть страничка помощи, где перечислены все имеющиеся методы
(описание, возможные аргументы и тип возвращаемого значения).
Эта страничка генерируется автоматически из исходного кода QaApi.
27. Ручной режим
Интеграция с существующей системой доступа
для сотрудников, с возможностью управлять
полномочиями.
Авторизация
Автоматизация
Сущестует несколько простых подходов:
1. Секретный ключ в HTTP-заголовке
2. HTTP Basic Auth
3. Логин-пароль в параметрах запроса
GET /methodName?foo=bar HTTP/1.1
Host: qaapi.example.com
Connection: keep-alive
X-Secret-Header : abcdEfg76kGkljhJHk92
GET /methodName?foo=bar HTTP/1.1
Host: qaapi.example.com
Connection: keep-alive
Authorization : Basic cdEfа3GkljhJHk54==
GET /methodName? login=test&pass=123 HTTP/1.1
Host: qaapi.example.com
Connection: keep-alive
28. ✓ все функции в одном месте
✓ простота протокола
✓ страничка помощи
✓ система авторизации
● управление тестовыми юзерами
● безопасность “боевых” данных
Что у нас есть?
30. Создавать новых юзеров
+ юзер “чистый”
+ его никто не использует
+ можно делать что хотим и не чистить
− быстро плодятся
− нужно готовить к тесту
Где их взять?
Использовать заранее созданных
+ юзер готов к тесту
+ юзеров немного
− нужно чистить
− может использоваться кем-то ещё
− другие могли не почистить
VS
31. Наше решение - пул юзеров
Цикл жизни тестового юзера в пуле
Ждет в пуле Используется
Очистка “Использован”
Создан Может быть изменен
в процессе теста
Не может быть
использован
повторно до очистки
registerUser()
32. Регистрация юзеров
Регистрируем Ж, 25 лет,
Москва
Есть такой
юзер?
Создать нового юзера
Добавить в пулВзять из пула
нет
да
Добавлен с
параметрами
Ж, 25, Москва
registerUser()
Указываем только
существенные для
нас параметры
Создание новых юзеров - только тогда, когда подходящего нет в пуле.
33. Так как пользователь “новый”, необходимо
подготовить его к тесту, например:
● сменить дату регистрации
● добавить фото, сообщения и т.д.
● добавить и подтвердить номер телефона
● и т. д.
Все это делается с помощью QaApi
Подготовка юзеров
34. Подготовка юзера с помощью QaApi
Схема подготовки юзера
http://qaapi.example.com/registerUser?gender=F&age=25&location=Moscow
# {"success": true, "user_id": 123, "login": "testuser123", "passwd": "Qa6G9v"}
http://qaapi.example.com/uploadPhotos?user_id=123&count=1
# {"success": true}
http://qaapi.example.com/setRegistrationDate?user_id=123&date=2014-02-12
# {"success": true}
36. Наш путь:
● очистка - набор предопределенных шагов
● на каждое “сохраняемое состояние” - свой шаг очистки
(примеры: сообщения, отзывы, покупки…)
● юзер считается “очищенным” и готовым к использованию, если
успешно отработали все шаги очистки
Идеального решения нет
Шаги очистки будут добавлять программисты. Они
могут забыть добавить новый шаг при добавлении
новой фичи. Следить за этим придется вам.
37. ✓ все функции в одном месте
✓ простота протокола
✓ страничка помощи
✓ система авторизации
✓ управление тестовыми юзерами
● безопасность “боевых” данных
Что у нас есть?
39. Методы QaApi работают только с тестовыми
пользователями.
Это не может защитить вас от намеренного злоупотребления, но
помогает защититься от таких ошибок, как опечатка в user id.
В качестве дополнительной защиты вы можете реализовать
различные права доступа к различным методам QaApi.
Живые пользователи
41. ✓ все функции в одном месте
✓ простота протокола
✓ страничка помощи
✓ система авторизации
✓ управление тестовыми юзерами
✓ безопасность “боевых” данных
Что у нас есть?
44. A/B - тестирование - это инструмент для оценки эффективности какого-либо нововведения.
A/B-тестирование
Выберешь синюю пилюлю – и эта история
закончится. Ты проснешься в своей постели и
будешь верить в то, во что тебе хочется
верить. Выберешь красную – попадешь в
Страну Чудес, и я покажу тебе, насколько
глубока кроличья нора ...
“
”Где взять пользователя, который точно
пойдет за белым кроликом??
Поручите это QaApi!
45. Выявление регрессий в новых версиях мобильных клиентов
● клиент с помощью QaApi проставляет отметку о том, что выполняется определенный тестовый сценарий
● система осуществляет сбор логов взаимодействия клиента и сервера
● производится автоматическая обработка этих логов
● строятся графики по количеству команд в каждом тестовом сценарии
Статистика команд
WTF?
46. Мы внедрили QaApi и стали более лучше
жить!
Почему вам стоит начать делать техническое задание
уже завтра?
● меньше рутины
● проще тестировать сложные кейсы
● автотесты - на новый уровень
● разработчики - ваши друзья!
Что в итоге?