В этой статье мы собрали краткие пояснения базовых терминов, связанных с QA. Это неплохой справочник для начинающего тестировщика, который только постигает основы тестирования.
Содержание
- Что такое тестирование ПО?
- Зачем нужно тестирование ПО?
- Что такое “ошибка”, “баг”, “сбой” и “отказ”?
- Кто такой тестировщик ПО?
- Команда тестирования
- Важность тестирования в SDLC
- Что такое STLC?
- Планирование тестирования
- Виды тестирования
- Верификация и валидация
- Обеспечение и контроль качества
- Баг-репорт
Что такое тестирование ПО?
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Тестирование программного обеспечения – это процесс запуска программы/приложения в положительных и отрицательных условиях с помощью ручных или автоматизированных средств. При этом проверяются:
- спецификация
- функциональность
- производительность
Зачем нужно тестирование ПО?
Тестирование программного обеспечения очень важно, так как неправильное выполнение программы может вызвать сбой в работе системы, повлиять на ее эффективность и надежность.
Эффективное тестирование ПО позволяет получить качественные программные продукты, удовлетворяющие требованиям, потребностям и ожиданиям пользователей.
Что такое “ошибка”, “баг”, “сбой” и “отказ”?
Разработчик допускает ошибку, которая приводит к сбою в программном обеспечении, что может вызвать отказ в работе системы. Таким образом:
- Ошибка – действие, которое приводит к неправильному результату и сбою программы
- Баг – наличие ошибки во время выполнения программы
- Сбой – состояние программного обеспечения, вызванное ошибкой
- Отказ – отклонение программного обеспечения от ожидаемого результата.
Кто такой тестировщик ПО?
Тестировщик ПО – это тот, кто выполняет тестирование и находит ошибки в программном обеспечении.
Команда тестирования
В команду, занимающуюся тестированием, входят: project-менеджер, QA Lead, тест-аналитик, QA-инженеры. Давайте разберем, чем занимается каждый член команды.
Project-менеджер:
- Планирует проект.
- Отвечает за написание спецификации продукта, управление графика работы и принятие важных решений.
QA Lead:
- Обучает и менторит других членов команды с целью повышения эффективности QA-команды.
- Взаимодействует с представителями других отделов для совместной работы над проектами.
- Внедряет лучшие практики, связанные с автоматизацией тестирования, чтобы оптимизировать работу QA-команды.
Тест-аналитик:
- Отвечает за планирование, разработку и выполнение автоматизированных, ручных и регрессионных тестов.
- Определяет цели тестирования.
- Определяет необходимые для проведения тесты и связанные с ними тестовые данные.
- Собирает и управляет тестовыми данными.
- Оценивает результаты каждого цикла тестирования.
QA-инженер:
- Создает и запускает тест-кейсы, составляет отчеты о дефектах.
- Определяет наилучший способ проведения тестирования для достижения 100% тестового покрытия.
Важность тестирования в SDLC
Жизненный цикл разработки программного обеспечения (SDLC, Software Development Life Cycle) – это структурированный процесс, включающий различные этапы, которые компании и разработчики проходят при создании и совершенствовании ПО. Эти этапы включают:
- Сбор требований
- Анализ требований
- Проектирование
- Написание кода
- Тестирование
- Сопровождение и поддержку
Сбор требований
Сбор требований – это первая фаза SDLC. На этом этапе от заказчика собирается вся необходимая информация для успешной разработки ПО.
Анализ требований
На этом этапе системный инженер анализирует требования к приложению. Исходя из имеющейся информации, он создает список сценариев использования приложения.
Проектирование
Проектирование напоминает планирование реализации того, что описано в требованиях. Анализ и проектирование очень важны в цикле разработки. Любая ошибка в проектировании может повлиять на продукт или стать серьезной проблемой на более поздней стадии разработки ПО. А последующее устранение ошибки в проектировании обойдется очень дорого.
Написание кода
На этом этапе разработчики пишут код приложения.
Тестирование
После завершения написания кода система проверяется на наличие багов и на соответствие требованиям продукта.
Поддержка
Этот этап тоже очень важен. После выпуска продукта заказчики оставляют свои отзывы о его работе. Если в какой-то момент обнаруживается какая-либо ошибка, то продукт отправляется на доработку.
Что такое STLC?
Если SDLC (Software Development Life Cycle) – жизненный цикл разработки программного обеспечения, то STLC (Software Testing Lifecycle) – жизненный цикл тестирования ПО. STLC – это серия четко определенных действий, которые тестировщики программного обеспечения должны выполнить для обеспечения качества приложения. В процессе тестирования необходимо последовательно и систематически выполнять каждый этап, который имеет свои цели и приводит к определенным результатам.
Примечание редакции: подробнее читайте в статье “Жизненный цикл тестирования ПО (STLC)”.
Планирование тестирования
Давайте также рассмотрим, какие понятия связаны с планированием тестирования.
Тест-план
Тест-план – это документ, обеспечивающий систематический подход к тестированию. Он содержит детальное представление о том, каким будет конечный процесс тестирования.
Тест-кейс
Тест-кейс – метод проверки определенного требования к приложению. Он включает в себя:
- Критерии успеха/неудачи тест-кейса
- Конкретные шаги для выполнения теста
- Тестовые данные
Виды тестирования
Unit Testing
Юнит-тестирование – это проверка каждого модуля в отдельности. Оно проводится разработчиками, по принципу тестирования “белого ящика”.
Интеграционное тестирование
После завершения модульного тестирования, программисты соединяют модули системы. Далее проводится интеграционное тестирование, при котором тестируется взаимодействие модулей программы друг с другом.
Системное тестирование
После завершения модульного и интеграционного тестирования команда разработчиков начинает системное тестирование (по методу “черного ящика”).
Юзабилити-тестирование
В ходе юзабилити-тестирования команда тестировщиков обращает внимание на удобство интерфейса приложения. Он должен быть простым, привлекательным и интуитивно-понятным.
Функциональное тестирование
При функциональном тестировании проверяется функционал приложения и корректность выходных данных. Также происходит валидация входных данных.
Тестирование производительности
Тестирование производительносности происходит по нескольким направлениям и, соответственно, делится на разные виды.
В ходе нагрузочного тестирования QA-инженеры выполняют сборку приложения с определенной конфигурацией для того, чтобы определить работу приложения при большой нагрузке.
Выполняя стресс-тестирование, тестировщики определяют пиковую нагрузку. В то время как нагрузочное тестирование направлено на оценку производительности системы, целью стресс-тестирования является оценка доступности и стабильности системы при высокой нагрузке.
Объемное тестирование проводится, чтобы определить работу приложения при получении очень большого объема данных.
Тестирование безопасности
Тестирование безопасности – это проверка того, насколько хорошо система защищена от несанкционированного внутреннего или внешнего доступа.
Дымовое тестирование
При дымовом тестировании проверяется работоспособность наиболее важных функций программы, но при этом не рассматриваются более тонкие детали реализации приложения. Подробнее читайте в статье “Чем отличаются санитарное и дымовое тестирование”.
Альфа-тестирование
Альфа-тестирование происходит перед выпуском программного обеспечения и относится к категории приемочных тестов.
Приемочное тестирование
Приемочное тестирование проводится для определения соответствия системы критериям приемки и для того, чтобы заказчик мог определить, принимать или не принимать систему.
Это заключительный этап перед развертыванием программного обеспечения. Цель приемочного тестирования – убедиться в том, что программное обеспечение готово и может быть использовано конечным пользователем для выполнения тех функций, для которых оно создавалось.
Бета-тестирование
Бета-тестирование проводится перед окончательным выпуском программного обеспечения для конечных пользователей.
Регрессионное тестирование
При помощи регрессионного тестирования мы проверяем, что исправление ошибок в приложении было успешным и не привело к возникновению новых проблем. Также этот вид тестирования проводится для того, чтобы убедиться, что не произошло ухудшения базовой функциональности приложения.
Monkey testing
Обезьянье тестирование проводится в случайном порядке. Тестировщик пытается вывести систему из строя путем хаотичных действий. Для такого тестирования не создаются специальные тест-кейсы и сценарии.
Примечание редакции: подробнее читайте в статье “Monkey Testing и Gorilla Testing”.
Верификация и валидация
Верификация – это процесс проверки того, что программное обеспечение соответствует своим техническим спецификациям, дизайну и другим документам, которые описывают, как оно должно работать.
Валидация – это процесс, подтверждающий, что программное обеспечение реально соответствует потребностям и ожиданиям пользователей. Валидация включает в себя фактическое тестирование продукта, чтобы убедиться, что он выполняет функции, которые ожидают пользователи, и работает правильно в реальных условиях.
Обеспечение и контроль качества
Что такое качество?
Качество определяется как соответствие приложения требованиям заказчика. Наилучшей мерой качества является показатель FURPS :
- Functionality (функциональность)
- Usability (удобство использования)
- Reliability (надежность)
- Performance (производительность)
- Scalability (масштабируемость)
В чем важность качества?
Качество повышает производительность и конкурентоспособность любой компании. Если продукты или услуги компании хорошего качества, это способствует ее долгосрочной успешности.
Обеспечение качества
Обеспечение качества – это запланированный и систематический набор действий, которые помогают убедиться в том, что продукт будет соответствовать установленным требованиям и удовлетворять потребности пользователей.
Контроль качества
Контроль качества – это процесс, в ходе которого качество продукта сравнивается с действующими стандартами и применяются определенные меры в случае, если обнаруживаются несоответствия.
Примечание редакции: о том, чем обеспечение отличается от контроля качества, читайте в статье “Разница между QA и QC”.
Баг-репорт
Жизненный цикл бага
Жизненный цикл бага (дефекта) в тестировании программного обеспечения – это определенный набор состояний, через которые проходит баг в течение всей своей жизни. Цель жизненного цикла бага – в координации работы с багом и легкой передаче его текущего статуса различным ответственным лицам.
Формат баг-репорта
Bug Id : Sys_def_xyz_o1 Test case Id : Sys_xyz_o1 Bug Description : Specify the defect. Bug Severity : Severity of the Defect Bug Priority : Major or Minor Bug Status : Status of the Defect Identified by : ABC Module : Database Operations Project : XYZ Corporation Dated : 22/9/03
Приоритет бага
Приоритет определяет то, насколько важно исправить конкретную ошибку. Он может быть высокий, средний или низкий.
Перевод статьи «Basic Concepts of Software Testing».
Пингбэк: Большой учебник по тестированию