пятница, 28 февраля 2014 г.

Как тестируют в Гугл. Впечатления от прочтения и краткий обзор.

"Качество родится только тогда, когда разработка и тестирование начнут жить вместе" - эта мысль красной строкой проходит сквозь всю книгу Джеймса Уиттакера "Как тестируют в Гугл". Эта книга просто перевернула мой мир. Как будто кусочки пазла собрались наконец в одну картину. Теперь я знаю, к чему стремиться. В каком направлении развиваться, как специалист. И какую организацию процесса разработки ПО считать идеальной.

В этой статье я постараюсь в краткой форме систематизировать часть знаний, полученных после прочтения этой книги.

Поскольку в Гугл тестирование неотделимо от разработки, выделяются 3 основных роли, отвечающих за обеспечение качества.
Разработчик - пишет код, проводит код-ревью, пишет юнит-тесты.
Разработчик в тестировании - фокусируется на тестируемости кода и создании инфраструктуры тестирования. Тест считается такой же фичей приложения, как и другие, и за нее отвечает разработчик в тестировании.
Инженер по тестированию - занимается общей организацией контроля качества, управляет выполнением тестов, анализирует их результат и строит сквозную автоматизацию тестирования.
Особенностью является то, что все сотрудники обладают высоким уровнем технической подготовки. В Гугл нет привычного нам разделения на "ручной тестировщик" и "специалист по автоматизации тестирования". Все инженеры по тестированию должны уметь разбираться в коде и автоматизировать сквозные тесты.
Конечно же, в книге рассказывается и про тест-менеджеров. Оказывается, это самая сложная роль, сочетающая в себе много всего - это инженер, который вносит технический вклад в проект, через него взаимодействуют все команды, также он обладает управленческими навыками и помогает подчиненными в профессиональном плане. Именно тест-менеджер отвечает за то, чтобы построенная им команда тестирования оказывала реальное влияние в компании. Также тест-менеджер должен отвечать за то, чтобы изобретения внутри проекта распространялись и на другие команды, пока не станут частью технологии тестирования все компании. 

четверг, 6 февраля 2014 г.

Defect-Driven Development

Ребятки, всем привет!
Я сейчас читаю очень замечательную книжку "Как тестируют в Гугл". Вот здесь ее анонс, для тех, кто еще не видел. Электронная версия стоит всего 100 рублей, за такое содержание это просто копейки, друзья мои, очень советую. Позже я обязательно напишу ее краткий обзор. Но даже сейчас могу сказать, что она О-ФИ-ГЕН-НАЯ!!! =)
Так вот, встретилось мне в этой книге такое понятие, как DDD, которое расшифровывается не как "Domain-driven design", и даже не как "Deadline-driven development", а как "Defect-driven development".
Так что же это такое?

Defect-Driven Development — разработка через дефекты. Принцип следующий. Мы выпускаем продукт и объявляем его бездефектным. Когда пользователь находит баг, мы исправляем его и снова объявляем продукт бездефектным. Таким образом, исправляются только по-настоящему значимые баги для пользователей. Этот процесс идеален для доработки существующего продукта. Вы исправляете только важные баги, а не возитесь с дефектами, до которых никому нет дела.

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