Приложения для Windows Phone: как мы это делаем #codefestActis Wunderman
Презентация руководителя отдела мобильных приложений Григория Никонова для конференции CodeFest 2013. Рассказ о нашем опыте в разработке мобильных приложений и, в частности, о том, как сэкономить время и усилия за счёт фреймворков.
В докладе я расскажу о том как я вижу и применяю TDD, почему мне это нравится и почему я хочу, чтобы это нравилось другим. Все это на примере какого-нибудь мини-приложения на базе Django.
Приложения для Windows Phone: как мы это делаем #codefestActis Wunderman
Презентация руководителя отдела мобильных приложений Григория Никонова для конференции CodeFest 2013. Рассказ о нашем опыте в разработке мобильных приложений и, в частности, о том, как сэкономить время и усилия за счёт фреймворков.
В докладе я расскажу о том как я вижу и применяю TDD, почему мне это нравится и почему я хочу, чтобы это нравилось другим. Все это на примере какого-нибудь мини-приложения на базе Django.
Automation Functional Testing in Agile ProjectsAndrey Rebrov
Об автоматических тестах писал ещё Сам Кент Бек. Ну, а автоматические функциональные тесты — это вообще лакомый кусок для современных agile методик разработки ПО. Вместе с участниками кемпа мы узнаем, с какой стороны подходить к процессу автоматизации тестирования в целом. Кроме того, мы создадим проект автотестирования с использованием одного из самых популярных продуктов для тестирования веб-приложений — Selenium 2.
SECON'2016. Иовлев Роман, JDI is UI Automation FutureSECON
Хочешь узнать как можно получать удовольствие от автоматических тестов? Как писать сами тесты не тратя время на многочисленные Хелперы и заплатки? И при этом получить действительно качественные понятные тесты с детальными логами и возможностью быстрого рефакторинга? Ты хочешь иметь тесты написанные в едином стиле не только для Web, но и мобильных устройств и даже десктоп приложений? Приходи и мы расскажем как наша новая разработка JDI поможет тебе стать настоящим Джедаем в автоматизации!
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)Roman Dvornov
Опенсорсный JavaScript-фреймворк с нестандартными подходами, ориентированный на разработку одностраничных приложений. Обновление шаблонов и стилей без перезагрузки страницы, развитые механизмы работы с данными, высокая производительность, инструменты разработчика и многое другое.
Доклад с конференции WSD, Санкт-Петербург, 8 июня 2013
Видео: http://www.youtube.com/watch?v=cVbbkwkhNQg
Сергей Татаринцев — Написание модулей технологий для bem-toolsYandex
bem-tools — это набор инструментов для работы с файлами по БЭМ-методологии. Он позволяет создавать сущности, собирать финальный рантайм, работать с build-декларациями, собирать весь проект командой bem make или запускать сервер разработки на дереве исходников проекта (используя bem server). Один из самых популярных способов расширения возможностей bem-tools — написание модулей технологий. В докладе речь пойдет о том, зачем их писать и как убедиться в том, что все сделано правильно.
Шаблонизаторы упрощают процесс формирования HTML и только. Но браузеру нужен совсем не HTML, а DOM. Необходимо преобразование. И вот тут начинается самое интересное: танцы с бубном и стрельба по ногам. В докладе пойдёт речь об общепринятом подходе получения DOM фрагмента, постпроцессинге и альтернативах. Сравним, измерим и узнаем как это делать быстрее всего.
Шаблонизация основанная на работе с DOM становится трендом: React, Ractive, Basis.js уже используют этот подход, другие идут в эту сторону. Главным преимуществом подхода считается скорость, но оно далеко не единственное!
В докладе немного рассказано о возможностях, что дает DOM подход.
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"Yandex
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Я.Субботник в Челябинске в рамках конференции UWDC
О докладе:
Все, что вы хотели узнать про одностраничное ajax-приложение Яндекс.Почта, но боялись спросить. Изнанка фронтенда, загрузка данных, обновление страниц и взаимодействие с пользователями без регистрации, без смс. Бонус-трек: как работают сторонние приложения в рамках одной платформы.
Использование компонентного подхода это тяжеловесно, медленно, не гибко. Так ли это?
Доклад с фестиваля 404, Самара, 13 октября 2013
Видео: https://www.youtube.com/watch?v=QpZy0WW0Ig4
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".Badoo Development
Мы уже около 3-х лет используем HandlerSocket в нашей инфраструктуре сайта badoo.com. За это время мы накопили опыт решения характерных для Handlersocket проблем, появляющихся при использовании.
Несколько команд внутри Баду активно используют HS для решения разноплановых задач мобильных и настольных приложений Баду. Где-то мы используем HS как замену Memcached, где-то как простой поисковый механизм, где-то как хранилище типа ключ-значение. Наш HS-кластер содержит более 30 серверов, обрабатывая порядка 8000 запросов/сек.
Спикер также предоставляет написанный им код библиотеки-клиента для Handlersocket на PHP.
Про что доклад:
• что это вообще такое;
• чем является HS и чем не является;
• внутреннее устройство и работа HS;
• протокол;
• примеры использования в Баду, с цифрами и графиками;
• особенности: шардирование, Percona Server, постоянные соединения (бенефиты, проблемы и их решения), tips & tricks;
• полезные сслыки, ответы на FAQ.
Доклад рассчитан на highload-разработчиков, работающих с реляционными БД.
Automation Functional Testing in Agile ProjectsAndrey Rebrov
Об автоматических тестах писал ещё Сам Кент Бек. Ну, а автоматические функциональные тесты — это вообще лакомый кусок для современных agile методик разработки ПО. Вместе с участниками кемпа мы узнаем, с какой стороны подходить к процессу автоматизации тестирования в целом. Кроме того, мы создадим проект автотестирования с использованием одного из самых популярных продуктов для тестирования веб-приложений — Selenium 2.
SECON'2016. Иовлев Роман, JDI is UI Automation FutureSECON
Хочешь узнать как можно получать удовольствие от автоматических тестов? Как писать сами тесты не тратя время на многочисленные Хелперы и заплатки? И при этом получить действительно качественные понятные тесты с детальными логами и возможностью быстрого рефакторинга? Ты хочешь иметь тесты написанные в едином стиле не только для Web, но и мобильных устройств и даже десктоп приложений? Приходи и мы расскажем как наша новая разработка JDI поможет тебе стать настоящим Джедаем в автоматизации!
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)Roman Dvornov
Опенсорсный JavaScript-фреймворк с нестандартными подходами, ориентированный на разработку одностраничных приложений. Обновление шаблонов и стилей без перезагрузки страницы, развитые механизмы работы с данными, высокая производительность, инструменты разработчика и многое другое.
Доклад с конференции WSD, Санкт-Петербург, 8 июня 2013
Видео: http://www.youtube.com/watch?v=cVbbkwkhNQg
Сергей Татаринцев — Написание модулей технологий для bem-toolsYandex
bem-tools — это набор инструментов для работы с файлами по БЭМ-методологии. Он позволяет создавать сущности, собирать финальный рантайм, работать с build-декларациями, собирать весь проект командой bem make или запускать сервер разработки на дереве исходников проекта (используя bem server). Один из самых популярных способов расширения возможностей bem-tools — написание модулей технологий. В докладе речь пойдет о том, зачем их писать и как убедиться в том, что все сделано правильно.
Шаблонизаторы упрощают процесс формирования HTML и только. Но браузеру нужен совсем не HTML, а DOM. Необходимо преобразование. И вот тут начинается самое интересное: танцы с бубном и стрельба по ногам. В докладе пойдёт речь об общепринятом подходе получения DOM фрагмента, постпроцессинге и альтернативах. Сравним, измерим и узнаем как это делать быстрее всего.
Шаблонизация основанная на работе с DOM становится трендом: React, Ractive, Basis.js уже используют этот подход, другие идут в эту сторону. Главным преимуществом подхода считается скорость, но оно далеко не единственное!
В докладе немного рассказано о возможностях, что дает DOM подход.
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"Yandex
Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Я.Субботник в Челябинске в рамках конференции UWDC
О докладе:
Все, что вы хотели узнать про одностраничное ajax-приложение Яндекс.Почта, но боялись спросить. Изнанка фронтенда, загрузка данных, обновление страниц и взаимодействие с пользователями без регистрации, без смс. Бонус-трек: как работают сторонние приложения в рамках одной платформы.
Использование компонентного подхода это тяжеловесно, медленно, не гибко. Так ли это?
Доклад с фестиваля 404, Самара, 13 октября 2013
Видео: https://www.youtube.com/watch?v=QpZy0WW0Ig4
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".Badoo Development
Мы уже около 3-х лет используем HandlerSocket в нашей инфраструктуре сайта badoo.com. За это время мы накопили опыт решения характерных для Handlersocket проблем, появляющихся при использовании.
Несколько команд внутри Баду активно используют HS для решения разноплановых задач мобильных и настольных приложений Баду. Где-то мы используем HS как замену Memcached, где-то как простой поисковый механизм, где-то как хранилище типа ключ-значение. Наш HS-кластер содержит более 30 серверов, обрабатывая порядка 8000 запросов/сек.
Спикер также предоставляет написанный им код библиотеки-клиента для Handlersocket на PHP.
Про что доклад:
• что это вообще такое;
• чем является HS и чем не является;
• внутреннее устройство и работа HS;
• протокол;
• примеры использования в Баду, с цифрами и графиками;
• особенности: шардирование, Percona Server, постоянные соединения (бенефиты, проблемы и их решения), tips & tricks;
• полезные сслыки, ответы на FAQ.
Доклад рассчитан на highload-разработчиков, работающих с реляционными БД.
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»Yulia Tsisyk
Ни один современный продукт не обходится без API. Этот API может быть внешним, для публичного использования, а может быть сугубо внутренним, но требования к созданию расширяемого, версионируемого, тестируемого, документированного программного интерфейса очень похоже. В этом докладе мы поговорим о том, как создавать подобные API на основе REST, какие существуют best-practices, чего следует избегать, на что обращать внимание при проектировании.
Как автоматизировать тестирование WebApi, даже если проект завязан на внешние сервисы. Как тестировать WebApi-сервер без постоянных деплоев, как дебажить во время прогона интеграционных тестов.
Видео https://www.youtube.com/watch?v=fuS1IaLSGV0
Современный мир ускоряется, и от тестирования требуется быстрые и стабильные тесты. В этом мастер-классе предлагается уйти от UI автоматизации и перейти на уровень ниже "пирамиды тестирования", на уровень WEB API. Не обещаю теорию, но будет много практических кейсов. В качестве примера я возьму популярный веб сайт с открытым API и покажу как за относительно небольшое время можно создавать хорошие тесты! Причем тесты мы будем создавать совместно, и особых навыков программирования от участников здесь не потребуется, достаточно включить логику и желание освоить что-то новое.
Рarse'им бэкенд
Аким Халилов
Вы хотите выучить Backbone? Хотите просто писать клиентский код, не думая о сервере и о том, как все обрабатывать, хранить, бэкапить? Выход есть – храните с помощью Parse. Parse – платформа, которая предоставляет возможность хранения данных без забот о сервере. Хранилище данных, соц. сети, push-notification, cloud code. Что такое Parse и что он умеет, о библиотеке для использования:
- знакомство с JS API и примеры использования;
- начинаем кодить: stub-проект;
- кодим фичи: CRUD + плюшки;
- хостим.
От простого к сложному: автоматизируем ручные тест-планы | Сергей ТимченкоPositive Hack Days
1. Смотрим по сторонам - обычный процесс авто-тестирования
2. Убираем лишнее - реалистичный целевой процесс
3. DataDrivenTesting - создание спец. инструментов для конкретных сценариев
4. RobotFramework - что делать, если простых сценариев слишком много
3. Вступительное слово
Немного о себе
Закончил КГУ, ФизФак
В тестировании с 2007 г.
Руководитель группы
тестирования в iiko
Опыт автоматизации
• Selenium, TestComplete
• Собственные разработки
3
7. Постановка задачи
Проект
Интернет газета с сервисами блогосферы
• Профили пользователей
• Лента новостей
• Блоги
• Друзья, Фотки
• Избранное
• …
7
8. Постановка задачи
Проект развивается
Расширяет возможности доступа
• Профили пользователей
• Лента новостей
• Блоги
• Друзья, Фотки
• Избранное, Теги
• …
8
9. Постановка задачи
На проекте идет разработка
Появляется API (Программный компонент)
9
11. Постановка задачи
На входе POST запрос
POST — метод запроса для передачи данных
заданному ресурсу
• ~40 команд
– login / logoff
– blog
– friends
– favorite
– …
11
12. Постановка задачи
На входе POST запрос
POST — метод запроса для передачи данных
заданному ресурсу
• ~40 команд
• Параметры
/login?username=user@mail.ru&password=123
Пример визуализации POSТ запроса в виде GET
12
13. Постановка задачи
На выходе JSON
JSON — текстовый формат обмена данными
• {} – объект
• [] – массив
{
"ключ1" : "значение1",
"ключ2" : "значение2"
}
13
14. Постановка задачи
На выходе JSON
JSON — текстовый формат обмена данными
• Статус
• Данные
{ "status": 0, "data": {"id_user": 1024} }
14
16. Постановка задачи
Почему надо тестировать API?
Для команды разработки API
• Уверенность, что API
работает
• Обратная совместимость
API с моб. клиентом
16
17. Постановка задачи
Почему надо тестировать API?
Для команды разработки моб. клиента
• Профили пользователей
• Пример использования
• Документация • Лента новостей
• Блоги
• Друзья, Фотки
• Избранное, Теги
• …
17
33. Решение
Лог
20.06.2010 06:15:49 Run test case: Вход пользователя
Request: /login?username=user@mail.ru&password=123
20.06.2010 06:15:50 End test case.
Response: {"status":0,"data":{"id_user":1024}}
20.06.2010 06:15:50 TEST PASSED
33
34. Решение
Лог
20.06.2010 06:15:49 Run test case: Вход пользователя
Request: /login?username=user@mail.ru&password=123
20.06.2010 06:15:50 End test case.
Response: {"status":1,"data":[]}
20.06.2010 06:15:50 TEST FAILED
Expected: {"status":0,"data":{"id_user":1024}}
Разница cur-exp: [status => 1]
Разница exp-cur: [status => 0]
34
35. Решение
Лог
20.06.2010 06:15:49 Run test case: Вход пользователя
Request: /login?username=user@mail.ru&password=123
20.06.2010 06:15:50 End test case.
Response: {"status":0,"data":{"id_user":1024}}
20.06.2010 06:15:50 TEST PASSED
...
**********************************
Time: 268 sec.
Tests: 199, Passed: 191, Failed: 8
**********************************
35
36. Результат
Статистика
Время разработки инструмента 14 д.
Первая версия инструмента через 5 д.
Время разработки тестов 13 д.
Время подготовки документации 2 д.
Количество тест-кейсов ~300
Количество тест-сценариев 63
1 д. = 8 ч.
36
40. Спасибо за внимание!
Вопросы?
igor.lyubin
ilyubin@yandex.ru
ap-test-team.blogspot.com
40
Editor's Notes
Компонент это кубик программы. Вот кубики из которых состоит программа.Кубики на певрхности – есть UIКубики внутри – нет UI
Программа обычно для тестировщика – это черный ящик, а программный компонент без UI тем более.В этот ящик каким-то образом можно посылать запросы и получать отклик. Посылаться и получать можем любые форматы.Все это надо уметь тестировать?Тестировать в ручную невозможно.Для тестирования необходимо иметь инструмент, который умел бы делать запросы и обрабатывать ответы. А можно инструмент написать. На деле оказывается не всё так сложно. –> Давайте обратимся к примеру.
Есть проект одной «интернет газеты с сервисами блогосферы». У пользователей этого ресурса есть возможность вести свои профили, блоги, общаться с друзьями, обмениваться фотками, добавлять в избранное и многое другое.
Компания решает расширять возможности доступа. И обращается к мобильным устройствам.
На проекте ведется активная разработка, появляется API сервис.Это типичный представитель – ПК без UI.
Через упомянутый API сервис запросы делаются методом POST, а отправляемые данные пользователю приходят в формате файлов JSON.–> Давайте подробнее разберем что у нас на входе и на выходе.
Через сервис можно выполнить 4 десятка команд, таких как логин пользователя, написать пост, запросить данные о друзьях пользователя, отправить сообщение или фотографию, обновить статус, залезть в избранное и т.п.
У каждой команды есть параметры.Пример…Для визуализации POST, использую GET.
На выходе JSON.Это особый текстовый формат обмена данными.Позволяет описывать JS объекты.Может использовать с любым языком и во многих языках есть функции для обработки JSON объектов.Легче чем XML. Так как используются скобки {} [] вместо тегов.
В ответе приходит статус выполнения команды и набор ещё каких-то параметров. Статус 0 команда успешно выполнилась, статус 1 команда не прошла.
–> А давайте подумаем почему надо тестировать АПИ?
Перед тестированием стоит задача протестировать этот API сервис. И при дальнейшей разработке следить, не сломался ли базовый функционал этого сервиса.–> Создать тестовый инструментУдобныйПонятныйЛегко поддерживаемый
Мной было предложено программное решение, написать инструмент для автоматического тестирования. В котором удобно формировать и управлять наборами тестов. У которого есть возможность запуска и остановки тестов. В конце тестирования формирует отчет. И есть возможность конфигурирования.
2 основные функции инструмента – это…
Не шарманкаПаралельная разработка инструмента и тестов