На прошлой неделе отзвучали сладкие ноты онлайн-конференции по тестированию ПО
Chief Confet&QA. Как всегда, были очень интересные доклады, ценные мысли, а главное - дополнительный заряд мотивации действовать и развиваться. Чуть подробнее свои мысли по докладам я напишу в одном из следующих постов.
А сегодня я подготовил перевод статьи
Майкла Болтона "Куда уходит все время" (
Michael Bolton - "Where Does All That Time Go?"), о которой я рассказывал на своем конфетном докладе о тайм-менеджменте в тестировании. Статья очень интересная и поучительная, поэтому рекомендую к прочтению.
Ссылка на оригинал - http://www.developsense.com/blog/2012/10/where-does-all-that-time-go/
Формат текста (выделение терминов, курсив, цитирование) и ссылки на другие статьи из текста взяты с оригинала "как есть".
В конце долгого и трудного дня небольшая компания одноклассников собралась на встречу в одном из ресторанов в центре города. Основные блюда были съедены и убраны со стола, нам принесли пиво и мы сидели в ожидании десерта. Петр (это вымышленное имя) продолжал жаловаться о том, сколько времени он вынужден тратить на административные задачи - встречи, заполнение форм, расписаний, заявок и т. п.
- Все это отнимает столько времени. Когда мне нужен лист бумаги для заметок, я обязательно должен заполнить соответствующую форму. Боже, спаси меня, если формы вдруг закончатся!
- Сколько времени ты тратишь на подобную работу каждую неделю? - спросил я.
- Около часа в день. Иногда два. Встречи... Скажем, полтора часа в среднем.
- Вау, это ощутимая часть этой недели. У меня есть идея.
- Давай изобразим это, - сказал я и достал мой верный молескин. Я предпочитаю вариант в клеточку для таких случаев, как этот. Я нарисовал прямоугольник, 20 клеточек в длину и 2 - в ширину.
- Итак, ты тратишь в среднем полтора часа в день на согласование (C - compliance stuff). Полтора умножить на пять, или семь с половиной часов в неделю. Давай округлим до восьми. Напиши С в восьми клетках.
Петр так и сделал.
- Хорошо. - сказал я, - А теперь напрягись и вспомни, сколько ты потратил времени на борьбу с тестовым окружении.
Глаза Петра загорелись.
- Да! - воскликнул он. - Это б
ольшая часть дня. Смотри, это мобильное приложение. У нас есть серверная компонента и клиентская, с которой мы имеем дело, и серверная компонента - это настоящий слон.
- Расскажи-ка подробнее.
- Долгая история. Мы получаем окружение, которое моделирует систему на продакшн. Софт, который мы разрабатываем, содержит столько багов, что мы не можем определенно сказать, является ли эта проблема общей, или воспроизводится только для некоторой модели телефонов, и поэтому мы заводим еще одну конфигурацию для того, чтобы провести целенаправленное тестирование каждый раз, когда мы добавляем поддержку нового телефона. Это то, над чем я сейчас работаю. Проблема в том, что настойка нового телефона крайне скрупулезна и занимает очень много времени. Я должен делать все очень внимательно. Я несколько раз просил время на то, чтобы автоматизировать процесс настройки некоторых конфигураций, но мне отказали, так как времени недостаточно, мы и так постоянно в цейтноте. Поэтому, я вынужден делать это вручную. Процесс запутанный, и во время него я часто ошибаюсь
. С другой стороны, если я обнаруживаю, что что-то не работает, я должен выяснить, почему. Это означает, что я должен сообщить об этом разработчикам и разобраться, в чем ошибка; затем я должен вернуться назад к тестированию нового окружения. И чаще всего, приходится начинать тестирование с самого начала. Это отнимает
часы. И так
каждый день.
- Окей. Давай запишем это в нашей маленькой таблице, прямо здесь. Напиши S в каждой клетке для каждого потраченного часа в неделю.
После этого Петр принялся заполнять клеточки. Один десяток, второй. И затем еще восемь клеток.
- В самом деле?! - воскликнул я. - Двадцать восемь часов в неделю, разделенные на пять дней - это более пяти часов в день. Ты серьезно?
- Абсолютно - вздохнул Петр. - Это занимает большую часть, иногда весь день. Это скучно. Что в самом деле меня убивает, так это то, что я не ощущаю, что занимаюсь тестированием.
- Я не шучу. На это нет времени. Остаются только четыре клеточки в неделю. Плюс, то, о чем ты уже говорил - тонны багов, которые не относятся к настройкам и целенаправленному тестированию.
- Это так. Когда дело доходит до тех вещей, которые на самом деле нуждаются в тестировании, в них тоже находится множество багов. Таким образом, мое время на тестирование - не чистое тестирование. Это в основном время, потраченное на то, чтобы воспроизвести и задокументировать баг.
- Да. В сессионном тестировании, это исследование и документирование бага - Б-время. И оно прерывает время на дизайн и выполнение теста - Т-время - которое создает актуальное покрытие тестами и позволяющее изучить, что в самом деле происходит в продукте. Так, сколько занимает Б-время?
Петр поставил букву Б в три из четырех клеток.
- И, наконец, Т-время?
У Петра осталось только место для одной буквы Т в правом нижнем углу.
- Вау, - усмехнулся я, - одна сороковая часть твоей целой недели уходит на получение реального покрытия тестами. Остальное - накладные расходы. Говорил ли ты им, как это влияет на твою работу?
- Я упоминал об этом - ответил он.
- Давай посмотрим - предложил я- Если мы будем использовать цвета, это станет еще более очевидным.
- М-да, я никогда не смотрел на эту проблему таким образом. И
затем, - Петр остановился. - Они спрашивают меня, почему я не обнаружил этот баг?
- Хорошо, - сказал я, - учитывая заблуждение, в котором они, скорее всего, находятся, вопрос небезосновательный.
- Что ты имеешь в виду? - спросил Петр.
- Что написано у тебя на визитке?
- Тестирование ПО.
- Что написано у тебя на двери твоей тестовой лаборатории?
- Тестовая лаборатория - ответил Петр.
- И они называют тебя...
- Петр.
- Нет! - я улыбнулся. - Они говорят, что ты ... кто?
- Тестировщик.
- Итак, с того момента, как ты тестировщик, на двери у тебя написано "тестовая лаборатория", на визитке - "тестирование", они полагают, что тестирование - это все, что ты делаешь. Это заблуждение, которое Джерри Вейнберг называет проблемой укрупнения. Все из перечисленных активностей - административная работа, установка, исследование и документирование бага, проектирование и выполнение тестов, - для них это одна большая идея. И я нарисовал ее Петру.
- Это заблуждение менеджмента. С того момента как, в их воображении, у тебя есть сорок часов на тестирование в неделю, и для них это нормально - спросить, почему ты не обнаружил этот баг.
- Хммм... Так и есть. - согласился Петр.
- Когда в реальности они получают это. И я нарисовал для Петра.
- Для тестирования - реального взаимодействия с продуктом, поиском проблем, ты получаешь одну сороковую часть времени, которое они думают у тебя есть. Одну-единственную букву Т. Это входит в твой отчет о тестировании?
- Оу, пожалуй, мне стоит показать им это.
- Пожалуй, стоит.
Несколько дней спустя, я показал эту страницу из блокнота Джеймсу Баху.
- Вау! - ответил он. - Этот парень может быть в сорок раз продуктивнее!
- Сорок?
- Ну нет, не совсем, конечно. Но предположим, программисты проверят свою работу более тщательно, или предположим, что тестировщики попрактикуются в написании более точных отчетов о дефектах и отточат свои исследовательские навыки. Одна из этих двух вещей поможет сократить время на треть на исследование дефекта. Это позволит освободить больше времени на тестирование, если тестировщиков не будут отвлекать. Что если наполовину сократить время на согласование и борьбу с тестовыми окружениями?
- Четыре плюс четырнадцать... - посчитал я. - Это даст ему восемнадцать дополнительных часов на тестирование и исследование багов. Итого 22 часа. И даже если они будут продолжать тратить по два часа на исследование багов для каждого часа времени на тестирование... Отлично, это значит, продуктивность возрастет в семь раз, как минимум.
- В семь раз больше времени на тестовое покрытие, если предложенные идеи сработают. - ответил Джеймс.
- Может быть, разделение времени на составляющие - это то, что захотят сделать
многие тестировщики в своей работе.
А как обстоит дело у вас?
Майкл Болтон, 30 октября 2012 года.