Уже месяц как я провожу эксперимент по парному тестированию в моей компании. Основная его цель – распространить знания между тестировщиками разных команд, занимающихся совершенно разными приложениями и платформами.
Структура эксперимента
Изучив особенности парного тестирования, я разработала структуру своего собственного эксперимента. С моей точки зрения, нужно было четко определить мои ожидания, чтобы более двух десятков моих тестировщиков смогли получить ценный опыт.
Чтобы не звучать безапелляционно, я уделила особое внимание личной ответственности каждого тестировщика за организацию сессий и того, что будет происходить в течение них. Эксперимент никому не навязывался сверху, при этом большинство участников были воодушевлены возможностью поучиться у коллег из других команд.
Я решила, что эксперимент будет продолжаться три-четыре месяца, итеративно. В течение месяца каждая пара тестировщиков будет посвящать совместной работе один час в неделю, еженедельно меняя или проект, над которым они работают, или напарника. К примеру, Сэнди, работающая над проектом А, попала в пару к Дэнни (проект Б). В течение первой недели они тестируют проект А за столом Сэнди, затем тестируют проект Б за столом Дэнни, и так далее. В конце каждого месяца каждая пара проводит четыре сессии тестирования, работая дважды над каждым проектом.
Между итерациями команды делятся обратной связью по эксперименту как таковому и конкретным сессиям парного тестирования. При необходимости по результатам обратной связи параметры эксперимента можно изменить, прежде чем стартовать вторую итерацию.
Я надеялась, что спустя три месяца каждый участник эксперимента будет иметь четкое мнение по поводу ценности парного тестирования и того, как мы можем применять его в дальнейшем. В конце эксперимента я запланировала глубокую ретроспективу, чтобы определить наши дальнейшие действия.
Выступление Александра Орлова на онлайн-конференции для специалистов по ручному тестированию Fun ConfeT&QA.
Из своих почти 9 лет тестирования 9 лет я проработал в распределенных проектах. Поначалу был тестировщиком, потом руководил командами и отделами тестирования. Проекты были разного размера – от 7 до 150 человек, с разными технологиями и количеством тестировщиков в них.
Кто там говорит про скорость коммуникаций и сидение в одной комнате? Мы работали в двух, трех и даже пяти городах с абсолютной разницей в часовых поясах. А коммуникации нещадно обрубались юридическими отделами корпораций. :) При всем этом удавалось выпускать на рынок продукты, которыми пользовались миллионы людей, и что самое удивительное заказчики практически всегда были довольны нашей работой.
Оглянувшись назад и проанализировав свой опыт, удалось сделать несколько выводов о том, как команде тестирования работать в распределенных командах в условиях сверх-медленных коммуникаций. Этими выводами я и хотел бы поделиться.
Сейчас я работаю над экспериментом в парном тестировании, цель которого – донести знания о тестировании до членов Agile-команд в моей организации. Ниже - краткое содержание изученного мной материала про парное тестирование, который будет полезен желающим внедрить эту практику у себя в компании.
Подход к парному тестированию
Парное тестирование – это способ подойти к тест-дизайну путем одновременного тестирования одной и той же функциональности двумя людьми, находящимися рядом друг с другом и постоянно обменивающимися идеями.
Объединяясь в пару, эти люди используют одно и то же устройство для тестирования. Один из них манипулирует клавиатурой (хотя клавиатура может переходить из рук в руки во время сессии), а другой генерирует идеи для тестов, следит за процессом и ведет записи, слушает, задает вопросы, ищет вспомогательные материалы…
Пара должна работать над одной и той же задачей, имеющей общую, четкую, ясную обоим цель. Хоть они и работают вместе, кто-то один берет на себя полноту ответственности. Этот человек может предварительно подготовиться, но лучше, если пара не будет загонять себя в жесткие рамки. Для начала вполне сгодится простой высокоуровневый чек-лист или набор идей для тестов.
Во время парной сессии тестировщики должны много разговаривать – не меньше, чем тестировать – с целью добиться общего понимания, что они, собственно, делают, и что еще важнее – зачем это вообще делается.
В мае вышла новая версия JMeter 3.0. Концептуальных изменений в ней нет, однако поменялся интерфейс, изменились названия некоторых элементов, а также появились новые элементы.
Работа над курсом кипит, а мы решили поделиться записью первого вводного модуля курса. Модуль позволяет познакомиться с тренером и оценить его манеру преподнесения информации.
Содержание модуля:
Что такое производительность? Тестирование производительности -- зачем мы его проводим?
Функциональные и нефункциональные характеристики качества. Производительность + надёжность + удобство использования (дизайн). Скорость и ресурсоёмкость. Уровни изменений: производительность алгоритмов, производительность ПО, производительность человека, использующего ПО.
Какие ошибки мы можем обнаружить: узкое место («бутылочное горлышко»), медленная подсистема/функция, точки насыщения, функциональные дефекты.
Ложно-положительные и ложно-отрицательные результаты.
В эпизоде TestTalks Пол Гроссман рассказал про свои пять секретов автоматизации тестирования (то есть про пять вещей, которые ни в коем случае не нужно делать, если вы хотите эффективно автоматизировать).
Ниже – краткое содержание интервью с ним.
Отсутствиедокументации
Казалось бы, это очевидная проблема, но я тысячи раз видел, как автоматизация проваливалась из-за того, что никто не понимал, что же она конкретно проверяет. Или из-за того, что она ломалась при любом мелком обновлении. Если вы работаете на крупную компанию, занимающуюся разработкой копроративных приложений, где множество команд вносят свой вклад в автотесты, ваши тест-библиотеки могут быстро вырваться из-под контроля.
Если ваши инженеры не дают своим переменным и методам внятные тестовые названия и не комментируют код, ваши автотесты будет очень тяжело поддерживать. Вы должны убедиться, что ожидаемые и фактические результаты автотестов просты для понимания, и эта информация должна документироваться.
Первое, что сделал Пол, когда стал разбираться в унаследованной от предшественника системе автотестов – это убедился, что каждое внесенное разработкой или тестировщиком изменение внятно документировалось.
Открыта регистрация на Software Quality Assurance Days-20 – крупнейшую в СНГ международную конференцию для специалистов в области качества программного обеспечения. Двадцатая по счету, SQA Days пройдет с 24 по 26 ноября в Минске, в конференц-залах гостиницы «Ренессанс». В этом году конференция выходит на новый уровень: первый день будет посвящен исключительно докладам на английском языке.
Предыдущие конференции показали, с каким нетерпением ждут и как тепло принимают докладчиков из Великобритании, Нидерландов, Португалии, Чехии. Юбилейная конференция обещает быть особенно богатой на «звездных» докладчиков. Чтобы первыми узнать, кто же приедет на SQA Days на этот раз, следите за новостями на официальном сайте конференции.
Зарегистрироваться и приобрести билет заранее по льготной цене можно здесь. До 31 июля действует super early bird период.
Если вы тоже хотите стать частью этого многообещающего события - еще не поздно подать заявку на доклад.Все доклады проходят двухэтапный отбор, с докладчиками работают опытные специалисты по подготовке к публичным выступлениям.
Software Quality Assurance Days – конференция для профессионалов ИТ-индустрии, а точнее - для тех, кто никогда не останавливается на пути роста и саморазвития. Это не только повод послушать актуальные доклады и расширить свой кругозор, но и возможность встретить старых друзей или наконец отыскать единомышленников, поделиться историями из рабочих будней, сообща найти решение конкретных технических или управленческих проблем. Все докладчики, в том числе знаменитые гости из стран дальнего зарубежья, будут доступны для общения в неформальной обстановке.
Среди новшеств, которые помогут сделать первый шаг к более продуктивному общению – формат ‘barcamp’, который позволит каждому из присутствующих выступить с блиц-докладом о том, что ему более всего интересно.
SQA Days – это не просто доклады и фуршеты. Это неповторимая атмосфера, возможная лишь там, где собираются специалисты, по-настоящему увлеченные своим делом. Именно потому новый слоган конференции – «Территория качества».
В трансляцию блогов регулярно добавляются новые блоги. Их количество уже давно перевалило за отметку 100. Ну а мы продолжаем знакомить Вас с новыми блогами:
Занимаюсь тестированием программного обеспечения более 5 лет. За это время успел пройти путь от тестировщика до тест-менеджера и тим-лида. Всегда стараюсь искать что-то новое для реализации своих проектов, считаю тестирование своим хобби! Сейчас возглавляю тестирование в крупной аутсорсинговой организации.
О блоге:
В блоге я пишу о всем, с чем я могу столкнуться в повседневной работе. Подходы к тестированию, инновации, собственные наработки, опыт - всем этим я буду делиться с Вами.
Выступление Сергея Атрощенкова на онлайн-конференции для тест-менеджеров Chief ConfeT&QA.
Давным-давно в нашей галактике шла война между Тестировщиками и Разработчиками.
Императорские офицеры то просили придержать коммит, то задавали провокационные вопросы вроде «А почему критический баг только сейчас завели?!»
Силы повстанцев были слишком малы, чтобы
конструктивно объяснить любимым разработчикам их неправоту,
выработать совместное отличное решение
и радостно разбежаться по своим Татуинам, делать самый лучший софт во всей Вселенной.
Эмоции и неконструктивность мешали проводить дружеские беседы. Вместо того, чтобы решать проблему, стороны начинали решать человеков. Дипломаты затыкались, начинало говорить оружие: пиу, тыдыдыщь, ба-ах, вжжынннн!
Но однажды на далекой (и близкой) планете с одной луной родился человек, который знал, как можно уже вытащить посаженные «занозы» в общении между противоборствующими сторонами, и как постараться не засадить новые. Силу большую чуял он!
Давайте нарушим правило «сам козёл» в многолетней войне за производство качественного ПО.
Способность уверенно исследовать плавающие баги – одна из характеристик отличного тестировщика. Самые захватывающие истории, которые я слышал от тестировщиков, были про охоту на "белых китов" в океане сложного кода.
В отличие от багов, которые загадочным образом воспроизводятся постоянно, плавающий баг – это больше проблема тестирования, нежели разработки. Многие программисты просто не хотят гоняться за причинами таких проблем, если есть куда более доступные жертвы.
Вообще-то плавающие баги не должны вас удивлять. Все программирование, можно сказать, крутится вокруг контроля неустойчивого поведения. Итак, о чем речь?
Нас не беспокоит неустойчивое поведение, если оно а) так и задумано б) не несет в себе тайны, даже если оно не вполне предсказуемо. Например, результат подброшенной монеты или шанс выбить 777 в игровом автомате – вполне себе неустойчивое поведение. Даже загадочное неустойчивое поведение не волнует нас, если мы уверены, что оно не вызовет проблем. Когда я тестирую, я не думаю о магнитных полях или мелких скачках напряжения, хотя они влияют на мою работу постоянно.
Многие плавающие баги никем не обнаружены просто потому, что они еще ни разу не проявились (или проявились, но никто их не заметил). Все, что мы можем сделать – это позаботиться о создании наилучшего тестового покрытия и придерживаться этого подхода. Нет в мире алгоритмов для автоматического определения или предотвращения всех плавающих багов.
Итак, то, что обычно называется плавающим багом – это загадочное, нежелательное поведение системы, которое наблюдалось как минимум единожды, и которое мы не можем спровоцировать повторно.
Наша задача – превратить плавающий баг в обычный, раскрыв тайны, окружающие его. После этого он становится головной болью программистов.
Ирония индустрии тестирования заключается в том, что люди, не включенные в тестирование (а также куча народу внутри нее) верят, что тестировать – это очень просто. Нет, некоторые продукты действительно просто тестировать. Они должны соответствовать следующим критериям, например:
Простая архитектура
Редко используются
Не критически важны и от них не зависит чья-то жизнь
Не взаимодействуют с другими приложениями или средами, или их взаимодействие и интеграция минимальны
Удобство использования и доступность практически не имеют значения и могут иметь баги, которые "не создают проблем тем, чье мнение важно.
Такие приложения обычно бесплатны, или основаны на открытом коде, или идут "в нагрузку" к другим продуктам. Например, возьмем Блокнот – его функциональность минимальна, и он бесплатно поставляется с другими продуктами Microsoft.
После очередной уборки на сервере выяснили, что у нас осталось несколько неопубликованных докладов со старых онланй-конференций. Те доклады, информация в которых еще не устарела постараемся выложить в ближайшее время.
Выступление Алексея Лянгузова на онлайн-конференции для специалистов по тестированию ConfeT&QA.
То о чём я хочу поведать, приемлемо в случае, если тестовая команда параллельно тестирует несколько проектов, с более-менее жёстким распределением по этим проектам. Представьте такой диалог между руководителем тестирования двух проектов А и Б (ЛидА и ГлеБ): ЛидА: Глеб, выручай у нас релиз на носу, нужны бойцы, не успеваем, зашиваемся. ГлеБ: Сколько людей надо? На какое время? Когда? ЛидА: Вчера надо. А сколько дашь? Мне вообще на денек-другой, может на недельку. ГлеБ: На недельку %) Ладно, так, дам тебе Тугодумова, Раздолбаеву и … ЛидА: з-э, только не Раздолбаеву… … Далее либо договорятся, либо придет Босс и скажет кому и куда идти. Знакомо? Я расскажу о своем подходе, как можно минимизировать данный хаос и затраты на переключение между проектами и максимально продуктивно и позитивно использовать тестировщиков, работающих на других проектах. И нет, это не постоянная ротация. Подход называется “Интенсивный Тестовый Цикл” и предлагает спланировать аврал заранее. Как? Об этом я и расскажу. Данный подход опробован не на одном проекте и зарекомендовал себя как работающий и полезный.