Учим автотесты человеческому языку с помощью Allure и PyTestRina UzhevkoДоклад Андрея Усова на весенней встрече Московского клуба тестировщиков (MSTC,12.03.2016г) в офисе Mail.ru
Unit test быстрый стартAntonio Практические основы тестирования на php Unit-test: понятия, тонкости, пути решения, вопросы для проработки.
PHPUnittest fast start
Разработано http://webgloss.ru
Лекция 7. Исключения и менеджеры контекста.Roman BrovkoИсключения, зачем они нужны и как их обрабатывать. Встроенные исключения и базовые классы BaseException и Exception. Операторы try...except..else..finally. Менеджеры контекста и модуль contextlib.
Unit testing iOS ApplicationsAndrey VolobuevSpeech from nixDV 2016 conference
Доклад с конференции nixDV 2016
Andrey Volobuev Khabarovsk
Андрей Волобуев Хабаровск
Нескучное тестирование с pytestRoman ImankulovНаписание юнит-тестов большинству представляется занятием скучным и до некоторой степени бесполезным. Мое мнение — это всё оттого, что сама "классическая" схема юнит-тестов подразумевает непродуктивное написание унылого линейного кода.
В докладе я расскажу о том, как с помощью pytest начать писать тесты, которые приятно читать и поддерживать, почему setUp и tearDown — это прошлый век, как с помощью правильной организации fixtures ускорить исполнение тестов, а также какие ещё уловки могут помочь вам в вашей нелегкой борьбе с рутиной.
Лекция 6. Классы 1.Roman BrovkoСинтаксис объявления классов. Атрибуты, связанные и несвязанные методы, __dict__, __slots__. Статические методы и методы класса. Свойства, декоратор @property. Наследование, перегрузка методов и функция super. Декораторы классов. Магические методы.
Лекция #5. Введение в язык программирования Python 3Яковенко КириллWeb-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Лекция 5. Встроенные коллекции и модуль collections.Roman BrovkoИ снова встроенные коллекции: кортеж, список, множество, словарь - обход в глубину, обзор методов, примеры. Почти всё про модуль collections: именованные кортежи, счётчики, defaultdict, OrderedDict.
Drf vs GraphqlВадим ШевченкоПреимущества и недостатоки в работе Django Rest Framework и GraphQL на примерах
Оптимизация запросов с фронтом. Фильтрация, выборка вложенных данных
Unit testing iOS ApplicationsAndrey VolobuevSpeech from nixDV 2016 conference
Доклад с конференции nixDV 2016
Andrey Volobuev Khabarovsk
Андрей Волобуев Хабаровск
Нескучное тестирование с pytestRoman ImankulovНаписание юнит-тестов большинству представляется занятием скучным и до некоторой степени бесполезным. Мое мнение — это всё оттого, что сама "классическая" схема юнит-тестов подразумевает непродуктивное написание унылого линейного кода.
В докладе я расскажу о том, как с помощью pytest начать писать тесты, которые приятно читать и поддерживать, почему setUp и tearDown — это прошлый век, как с помощью правильной организации fixtures ускорить исполнение тестов, а также какие ещё уловки могут помочь вам в вашей нелегкой борьбе с рутиной.
Лекция 6. Классы 1.Roman BrovkoСинтаксис объявления классов. Атрибуты, связанные и несвязанные методы, __dict__, __slots__. Статические методы и методы класса. Свойства, декоратор @property. Наследование, перегрузка методов и функция super. Декораторы классов. Магические методы.
Лекция #5. Введение в язык программирования Python 3Яковенко КириллWeb-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Лекция 5. Встроенные коллекции и модуль collections.Roman BrovkoИ снова встроенные коллекции: кортеж, список, множество, словарь - обход в глубину, обзор методов, примеры. Почти всё про модуль collections: именованные кортежи, счётчики, defaultdict, OrderedDict.
Drf vs GraphqlВадим ШевченкоПреимущества и недостатоки в работе Django Rest Framework и GraphQL на примерах
Оптимизация запросов с фронтом. Фильтрация, выборка вложенных данных
Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015JetStyleПрезентация с доклада Руслана Каримова "Минисервисы или микросервисы в условиях цейтнота"
Конференция UWDC 2015
Секция "Разработка"
Битва мух и котлет. Сторителлинг в проектировании взаимодействия. JetStyleПрезентация с выступления Алексея Кулакова на конференции Convert.2015, Екатеринбург
Данные на службе бизнесаJetStyleПрезентация Натальи Шавриковой с бизнес-завтрака "Интернет-магазин. Сколько стоит счастливый клиент: как посчитать и применить результат в бизнесе"
Управление - это игра. Алексей Кулаков, JetStyleJetStyleКак посмотреть на процесс формирования и управления командой с точки зрения игры?
Кто такие и зачем нужны тролли, эльфы, гномы, маги, войны и жрецы? Кто нужен именно сейчас? Как ими руководить и как правильно балансировать команду?
MVP (минимальный жизнеспособный продукт): как не потерять деньги на разработк...dkalaevПрезентация с конференции dump-conf.ru
С первыми версиями всегда есть проблема.
Сделаешь мало функций - пользователи выкинут и второго шанса не дадут.
Или наборот запрограммировав 40 функций оказывается что только 19 из них используются, а остальные нет. Более половины бюджета разработки оказывается выкинуто.
Создание нового стиля, дизайна и шрифта для "Батенька, да вы трансформер!"JetStyleПрезентация с выступления Дарьи Прокуда на Behance Portfolio Review Yekaterinburg #9
Разработка MVP. Зачем это нужно и как это делать? JetStyleПрезентация Алексея Кулакова с мастер-класса по разработке MVP, проведенного в Перми по приглашению ФРИИ.
12 - Web-технологии. Django моделиRoman Brovko1. Создание и изменение объектов
2. Загрузка данных из базы
3. QuerySet
4. ModelManagers
5. Расширение ModelManagers
6. Миграции баз данных
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Andrey RebrovКак-то так происходит, что “на 10 девчонок по статистике 9 ребят”, а точнее на группу из 5-7 разработчиков – 1 тестировщик. Или его нет совсем. Так что очень часто приходится и код писать, и тестировать, а дата релиза все ближе и ближе.
В тех случаях, когда мы пишем веб-приложение, помочь в нашей нелегкой судьбе может бодрящий микс из Selenium и TestNG... Как это сделали мы, какие потом получили выводы и результаты — все это я и хочу рассказать и показать
TestRail. Некоторые возможности интеграции.PyNSKДокладчик:
Антон Голов
Описание:
Поговорим о некоторых функциях для интеграции TestRail c внешними системами и автоматизации деятельности QA. Будет немного про Google Docs, и некоторый набор методов работы с Testrail, рассмотрим возможности работы с системами автоматизированного тестирования.
iOS and Android Mobile Test AutomationAndrii DzyniaМир мобильных телефонов очень сильно изменил нашу жизнь. В наше время невозможно представить современного человека, без этого чудо устройства. На рынке появляется все больше устройств и приложений. И чтобы удобнее пользоваться этими приложениями пользователи выбирают “умные” телефоны, или как их еще принято называть смартфоны. В своем докладе я хочу поделиться своим опытом автоматизации приложений под Android и iOS. Я расскажу о том, какие инструменты автоматизации я использовал. Поговорим о недостатках этих инструментов и какие из них стоит использовать у себя на проекте.
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgIT61Вячеслав Марков, QA engineer в Weezlabs
Я расскажу о том, как в нашей фирме организовано тестирование бэкенда с помощью тестового фреймворка TestNG и Java. Расскажу о data-driven тестировании и о том, почему его удобно применять. Покажу и опишу разработанную нами структуру типового тестового проекта. Представлю применяемые нами способы сбора и документирования результатов, а так же их анализ в условиях CI.
Python Meetup iQSpace21 октября состоялась 1 встреча одесского сообщества Python-разработчиков - Python Meetup.
Поговорили о новых технологиях, диалектах и инструментарии для создания графических интерфейсов.
Докладчики:
Александр Степанов (Python Team Lead at SteelKiwi Inc.)
Тема: Шаблон проекта. Использование Vagrant, VirtualEnv и Ansible provisioner. Зачем это необходимо?
Евгений Гетманский (Рython team lead at SteelKiwi Inc.)
Тема: Оптимизация работы веб сервера с базой данных на примере Django.
10 - Web-технологии. MVC фреймворки (продолжение)Roman Brovko1. Контроллеры в Django
2. Объекты HttpRequest и HttpResponse
3. Получение GET и POST параметров
4. Работа с HTTP заголовками в Django
5. Декораторы
6. Шаблонизация в Django
7. Наследование шаблонов
8. Context processors
Нарративные игры как метод прототипирования, Алексей Кулаков, UWDC 2015JetStyleПрезентация с доклада Алексея Кулакова
Конференция UWDC 2015, Секция "Дизайн"
Видеозапись выступления: https://youtu.be/sY1X-R29utM
Постановка задачи на сайт. Алексей КулаковJetStyleПрезентация с мастер-класса Алексея Кулакова "Технологии создания продающего сайта" на конференции Internet EXPO 2014
Как узнать о ваших покупателях все?JetStyleПрезентация Полины Быновой, ведущего web-аналитика JetStyle с бизнес-завтрака "Интернет-магазин. Сколько стоит счастливый клиент: как посчитать и применить результат в бизнесе".
Петли в проектировании интерфейсов, DUMP 2014JetStyleПрезентация с выступления Александра Устинова на конференции DUMP 2014.
Секция "Проектирование интерфейсов"
18. Проект растет - тестов
становится много
...
./tests/
./tests/test_add.py
./tests/test_sub.py
./tests/test_div.py
./tests/test_mul.py
./tests/test_pi.py
19. Nose - запускалка тестов
Устанавливаем nose
$ pip install nose
Запускаем тесты
$ nosetests
..
--------------------------------------------
Ran 100500 tests in 0.219s
OK
23. Запуск тестов в Django
Запуск всех тестов в папке ./blog
$ manage.py test ./blog --settings project.
testing_settings
Запуск тестов в одном файле
$ manage.py test ./blog/test/test_forms.py --settings
project.testing_settings
24. Запуск тестов только для одного класса
$ manage.py test ./blog/test/test_forms.py:PostFormTest
--settings project.testing_settings
Запуск только одного теста
$ manage.py test ./blog/test/test_forms.py:PostFormTest.
test_post_from_submit --settings project.testing_settings
26. Тест view
from django.test import TestCase, Client
class HomePageTest(TestCase):
def test_homepage_is_available(self):
c = Client()
response = c.get('/')
self.assertEquals(response.status_code, 200)
27. class HomePageTest(TestCase):
def setUp(self):
self.posts = [ ]
for i in range(20):
post = Post.objects.create(
title = "Hello %d" % i,
)
self.posts.append(post)
def test_homepage_contains_posts(self):
pass
28. class HomePageTest(TestCase):
def setUp(self):
self.posts = [ ]
for i in range(20):
post = Post.objects.create(
title = "Hello %d" % i,
)
self.posts.append(post)
def test_homepage_contains_posts(self):
c = Client()
response = c.get('/')
self.assertEquals(response.status_code, 200)
self.assertIn(self.posts[-1].title, response.content)
self.assertIn(self.posts[-2].title, response.content)
31. from django.db import models
class Post(models.Model):
picture = models.ImageField(
upload_to='posts', blank=True, null=True)
title = models.CharField(max_length=255)
body = models.CharField(max_length=255)
class Meta:
ordering = ['-id']
32. Отправка формы
class PostFormTest(TestCase):
def test_post_from_submit(self):
c = Client()
params = {'title':'Hello Pycon'}
response = c.post('/posts/add/', params)
self.assertEquals(response.status_code, 302)
post = Post.objects.get(title=params['title'])
40. Прочее в Django
- Middleware
- Template tags, filters
- Context processors
- тестируются модульными тестами как
простые функции, аналогично с
примером 1+1 = 2
41. Особенности тестов view в Django
----------------------------
middleware
-----------------------------
context processors
-----------------------------
template
-----------------------------
view
-----------------------------
models
-----------------------------
network
42. Flexmock
- Заменять части объектов и классов
- Заменять функции, в том числе
встроенные
- Создавать объекты заглушки
- Проверять ожидания (сколько раз
вызван метод, с какими аргументами)
47. Есть требования ...
def get_url_content(url):
# ToDo
# Вернуть контент страницы
# или None, в случае ошибки
pass
48. Как написать тест?
def test_get_url_content(self):
url = 'http://example.com'
text = get_url_content(url)
self.assertEquals(text, ???)
49. Тестирование реализации
Пишем тест имея представление о внутренностях
def get_url_content(url):
try:
response = urllib.urlopen(url)
content = response.read()
response.close()
except IOError:
return None
return content
Неверно с точки зрения теории,
удобно на практике
50. Тест для случая нормального
выполнения
def test_get_url_content(self):
url = 'http://example.com'
response = StringIO("<html>")
(flexmock(urllib)
.should_receive('urlopen')
.with_args(url)
.and_return(response)
.once())
text = get_url_content(url)
self.assertEquals(text, "<html>")
51. Тест в случае ошибки сети
def test_get_url_content_on_ioerror(self):
url = 'http://example.com'
(flexmock(urllib)
.should_receive('urlopen')
.with_args(url)
.and_raise(IOError("test exception"))
.once())
text = get_url_content(url)
self.assertEquals(text, None)