Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

Тестовая документация и анализ требований

В преддверии старта курса «Game QA Engineer» публикуем текстовую расшифровку онлайн-интенсива, который провела Надежда Чертовских — руководитель отдела QA в компании BeresnevGames и преподаватель OTUS.

Цели интенсива:

познакомиться с основными видами тестовой документации;

проанализировать документ от game-дизайнера;

попрактиковать составление чек-листа.

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

Для начала давайте обсудим такой животрепещущий вопрос: почему сегодня на курсе «тестировщик игр» мы обсуждаем документацию?

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

Существует распространённое заблуждение, что тестировщик игр целый день только и делает, что в игры играет. Но на самом деле это не так. Тестировщик в геймдеве точно такой же тестировщик, как и в любой другой сфере, и работает точно по такому же принципу, но продукт у него не web-страничка, не application на операционной системе, а игра (мобильная, консольная, десктопная).

Тестирование может быть автоматизированным и ручным

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

На интенсиве мы поговорим в целом об артефактах тестирования, с которыми работает тестировщик:

План тестирования (Test Plan)

Тест-кейс (Test Case)

Баг-репорт (Bug Report)

Отчёт о тестировании (Test Report)

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

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

План тестирования

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

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

Форм-фактор у тест-плана может быть разный (схема, интеллектуальная карта и т.д.) и зависит от того, как команде будет удобнее взаимодействовать с документами.

Чаще всего ПТ требуется именно для людей, которые принимают решения по проекту, чтобы они поняли, что в следующий момент мы делаем: релизим билд или нужно подвинуть сроки, добавить к тестированию, убавить к каким-то другим срокам. И лучше всего не делать ПТ огромным, чтобы человек, который будет его читать, смог осилить весь объём. Если посмотреть примеры тест-планов в интернете — часто это одностраничная схема, чтобы все в общем и целом понимали, какой объем тестирование предстоит. Обычно план тестирования делается до начала тестирования и до момента релиза.

Таким образом План тестирования:

описывает стратегию тестирования, цели, график, оценку, результаты, а также ресурсы необходимые для тестирования;

имеет разную степень детализации;

имеет разный форм-фактор;

составляется не более, чем на 2-х страницах;

составляется до начала тестирования.

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

Пример тест-плана с сайта с сайта www.guru99.com

Тест-кейс

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

Тест-кейсы можно формировать в последовательный сценарий, чтобы проверить, как игрок пройдет по этому функционалу от начала до конца.

Тест-кейсы можно группировать в смысловые блоки.

Например, если в игре запускается какой-то ивент, формируется набор тест-кейсов для проверки этого ивента.

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

Составляющие тест-кейса:

идентификатор (уникальный номер, по которому вы сможете найти этот тест-кейс и на него сослаться);

название сценария (какое-то краткое, но ёмкое);

ссылка на требования ГДД;

предусловия (опционально, если они требуются для тест-кейса);

фактический результат (опционально).

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональностиПример тест-кейса

Чек-лист

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

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

Чек-листы лучше сразу писать по требованиям (геймдизайнерскому документу) перед стартом тестирования функционала или по итогу.

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

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

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

Ссылка на mindmap чек-лист для мобильной игры:

Баг-репорт

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

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

В баг-репорте обязательно должны быть:

Подробное описание проблемы – что, где, когда случилось.

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

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

Алгоритм воспроизведения – пошаговые предусловия предусловия, которые необходимы для воспроизведения бага.

Доказательства – скрины, видео, логи с устройств.

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональностиЧто проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

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

Отчет о тестировании

Отчет о тестировании пишется, когда функционал уж проверен и релиз либо предрелиз показывает итог проделанной работы.

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

Составляющая отчёта о тестировании:

Кто тестировал (состав команды).

Когда тестировал (даты проведения тестов).

Как тестировал (процесс тестирования, описание применяемых методов и технологий).

Какие возникли проблемы и как решились.

Инструкция

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

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

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

Инструкции лучше писать сразу. Это позволяет избежать множество проблем в дальнейшем.

Где хранить:

Google Docs, Google Sheets

Zephyr, Test Management for Jira

Геймдизайнерский документ (ГДД, диздок)

В геймдизайнерском документе гейм-дизайнер пишет требования к продукту или к отдельному функционалу.

Детализация у геймдизайнерского документа может быть разная. Форм-фактор также может быть разным.

Существует несколько способов проверки требований к игре: по принципу Что? Где? Когда? или по принципу проверки на полноту, однозначность, непротиворечивость, тестируемость, необходимость, осуществимость.

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

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

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

Важно смотреть на полноту содержания: все ли условия предусмотрены, все ли сценарии, которые могут возникнуть у игрока в связи с новым функционалом продуманы.

Разработчик смотрит на возможность реализации ГДД.

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

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

Практическая часть интенсива. Мы попробуем сформировать чек-лист и вопросов гейм-дизайнеру по новому продукту на основе ГДД.

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

На картинке мы видим 3 скрина игры.

скрин – изображение и кнопка Play, при нажатии на которую, мы попадаем в игровой mod

скрин – на старте есть какое-то количество жизней и шагов

скрин – при проигрыше попадаем на экран проигрыша, где написано итоговое количество набранных за игру баллов и кнопка сыграть ещё.

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

Итоги интенсива:

Узнали, какие бывают виды документации у тестировщика игр.

Обсудили зачем тот или иной документ нужен.

Попрактиковались в создании чек-листа.

Список материалов для самостоятельного изучения:

Источник

Чек-лист тестирования требований

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

Вот только на что обращать внимание при тестировании? Есть набор основных характеристик, которыми должна обладать хорошая документация:

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

В этой статье я расскажу о каждой из них поподробнее, с картиночками и примерами из жизни.

1. Полнота

Все ли описано? Ничего не забыли? Вдруг у нас остался неописанный функционал или параметр API-метода?

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

Чтобы проверить этот пункт, просто напишите чек-лист проверок функционала. Вот как начали читать ТЗ, сразу записывайте тесты. Важно именно писать, а не просто прикидывать в уме. Иначе что-то обязательно забудете.

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

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

У Заказчика уточнили, документацию пополнили! В остальном меня всё устроило, вроде нормально описано, всё учтено.

Заказчик согласовал ТЗ, разработчик сделал. Пришло время тестировать. Начинаю писать автотесты и. Да, разумеется, сразу получаю еще 5-10 дополнительных вопросов. В ТЗ не были предусмотрены все сценарии, и я о них тоже не подумала, пока прикидывала тесты мысленно.

А как только стала расписывать план автотестов, сразу увидела «белые пятна». При этом у меня 10 лет опыта в тестировании. Не полагайтесь на память и «быстренько мысленно прикину», выделите полчаса и распишите чек-лист проверок подробно.

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

Чем плохо отложить вопросы на потом? Не слишком профессионально согласовать требования, которые написала твоя команда, а через пару недель задавать уточняющие вопросы. Заказчик подумает: а чего сразу не спросили?

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

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

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

2. Однозначность

Требования должны трактоваться всеми одинаково.

«Отчет должен загружаться быстро» → что значит «быстро»?

пользователь будет уверен, что страница будет грузиться доли секунды, даже если это сложный отчет на многомиллионных данных;

разработчик прикинет, что в таких объемах 5 секунд нормальное время отклика, даже быстрое.

Налицо конфликт интересов. И ведь каждый будет тыкать в ТЗ для отстаивания своей позиции. Лучше конкретизировать:

Отчет за год должен загружаться не более секунды.

Отчет за весь период времени должен загружаться не более 5 секунд.

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

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

Аналитик будет думать, что там будет значение 0. Деньги же, цифра!

Разработчик сделает пустое поле, не указано ведь ничего! А это что-то сломает.

Если в требованиях не указано, как обработать ошибочный сценарий, разработчик может:

Не подумать о нем и никак не обработать — пользователь может огрести страшную ошибку.

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

Все, что можно прочитать двояко, лучше исправить. Это не значит, что нужно описывать каждую мелочь, но всё зависит от читателей документа.

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

Если это внутренний документ, а у вас сильная команда — можно не расписывать подробно.

Если этот документ отправят заказчику, надо расписать вообще всё — потому что у заказчика свои тестировщики, и они обязательно зададут кучу «а что, если. ». Если они хорошие тестировщики, разумеется. Это вы знаете свою программу и представляете, как она реагирует на ошибки или что-то такое. Тестировщик заказчика этого не знает, он будет уточнять.

3. Непротиворечивость

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

Например, есть страница нефункциональных требований, где написано, что любая страница должна грузится не более 3 секунд. Аналитик пишет ТЗ на новый модуль отчетности, который использует много данных и сложные формулы. И он пишет, что отчет может грузиться вплоть до минуты. Явное противоречие!

Если заказчик найдет первый раздел документации, он будет требовать именно такую скорость. И будет прав, кто же хочет ждать?)

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

4. Необходимость

Помните главный принцип: «Кратко, но емко»? Он действует и в документации тоже.

Круто, когда документация полная. Но это не значит, что простой функционал надо растечь на 10 листов А4. Когда документации много, сложно проверить полноту, сложно удержать в голове, о чем уже говорил, не повторяться и не противоречить самому себе.

Подумайте, так ли уж нужно описывать каждую кнопочку интерфейса? Это правда актуально? Пользователи правда не догадаются, что фильтры по строковым колонкам работают одинаково?

Пишите только то, что необходимо:

В ТЗ — функционал, основной сценарий и альтернативы, типы ошибок.

В пользовательской документации — то, как пользоваться системой. Но не доходя до крайностей и обучения включению компьютера.

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

5. Осуществимость

А можно ли реализовать то, что тут написано? Насколько это будет сложно и дорого?

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

Этот пункт обычно проверяют разработчики. Они остужают буйные фантазии из серии «загружать миллионы данных за 0,1 секунду» или что-то архитектурно сложное. Бывает такое, что на бумаге всё звучит просто, а вот сделать это займет человеко-месяц в лучшем случае.

В одной из систем, с которыми я работала, был точечный поиск. Не просто «найди мне все данные, где встречается «Ленина», а именно «найди мне адреса, у которых улица Ленина». Это отсеет фамилию Ленина, комментарий к телефону и другие нерелевантные данные.

Но вот беда — нельзя поискать по двум параметрам ОДНОГО атрибута. Если сказать «Найди мне домашний адрес с улицей Ленина», система вернет:

1. Васю: домашний адрес с улицей Ленина.

2. Петю: домашний адрес с переулком Турчанинов и рабочий с улицей Ленина.

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

Это баг в системе? Или просто нельзя сделать такой поиск, это неосуществимо? Нужно смотреть по коду.

В той системе для поиска использовали Lucene. Его можно настроить по-разному:

o поиск по любому полю;

o поиск по конкретному полю;

o множественный поиск по конкретному атрибуту (в одном адресе проверить и тип, и улицу);

Но! Чем сложнее сценарий поиска, тем медленнее он работает. Дольше сохраняет данные (потому что структура внутри усложняется), дольше ищет — или потребляет больше ресурсов для той же скорости.

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

Когда данных с гулькин нос, это неважно. А когда их миллионы, нужно искать баланс. И такой выбор возможностей поиска — это именно компромис для скорости и потребляемых ресурсов под сценарии использования.

Осуществимо желание отсеять Петю? Да. Но это просто не нужно. Потому что вреда принесет больше, чем пользы. Ради того, чтобы в выборку из 1000 человек не попали 10 лишних, платить несколько миллионов за дополнительные мощности серверов смысла просто нет.

6. Тестируемость

Можно ли протестировать этот функционал?

Подумайте об этом заранее. А то бывает так, что разработчик уже всё сделал, и тут только тестировщик понимает, что задачу никак нельзя проверить. Или можно проверить вручную, но нельзя написать автотесты, фреймворк под новый функционал не заточен.

Если в компании принято все покрывать автотестами, то это станет проблемой. Может, разработчик прочитает ТЗ и сам поймет, что ещё фреймворк тестов дорабатывать надо. А может, он не вспомнит об этом. И тогда ваша задача — вспомнить. Чтобы сразу заложить время на доработки.

Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Смотреть картинку Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Картинка про Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности. Фото Что проверяют тестировщики в документации на этапе разработки требований к продукту функциональности

У меня бывали ситуации, когда мы делали задачу в текущем релизе, а потом ставили новую «Доработать фреймворк автоматизации, чтобы поддержать изменения» в следующий. Иногда забывали про фреймворк, а потом времени в релизе уже не оставалось. А иногда сразу понимали, что всё сразу сделать не успеем.

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

Сначала я не подумала о доработке автотестов — ведь возможность проверить «что ушло» есть! А когда добралась до тестирования, пошла к разработчику:

— А как мне указать вторую очередь? Или папка jms — это то, что в обе уйдет?

— Хм, нет, погоди, это только в старую. Надо доделывать фреймворк, поддержать разные очереди.

Ну и ничего, доделали, написала тестов!

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

При этом бывает и так, что тестировать все равно придется разработчику. Скажем, когда делают рефакторинг, что может проверить тестировщик? Только регресс провести, посмотреть, что ничего не отломалось. А если есть автотесты, то это проверят они =)

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

И именно это и надо проверить! А проверить это может только разработчик. Он и выполняет тестирование в данном случае.

Бонус: мнемоника CIRCUS MATTA и другие доп материалы

CIRCUS MATTA — мнемоника для ревью пользовательских историй. Это как раз про тестирование требований! Истории должны обладать качествами:

Completeness — полнота

Independent — независимость

Realisable — реализуемость

Consistency — консистентность

Unambiguity — однозначность

Specific — специфика заказчика

Measurable — измеримая

Acceptable — приемлемая

Testable — тестируемая

Traceable — трассируемая (можно проставить взаимосвязи)

Achievable — достижимая

Вон сколько пунктов получилось! Мне особенно импонируют пункты «специфика заказчика» и «трассируемость». Это и правда важно. Если у вас коробочный продукт, который кастомизируется под заказчика, обязательно смотрите на пункт «Specific». А трассируемость — очень хороший бонус, облегчающий поддержку документации в актуальном состоянии!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *