0+
Краткий справочник тестировщика

Объем: 116 бумажных стр.

Формат: epub, fb2, pdfRead, mobi

Подробнее

Введение

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

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

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

Основные термины и определения

— Тестирование (Testing): процесс проверки соответствия продукта его требованиям и ожиданиям пользователей.

— Тестировщик (Tester): специалист, занимающийся тестированием продукта, отвечающий за обнаружение дефектов и обеспечение качества продукта.

— Качество (Quality): свойство продукта, которое определяет его способность удовлетворять потребности и ожидания пользователей в соответствии с заданными требованиями и стандартами. Качество в тестировании связано с тем, насколько хорошо продукт соответствует его целям и требованиям, а также насколько эффективно он выполняет свои функции и задачи.

— Тест-план (Test Plan): документ, описывающий общий подход к тестированию продукта, содержащий информацию о целях, методах, ресурсах и расписании тестирования.

— Тестовый набор (Test Suite): группа связанных тест-кейсов, которые выполняются последовательно, чтобы проверить определенную функциональность продукта.

— Тестовый сценарий (Test Scenario): последовательность шагов, необходимых для проверки определенной функциональности продукта.

— Тест-кейс (Test Case): набор инструкций для проведения конкретного тестирования и проверки корректной работы определенного функционала продукта.

— Покрытие тестами (Test Coverage): процентное соотношение между количеством выполненных тестовых сценариев или тест-кейсов и общим количеством функциональности продукта, проверяемой в этих тестах.

— Дефект (Defect): отклонение от требований или ожиданий пользователей, обнаруженное в процессе тестирования.

— Баг (Bug): термин, используемый для обозначения дефекта или ошибки в работе программного обеспечения.

— Тестовое окружение (Test Environment): среда, в которой проводится тестирование продукта, включающая в себя программное и аппаратное обеспечение, настройки и конфигурации.

— Регрессионное тестирование (Regression Testing): процесс повторного тестирования уже протестированных функций или участков кода после внесения изменений, чтобы проверить, что изменения не привели к появлению новых дефектов.

— Автоматизированное тестирование (Automated Testing): процесс проведения тестирования с использованием специальных программных инструментов для автоматизации выполнения тестовых сценариев и тест-кейсов.

— Интеграционное тестирование (Integration Testing): процесс проверки работоспособности компонентов системы в совокупности, в том числе взаимодействия между ними.

— Юнит-тестирование (Unit Testing): процесс тестирования отдельных компонентов программного обеспечения (например, функций, классов), чтобы проверить их корректность и работоспособность.

— Тестирование производительности (Performance Testing): процесс тестирования, направленный на оценку работоспособности и производительности продукта, включая проверку его способности обрабатывать большое количество запросов и обеспечивать быстрый отклик.

— Тестирование безопасности (Security Testing): процесс тестирования, направленный на оценку уровня защищенности продукта от внешних угроз, таких как хакерские атаки, вирусы и т. д.

— Тестирование совместимости (Compatibility Testing): процесс тестирования, направленный на проверку работоспособности продукта в различных окружениях и на разных платформах.

— Тестирование пользовательского интерфейса (User Interface Testing): процесс тестирования, направленный на проверку корректности работы пользовательского интерфейса продукта, включая взаимодействие с пользователем и удобство использования.

Основы тестирования

Жизненный цикл разработки ПО

Жизненный цикл разработки ПО (Software Development Life Cycle, SDLC) — это процесс разработки ПО, который включает в себя различные фазы, начиная от анализа требований и заканчивая сопровождением и поддержкой ПО после его внедрения. Жизненный цикл разработки ПО обычно включает следующие основные фазы:

— Анализ требований: определение требований к ПО на основе потребностей заказчика и пользователей, описание функциональных и нефункциональных требований, создание спецификаций требований.

— Проектирование: разработка архитектуры ПО, создание диаграмм и схем, определение функциональности и интерфейсов.

— Разработка: создание кода ПО на основе заданных требований и дизайна, тестирование кода на соответствие требованиям.

— Тестирование: проверка работоспособности ПО на соответствие требованиям, выявление дефектов и ошибок в работе ПО, исправление и повторное тестирование.

— Внедрение: установка ПО на рабочие станции пользователей, настройка и интеграция с другими системами.

— Сопровождение и поддержка: обеспечение работоспособности ПО, исправление ошибок и дефектов, обновление ПО для улучшения его функциональности и совместимости с другими системами.

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

Основные постулаты тестирования

Постулаты тестирования — это основные принципы и подходы, которые лежат в основе тестирования программного обеспечения. Вот некоторые из главных постулатов тестирования:

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

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

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

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

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

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

— Тестирование должно быть систематическим и документированным: тестирование должно проводиться систематически и документироваться, чтобы обеспечить повторяемость и воспроизводимость результатов тестирования. Это также помогает обеспечить качество продукта и улучшить процесс разработки.

Эти постулаты помогают тестировщикам ориентироваться в работе и сделать процесс тестирования более эффективным.

Классификация видов тестирования

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

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

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

— Тестирование пользовательского интерфейса (UI Testing) — это процесс проверки интерфейса на соответствие заданным требованиям, таким как размер, шрифт, цвет и последовательность действий.

— Тестирование удобства использования (Usability Testing) — это метод проверки, который оценивает удобство использования, обучаемость, понятность и привлекательность продукта для пользователей в соответствии с контекстом использования. Он состоит из UX (User Experience), который описывает взаимодействие пользователя с продуктом, и UI (User Interface), который представляет собой инструмент для взаимодействия между пользователем и веб-ресурсом.

— Тестирование безопасности (Security Testing) — это стратегия, которая используется для проверки безопасности системы и анализа рисков, связанных с защитой приложения от атак хакеров, вирусов, несанкционированного доступа к конфиденциальным данным и другими видами угроз.

— Инсталляционное тестирование (Installation Testing) — это проверка успешной установки и настройки, обновления или удаления приложения на различных платформах.

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

— Тестирование на отказ и восстановление (Failover and Recovery Testing) — это проверка, которая оценивает способность продукта успешно восстанавливаться после возникновения сбоев, связанных с ошибками программного обеспечения, отказами оборудования или проблемами связи.

— Тестирование локализации (Localization Testing) — это проверка адаптации программного обеспечения для определенной аудитории в соответствии с ее культурными особенностями, включая язык, формат даты и времени, валюту и т. д.

Однако виды тестирования можно классифицировать по различным параметрам. Например:

Классификация тестирования по позитивности сценария:

— Позитивное тестирование — использует только корректные данные для проверки правильности функций приложения.

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

Классификация тестирования по знанию системы:

— Тестирование белого ящика (White Box) — тестирование ПО с полным доступом к коду проекта, при котором тестировщик знает внутреннюю структуру, устройство и реализацию системы.

— Тестирование серого ящика — метод тестирования ПО, который предполагает частичный доступ к коду проекта, объединяя в себе White Box и Black Box методы.

— Тестирование чёрного ящика (Black Box) — метод тестирования ПО, при котором тестировщик не имеет доступа к внутренней структуре и реализации системы, а основывается на работе с внешним интерфейсом тестируемой системы.

Классификация тестирования по исполнителям тестирования:

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

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

Классификация тестирования по уровню тестирования:

— Модульное (компонентное) тестирование — проводится разработчиками, чтобы проверить отдельные компоненты системы, такие как объекты, классы, функции и т. д. и выявить дефекты в коде.

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

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

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

Классификация тестирования по исполнению кода:

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

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

Классификация тестирования по хронологии выполнения:

— Повторное/подтверждающее тестирование (re-testing/confirmation testing) — это тестирование, при котором запускаются тестовые сценарии, которые выявили ошибки в предыдущем тестовом цикле, с целью подтверждения того, что ошибки были успешно исправлены.

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

— Приемочное тестирование — это проверка соответствия системы требованиям пользователя, бизнес-процессам и потребностям.

Этапы тестирования

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

— Планирование тестирования: на этом этапе определяются цели тестирования, составляется план тестирования, определяется состав тестовых случаев, определяются критерии окончания тестирования.

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

— Подготовка тестовых данных: на этом этапе создаются тестовые данные, которые будут использоваться при проведении тестирования.

— Выполнение тестов: на этом этапе проводятся тесты в соответствии с планом тестирования. Результаты тестирования записываются и анализируются.

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

— Исправление ошибок: на этом этапе исправляются выявленные ошибки и проблемы.

— Повторное тестирование: после исправления ошибок проводится повторное тестирование, чтобы убедиться, что ошибки действительно были исправлены и не появились новые.

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

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

Тест-планирование

Цели и задачи тест-планирования

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

Основные задачи тест-планирования:

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

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

— Определение рисков и приоритетов: на этом этапе происходит анализ возможных рисков и их влияния на систему, а также определение приоритетов для тестирования тех частей системы, которые являются наиболее критическими.

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

— Определение тестовых данных: на этом этапе производится подготовка тестовых данных, которые будут использоваться при тестировании.

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

— Определение расписания и ресурсов: на этом этапе определяется расписание тестирования и ресурсы, необходимые для его выполнения.

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

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

Разработка тест-плана

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

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

— Определение области тестирования: на этом этапе определяется область тестирования, которую необходимо покрыть в процессе тестирования. Это может быть конкретный функциональный модуль, компонент системы или вся система в целом.

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

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

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

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

— Определение ответственностей: на этом этапе определяются роли и ответственности членов команды тестирования. Например, кто будет разрабатывать тест-кейсы, кто будет проводить тесты и кто будет отчитываться о результатах тестирования.

— Определение ресурсов: на этом этапе определяются ресурсы, необходимые для проведения тестирования, такие как персонал, оборудование и программное обеспечение.

— Оценка рисков: на этом этапе определяются риски, связанные с проведением тестирования, и разрабатываются планы по их управлению.

— Утверждение тест-плана: после того, как тест-план разработан, он должен быть утвержден соответствующими заинтересованными сторонами, такими как руководство проекта, заказчик или команда разработчиков.

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

Оценка рисков

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

Процесс оценки рисков включает в себя следующие шаги:

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

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

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

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

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

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

Тест-дизайн

Цели и задачи тест-дизайна

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

Основные задачи тест-дизайна включают:

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

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

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

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

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

— Проверка тестовых случаев: проверка тестовых случаев, чтобы убедиться, что они покрывают все функции продукта и соответствуют требованиям.

— Обновление тестовых случаев: обновление тестовых случаев при изменении требований или функций продукта.

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

Тест-кейсы и их структура

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

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

— Определение входных данных: определение входных данных для каждого тестового случая позволяет проверить, работает ли продукт правильно. Необходимо определить, какие данные будут использоваться для каждого теста, какие значения будут использоваться и как они будут вводиться.

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

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

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

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

— Обновление тест-кейсов: обновление тест-кейсов при изменении требований или функций продукта позволяет сохранить их актуальность.

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

Структура тест-кейсов

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

— Идентификатор: уникальный номер тест-кейса для идентификации и связывания с требованиями или другими документами.

— Название: краткое описание функциональности, которую тестирует данный тест-кейс.

— Окружение: на каком окружении (устройство/браузер/ОС) должно проводиться тестирование.

— Описание: подробное описание того, что тестируется в данном тест-кейсе.

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

— Шаги: последовательность действий, которые тестировщик должен выполнить, чтобы протестировать определенную функциональность.

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

— Фактический результат: фактический результат выполнения каждого шага тест-кейса или тест-кейса в целом.

— Статус: текущее состояние тест-кейса, например, пройден, провален или в процессе выполнения.

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

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

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

Ниже приведен пример тест-кейса для тестирования функции отправки электронной почты в веб-приложении:


TК001. Отправка электронной почты

Окружение: Android 12, Chromev.111

Описание: Тестирование функции отправки электронной почты в веб-приложении.

Предусловия: Авторизоваться в веб-приложении.

Шаги:

1. Нажать на кнопку «Написать письмо».
2. Ввести адрес электронной почты получателя в поле «Кому».
3. Ввести тему письма в поле «Тема».
4. Ввести текст письма в поле «Текст письма».
5. Нажать на кнопку «Отправить».

Ожидаемый результат:

Письмо успешно отправлено.
Получатель успешно получает письмо.
На странице отображается сообщение об успешной отправке письма.

Фактический результат:

Письмо не отправлено.
При отправке письма возникает ошибка.
Получатель не получает письмо.

Чек-листы

Чек-листы являются важным инструментом при тестировании ПО, позволяя тестировщикам систематизировать и упростить процесс тестирования. Вот некоторые рекомендации, как правильно составлять чек-листы при тестировании ПО:

— Определите цель чек-листа: определите, какую функциональность или компонент ПО вы будете тестировать, и какие критерии качества вы хотите проверить.

— Составьте список элементов для проверки: определите конкретные элементы, которые вы будете проверять, например, поля ввода, кнопки, сообщения об ошибках, а также взаимодействие компонентов между собой.

— Определите ожидаемые результаты: для каждого элемента определите, какое поведение ожидается при его проверке. Например, если вы проверяете кнопку «Отправить», то ожидаемый результат может быть «При нажатии на кнопку отправляется форма».

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

— Проверьте чек-лист на полноту: убедитесь, что вы охватили все необходимые элементы, которые нужно проверить, чтобы убедиться в качественной работе ПО.

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

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

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

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

Тестирование функциональных требований

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

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

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

1. Зайти на страницу регистрации.

2. Ввести валидные данные в поля «имя», «электронная почта» и «пароль».

3. Нажать кнопку «зарегистрироваться».

4. Проверить, что появилось сообщение об успешной регистрации.

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

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

Тестирование нефункциональных требований

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

Для проведения тестирования нефункциональных требований тестировщик должен определить, какие именно характеристики ПО требуют тестирования, и разработать соответствующий тест-план. Затем нужно определить критерии приемлемости для каждой характеристики и разработать тест-кейсы, которые позволят проверить эти критерии.

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

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

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

Методы тест-дизайна

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

— Метод эквивалентных классов: заключается в разделении входных данных на эквивалентные классы, при этом каждый класс должен содержать входные данные, которые обладают одинаковым поведением программы. Для каждого класса разрабатывается минимальный набор тестовых сценариев.

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

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

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

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

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

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

Метод эквивалентных классов

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

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

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

Для применения метода эквивалентных классов следует выполнить следующие шаги:

1. Определить входные данные, необходимые для тестирования.

2. Разбить входные данные на эквивалентные классы.

3. Выбрать представителей из каждого эквивалентного класса и написать тест-кейсы для проверки их поведения.

4. Проверить, что все эквивалентные классы были покрыты тестами.

5. Провести тесты и проанализировать результаты.

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

Метод граничных значений

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

Для применения метода граничных значений необходимо определить минимальное и максимальное значения каждого параметра, а затем выбрать тестовые данные, которые лежат на границах этих значений. Например, если параметр принимает значения от 1 до 100, то тестирование должно включать тестовые данные, соответствующие 0,1, 2, 99, 100 и 101.

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

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

— С помощью метода можно сократить количество тестовых данных, которые нужно проверить.

Некоторые рекомендации по использованию метода граничных значений:

— При выборе тестовых данных необходимо учитывать все возможные комбинации параметров.

— Не следует ограничиваться только тестированием граничных значений. Некоторые ошибки могут возникнуть при значениях внутри диапазона.

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

Метод таблицы решений

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

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

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

Допустим, нужно протестировать функционал интернет-магазина. Один из важных аспектов — возможность выбора метода доставки и метода оплаты. Можно использовать метод таблицы решений для определения комбинаций параметров, которые нужно протестировать.

Входные условия:

Возможные методы доставки: доставка в пункт самовывоза, курьерская доставка, экспресс-доставка.

Возможные методы оплаты: оплата картой при получении, оплата наличными при получении, онлайн-оплата.

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

Для данных входных условий таблица решений может выглядеть следующим образом:

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

Метод парных комбинаций

Метод парных комбинаций (Pairwise testing) — это метод тест-дизайна, который позволяет уменьшить количество тест-кейсов, не уменьшая при этом покрытие функциональности приложения.

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

Процесс создания тест-кейсов с использованием метода парных комбинаций состоит из нескольких шагов:

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

2. Определение диапазонов значений параметров: для каждого параметра необходимо определить диапазон значений, которые он может принимать.

3. Создание таблицы парных комбинаций: необходимо создать таблицу, в которой будут указаны все возможные комбинации двух параметров.

4. Создание тест-кейсов: для каждой комбинации двух параметров необходимо создать тест-кейс, который будет проверять взаимодействие этих параметров.

Рассмотрим пример:

Допустим, мы тестируем функционал отправки файла и имеем следующие параметры:

— Тип файла: текстовый, изображение, видео.

— Способ отправки: через мессенджер, через электронную почту, через Bluetooth.

— Размер файла: маленький (до 1 Мб), средний (1—5 Мб), большой (более 5 Мб).

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

Бесплатный фрагмент закончился.

Купите книгу, чтобы продолжить чтение.