среда, 27 июня 2012 г.

"Пульс рынка" от Ивана Селиховкина

В силу определённой стагнации на текущей работе и размышлений о дальнейших перспективах, начал мониторить состояние дел на рынке труда. И тут же попалась статья, приведённая ниже. Оказалось очень познавательно :)

КОНСАЛТИНГ И ИТ-МЕНЕДЖМЕНТ – «ПУЛЬС РЫНКА» В РОССИИ И ВНЕ ЕЕ – МАЙ 2012


пятница, 15 июня 2012 г.

Открытые библиотеки для тестирования Enterprise приложений.


Этот пост сделан "по мотивам" интересной презентации "Как тестировать промышленные java-приложения" (Alex Soto Bueno). Суть её в том, как на стеке JS+Java+DB выстроить систему тестирования.
Почему для меня это близко ? Потому что именно с таким набором технологий мы и работаем. Это, конечно не всё, что мы используем, но бОльшую часть потребностей закрывает. Что-то из перечисленного мы уже пробовали, что-то используем сейчас, а о чём-то я услышал в первый раз.

Мысль главная : для каждого уровня тестирования надо использовать свой набор инструментов.
Ниже - те инструменты, о которых упомянуто в презентации


1.Модульные (юнитные) тесты



На уровне Client-Side, который построен на JavaScript :

 - JSTestDriver (фрэймворк для модульного тестирования JS)
 - Sinon.js : моки для JS

На уровне ServerSide, который построен на Java :

  - как база, JUnit или NGUnit
  - Hamcrest (т.н. matcher, позволяющий писать выражения тестов в более читаемой манере : assertThat(x, is(3)); часть его включена в JUnit с версии 4.4)
  - Mockito (моки, достаточно понятные, ну и вообще мохито с тёмным ромом вполне приличный напиток :))

На уровне БД

  - DBUnit (динамичное создание/удаление/изменение структур в БД и тестовых наборов данных)
  - использование различных in-memoty databases

2. Интеграционные тесты

  - Arquillian (платформа от JBoss для интеграционных и функциональных тестов)

3. Приёмочные тесты

  - UserSory в форме :  «Как <роль>, мне необходимо <поведение>, чтобы получить <ценность бизнеса>»
  - UserSory - конкретные примеры («Как администратор компании, мне необходимо иметь возможность устанавливать программы на удалённые рабочие столы по сети, чтобы не тратить время на перемещение по офису и не отвлекать сотрудников».)
  - Thucydides (средство для автоматизации приёмочных тестов и связки их с тестами модульными)