После неожиданного успеха цикла статей о ретроспективных уроках автоматизации мне показалось, что нужно уделить больше времени областям, в которых у меня достаточно опыта, и к которым я неравнодушен. Это исследовательское тестирование – или, как я буду называть это далее, просто исследование.
Зачем это нужно? Мне кажется, что я посылаю некоторым людям смешанные сигналы – мне пришлось отклонить ряд запросов на консультации по автоматизации, потому что люди решили, что я эксперт в этой сфере. Мне очень льстит быть так высоко оцененным, но положа руку на сердце, я не могу претендовать на эту честь. Я любитель-самоучка, у которого достаточно смелости на то, чтобы иметь мнение, и есть блог, где этим мнением можно поделиться. Что касается уровня моих навыков, я считаю, что они находятся на необходимом минимуме. В любом случае, я не разделяю взгляд на автоматизацию, сконцентрированный на инструментарии, и полагаю, что большая часть проблем, связанных с автотестами, в том, что люди недостаточно хорошо понимают тестирование. Ретроспективные уроки автоматизации отклонились от моей первоначальной цели – создания отсутствующего звена между тестированием и автоматизацией, слишком отойдя к технической стороне автотестов. Если основной задачей цикла была демонстрация, что имеет смысл автоматизировать для помощи тестированию, необходим еще один цикл, показывающий, что наиболее важно с точки зрения тестировщика, и что автоматизаторы должны знать о целях и сути экспертного тестирования.
Я решил, что этот цикл будет называться "Ретроспективные уроки исследовательского тестирования". Он также будет полезен тем, кого интересует исследовательская часть тестирования, и кто устал от просьб строго следовать сценариям, хотя толка от этого немного.
Девушки рассказали о парном тестировании, о задачах, которые оно помогает решить, и привели пример неудачного использования практики.
В методологии XP есть практика — парное программирование. Во многих источниках написано о массе его преимуществ: высоком качестве кода, взаимозаменяемости разработчиков и т. д.
Если парное программирование настолько эффективно, то почему бы не применить аналогичные принципы в тестировании? Да, это можно сделать, парное тестирование существует давно и хорошо себя зарекомендовало. Но не стоит забывать, что любая практика является всего лишь инструментом для решения каких-либо задач.
В Википедии нет термина «парное тестирование», но есть определение для парного программирования, которое можно взять за основу. Тогда, на наш взгляд, мы получаем следующее.
Парное тестирование — это техника, при которой тестирование одной функциональности производится парой людей за одним рабочим местом. Один тестировщик («ведущий») управляет компьютером, второй («штурман») непрерывно следит за работой первого. При этом на всем протяжении работы над задачей они обмениваются идеями и обсуждают их.
Любая практика — всего лишь инструмент. Мы не хотим забивать гвозди микроскопом, поэтому всегда отталкиваемся от задачи. Давайте рассмотрим те задачи, для которых релевантно использование практики «парное тестирование».
Публикуем запись доклада Максима Бакирова "Фаззинг или тестирование мусорными данными" с прошедшего в Новосибирске QA DevDay.
Стоит отметить, что Макс пишет на С++ и его доклад очень близок к unit-тестированию. Однако, даже если тема вам не близка, посмотрите видео для развлечения. Наши гости единогласно заметили, что за фаззингом будущее.
Регрессионное тестирование– это набор тестов, направленных на обнаружение дефектов в уже протестированных частях приложения.
Не секрет, что скорость регресса является важным элементом общего процесса:
Во-первых, от нее зависит, как быстро мы пофиксим найденные баги;
Во-вторых, она влияет на общую скорость релиза;
В-третьих, высокая скорость уменьшает общий бюджет проекта.
Именно поэтому на своих проектах мы непрерывно работаем над сокращением срока проведения регрессионного тестирования. Например, в мае мы проводили очередную итерацию ускорения на проекте по тестированию страхового ПО и теперь можем гордиться достигнутым результатом.
В трансляцию блогов регулярно добавляются новые блоги. Их количество уже давно перевалило за отметку 100. Ну а мы продолжаем знакомить Вас с новыми блогами.
«Аплана» — лидирующий поставщик услуг тестирования и обеспечения качества информационных систем, а также управления жизненным циклом приложений. Компания на рынке уже 17 лет, в штате более 700 специалистов, общее количество проектов превысило 1500.
Теперь мы запустили блог. В нем будут публиковаться экспертные материалы наших специалистов, информационные статьи, новости компании и рынка, аналитика, разбор кейсов и многое другое.
Коллега как-то попросил меня ввести его в суть исследовательского тестирования. Я сделал список полезных статей в блогах, которые, на мой взгляд, пригодятся новичку. Он среагировал в ключе "да это же целый вводный курс". Я так не думал, но тот список был недалек от совершенства.
С тех пор я добавил в него еще ссылок и подумал над упражнениями, чтобы сделать это настоящим вводным курсом. Теперь я могу сразу отправлять этот список интересующимся.
Это настоящая кроличья нора – статьи ведут на другие статьи, а те, в свою очередь, на еще большее количество источников. Приятного чтения!
Оригинал. Перевод разбавлен размышлениями и дополнениями автора из своего опыта
О чём это всё
Будучи инженером по тестированию, вы, вероятно, слышали о таких видах тестирования как «дымовое» (smoke), «санитарное тестирование» (sanity), «ре-тест» и регрессионное тестирование. Вполне возможно, многие из этих видов используются вами на ежедневной основе.
В этой статье я хотел бы внести ясность и объяснить разницу между этими видами тестирования и попробовать разобраться, провести границы (хоть и условные) где заканчивается один вид тестирования, и начинается другой.
Для новичков в тестировании (и даже опытных тестировщиков) разделение этих понятий может быть затруднительно. И в самом деле, как отличить где начинается санити-тестирование и заканчивается smoke? Насколько сильно нам надо ограничить проверку части функциональности системы или её компонентов, чтобы назвать это «дымовым» тестированием? Является ли ввод логина/пароля в пользовательскую форму входа на сайт дымовым тестом, или сам факт её появления на странице сайта уже является пройденным тестом?
Строго говоря, вы всё равно сможете проводить тестирование, даже при том что не сможете точно сказать, в чём же разница. Можно даже не задумываться о разграничении, каким именно видом тестирования вы сейчас заняты. Но всё же, чтобы расти над собой в профессиональном смысле, нужно знать что вы делаете, зачем, и насколько правильно вы это делаете.
Есть множество определений тестирования ПО, и множество взглядов на то, как должно выглядеть ответственное тестирование в нашей области. Ваш взгляд на роль тестировщика влияет на то, какие практики и артефакты вы считаете ценными.
Мое любимое определение тестирования дал Кем Кейнер: «Тестирование – это эмпирическое исследование, которое проводится с целью предоставить заинтересованным лицам информацию о продукте или сервисе, который тестировался».
В целом я рассматриваю тестирование, как часть бизнеса по сбору информации и ее передаче.
Более того, я считаю себя тестировщиком контекстной школы. У нее семь принципов. Вот моя интерпретация этих принципов и то, что они значат лично для меня:
«Ценность любой практики зависит от контекста» и «внутри контекста есть хорошие практики, но лучших не существует». Любая проблема тестирования уникальна. Наш подход к этой проблеме, следовательно, тоже уникален. Выяснить как можно больше и передать другим свое понимание проблемы жизненно необходимо для эффективного тестирования. Чем гибче инструмент или процесс, тем выше количество контекстов, в котором я могу его использовать.