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

Некоторые тестировщики, особенно новички, могут бояться анализа и впадать в стопор, когда им предлагают его выполнить. Это причудливо звучащее слово! Это большая идея! Звучит математично! С чего начать? Что делать после? Что такое анализ, наконец?

Нет проблем! Вот как преодолеть некоторый страх с помощью анализа самого анализа, плюс как применить эти же подходы к работе с использованием анализа для «просвечивания» вашего ПО.

Первоначальная загрузка

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

Важно не волноваться, а просто с чего-то начать. Что бы вы ни сделали и чему бы вы ни научились, последуют дальнейшие шаги. Хорошая аналитическая работа начинается с того, что вы втягиваете себя в «первоначальную загрузку», а далее идете от неопределенности к знанию.

Анализ начинается с первоначальной загрузки.

Начало работы

Например, вы могли бы начать анализировать что-нибудь с рассмотрения того, откуда это исходит. Само слово «анализ» происходит от латинского «analusis», которое, в свою очередь, происходит от греческого «analuein». Последнее происходит от двух меньших греческих слов: «ana-», что означает «вверх», и «luein», что означает «развязать». Таким образом, «анализ» буквально означает «распаковка», что сейчас и было сделано с самим словом.

Это помогло? Может быть да, а может и нет. В своей книге «Смыслопроизводство в организациях» Карл Вейк рассказывает историю маленькой девочки, которую предупредили, что прежде чем сказать, надо быть уверенным в том, что говоришь. На что она заявила: «Как я могу знать, что я думаю об этом, пока я не увижу результата своих действий?!». Таким образом, еще одна потенциальная отправная точка — это «сказать» что-то об анализе, а затем попытаться «увидеть» то, что ты думаешь.

Анализировать — это смотреть на вещи и как-то их разгадывать, чтобы люди могли их понять.

Звучит довольно туманно. Тем не менее, возможно, вы сможете опереться на такой подход, опробовать его на примере, «увидеть», что вы думаете, и уточнить. Подход к решению проблем, который помогает вам учиться, но может приводить к ошибкам, называется эвристическим.

Анализ — это эвристический процесс. (Начало — тоже эвристический процесс).

Пример: анализ шкатулки

Простой пример. Представьте, что я предлагаю вам посмотреть на обычную деревянную шкатулку и проанализировать ее, чтобы разобраться в деталях. Вы находитесь в центре своего контекста; вы уже знаете некоторые вещи (о шкатулках), и, чтобы принять вызов, вы хотите и должны знать больше.

Что вы будете делать дальше, зависит от ситуации, от того, что находится перед вами, и от вашего восприятие того, чего я от вас хочу.

Анализ — это процесс, который происходит в контексте.

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

Анализ — это исследовательский процесс.

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

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

Анализ — это разнообразный процесс.

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

Анализ — это итеративный процесс взаимодействия и наблюдения.

Благодаря тому, что вы увидели и услышали, перед вами открываются широченные возможности анализа. Далее вы можете двигаться в самых разных направлениях. Вы можете выйти в Интернет и исследовать части музыкальной шкатулки (цилиндр, зубья, гребень, корпус пружины и т. д.). Вы могли бы сделать открытие, касающееся взаимосвязи между механическими музыкальными инструментами и компьютерами (и те, и те использовали перфокарты в различные моменты своей истории). Вы можете обратиться к физике звука и рассмотреть взаимосвязь между длиной зубьев на гребне и высотой музыкальных нот.

Анализ — это открытый процесс исследования.

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

Как правило, анализ представляет собой процесс сотрудничества.

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

Анализ — это процесс чередования фокусировки и дефокусировки.

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

Анализ подпитывает сам себя.

Применение анализа к программному обеспечению

Изучив шкатулку и приобретя небольшой опыт анализа, попробуем распространить его на изучение программного продукта. В чем это может быть похоже на изучение шкатулки? В чем может отличаться?

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

  • начните со спецификации, части продукта, разговора или обзора всего продукта (начальная загрузка);
  • попробуйте разобраться в своей миссии и в том, что на нее повлияет; в информации, доступной для вас; в природе продукта; в имеющихся у вас инструментах; в графике проекта (контекст);
  • ознакомьтесь с тем, что продукт предоставляет для своих пользователей; или вы можете просмотреть документ с требованиями, чтобы узнать намерения и желания людей (исследование);
  • рассмотрите вещи, которые могут быть важны для продукта, но которые не являются его функциями, платформы, от которых зависит продукт, работу, которую люди хотят выполнять с продуктом (диверсификация);
  • поэкспериментируйте с продуктом, используйте его и понаблюдайте за ним в действии. Инструменты могут помочь в управлении продуктом и его проверке, но помните, что продукт предназначен для того, чтобы помочь людям в работе. Попробуйте поговорить с людьми, которые применяют продукт, и понаблюдайте за ними. Ищите проблемы, исследуйте ошибки (взаимодействие и наблюдение);
  • изучите требования, спецификации и планы развития продукта. Изучите его историю, а также историю подобных продуктов. Изучите технические и бизнес-аспекты продукта (исследование);
  • поговорите с менеджерами, разработчиками, тестировщиками, сотрудниками техподдержки и пользователями, чтобы узнать больше (сотрудничество);
  • в отличие от музыкальной шкатулки, большинство элементов ПО не видны человеческому глазу. Попробуйте разработать идеи о вещах, которых вы не видите, но которые необходимы для работы видимых функций и возможностей. Рассмотрите инструменты, которые помогут сделать невидимое видимым (фокусировка и дефокусировка);
  • на каждом этапе пути каталогизируйте идеи о рисках, собирайте данные, рисуйте эскизные диаграммы, составляйте списки, создавайте истории для подпитывания дальнейшего анализа. Визуализируйте результаты работы продукта и внимательно их изучите. Просматривайте и оценивайте результаты. Делитесь своими открытиями с коллегами и клиентами-тестировщиками и определяйте, куда вы хотите идти дальше (обратная связь).

Анализ и тестирование

Учитывая все это, вот более точное описание анализа, чем мое предыдущее:

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

Это более глубокое и ясное описание. Оно также похоже на определение тестирования, используемое в быстром тестировании ПО (RST): оценка продукта путём изучения его через опыт, исследования и эксперименты.

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

Таким образом, анализ представляет собой своего рода фрактальный процесс. Он снова и снова замыкается на себе.