SlideShare uma empresa Scribd logo
1 de 27
Тестируем на Windows c
помощью FitNesse + PowerSlim
Максим Шульга
Код Безопасности
О себе
9 лет в погонах
15 лет разрабатываю софт
Руководитель разработки
“Код Безопасности”
http://maxshulga.ru
@maxbeard
Обожаю дачу 
3
О чем поговорим?
Зачем нам автоматические тесты?
FitNesse+PowerSlim =?
Галопом по примерам
Полезные ссылки
@maxbeard
4
Зачем нам автоматические тесты?
?
@maxbeard
5
Зачем нам автоматические тесты?
Каждый выбирает сам
Но без них сложно работать вдолгую
Нам стыдно отдавать тестировщикам
неработающий код
@maxbeard
6
3 кита хороших автотестов
Легко пишутся
Легко запускаются
Легко встраиваются в CI
@maxbeard
7
3 кита хороших автотестов
Легко пишутся*
Легко запускаются
Легко встраиваются в CI
*знание теории написания автотестов обязательно@maxbeard
8
FitNesse+PowerSlim = ?
@maxbeard
FitNesse – 10 лет, Java, C#, C++, Python, PowerShell http://fitnesse.org/
PowerSlim – почти 5 лет. Quest Software, Dell, Код Безопасности
9
FitNesse+PowerSlim = ?
@maxbeard
Почему не Unit-тесты?
http://devopsreactions.tumblr.com/post/118852143728/unit-testing
10
FitNesse+PowerSlim = ?
@maxbeard
11
A - A - A!
@maxbeard
12
A - A - A!
Arrange
Act
Assert
@maxbeard
13
Подготовка в тестах (SetUp TearDown)
@maxbeard
14
Подготовка в тестах (Arrange + Act)
Использование eval (+переменные)
@maxbeard
15
Проверки в тестах (Assert)
Использование check + eval
@maxbeard
16
Проверки в тестах (Assert)
Использование Query
@maxbeard
17
Проверки в тестах (Assert)
Использование Query
@maxbeard
18
Убираем дубликацию
@maxbeard
19
“Buildometer” on Jenkins
By @alexey2nik
FitNesse интегрируется в Jenkins
Есть возможность запускать через cmdline
Fitnesse Plugin
https://wiki.jenkins-ci.org/display/JENKINS/Fitnesse+Plugin
20
«Светофор»
Рабочие моменты 
21
By @novovladimir
«Светофор»
22
Недостатки
Неожиданности при использовании
Недостаточно программерский инструмент ;)
Несолидно ;)
@maxbeard
23
PowerSlim в vGate for Hyper-V
• 2.5 года использования
• > 1000 end-to-end и функциональных тестов
• Количество тестов в одной Jenkins работе ~300
• Среднее время выполнения 1 работы около 100 мин
Это работает! Тестировщики ищут правильные баги, а не разгребают…
@maxbeard
24
PowerSlim в vGate for Hyper-V
Так вот, мы всегда сухие и не пахнем  @maxbeard
25
Полезные ссылки
FitNesse http://fitnesse.org/
PowerSlim https://github.com/konstantinvlasenko/PowerSlim
Статьи про FitNesse+PowerSlim bit.ly/FitNessePowerSlim
PowerShell UI tests White, UI Automation PowerShell Extensions
@maxbeard
26
27
Спасибо.
Вопросы?
http://maxshulga.ru
@maxbeard

Mais conteúdo relacionado

Mais procurados

“Обезьянье тестирование” в мобильных проектах
“Обезьянье тестирование” в мобильных проектах“Обезьянье тестирование” в мобильных проектах
“Обезьянье тестирование” в мобильных проектахautomated-testing.info
 
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17OdessaFrontend
 
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumSQALab
 
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...Badoo Development
 
Лучшие тестировщики - наши пользователи
Лучшие тестировщики - наши пользователиЛучшие тестировщики - наши пользователи
Лучшие тестировщики - наши пользователиSQALab
 
Наталья Медведева - Тестировщик на все руки в Scrum-команде
Наталья Медведева - Тестировщик на все руки в Scrum-командеНаталья Медведева - Тестировщик на все руки в Scrum-команде
Наталья Медведева - Тестировщик на все руки в Scrum-командеSQALab
 
Один за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системыОдин за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системыSQALab
 
мартюшев почему юнит-тесты не работают. история большого проекта
мартюшев   почему юнит-тесты не работают. история большого проектамартюшев   почему юнит-тесты не работают. история большого проекта
мартюшев почему юнит-тесты не работают. история большого проектаMagneta AI
 
Стачка 2017: Golang – опыт промышленной разработки
Стачка 2017: Golang – опыт промышленной разработкиСтачка 2017: Golang – опыт промышленной разработки
Стачка 2017: Golang – опыт промышленной разработкиYuriy Vasiyarov
 
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙСтановление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙCEE-SEC(R)
 
Как играть без игрока
Как играть без игрокаКак играть без игрока
Как играть без игрокаSQALab
 
SECON'2017, Щеглова Нина, Как мы делаем это: тестирование в ecommerce междуна...
SECON'2017, Щеглова Нина, Как мы делаем это: тестирование в ecommerce междуна...SECON'2017, Щеглова Нина, Как мы делаем это: тестирование в ecommerce междуна...
SECON'2017, Щеглова Нина, Как мы делаем это: тестирование в ecommerce междуна...SECON
 
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живыхКурс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живыхautomated-testing.info
 
JIRA. С добавками. Для тестировщиков
JIRA. С добавками. Для тестировщиковJIRA. С добавками. Для тестировщиков
JIRA. С добавками. Для тестировщиковSQALab
 
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Mail.ru Group
 
Скажи мне правду, Scrum, когда тестировать нам?
Скажи мне правду, Scrum, когда тестировать нам?Скажи мне правду, Scrum, когда тестировать нам?
Скажи мне правду, Scrum, когда тестировать нам?SQALab
 
Нагрузочное тестирование по-живому
Нагрузочное тестирование по-живомуНагрузочное тестирование по-живому
Нагрузочное тестирование по-живомуAnton Stepanenko
 
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex PetrovReal-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex PetrovRuby Meditation
 
Пользователи в помощь тестировщику
Пользователи в помощь тестировщикуПользователи в помощь тестировщику
Пользователи в помощь тестировщикуRina Uzhevko
 

Mais procurados (20)

“Обезьянье тестирование” в мобильных проектах
“Обезьянье тестирование” в мобильных проектах“Обезьянье тестирование” в мобильных проектах
“Обезьянье тестирование” в мобильных проектах
 
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
 
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью Selenium
 
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
 
Лучшие тестировщики - наши пользователи
Лучшие тестировщики - наши пользователиЛучшие тестировщики - наши пользователи
Лучшие тестировщики - наши пользователи
 
Наталья Медведева - Тестировщик на все руки в Scrum-команде
Наталья Медведева - Тестировщик на все руки в Scrum-командеНаталья Медведева - Тестировщик на все руки в Scrum-команде
Наталья Медведева - Тестировщик на все руки в Scrum-команде
 
Один за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системыОдин за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системы
 
мартюшев почему юнит-тесты не работают. история большого проекта
мартюшев   почему юнит-тесты не работают. история большого проектамартюшев   почему юнит-тесты не работают. история большого проекта
мартюшев почему юнит-тесты не работают. история большого проекта
 
Стачка 2017: Golang – опыт промышленной разработки
Стачка 2017: Golang – опыт промышленной разработкиСтачка 2017: Golang – опыт промышленной разработки
Стачка 2017: Golang – опыт промышленной разработки
 
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙСтановление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
 
Как играть без игрока
Как играть без игрокаКак играть без игрока
Как играть без игрока
 
SECON'2017, Щеглова Нина, Как мы делаем это: тестирование в ecommerce междуна...
SECON'2017, Щеглова Нина, Как мы делаем это: тестирование в ecommerce междуна...SECON'2017, Щеглова Нина, Как мы делаем это: тестирование в ecommerce междуна...
SECON'2017, Щеглова Нина, Как мы делаем это: тестирование в ecommerce междуна...
 
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живыхКурс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
Курс молодого бойца-автоматизатора – как стать ветераном и остаться в живых
 
JIRA. С добавками. Для тестировщиков
JIRA. С добавками. Для тестировщиковJIRA. С добавками. Для тестировщиков
JIRA. С добавками. Для тестировщиков
 
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
 
Скажи мне правду, Scrum, когда тестировать нам?
Скажи мне правду, Scrum, когда тестировать нам?Скажи мне правду, Scrum, когда тестировать нам?
Скажи мне правду, Scrum, когда тестировать нам?
 
Нагрузочное тестирование по-живому
Нагрузочное тестирование по-живомуНагрузочное тестирование по-живому
Нагрузочное тестирование по-живому
 
Why it is not working
Why it is not workingWhy it is not working
Why it is not working
 
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex PetrovReal-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
Real-Time Error Alerting & Debugging Tools: Rollbar - Alex Petrov
 
Пользователи в помощь тестировщику
Пользователи в помощь тестировщикуПользователи в помощь тестировщику
Пользователи в помощь тестировщику
 

Destaque

ITGM#4 Технический долг 2.0
ITGM#4 Технический долг 2.0ITGM#4 Технический долг 2.0
ITGM#4 Технический долг 2.0Maxim Shulga
 
Amusing Geometry in Test Automation
Amusing Geometry in Test AutomationAmusing Geometry in Test Automation
Amusing Geometry in Test AutomationÞorgeir Ingvarsson
 
Part II. How to automate properly
Part II. How to automate properlyPart II. How to automate properly
Part II. How to automate properlyÞorgeir Ingvarsson
 
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QAFest
 

Destaque (7)

ITGM#4 Технический долг 2.0
ITGM#4 Технический долг 2.0ITGM#4 Технический долг 2.0
ITGM#4 Технический долг 2.0
 
Amusing Geometry in Test Automation
Amusing Geometry in Test AutomationAmusing Geometry in Test Automation
Amusing Geometry in Test Automation
 
Part II. How to automate properly
Part II. How to automate properlyPart II. How to automate properly
Part II. How to automate properly
 
How to write good autotests
How to write good autotestsHow to write good autotests
How to write good autotests
 
Tao and Test Automation
Tao and Test AutomationTao and Test Automation
Tao and Test Automation
 
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
 
The Dangers of Cucumber
The Dangers of CucumberThe Dangers of Cucumber
The Dangers of Cucumber
 

Semelhante a FitNesse+PowerSlim on Windows

Григорий Шехет "Растим детей. Или как Иван Васильевич запускал эксперименты?"
Григорий Шехет "Растим детей. Или как Иван Васильевич запускал эксперименты?"Григорий Шехет "Растим детей. Или как Иван Васильевич запускал эксперименты?"
Григорий Шехет "Растим детей. Или как Иван Васильевич запускал эксперименты?"Fwdays
 
Валерий Петров «Модель памяти .NET»
Валерий Петров «Модель памяти .NET»Валерий Петров «Модель памяти .NET»
Валерий Петров «Модель памяти .NET»SpbDotNet Community
 
Vladimir Obrizan "Ecosystem for reliable Python programming"
Vladimir Obrizan "Ecosystem for reliable Python programming"Vladimir Obrizan "Ecosystem for reliable Python programming"
Vladimir Obrizan "Ecosystem for reliable Python programming"Fwdays
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterAleksandr Tarasov
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаIgor Lyubin
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java DeveloperOlexandra Dmytrenko
 
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»Sigma Software
 
7 золотых правил внедрения LMS
7 золотых правил внедрения LMS7 золотых правил внедрения LMS
7 золотых правил внедрения LMSAlexander Andreev
 
7 золотых правил внедрения системы управления обучением в корпоративной среде...
7 золотых правил внедрения системы управления обучением в корпоративной среде...7 золотых правил внедрения системы управления обучением в корпоративной среде...
7 золотых правил внедрения системы управления обучением в корпоративной среде...HyperMethod
 
как инженерные практики помогают экономить бизнесу
как инженерные практики помогают экономить бизнесукак инженерные практики помогают экономить бизнесу
как инженерные практики помогают экономить бизнесуAndrey Rebrov
 
Инструкция для SEO-специалиста: как расти, зарабатывать больше и не лажать
Инструкция для SEO-специалиста: как расти, зарабатывать больше и не лажатьИнструкция для SEO-специалиста: как расти, зарабатывать больше и не лажать
Инструкция для SEO-специалиста: как расти, зарабатывать больше и не лажатьNetpeak
 
Опыт Автоматизации тестирования
Опыт Автоматизации тестированияОпыт Автоматизации тестирования
Опыт Автоматизации тестированияAgile Ukraine
 
SoapUI one key to all doors
SoapUI one key to all doorsSoapUI one key to all doors
SoapUI one key to all doorsYegor Maksymchuk
 
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?RAMBLER&Co
 
Основы текстовой оптимизации
Основы текстовой оптимизацииОсновы текстовой оптимизации
Основы текстовой оптимизацииRush Agency
 
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!SPB SQA Group
 
Стратегия и тактика успешной сдачи CCIE R&S Lab Exam
Стратегия и тактика успешной сдачи CCIE R&S Lab ExamСтратегия и тактика успешной сдачи CCIE R&S Lab Exam
Стратегия и тактика успешной сдачи CCIE R&S Lab ExamCisco Russia
 

Semelhante a FitNesse+PowerSlim on Windows (20)

Григорий Шехет "Растим детей. Или как Иван Васильевич запускал эксперименты?"
Григорий Шехет "Растим детей. Или как Иван Васильевич запускал эксперименты?"Григорий Шехет "Растим детей. Или как Иван Васильевич запускал эксперименты?"
Григорий Шехет "Растим детей. Или как Иван Васильевич запускал эксперименты?"
 
Валерий Петров «Модель памяти .NET»
Валерий Петров «Модель памяти .NET»Валерий Петров «Модель памяти .NET»
Валерий Петров «Модель памяти .NET»
 
Vladimir Obrizan "Ecosystem for reliable Python programming"
Vladimir Obrizan "Ecosystem for reliable Python programming"Vladimir Obrizan "Ecosystem for reliable Python programming"
Vladimir Obrizan "Ecosystem for reliable Python programming"
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot Starter
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя система
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java Developer
 
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
 
CodeFest
CodeFest CodeFest
CodeFest
 
7 золотых правил внедрения LMS
7 золотых правил внедрения LMS7 золотых правил внедрения LMS
7 золотых правил внедрения LMS
 
7 золотых правил внедрения системы управления обучением в корпоративной среде...
7 золотых правил внедрения системы управления обучением в корпоративной среде...7 золотых правил внедрения системы управления обучением в корпоративной среде...
7 золотых правил внедрения системы управления обучением в корпоративной среде...
 
как инженерные практики помогают экономить бизнесу
как инженерные практики помогают экономить бизнесукак инженерные практики помогают экономить бизнесу
как инженерные практики помогают экономить бизнесу
 
Инструкция для SEO-специалиста: как расти, зарабатывать больше и не лажать
Инструкция для SEO-специалиста: как расти, зарабатывать больше и не лажатьИнструкция для SEO-специалиста: как расти, зарабатывать больше и не лажать
Инструкция для SEO-специалиста: как расти, зарабатывать больше и не лажать
 
Рецепты привлечения клиентов
Рецепты привлечения клиентовРецепты привлечения клиентов
Рецепты привлечения клиентов
 
Опыт Автоматизации тестирования
Опыт Автоматизации тестированияОпыт Автоматизации тестирования
Опыт Автоматизации тестирования
 
SoapUI one key to all doors
SoapUI one key to all doorsSoapUI one key to all doors
SoapUI one key to all doors
 
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
 
IT basics for non technical CEO (Rus)
IT basics for non technical CEO (Rus)IT basics for non technical CEO (Rus)
IT basics for non technical CEO (Rus)
 
Основы текстовой оптимизации
Основы текстовой оптимизацииОсновы текстовой оптимизации
Основы текстовой оптимизации
 
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
 
Стратегия и тактика успешной сдачи CCIE R&S Lab Exam
Стратегия и тактика успешной сдачи CCIE R&S Lab ExamСтратегия и тактика успешной сдачи CCIE R&S Lab Exam
Стратегия и тактика успешной сдачи CCIE R&S Lab Exam
 

FitNesse+PowerSlim on Windows

Notas do Editor

  1. Часто используемые куски кода можно вынести в сценарии и функции. Для удобства переиспользования не забывайте давать правильные имена и писать комментарии.
  2. В PowerShell работает, а в Fitnesse может не заработать сразу Нет IDE и ее плюшек. Но - новая версия FitNesse немного получше. Plugin в sublime «Я хочу писать тесты на языке программирования, а не на wiki».
  3. Поэтому если хотите подсохнуть – приходите в пнд на работу и пробуете. Или если хотите сделать программистов пахнущими ;)