![](https://habrastorage.org/webt/xy/lc/p3/xylcp34rcwjanlboqhkukpjohc4.jpeg)
25 февраля в московском офисе Mail.ru Group прошел второй митап сообщества тестировщиков MosQA. Поговорили о том, как в Badoo разработчики тоже начали писать тесты, поделились универсальной задачей для собеседования на Python, а ребята из ОК рассказали, с помощью чего они замеряют производительность Android-приложений. И чтобы прибавить драйва и мозговой активности, мы предложили участникам викторину — она прошла в формате CTF (Capture The Flag). CTF обычно проводят для специалистов по взлому и безопасности и в ходе соревнований предлагают взять флаги, эксплуатируя ту или иную уязвимость. У нас же нужно было протестировать форму добавления комментариев и сам сайт, на котором форма была расположена. Посмотреть и попробовать свои силы вы можете на сайте MosQA CTF. А для тех, кто давно ждал разбора, — добро пожаловать под кат.
Программа:
![](https://habrastorage.org/webt/d8/wb/fj/d8wbfjpc3dqw6yc8mtre2dhychy.png)
«Общий язык с разработчиками, или Почему мы начали писать тесты на Go»
Екатерина Харитонова, Sr. QA engineer, Badoo
Доклад — о нашем опыте тестирования сервисов с использованием тестовых фреймворков на PHP и Go. А еще о том, почему тестовая документация у нас не устаревает и как разработчики и тестировщики научились взаимодействовать максимально эффективно — не надоедая друг другу лишней коммуникацией.
![](https://habrastorage.org/webt/vi/up/ib/viupibd8lynhx5lznq0bnktwddk.png)
«Как найти своего героя? Собеседуем разработчика автотестов (на Python)»
Андрей Яковлев, ведущий специалист по автоматизации тестирования, Mail.ru Group
Поделюсь интересным, на мой взгляд, кейсом, как прособеседовать и оценить разработчика автоматизированных тестов на Python на примере одной задачки.
![](https://habrastorage.org/webt/a-/ke/n-/a-ken-wp9bjcccgy9csuwgz2pts.png)
«Замеры производительности в андроид-приложении OK.RU»
Антон Смолянин, инженер по автоматизации тестирования, проект «Одноклассники», Mail.ru Group
В докладе я расскажу, зачем в принципе заниматься замерами, покажу графики ускорения, поделюсь историей, как были найдены и исправлены медленные участки приложения, уделю внимание рекомендациям Google по этому вопросу.
CTF Квест
Подходящую платформу для CTF нашли не сразу: есть открытые решения для CTF-безопасников, но их формат нам не подходил. В итоге за два вечера в баре (в том же, где была афтепати после митапа) Алексей Андросов doochik на коленке набросал решение. А кейсы и UI мы натягивали буквально за несколько часов до мероприятия. Тестировали уже в продакшене. Ну и как водится, нашли пару шероховатостей. О них ниже. Не судите строго, хотелось фана — и, кажется, нам удалось доставить вам удовольствие.
Ответы принимались в поле «Имя». Они были в двух форматах: кейсы и флаги. Кейсы — текст, который подходил под регулярки и являлся тестовым случаем для текстового поля. Стандартные проверки на граничные значения, обработка пользовательского ввода, etc.
Всего кейсов было 15:
- Пустая строка
- 1 символ
- Пробел в начале
- Одиночный пробел
- Пробел в конце
- Пробелы в середине
- 9 символов
- 10 символов
- 11 символов
- HTML-тег, например
<h1>
- XSS-инъекция, например
<script>alert()</script>
- SQL-инъекция, строка начинается с апострофа
- Любой символ, не входящий в [a-zа-я0-9]
- Не ASCII-символ, можно было подставить эмоджи
- Символ новой строки
Последний пункт со звездочкой. Форма экранирует символ новой строки, и, чтобы получить флаг, можно было использовать фиддлер, например:
![](https://habrastorage.org/webt/va/7a/vp/va7avpxds2pgraa8mbx6v-00bjw.png)
Второй формат ответа — флаги. Они располагались в разных частях сайта, в которые, по нашему мнению, нужно заглянуть ответственному медоеду. Они представляли собой случайный набор символов, похожий на хэш, — увидеть его и пройти мимо было бы сложно. Вот где их надо было искать:
- На 404-й странице
- На robots.txt
- OG-метках. Да-да, их тоже нужно проверять!
- В исходном коде страницы
- В куке x-token
- В названии ресурса, которого не было на сервере и в консоли светился 404-м статусом
- На странице при заходе из IE. Ну или подставив его в User-Agent)
- Использовав метод GET вместо POST, для урла, на который уходили данные формы.
- И в исходном коде страницы mosqa.ru/admin
Итого: 24 балла.
Еще раз поздравляем победителей, которые унесли с собой крутые футболки. Sonic, если ты нас читаешь, найдись! Твоя футболка ждет тебя.
Мы хотим выложить нашу платформу в OpenSource. Распространяется под лицензией MIT. Дополняйте своими кейсами и флагами, исправляйте баги, создавайте новые крутые квесты.
Мы всегда рады новым медоедам в нашем уютном чате. Мы хотим, чтобы медоедов становилось больше. Поэтому если вы готовы сделать дайджест, искать спикеров, новые площадки — вам достанется крутая футболка. А если чувствуете в себе силы подготовить доклад, то с нас худи!
P. S. Все материалы (фотографии, презентации и отдельно видео) можно найти в нашем Облаке.
Медоеды, вперед! :)