Все разработчики автоматизированных тестов рано или поздно сталкиваются с проблемой - "то, что есть в тулзе, которую я юзаю, явно не достаточно и надо что-то делать".
Мы поговорим с чего начать и чем продолжить, так чтоб получить действительно хорошее решение для автоматизированного тестирования. Обсудим интеграцию с continues integration и реализации систем репортинга. За опорный пример возьму фреймворк на базе Selenium.
The 5-th lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
Что такое REPL, как он устроен и какие крутые возможности в нём заложены. Поговорим о выполнении кода в REPL и о том как работает автокомплит в динамических языках. Ответим на вопрос что такое vm.runInContext, перехватим парочку промисов, сделаем вывод результатов действительно приятным и даже узнаем как подгрузить нужные модули и не подать виду. В заключение рассмотрим потрясающие возможности, которые даёт нам инфраструктура npm и как это всё можно использовать в работе.
Доклад ориентирован на тех, кому небезынтересен мир Node.js, но будет доступен также и более широкому кругу JS-разработчиков. Надеюсь, для кого-нибудь этот доклад станет очередной ступенькой в изучении любимого языка.
Оптимизация трассирования с использованием Expression templatesPlatonov Sergey
В докладе будет рассказано о тех фундаментальных причинах, приводящих к неоптимальному коду в продукте, будет предложен подход, лишённый найденных недостатков.
Докладываемый подход опирается на технологию Expression Templates, которая позволяет уменьшить количество действий и объём ресурсов, которые требуются для выполнения неких промежуточных действий в процессе формирования каждой записи в журнал. Эта технология используется для уменьшения количества промежуточных операций при вычислении сложных математических выражений. Новизна докладываемого подхода в том, что тот же самый принцип, на котором основана технология Expression Templates можно применить для того, чтобы целенаправленно исключить те промежуточные действия, которые в конечном итоге приводят к неоптимальному коду.
Завершается доклад обсуждением полученного эффекта, путей возможного дальнейшего развития и возможностей применения этой же технологии в других задачах.
Фофанов Илья - Лучшие практики проектирования и реализации API на C#Elias Fofanov
C# – мощный и красивый объектно-ориентированный язык. Но мощь сама по себе не гарантирует, что всё написанное вами на C# будет эталоном. "Кривой" код встречается даже у опытных программистов, особенно если они пришли с других языков и платформ . И ладно бы некрасивости были связаны с реальными сложностями. Нет же! Кривизна возникает и в таких простых вещах, как именование элементов в соответствии со спецификацией языка C#. Многие не умеют выбрать между структурой и классом, не отличают команду от запроса и так далее. Если хотите, чтобы коллеги любили ваш код – этот вебинар для вас! Мы разберем:
- Принципы именования классов, переменных и т.д.
- Как выбрать между классом и структурой.
- Как выбрать между абстрактным классом и интерфейсом.
- Как выбрать между методом и свойством.
- Чего не стоит делать в конструкторе.
- Когда фабрика лучше конструктора.
- Как реализовать паттерн Dispose.
- Признак «одержимости примитивами».
- Скрытые зависимости.
- Нарушения закона Деметры.
- ВременнАя связанность.
- Когда хорош Switch-Case.
В первую очередь вебинар будет полезен:
– начинающим со знанием основ C# (без минимального знакомства с языком не все будет понятно),
– тем, кто переходит на C# с другого языка.
В некоторых разделах даже middle-девелоперы могут найти для себя что-то новое.
Документация на тему архитектуры языка PHP скудна и разрозненна, несмотря на то что тема интересна многим. В моем докладе я постараюсь заполнить этот пробел и рассказать о модулях PHP: как они работают, зачем и как их пишут. В процессе мы рассмотрим опыт Badoo в этой сфере на примерах двух модулей. И еще напишем очень небольшой собственный модуль.
— Что такое модули PHP, как они работают
— Как начать писать свой модуль PHP
— Скелет модуля — Функции, классы, методы
— Разбор параметров функции
— Сборка модуля
— Подгрузка модуля
— Простой пример модуля из Badoo
— Сложный пример модуля из Badoo
The 2nd part of the 3rd lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
Андрей Зайцев - TDD в кровавом энтерпрайзеElias Fofanov
Поговорим о том, когда, как и для чего писать тесты, а так же научимся проходить интервью на позицию junior test automation engineer. Подумаем над тем, почему TDD не взлетает, и может ли что-то быть хуже. Рассмотрим на примере использование таких инструментов, как NUnit, FluentAssertions, Moq, HttpMock.
The 5-th lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
Что такое REPL, как он устроен и какие крутые возможности в нём заложены. Поговорим о выполнении кода в REPL и о том как работает автокомплит в динамических языках. Ответим на вопрос что такое vm.runInContext, перехватим парочку промисов, сделаем вывод результатов действительно приятным и даже узнаем как подгрузить нужные модули и не подать виду. В заключение рассмотрим потрясающие возможности, которые даёт нам инфраструктура npm и как это всё можно использовать в работе.
Доклад ориентирован на тех, кому небезынтересен мир Node.js, но будет доступен также и более широкому кругу JS-разработчиков. Надеюсь, для кого-нибудь этот доклад станет очередной ступенькой в изучении любимого языка.
Оптимизация трассирования с использованием Expression templatesPlatonov Sergey
В докладе будет рассказано о тех фундаментальных причинах, приводящих к неоптимальному коду в продукте, будет предложен подход, лишённый найденных недостатков.
Докладываемый подход опирается на технологию Expression Templates, которая позволяет уменьшить количество действий и объём ресурсов, которые требуются для выполнения неких промежуточных действий в процессе формирования каждой записи в журнал. Эта технология используется для уменьшения количества промежуточных операций при вычислении сложных математических выражений. Новизна докладываемого подхода в том, что тот же самый принцип, на котором основана технология Expression Templates можно применить для того, чтобы целенаправленно исключить те промежуточные действия, которые в конечном итоге приводят к неоптимальному коду.
Завершается доклад обсуждением полученного эффекта, путей возможного дальнейшего развития и возможностей применения этой же технологии в других задачах.
Фофанов Илья - Лучшие практики проектирования и реализации API на C#Elias Fofanov
C# – мощный и красивый объектно-ориентированный язык. Но мощь сама по себе не гарантирует, что всё написанное вами на C# будет эталоном. "Кривой" код встречается даже у опытных программистов, особенно если они пришли с других языков и платформ . И ладно бы некрасивости были связаны с реальными сложностями. Нет же! Кривизна возникает и в таких простых вещах, как именование элементов в соответствии со спецификацией языка C#. Многие не умеют выбрать между структурой и классом, не отличают команду от запроса и так далее. Если хотите, чтобы коллеги любили ваш код – этот вебинар для вас! Мы разберем:
- Принципы именования классов, переменных и т.д.
- Как выбрать между классом и структурой.
- Как выбрать между абстрактным классом и интерфейсом.
- Как выбрать между методом и свойством.
- Чего не стоит делать в конструкторе.
- Когда фабрика лучше конструктора.
- Как реализовать паттерн Dispose.
- Признак «одержимости примитивами».
- Скрытые зависимости.
- Нарушения закона Деметры.
- ВременнАя связанность.
- Когда хорош Switch-Case.
В первую очередь вебинар будет полезен:
– начинающим со знанием основ C# (без минимального знакомства с языком не все будет понятно),
– тем, кто переходит на C# с другого языка.
В некоторых разделах даже middle-девелоперы могут найти для себя что-то новое.
Документация на тему архитектуры языка PHP скудна и разрозненна, несмотря на то что тема интересна многим. В моем докладе я постараюсь заполнить этот пробел и рассказать о модулях PHP: как они работают, зачем и как их пишут. В процессе мы рассмотрим опыт Badoo в этой сфере на примерах двух модулей. И еще напишем очень небольшой собственный модуль.
— Что такое модули PHP, как они работают
— Как начать писать свой модуль PHP
— Скелет модуля — Функции, классы, методы
— Разбор параметров функции
— Сборка модуля
— Подгрузка модуля
— Простой пример модуля из Badoo
— Сложный пример модуля из Badoo
The 2nd part of the 3rd lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
Андрей Зайцев - TDD в кровавом энтерпрайзеElias Fofanov
Поговорим о том, когда, как и для чего писать тесты, а так же научимся проходить интервью на позицию junior test automation engineer. Подумаем над тем, почему TDD не взлетает, и может ли что-то быть хуже. Рассмотрим на примере использование таких инструментов, как NUnit, FluentAssertions, Moq, HttpMock.
Архитектура кода нового 2ГИС Web API или куда мы дели MVCDevDay
Сергей Коржнев
Архитектор версии 1.4 2ГИС Web API
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Тезисы:
● Как организован код в старой версии.
● Вдумчиво смотрим, как мы используем Yii, хватаемся за голову и клавиатуру. Там отрезаем, тут пришиваем, и вуаля!
● Ну и делаем выводы, как мы забороли две классические проблемы программирования: борьба с дублированием кода и сложностью системы.
Мир мобильных телефонов очень сильно изменил нашу жизнь. В наше время невозможно представить современного человека, без этого чудо устройства. На рынке появляется все больше устройств и приложений. И чтобы удобнее пользоваться этими приложениями пользователи выбирают “умные” телефоны, или как их еще принято называть смартфоны. В своем докладе я хочу поделиться своим опытом автоматизации приложений под Android и iOS. Я расскажу о том, какие инструменты автоматизации я использовал. Поговорим о недостатках этих инструментов и какие из них стоит использовать у себя на проекте.
This is a war-story about deploying and managing Jenkins instances in the cloud in our company. For this purpose, we use Mesos and Docker plugins. In the talk I focus on our requirements to Jenkins in the Cloud, prerequisites and the preparation process. The presentation also covers the current state of the deployment and the lessons learnt.
We are hiring! Msk and Spb: https://goo.gl/HjfOz5
Similar to Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?" (20)
Impact Analysis в тестировании
В непрерывном процессе разработки продукта появляются и реализуются различные фичи, дополнительные возможности, мы работаем с меняющимися требованиями заказчика, наш продукт постоянно улучшается и изменяется.
В таких условиях можно столкнуться с неприятной ситуацией, когда становится трудно отследить последствия производимых изменений и модификаций: оценить, какие же части программы могут быть затронуты и насколько сильно.
В итоге: тестирование проведено в соответствии с лучшими практиками, но какая-то часть продукта, какой-то его модуль или функционал может быть упущен из внимания или недостаточно глубоко проверен.
Но изменения в продукте не всегда являются проблемой, если применять методику анализа этих изменений или Импакт Анализ. В ISTQB данная методика трактуется, как часть планомерной работы с рисками.
Этот анализ помогает отслеживать последствия изменений в продукте. Он помогает выяснить, какие части программы могут быть затронуты, и оценить, насколько сильно скажутся эти изменения непосредственно на измененной функциональности, а также на остальном продукте. Все это дает возможность правильно спланировать процесс тестирования и не упустить из вида никакие части тестируемого продукта.
Я хочу рассказать о своем опыте введения и использования "Impact analysis" в ряде проектов нашей компании:
- о причинах введения этого анализа на проектном уровне;
- о том, как именно и в каком виде мы используем IA в своих проектах;
- о некоторых важных особенностях внедрения подобной методики;
- о полученной практической пользе от этого нововведения.
С помощью "Impact analysis" наша компания смогла решить проблемы, с которыми мы сталкивались достаточно длительное время.
Доклад будет полезен специалистам, которые сталкиваются с необходимостью учитывать и анализировать изменения в продукте. Теперь этот процесс станет проще и удобнее.
TPI Next®: оптимизируем процессы тестирования по-взрослому
Думали ли вы когда-либо о том, к какому уровню зрелости принадлежит ваш процесс тестирования? Или, например, как ответить на вопрос о том, насколько эффективно работает ваша команда тестировщиков? Здесь легче всего дать субъективный ответ, и, например, сказать: мы работаем хорошо, у нас все автоматизировано и мы находим много дефектов.
Однако нельзя расценивать подобный ответ, как корректный. Оценить зрелость и эффективность процесса тестирования по-настоящему можно лишь используя ту или иную модель оценки, каждая из которых имеет массу своих особенностей и не всегда применима в большинстве случаев.
TPI® Next – модель оценки зрелости процессов тестирования в масштабах компании или отдельного проекта. Она помогает понять какими сильными и слабыми сторонами обладает ваш процесс и дает представление о том, в каком направлении двигаться для его оптимизации.
TPI® Next разбивает процесс тестирования на ключевые подобласти, каждая из которых подвергается анализу и получает свою оценку зрелости – от начальной до оптимальной. Делается это на основе четко описанных критериев для той или иной области, что дает возможность дать конкретный ответ на вопрос о том, чего не хватает процессу для перехода на следующую ступень зрелости.
Используя подход, описанный в TPI® Next, я провел оценку зрелости процесса тестирования в нескольких проектах компании в разные периоды их развития. Подвергнув полученные данные анализу, я смог определить каких практик и подходов не хватает той или иной команде для того, чтобы считать свои проекты более зрелыми и эффективными.
Использовав получе
Последовательное выполнение функциональных тестов занимает очень долгое время. Особенно если нужно тестировать со многими конфигурациями. Необходимо уменьшать время прохождения тестов.
Этого можно достигнуть при помощи уменьшения количества тестов, их оптимизации и атомизирования.
Второй путь - запускать тесты параллельно. Хотя оптимизация не помеха запускать тесты параллельно, чтобы получать Для того, чтобы получать действительно классные результаты тестируя при помощи Selenium2, служит еще один дополнительных инструмент - SeleniumGrid 2.
В моем докладе вы также ознакомитесь с тем, как:
Конфигурировать тесты для работы с хабом
Разворачивать SeleniumGrid 2
Настраивать запуск тестов
Область автоматизации web-приложений переживает бурный рост. Самый популярный инструмент это Selenium, который занимает большую часть рынка. Но не стоит забывать, что существуют и другие инструменты, которые помогают автоматизировать функциональное тестирование.
Мой доклад будет более практический, чем теоретический. Я расскажу об инструменте Watir, как его использовать, и напишу несколько простых тестов разными способами:
Ruby Application;
Test Unit;
Rspec;
Cucumber;
Составить, написать тесты и запустить их это еще не всё нагрузочное тестирование. Теперь надо понять, а что собственно произошло? Достигли мы своих целей?
Поговорим с вами о всяких подводных камнях нагрузочного тестирования, возможных вариантах их обхода и том, где, как и на что смотреть в этой области.
В последнее время Android стал самой быстрорастущей мобильной платформой, вытеснив с первой позиции морально устаревший Symbian. Nokia же, получив обратную связь от пользователей своей мобильной ОС Maemo, решила объединить усилия с Intel в разработке совместной ОС, которая получила название MeeGo.
Являясь операционными системами разрабатываемыми для схожих сегментов рынка, целевыми устройствами для них выступают смартфоны, планшеты, телевизоры, а также автомобили оснащенные бортовым компьютером. Помимо этого факта их объединяет и то, что рассматриваемые ОС базируются на Linux, хотя и в разной степени.Так у Android на Linux основано только ядро, в то время как MeeGo позиционирует себя как полноценный «Linux в кармане».
Благодаря описанным особенностям появилась идея создания доклада, целью которого является вводный обзор по автоматизированному тестированию для каждой платформы. В предлагаемом докладе будут описаны общие архитектурные решения построения фреймворка для автоматизированного тестирования и рассмотрены программные средства доступные для этих целей в Android и Meego.
При автоматизации тестирования один из самых главных параметров - покрытие кода. Насколько хорошо тестируется приложение в автоматическом режиме и можно ли доверять результатам тестирования? Как можно увеличить покрытие кода, не увеличивая при этом время выполнения автоматических скриптов? Какие проблемы при этом возникают и как их можно решить? Что такое model-based тестирование и как его можно применить в условиях ограниченного времени на тестирование? На эти вопросы я попытаюсь ответить с примерами из реального проекта, объясню с какими проблемами мы столкнулись и как их решали.
Наталья Новотная, попробовав себя в роли тест-аналитика, будет рассказывать обо всем множестве требований, которые встречаются в проекте. В своем докладе “Автопарк требований” она коснется бизнес-, и функциональных видов требований, расскажет о том, сформировать vision продукта и поделится тем, как выглядит процесс работы с требованиями в ее проекте.
More from QA Dnepropetrovsk Community (Ukraine) (20)
5. Попытка не пытка ... шаг 2
Registration.java Send mail. java Receive mail. java
@before class
public void setUp() throws Exception {
…}
@test
public void openGoogle() throws Exception {
…}
@test
public void search4RC() throws Exception {
…}
@test
public void openGmail() throws Exception(){
…}
@test
public void createAcc() throws Exception(){
…}
@test
public void doCreated() throws Exception(){
…}
@test……
@test
public void deleteAcc() throws Exception(){
…}
Как-то много повторений одних и тех же действий ... хмм
Dnepr mini conference 5
6. Убрать повторения
@test
public void openGmail() throws Exception(){
…}
@test
public void createAcc() throws Exception(){
…}
@test
public void doCreated() throws Exception(){
…}
@test
public void deleteAcc() throws Exception(){
…}
@test
public void doDeleted() throws Exception(){
…}
Helper.RegisterNewUser(String userName, String pwd)
Helper.DeleteUser(String userName, String pwd)
Dnepr mini conference 6
7. И что же получается?
Програмный код
Тест 1 Це Helper 1
дальссе, насяльн
Тест 2 Helper 2
ика?
Тест 3 Helper 3
Тест 4 Helper 4
Тест 5 Helper 5
Тест 6 Helper 6
Тест 7 Helper 7
Locator.properties User.properties
Footer Text 7
8. Опять мухи и котлеты
Тесты Програмный код
Тест 1 Helper 1 Helper 4
Тест 2 Helper 2 Helper 5
Тест 3 Helper 3 Helper 6
Тест 4
GMail
Тест 5
Тест 6
Тест 7
Locator.properties
User.properties
Dnepr mini conference 8
9. И как это выглядит?
Test.xls Locator.prop User.prop
Code.jar
CMD
C:/>java –jar code.jar
Report in
Detailed Full size mail with
Report.html screenshots small
screenshots
Footer Text 10/31/2011 9
10. Зачем это все делать?
Цели которые стоит преследовать при создании:
1. Цена внесения изменений.
1.1. Если надо добавить тесты, это делается без
вмешательства в код
1.2. Если надо изменить код, то при этом не затрагиваются
тесты
2. Способность интеграции в continues integration model.
3. Развертывание окружения для проведения автоматизированного
тестирования должно занимать минимум времени и требовать
минимум вспомагательного ПО.
4. Репортинг должен быть полным, понятным и таким, который
можно показать не только команде, но и заказчику.
Dnepr mini conference 10
11. Всем спасибо, вопросы в
студию.
С вами был
Артем Розуменко
Email: artyom.rozumenko@gmail.com
Web: http://qastories.blogspot.com
Dnepr mini conference 10/31/2011 11