Привет, хабровчане. Прежде чем уйти на выходные, хотим рассказать о том, что в декабре в OTUS запускается курс "QA Engineer". Курс подойдет для начинающих тестировщиков, которые только начинают свой путь в тестировании или переходят в область тестирования из смежных технических областей. Также предлагаем записаться на бесплатный вебинар, в рамках которого наши эксперты расскажут о карьерных перспективах в сфере тестирования.


А сейчас традиционный перевод полезного материала.


18 характеристик качественного тестирования программного обеспечения

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

? Алиса действует как социолог

Алиса знает, что тестирование — это социальная наука. Она знает, что качество ПО по своей сути субъективно. Она знает, что качество представляет собой ценность для людей, которые имеют значение (Джеральд Вайнберг). Она понимает, что ошибка угрожает этой ценности и досаждает кому-то. (Джеймс Бах). Она понимает, что ошибка не обязательно находится в ПО, а скорее появляется в результате взаимодействия между человеком и программой (Джем Канер). Следовательно, она признает, что уровень качества нельзя измерить, а можно только оценить. Таким образом, она действует как социолог, который ищет значимые проблемы для разных людей, потому что знает, что люди воспринимают качество одного и того же ПО по-разному.

? Алиса действует как психолог

Алиса знает, что наши ошибки в мышлении могут превратиться в программные ошибки, если мы не осознаем свои когнитивные предубеждения (Эндрю Браун). Поэтому она ищет ошибки в сознании людей. Таким образом, она действует как психолог, который копается в сознании людей, чтобы проанализировать особенности мышления. Она знает, что большая часть их знаний о ПО (включая  мнения, предположения, ожидания, желания, догадки, чувства, опыт) находится в их головах.

? Алиса действует как контролёр

Алиса знает, что автоматическая повторяющаяся проверка важна, потому что понимает, что не следует доверять ПО. Она не доверяет ПО, потому что оно постоянно меняет свое «мнение». Само ПО и область его применения (бизнес, технологии) постоянно и стремительно развиваются. Поэтому она автоматизирует процесс проверки, с целью сделать его более быстрым и точным. Она знает, что процесс автоматизации требует постоянной поддержки. Поэтому она относится к автоматизации как к калорийному сладкому десерту — в небольшом количестве вкусно и хорошо, но если его переесть, будет плохо. Итак, она автоматизирует важные проверки, которые многократно раскрывают полезную информацию о ПО. Таким образом, она действует как контролер, который следит за соотношением выгод и затрат автотестов, чтобы не утонуть в усилиях по их обслуживанию.

? Алиса действует как лидер

Алиса знает, что тестирование ПО — это не механический однообразный процесс, а творческая, многомерная и ориентированная на человека деятельность. Она считает, что в центре процесса тестирования находятся не машины, а люди-тестировщики и их навыки. Она умеет программировать, но не хочет искусственно повышать свою важность, изобретая для нее новые названия (например, SDET, Automation Tester). Она знает, что слова “тестировщик” достаточно. Она понимает, что на самом деле ей платят за тестирование, а не за код. 

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

? Алиса действует как хамелеон

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

? Алиса действует как критик

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

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

? Алиса действует как астроном

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

? Алиса действует как историк

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

? Алиса действует как наставник

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

? Алиса действует как реалист

Алиса знает, что для тестирования всегда необходимо гораздо больше времени по сравнению с тем, сколько времени на него отводится. (Джем Канер). Поэтому она умеет расставлять приоритеты в работе, поскольку понимает, что этот процесс должен быть конечным, несмотря на то, что он никогда не заканчивается по природе своей. (Майкл Хантер). Она осознает, что не может доказать корректную работу программы, а может доказать только, что она функционирует неправильно. Алиса принимает тот факт, что не может ответить на вопрос «Все ли ошибки найдены?». Она понимает, что не может оценить количество отсутствующих ошибок, поскольку знает, что тестирование может доказать только наличие ошибок, но не их отсутствие (Эдсгер Вайбе Дейкстра). Таким образом, Алиса действует как реалист, который знает, что тестирование ПО невыполнимо до конца, потому что проблема поиска всех ошибок в ПО неразрешима.

? Алиса действует как исследователь

Алиса знает, что тестирование — это про обучение. Когда у нее заканчиваются идеи для тестирования, она не исключает того, что, вероятно, недостаточно узнала о ПО. Она продолжает исследовать и экспериментировать, чтобы подтвердить эту догадку, и никогда не перестает изучать ПО и его область применения (бизнес, технологии). Алиса знает, что тестирование — это экспериментальная наука. Она считает тестирование скорее адаптивным исследованием, чем фабричным процессом создания, автоматизации и выполнения тест-кейсов. Она знает, что успех ее теста определяется не количеством тест-кейсов, а качеством ее идей. Таким образом, она действует как экспериментатор, который не путает тестирование с тест-кейсами. Алиса рассматривает тесты как эксперименты, чтобы опровергнуть гипотезы, предположения и мнения о ПО.

? Алиса действует как заинтересованная сторона

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

Чем лучше она начинает разбираться в ПО, тем труднее становится общаться с новичками (например, с конечными пользователями). Следовательно, она старается представить себя на месте конечного пользователя, чтобы не забыть, что значит быть новичком. Так, она немного отходит от роли тестировщика, чтобы принять во внимание точки зрения различных заинтересованных сторон, рассматривая риски с их точек зрения. Алиса поступает так, потому что знает, что эти разные точки зрения помогут ей по-разному оценивать ценность ПО и влияние угрозы на ПО. Таким образом, она думает, как заинтересованная сторона, чтобы расширить свое представление о том, как оценивать риски и определять приоритеты, чтобы получить более широкую картину общего профиля риска

? Алиса действует как ребенок

Алиса знает, что не может ожидать ответов на вопросы, которые не задавала. Она не боится выглядеть «глупо», задавая простые вопросы. Она понимает, что тесты — это вопросы, которые она задает ПО, чтобы получить о нем полезную информацию (Джем Канер). Прежде чем что-то предположить, она задает вопросы, чтобы не допускать непроверенных убеждений. Она не боится не знать чего-либо. Алиса знает, что любопытство — это топливо для тестирования. Таким образом, она ведет себя как любопытный маленький ребенок, который никогда не перестает спрашивать, потому что знает, что хорошее тестирование требует правильных вопросов.

? Алиса действует как бухгалтер 

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

? Алиса действует как скептик

Алиса знает, что ей не следует верить всему, что слышит, и только половине из того, что видит (Эдгар Аллан По). Она знает, что фактов не существует, есть только интерпретации фактов (Фридрих Ницше). Она знает, что уверенность абсурдна. Итак, она критически относится к тому, что ей сказали о ПО. Она скептически относится к тому, что знает о ПО, и знает, что никогда не узнает всего. Она не ограничивается тем, что знает сейчас, но и сосредотачивается на том, чего она пока не знает. Она продолжает думать, несмотря на то, что уже знает что-то. 

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

? Алиса действует как друг

Алиса знает, что основная цель тестирования — информировать других людей (например, владельцев продуктов, разработчиков) о проблемах в ПО. Она знает, рассказывать людям о проблемах — это социально трудная задача из-за естественного желания людей избегать неприятностей (Майкл Болтон). Она понимает, что проблемы кажутся на первый взгляд чем-то исключительно негативным. Она же рассматривает проблему как отклонение от желаемого. Чем больше этот разрыв, тем серьезнее проблема. Чем больше проблема, тем больше она может угрожать ПО. 

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

Алиса понимает, что если не донесет до людей факт существования проблем, эти проблемы в конечном итоге дадут о себе знать. Поэтому она сообщает о проблеме без промедления, сдержанно и с сочувствием. Она говорит прямо, но без осуждения. Она рассказывает о негативных вещах в позитивном ключе, потому что видит в проблемах возможность исправиться. Она знает, что не занимается дизайном, программированием и продажами. Но она пытается помочь другим людям понять, какое ПО у них есть на самом деле, чтобы они могли решить, такое ли ПО им нужно (Майкл Болтон).

? Алиса действует как рассказчик

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

? Алиса действует как помощник

Алиса знает, что не может гарантировать качество так же, как врач не может гарантировать здоровье (Майкл Болтон). Она понимает, что ее основная цель — собрать информацию, связанную с качеством (например, риски), чтобы позволить другим людям (например, владельцам продуктов, разработчикам) принимать более обоснованные решения (например, решения по доставке, решения по исправлению) на основе информации, которую она предоставляет. В общем, она тестирует, а другие решают. Алиса понимает, что тестирование — это наука, основанная на информации (Кейт Клейн). Таким образом, она считает себя помощником, который не гарантирует качество, а скорее оказывает качественную помощью.

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


Узнать о карьерных перспективах в тестировании.