воскресенье, 26 февраля 2017 г.

Прекрасное, из Вайнберга

Книга - огонь. Из 14 главы.
 Несмотря на то, что не существует «природы программного обеспечения», существует природа некоторых плохо управляемых проектов разработки – с характеристиками как в следующей последовательности, которые приводят к спешке в конце:
  1. Менеджеры не видят разницы между тестированием, локализацией и отладкой.
  2. Из-за того, что они не видят разницы, они верят, что тестирование было причиной большей части неприятностей, которые они испытали в проектах.
  3. Из-за того, что они верили, что тестирование было причиной проблем, они имели склонность откладывать все формы тестирования настолько, насколько могли.
  4. Из-за того, что они выбрали процессы, откладывающие тестирование, тестируя в первый раз они не могли притворяться, что все идет хорошо.
  5. Или, может быть, если проект плохо управляем...
  6. Из-за того, что они выбрали процессы, откладывающие тестирование, они страдают от информационного иммунитета и могут делать вид, что дела идут хорошо, даже после того, как они провели некоторые тесты.
  7. Из-за того, что они страдают от информационного иммунитета, на ранних стадиях проекта кажется, что все будет идти "гладко" до завершения.
  8. Из-за того, что менеджеры зашли в тупик, баги, многие из которых уже дремали в продукте со времен самых ранних требований, обнаруживаются при позднем тестировании.
  9. Поскольку вся система теперь собрана воедино, многие из этих ошибок трудно локализовать, тем более, что разработчики не могут помочь, так как в настоящее время они бегают, как обезглавленные куры, пытающиеся справиться с внезапным избытком багов.
  10. Так как разработчики, работающие под давлением дедлайнов, делают новые ошибки при попытке исправить недавно найденные, страсти накаляются, разум немеет,  крепнут прогулы, встречи размножаются и стратегия ведет к неприятным последствиям.
  11. Поэтому участники заключают, что «у нас не было никаких проблем, пока мы не приступили к тестированию. Мы шли точно по графику. Тестирование испортило все."
Обремененные этим выводом, менеджеры начинают планировать следующий проект - очередную паническую катастрофу.

И да. Перевод - идет.

среда, 15 февраля 2017 г.

События этой весны в тестировании Екатеринбурга

Искренне радует тот факт, что в создании трех из семи этих событий я не принимаю участия.

вторник, 14 февраля 2017 г.

среда, 1 февраля 2017 г.

Про то, куда иду

Ты "свет фар" своего проекта. (с)
Сэм Канер.
Про то, откуда иду, я уже писал. Теперь про то, куда.

Надеюсь, что этот текст сейчас читает мой коллега-тестировщик. Я хочу стать таким как ты.
Ты можешь гораздо больше, чем я.

 

Ты не программист

Писать качественный код - не твоя работа.
Ты не IDE, подсвечивающее ошибки в сыром коде. Ты уважаешь свою профессию и прекращаешь тестирование, если фича не готова.  Ты уважаешь программиста и даешь ему возможность писать качественный код.
Ты не сервис уведомлений. Программист сам может зайти в CI и посмотреть, какие тесты упали. Программист сам может спросить у аналитика, как должно быть. Ты позволяешь ему быть профессионалом и делать хорошо свою работу. ты помнишь, ошибки - не норма, а исключение.
Но приложения создают именно программисты. И отчасти ты - программист.
Находишь ошибку - сообщаешь о ней, помогая программисту стать лучше. Если нужно - ты сам исправишь ошибку. Ты учишься программировать.

Ревью кода - один из наиболее эффективных способов искать ошибки и информацию. Ты читаешь код и владеешь всеми инструментами поиска ошибок.
Система контроля версий - основа и один из главных источников информации и ты мастерски ею пользуешься.

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

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

Если ты пишешь тесты, то код тестов соответствует стандартам кода продукта. Тесты - часть продукта и их качество - качество продукта. Ты пишешь код системы тестов на нужном уровне. И проходишь стандартное ревью программистов.


Ты не проектировщик

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


Ты не аналитик

Ставить задачи программисту - не твоя работа. Решать как и зачем должно работать приложение - не твоя работа.
Ты не посредник между аналитиком и программистом. Если программист не знает, как должна вести себя система, отправляешь программиста к аналитику, помня о потерях на коммуникации.
Но аналитики определяют, что мы должны создать. И отчасти ты - аналитик.
Тестировать постановку до написания кода - эффективней всего. Ты знаком с техниками работы с текстами, документами, стркутурой, кроссылками и прочим, что необходимо.
Ты заводишь баги, каждый из которых - постановка задачи программисту. Ты учишься ставить задачи у аналитиков.
Масса микрорешений по поведению продукта в исключительных ситуациях отдается на откуп тестировщику. Ты учишься проектировать сервисы.


Ты не менеджер

Определение приоритетов задач - не твоя работа. Ты знаешь о бизнесе меньше менеджера.
Решать, кому дать задачу - не твоя работа. Не ты набирал команду.
Решение о выпуске релиза - не твоя работа. Менеджер владеет информацией о бизнесе, стратегии, ресурсах, договоренностях и дедлайнах. Ты - нет.
Забота о психологической совместимости команды и воспитание инфантильных дебилов - не твоя работа. Не работай с мудаками.
Но ты работаешь в команде. Будь менеджером.
Чтоб стать хорошим работником ты поработал руководителем.
Ты не мудак.
На выходе ты даешь качество.
Ты сообщаешь о проблемах.
Ты выполняешь приказы.
И все записываешь.

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


Ты тестировщик

Твоя миссия - предоставить информацию, необходимую для принятия решений.
Ты торгуешь информацией и знаешь все о своем деле.
Ты точно знаешь, нужен ли ты проекту. Если проекту не нужны тестировщик и тестирование - ты скажешь нет. Ты не чернорабочий.
Никто лучше тебя не знает, как сделать твою работу. Представления менеджера, программиста, аналитика и проектировщика о тестировании - не тестирование.
Ты помогаешь коллегам. Но тебя наняли как тестировщика, чтоб выполнить соответствующие задачи.

В изучении теории тестирования ты перешел от прикладных техник к фундаментальным основам: теории эксперимента, статистике, рискам и теории познания.
от поиска ошибок ты перешел к поиску способов их предотвращения.
Твоя рутина - анализ пропущенных ошибок и синтез решения предотвращающего повторные факапы.
У тебя уже нет лучших практих и правильных способов. Только инструменты.

Ты профессионал

Ты качественно и быстро выполняешь свою работу и у тебя нет конфликтов с коллективом.
Ты качественно и быстро выполняешь свою работу и команда не работает за тебя.

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

Самый ценный ресурс тестировщика - доверие. Тебе доверяют.