Этот пост сделан "по мотивам" интересной презентации "Как тестировать промышленные 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 (средство для автоматизации приёмочных тестов и связки их с тестами модульными)
Комментариев нет:
Отправить комментарий