пятница, 30 августа 2013 г.

Заовнил, вонзился, запилил: словарь IT-шника

Как часто друзья и родственники, не связанные с IT, просили вас рассказать, что нового на работе, а вы, увлекаясь, начинали говорить вроде на русском, но совершенно непонятном для них языке? Мы создали наш словарь терминов, в который вошли как внутренний сленг отдельных проектов, так и достояние широкой общественности. Надеемся, эта компиляция поможет айтишникам при необходимости выразить свои мысли на языке маглов, а неайтишникам – понять, что айтишники несут. Ну и просто повеселит всех. Ведь пятница!


Про код и изменения





Тестируем CSS в Selenium IDE

css

Я все больше в своей практике пытаюсь использовать автоматизированное тестирование. Стараюсь при этом не плодить инструменты и библиотеки, обходиться простыми подходами. Не так давно, я задумался о том, как протестировать CSS-файлы. Поиск по Интернету выявил следующие точки зрения на этот вопрос:

среда, 28 августа 2013 г.

Что нужно знать о трудовых правах каждому работнику.

После опубликования статьи «Борьба за свои права…» мне написало много айтишников, что, если честно, стало приятной неожиданностью. Но, помимо вдохновляющих слов поддержки и советов, хабраюзеры также делились своими похожими ситуациями, в которых нарушались их трудовые права. Ситуации самые разные: от неуплаты заработной платы до неоформления в штате фирмы. Но все они были схожи в одном: они случались и зачастую заканчивались плачевно из-за низкой юридической грамотности работников в вопросах трудовых прав. Вот лишь один пример такой ситуации:

НАСА готовит эксперимент для проверки концепции варп-двигателя.

Знатокам научно-фантастических произведений (в частности, сериала Star Trek) хорошо известно, что основным двигателем на кораблях Звёздного флота Федерации планет является именно варп-двигатель. В научно-фантастических произведениях исключительно подробно объясняют принцип его работы. 



вторник, 27 августа 2013 г.

Повесть о настоящем Интернете.

Abstract: Рассказ про устройство Интернета, как «сети сетей» в виде текста для чтения, без двоичной системы счисления и нюансов BGP. Большая часть расказа будет не про процесс общения ноутбука с точкой доступа, а о том, что происходит после того, как данные пройдут «шлюз по умолчанию». Предупреждаю, букв много.

Переезд на работу в Данию.


Причины переезда

Мы не "поравалитики". В целом, нам отлично жилось вна Украине. Конечно, мы понимали, что кругом многим не сладко. Так или иначе, сбежать из страны, прихватив трактор, не тянуло.

Вся идея изначально исходила от жены, её доводы были таковы: 
  1. посмотреть мир,
  2. дать сыну возможность выучиться в мультиязычной среде.

Три правила хорошего программирования.

В последнее время я видел мало действительно хорошего кода, много посредственного и очень много — плохого. (Много того, что я писал раньше — особенно, когда я только начинал — относится к последним, увы.) Читая случайные статьи в интернете и профессиональные книги, я пришел к выводу, что писать хороший код — легко. Невероятно трудно, но в то же время легко. На самом деле, это настолько просто, что сводится к трем правилам.

  1. Пишите код для людей, а не машины.
  2. Не повторяйте себя.
  3. Каждый фрагмент кода должен выполнять одну задачу.

Межзвездные путешествия: из пункта А в пункт Б



По космическим меркам человеческая раса весьма хрупкая и слабая: повышение температуры на 50 градусов, увеличение ионизирующего и ультрафиолетового излучения, отсутствие воды, уменьшение кислорода в атмосфере — все это ведет к ее неминуемой гибели. И нет ничего удивительного в том, что человеческий разум стал искать возможность существования других планет с благоприятными для нашей жизни условиями, дабы «развернуть» на них backup. Однако если планета и будет найдена, вопрос транспортировки остается открытым. В сегодняшнем посте речь пойдет о способах и перспективах межпланетных и межзвездных путешествий. 


Автоматизация тестирования Веб Приложений.

Большинство программных продуктов, выпускаемых сегодня, являются веб-ориентированными приложениями, расчитанными на работу в Интернет браузере. Эффективность тестирования подобных приложений отличается в различных компаниях и организациях. В эпоху высокой интерактивности и взаимодействия в процессе разработки программ, когда многие организации используют методологию Agile в той или иной форме, просто необходимо правильно тестировать изменения в продукте. (ВНИМАНИЕ ВОЛЬНЫЙ ПЕРЕВОД В ПРЕДЫДУЩЕМ ПРЕДЛОЖЕНИИ) Автоматизация тестирования зачастую является решением проблемы. Автоматизировать тестирование - значит использовать программные инструменты для того, чтобы прогонять однотипные, повторяющиеся тесты для тестируемого приложения, что позволяет значительно ускорить проведение регрессионного тестирования.

JMeter Trouble shooting.

Бывает так, что JMeter работает некорректно и странно, при прогоне теста, а именно количество активных юзеров начинает уменьшаться хотя этого происходить не должно. Тогда необходимо посмотреть на системное окошко, которое открывается при запуске jmeterа. Если в нем написано java.lang.OutOfMemoryError: GC overhead limit exceeded, тогда необходимо поменять один параметр в файле jmeter.bat в папке /bin. Откройте его и найдите параметр set HEAP и увеличьте максимально возможное значение этого параметра, например set HEAP=-Xms512m -Xmx1512m.

JMeter Thread Group.

В JMeter исполняется то, что находится внутри Thread Group. В Test Plan может быть несколько Thread Group. И все они будут выполняться независимо и одновременно.
Рассмотрим какие параметры имеет Thread Group



Некоторые из них очевидные, а некоторые не очень :).

Name - имя группы пользователей.
Comments - думаю, что это поле для комментария.
Action to be taken after a Sampler error - этот пункт для выбора действий на случай появления ошибки в некотором сэмпле при выполнении теста. Возможно несколько вариантов: Continue - переходить к следующему элементу теста; Stop Thread - останавливать тест для текущей группы пользователей; Stop Test - останавливать тест полностью.
Number of Threads - количество пользователей или подключений к серверу.
Ramp-Up Period - определяет сколько времени понадобится JMeter для запуска всех пользователей. То есть если Number of Threads - 6,а Ramp-Up Period - 60, то каждые десять секунд к тесту будет добавляться по пользователю.
Loop Count - и ёжику понятно.
Выбрав Scheduler можно воспользоваться дополнительными настройками. Можно выставить время начала теста (Start time). Мы можем запустить тест заранее, но действия не начнутся пока не достигнется Start time. Закончиться тест может в двух случаях. Первый - достигнется End time, второй - пока количество прошедших итераций не превысит loop countStartup delay определяет задержку перед началом теста и duration определяет длительность всего теста. Причем либо используется Start time и End time, либо Startup delay и duration. Они взаимно исключающие.

JMeter Logic Controllers.

1. Simple Controller - используется для группирования и установления порядка выполнения для Samplers и других Logic Controllers.
2. Loop Controller - выполнит все, что находится у него как child Count Loop раз.
3. Once Only Controller - исполняет свое содержимое только один раз и пропускает выполнение содержимого при последующих итерациях. Пример: Loop Controllerнастроен на пятикратное выполнение и содержит Once Only Controller, содержимое Once Only Controller выполнится только один раз.
4. Interleave Controller - если внутри него находятся Generative или Logic Controllers, то выполняется один из них по порядку для каждой итерации.
5. Random Controller - похож на Interleave Controller, только на каждой итерации выполняемая часть берется не по порядку, а в случайной последовательности.
6. Random Order Controller - больше похож на Simple Controller, выполняются все его "дети", только выполнение происходит в произвольном порядке.
7. Throughput Controller - регулирует как часто заданный блок будет выполняться. Может работать в режиме percent execution и в режиме total executions. При percent execution программа вычисляет процент от всех проведенных итераций и определяет выполнять или нет этот блок в следующий раз. При total executions выполнение блока прекращается после достижения количества разрешенных раз.

JMeter Assertions.

1. Response Assertion - позволяет добавить шаблон строки для сравнения с различными полями ответа от сервера. Шаблон может: совпадать или содержаться (Perl5-регулярные выражения), быть эквивалентным или подстрокой (простой текст с учетом регистра).
2. Duration Assertion - если ответ от сервера занял больше данного времени в миллисекундах, то он помечает его как неудачный.
3. Size Assertion - проверяет, что ответ от сервера имеет правильный размер.
4. XML Assertion - проверяет, что данные ответа от сервера составлены из корректного XML документа. Не проверяет на достоверность документы основанные на DTD или schema или какой-либо другом добавочном контроле данных TBD.
5. BeanShell Assertion - позволяет пользователю выполнять проверку используя BeanShell скрипт.
6. MD5Hex Assertion - позволяет пользователю проверять MD5 hash ответа.
7. HTML Assertion - позволяет пользователю проверять HTML синтаксис ответа используя JTidy.
8. XPath Assertion - проверяет документ на правильность, имеет опцию проверки согласно DTD, или ввод документа через JTidy и проверка посредством XPath. Если XPath присутствует, то приложение утверждение верно.
9. XML Schema Assertion - позволяет пользователю проверять ответ согласно с XML Schema.
10. BSF Assertion - позволяет BSF скриптовому коду быть использованным для проверки статуса предыдущего семпла.

Jmeter Listeners.

1. Sample Result Save Configuration - приемник может быть сконфигурирован для сохранения различных пунктов в результирующий лог файл, посредством конфигурационного всплывающегося окна. Опции по умолчанию определены как описано в Listener Default Configuration. Пункты с (CSV) влияют только на CSV формат; пункты с (XML) влияют только на XML формат. CSV формат не может использоваться для сохранения пунктов, которые включают разделители.
2. Graph Full Results - что-то не работает.

воскресенье, 25 августа 2013 г.

Много бесплатных книг по программированию.

Браузеры и частота их падения.

С помощью собственного инструмента для проведения автоматизированных тестирований веб-приложений в различных окружениях Selenium компания Sauce Labs получает большие объёмы статистических данных о множестве ошибок. Часто ошибки возникают не из-за плохого кода, не плохого соединения и не из-за заряженных микрочастиц из открытого космоса, а из-за «падения» браузера. Разумеется, в этом случае браузер будет перезапущен, но нам интересна ведомая компанией статистика аварийных завершений, по которой можно судить о надёжности тех или иных браузеров.

пятница, 23 августа 2013 г.

How to start with Selenium (C#, Java, Python)

Много популярных языков программирования в той или иной мере поддерживают работу с Selenium webdriver. Выбор стоит за Вами, что более предпочтительно, опыт работы, требования проекта или личный интерес. В данной статье мы хотим описать процессы настройки Selenium в связке с разными языками программирования, с которыми приходилось иметь возможность и опыт работать.

среда, 21 августа 2013 г.

Selenium IDE documentation on russian.

Selenium IDE


Введение

Selenium IDE (англ. "Integrated Development Environment", "Интегрированная среда разработки") - это инструмент, который используется для разработки тестовых сценариев. Приложение доступно в виде плагина для Firefox, и на данный момент является одним из самых эффективных для разработки тестовых сценариев. Плагин позволяет использовать контекстное меню при работе с элементами пользовательского интерфейса. В меню можно выбрать элемент интерфейса, а после - нужную команду из списка, который предложит Selenium. Свойства команд зависят от вида элемента пользовательского интерфейса. Это позволяет не только сэкономить время, но и дает замечательную возможность изучить синтаксис скрипта Selenium.
Данная глава посвящена Selenium IDE и его эффективному использованию.

вторник, 20 августа 2013 г.

Процесс разработки и выкатка релизов в Badoo. Автоматическое тестирование. Девелоперское окружение

В июле мы вместе с ведущими IT-Kompot и релиз-инженерами Badoo Владиславом Черновым и Олегом Оямяэ записали выпуск подкаста «Процесс разработки и выкатка релизов в Badoo. Автоматическое тестирование. Девелоперское окружение». 
Так как прошлый подкаст вызвал интерес у слушателей и читателей, то этот подкаст мы тоже превратили в статью. 

How to write your first selenium test?

How to write your first selenium test?

понедельник, 19 августа 2013 г.

Freelancer’s Guide.

The tendency toward freelancing in 21st century is the result of social emancipation. A modern man wishes to be independent and flexible not only in his private life but also in his career. I think freelancing must be a work model in 21st century. 

But there are pros and cons of freelancing. On the one hand, it is a good chance to turn hobby to business, do what you love and get paid for it. For most people it sounds like a dream come true. I am not exception :) . On the other hand, it is risky since you have no parachute. If your business crashes, you will fall with it. 

Нужно ли для автоматизации изучать какой-либо язык программирования?

Вопрос: “Нужно ли для автоматизации изучать какой-либо язык программирования?”
Да, для автоматизации нужно знать хотя бы один язык программирования. Для начального уровня автоматизации достаточно только основ программирования.
Для чего нужно уметь программировать?
  • Создать / поддерживать фреймворк автоматизации.
  • Проектировать надежные, гибкие, функциональные тесты.
  • Уметь разобраться в тестах / коде написанных другими людьми.

Что автоматизировать в первую очередь?

Вопрос: Что автоматизировать в первую очередь?
Будем считать, что решены все вопросы с инструментами автоматизации, выбран фремворкам и все прочее подготовительные дела для автоматизации улажены. В этом случае я бы рекомендовал начать с:

Как составлять xpath и css селекторы.


Видеоурок Михаила Поляруша.

Smoke Testing vs. Sanity Testing: What You Really Need to Know?

If you spend any time in forums in which new testers can be found, it won’t be long before someone asks “”What is the difference between smoke testing and sanity testing?”

Беспилотный аппарат на солнечных батареях собираются запустить в полет на 5 лет.

Насколько можно понять, компания Titan Aerospace создала «солнечный» беспилотник Solara 50, способный продержаться в воздухе не неделю и не месяц, а целых пять лет. При этом устройство будет не просто «висеть» в воздухе, а выполнять общественно-полезную деятельность, включая аэрофотосъемку. Проводиться такая съемка будет с высоты около 20 километров, так что кто-то может усмотреть в этом и намерения пошпионить. В общем, проект достаточно открытый, так что вряд ли все это начнет работу с исключительно «шпионской» целью.

Тестируем CSS в Selenium IDE.

Я все больше в своей практике пытаюсь использовать автоматизированное тестирование. Стараюсь при этом не плодить инструменты и библиотеки, обходиться простыми подходами. Не так давно, я задумался о том, как протестировать CSS-файлы. Поиск по Интернету выявил следующие точки зрения на этот вопрос:

Десять причин не использовать статически типизированный функциональный язык программирования.

От переводчика
Это вольный перевод статьи о том, почему люди боятся функциональных языков, присутствует ирония и юмор, для тех кто может и любит читать на английском оригинал здесь.