Техническая документация является неотъемлемой частью любого программного продукта. Она служит источником информации для пользователей, разработчиков и других заинтересованных лиц, помогая им понимать функционал, особенности и правила использования продукта. Для того чтобы техническая документация была точной, актуальной и полезной, технические писатели и тестировщики должны тесно сотрудничать. Сегодня мы рассмотрим роль тестировщика в процессе работы с технической документацией и проиллюстрируем важность этой роли.
Сегодня никто не сомневается в необходимости тестирования. Это подтверждают логика производства любой продукции (не только в области ИТ) и показатели востребованности профессии тестировщика на современном рынке труда.
По данным портала Test.PRO высокий спрос на тестировщиков обусловлен высокими темпами разработки цифровых продуктов, и эти темпы продолжают расти.
Одновременно с этим в последних исследованиях «Лаборатории качества» (учебного центра по подготовке тестировщиков ПО) указывается, что спрос на тестировщиков остается на высоком уровне несмотря на рост автоматизации. Это связано с тем, что «даже автоматизированное тестирование не может существовать без человека. Тестировщик создает и настраивает автотесты. Код, плагины и программы в его руках – всего лишь инструменты».
Если эти аргументы ещё не убедили вас в важности тестирования, приведем пример одного из самых известных «фиаско» и, к сожалению, человеческой трагедии, причиной которой стало пренебрежение этапом тестирования и испытаний. Крушение ракеты-носителя Space Shuttle Challenger в 1986 году стало для США синонимом оглушительного провала. Это не только повлекло огромные финансовые потери, но и нанесло серьезный репутационный ущерб на политической арене (в контексте космической гонки с СССР).
Ракета взорвалась через 73 секунды после старта, все семь астронавтов погибли. Одной из причин аварии было то, что компания-производитель, Morton Thiokol, не провела достаточного тестирования уплотнительных колец на ускорителях. В результате, при низких температурах, которые были в день старта, кольца стали хрупкими и не выдержали нагрузки, что привело к взрыву ракеты.
Конечно, этот пример пренебрежения испытаниями не относится к области информационных технологий. Однако он наглядно демонстрирует важность тестирования, в том числе и в области ИТ, где материальный ущерб может быть более значительным.
Материальный ущерб в области ИТ из-за пренебрежения тестированием может проявляться в различных формах, например:
Примером значительного финансового ущерба, связанного с отсутствием тестирования, является случай компании Samsung в 2013 году. Тогда компания столкнулась с серьезными проблемами из-за неисправностей в программном обеспечении смартфонов Galaxy S4. Samsung была вынуждена выпустить исправленную версию, что привело к дополнительным затратам на разработку и развертывание данного ПО. Проблемы с программным обеспечением также снизили доверие клиентов к компании и могли привести к потере доли рынка.
Другим примером является авария самолета Boeing 737 MAX, которая произошла в результате сбоя в работе программного обеспечения, установленного на самолете. Компанию Boeing обвинили в недостаточном тестировании программного обеспечения. Это привело к двум авариям самолета и гибели более 300 человек. В результате, Boeing понесла значительные финансовые потери и была вынуждена приостановить производство самолета.
Следует отметить, что несмотря на все вышесказанное, использование ПО без тестирования до сих пор является распространенной практикой в некоторых компаниях, где приоритет отдается скорости разработки и выходу продукта на рынок. Это характерно для команд, работающих по методологии Agile, в которой быстрая доставка ПО на пользовательский рынок является основной мерой прогресса.
Важно помнить, что такой подход может привести к серьезным последствиям, включая сбои в работе программного обеспечения, утечку данных, потерю репутации и финансовые убытки.
Тестировщик – это специалист, ответственный за выявление и исправление ошибок в программном обеспечении. В процессе работы тестировщик выполняет следующие задачи:
В сфере ИТ тестирование является неотъемлемой частью процесса разработки программного обеспечения. Тестировщик работает в сотрудничестве с другими членами команды разработки, такими как разработчики, аналитики и технические писатели, чтобы гарантировать, что ПО соответствует требованиям и ожиданиям пользователей. От качества работы тестировщика зависит стабильность, надежность и безопасность ПО.
В ходе работы над технической документацией тестировщик взаимодействует не только с разработчиками, но и с техническими писателями. При правильной организации рабочего процесса это сотрудничество должно происходить на разных этапах жизненного цикла документации.
Одним из ключевых аспектов сотрудничества тестировщика и технического писателя является тестирование документации. Тестировщик проверяет документацию на предмет точности и актуальности, сравнивая описанный в ней функционал с фактическим поведением программы. Например, если в документации указано, что определенная функция должна работать следующим образом, тестировщик проверяет, соответствует ли это описание реальному поведению функции.
Например, представьте, что технический писатель написал в руководстве пользователя, что для сохранения файла нужно нажать кнопку «Сохранить». Однако, в процессе тестирования тестировщик обнаруживает, что для сохранения файла нужно нажать кнопку «Применить». В этом случае тестировщик должен сообщить об этом техническому писателю, чтобы тот обновил документацию и привел ее в соответствие с текущим состоянием ПО.
Тестировщик также играет важную роль в поддержании актуальности технической документации. В процессе тестирования ПО тестировщик может обнаружить несоответствия между описанием функционала и фактическим поведением программы.
Например, в последнем релизе изменили функциональность программы, и теперь она работает по-новому. Если технический писатель не обновит документацию в соответствии с этими изменениями, пользователи могут столкнуться с несоответствием между описанием в документации и реальным поведением программы. Тестировщик должен убедиться, что технический писатель своевременно обновил документацию, чтобы пользователи имели доступ к актуальной и точной информации.
Тестировщик может давать ценную обратную связь техническому писателю для улучшения качества документации. Например, тестировщик может указать на места, которые являются неясными или непонятными, или предложить способы улучшения описания.
Допустим, технический писатель дал сложное описание функции, которое тяжело воспринимается обычным пользователем. Тестировщик может предоставить обратную связь, указав на эту проблему и предложив более простой и понятный способ описания функции.
Тестировщик может сыграть важную роль в обучении технического писателя. Он может предоставить тех писателю информацию о новых функциях и изменениях в программном обеспечении, которые необходимо оформить документально. Кроме того, тестировщик может помочь техническому писателю понять сложные технические понятия и объяснить их простым языком.
Тестировщик может помочь техническому писателю при создании и валидации пользовательских сценариев (user stories). Технический писатель часто описывает, как пользователи взаимодействуют с продуктом, и тестировщик может проверить, действительно ли описанные сценарии соответствуют реальным пользовательским действиям в программном обеспечении.
Например, технический писатель описал сценарий регистрации пользователя через приложение. Тестировщик может проверить, соответствует ли это описание реальным шагам регистрации и нет ли несоответствий.
Тестировщик может помогать техническому писателю в создании документации, связанной с тестированием, включая тест-кейсы, баг-репорты, отчеты о результатах тестирования и инструкции по воспроизведению ошибок. Технический писатель может помогать оформлять такие документы, чтобы они были понятны для всех участников процесса разработки.
Например, тестировщик создает детализированный баг-репорт, а технический писатель помогает оптимизировать его описание для разработчиков, чтобы оно было максимально понятным и конкретным.
Тестировщики могут делиться информацией о найденных ошибках и уязвимостях, которые могут повлиять на описание продукта в документации. Это помогает техническому писателю заранее предусмотреть возможные проблемные области и дать пользователям точные инструкции по их предотвращению или решению.
Если тестировщик находит ошибку в работе определенной функции, он может порекомендовать техническому писателю добавить в документацию временное решение для пользователей до выпуска обновления.
При работе в командах, использующих методологии DevOps или Agile, тестировщики могут взаимодействовать с техническим писателем для обеспечения актуальности документации в процессе непрерывной интеграции и развертывания продукта. Технический писатель получает информацию о новых релизах, изменениях в ПО, а тестировщик подтверждает корректность данных.
Пример: В процессе CI/CD тестировщик выявляет изменения в функционале, которые нужно задокументировать. Он может уведомить об этом технического писателя, чтобы тот вовремя обновил соответствующую документацию.
Роль тестировщика в процессе работы с технической документацией крайне важна. Взаимодействие между тестировщиком и техническим писателем является ключевым для обеспечения качества и актуальности документации. Тестировщик может помочь техническому писателю в тестировании документации, поддержании ее актуальности, предоставлении обратной связи и обучении технического писателя. От эффективности этого сотрудничества зависит качество контента и, как следствие, качество программного обеспечения в целом. Компании должны уделять особое внимание сотрудничеству между тестировщиками и техническими писателями, чтобы гарантировать, что их техническая документация является точной, актуальной и полезной для пользователей.