Тестирование — это проверка компонентов и поведения сайта или приложения. Она нужна, чтобы подтвердить работоспособность продукта перед запуском на рынок. Так компаниям проще оценить, из-за чего пользователя не устроит продукт.
Этапы тестирования
1️⃣ Анализ требований. Тестирование начинают на этапе разработки требований к ПО. Во время проектирования тестировщики определяют, какие аспекты архитектуры можно тестировать и с какими параметрами эти тесты работают.
2️⃣ Планирование тестирования. На этом этапе разрабатывают стратегию, план, тестовый стенд. Это нужно, чтобы упростить работу.
3️⃣ Разработка тестов. Сюда относят создание и описание процедуры тестирования, сценариев, наборов тестовых данных.
4️⃣ Выполнение. Тестировщики выполняют программное обеспечение на основе планов и тестовых документов. Собирают список ошибок и передают команде разработчиков.
5️⃣ Отчеты о тестировании. Создают метрики и составляют окончательные отчеты, готово ли ПО к выпуску.
6️⃣ Анализ результатов тестирования. Или анализ дефектов, который выполняет команда разработчиков вместе с клиентом. Решают, какие дефекты исправить, а какие — отклонить. Например, потому что поведение ПО на самом деле корректное, то есть ожидаемое.
7️⃣ Повторное тестирование дефекта. Когда команда разработчиков устраняет дефект, его повторно проверяют тестировщики.
8️⃣ Регрессионное тестирование. Обычно для каждой интеграции нового, модифицированного или исправленного ПО создают небольшую тестовую программу. Она состоит из подмножества тестов. Это нужно, чтобы убедиться, что последняя версия ничего не испортила, — программа всё еще работает правильно.
9️⃣ Завершение теста. К этому этапу переходят, когда решают, что тест пройден и поведение ПО соответствует критериям. Архивируют сведения об основных выходных данных, результаты, журналы и документы. Их используют в качестве справочных материалов для будущих проектов.
Этапы тестирования в разных компаниях могут отличаться. Они зависят от методологии разработки ПО. Список выше подходит для методологии «модель водопада». А в компаниях, которые применяют экстремальное программирование или «гибкую методологию», этапы могут быть другими, так как тестирование интегрировано в написание кода. Такой принцип называют «разработкой через тестирование».
«Создать процесс, в котором сложно допустить ошибку, — вот настоящая цель тестирования. Мы не можем полностью избавиться от ошибок, но можем построить работу так, что сделать сразу правильно будет легче, чем ошибиться».
Джефф Каролло«Как тестируют в Google»Виды тестирования
🔎 По запуску кода на исполнение
Статическое. Программу тестируют без запуска. Находят ошибки, когда повторно проверяют код. Или используют утилиту для анализа: находят конструкции или последовательности операторов, которые приводят к отказу работы приложения. На этапе сбора приложения компилятор указывает на потенциальные проблемы, например утечку памяти или бесконечные циклы.
Динамическое. Программу тестируют при запуске. Иногда даже до ее полной готовности. Так проверяют участки кода, тестовые сценарии применяют к отдельным функциям или модулям программы.
Пассивное. Проверяют поведение системы без взаимодействия с программой или исходным кодом. У специалиста нет сведений об исходных тестовых данных и состоянии системы. Он просматривает системные журналы и журнал событий приложения. Так ищет шаблоны и последовательности записей, которые укажут на корректное или некорректное поведение программы.
🔎 По доступу к коду и архитектуре
Метод «черного ящика». У тестировщика нет сведений о внутреннем устройстве программной системы, компонентах, модулях и их взаимосвязи. Специалиста интересует, соответствуют ли результаты работы программы заданным требованиям. Повторяются ли эти результаты при неизменности входных тестовых данных. Источники — технические требования и спецификации приложения.
Метод «белого ящика». Учитывает внутренние механизмы системы или компонента. Обычно включает тестирование ветвей, маршрутов, операторов. Входные тестовые данные выбирают так, чтобы добиться выполнения всех возможных частей кода. Этот метод не выявит невыполненные части спецификации.
Метод «серого ящика». Совокупность двух предыдущих методов. В первом методе тестировщик не смотрит на код, не знает структуру программы, во втором — смотрит и знает. В методе «серого ящика» тестировщик знает только структуры данных приложения. Он пытается составить тестовые наборы так, чтобы выявить ошибки, связанные с неправильным использованием данных или программы.
Освоить эти и другие методы можно на курсе Skypro «Инженер по тестированию». Преподаватели — действующие тестировщики, которые будут давать актуальные знания и навыки, а не сухую теорию. А кураторы и наставники поддержат и помогут разобраться со сложными темами.
Инженер-тестировщик: новая работа через 9 месяцевПолучится, даже если у вас нет опыта в ITПолучить программу🔎 По уровню тестирования
Модульное. Относится к тестам, которые проверяют функциональность частей кода приложения. Для объектно-ориентированного программирования это обычно уровень класса. Минимальные тесты модулей тестируют конструкторы и деструкторы. Модульные тесты пишут разработчики, когда работают с кодом по методу «белого ящика», чтобы проверить работу функции.
У одной функции может быть несколько тестов с разными наборами данных, чтобы поймать ответвления в коде. Сами по себе модульные тесты не проверят, соответствует ли программное обеспечение требованиям. Их используют, чтобы подтвердить правильность алгоритмов без учета взаимодействия с другими частями приложения.
Интеграционное. Этот тип нужен, чтобы проверить интерфейсы между компонентами на соответствие дизайну ПО. Определить, как программа взаимодействует с операционной системой.
Компоненты тестируют по очереди или все вместе. Первый вариант самый удобный: можно быстрее обнаружить и исправить проблемы с интерфейсом.
Интеграционные тесты обычно включают много кода. Это влияет на простоту локализации ошибки в случае сбоя. Чтобы решить эту проблему, разрезают большие тесты на более мелкие.
Системное. Это тестирование программной системы, чтобы оценить ее по всем требованиям.
Если интеграционное тестирование нужно, чтобы обнаружить любые несоответствия между объединенными единицами, то системное — чтобы выявить дефекты внутри интегрированных узлов и системы в целом.
Его выполняют в контексте спецификаций функциональных или системных требований. Либо того и другого вместе. Этот вид теста проверяет не только дизайн программного обеспечения системы, но и ее поведение, предполагаемые ожидания клиента.
Приемочное
✅ Пользовательское приемочное тестирование (UAT). Его выполняет клиент, часто на собственном оборудовании. Может быть частью процесса передачи между любыми двумя фазами разработки.
✅ Эксплуатационные приемочные испытания (OAT). Их используют, чтобы проверить предварительный выпуск продукта, услуги или системы. OAT — это распространенный тип нефункционального тестирования ПО. Его в основном применяют в проектах разработки и обслуживания программного обеспечения.
✅ Контрактные и нормативные приемочные испытания. Первые выполняют на основе критериев приемки контракта. Вторые — на основе нормативных документов, применяемых к программному продукту. Оба этих тестирования проводят пользователи или тестировщики.
🔎 По методу выполнения тестовых сценариев
Ручное. Тестировщик не использует средства для проверки программы или сайта. Вместо этого моделирует действия пользователя. Причем пользователи тоже могут выступать в роли тестировщиков, сообщать разработчикам об ошибках.
Автоматизированное. Специалист использует специальные программы, чтобы пройти сценарии пользователя. Это помогает сократить время тестирования и упростить процесс. Автоматизированное тестирование не воспроизводит всё, что делает человек. Зато полезно для регрессионного тестирования, если набор сценариев разработали правильно.
На курсе Skypro «Инженер по тестированию» освоите оба этих вида. Если учиться по 10–12 часов в неделю — через 9 месяцев станете уверенным новичком в тестировании и сможете найти новую работу. А центр карьеры поможет составить классное резюме и подготовиться к техническому собеседованию.
Главное о видах тестирования ПО
- Тестирование — важная часть процесса разработки программного обеспечения. Основа контроля качества и работоспособности продукта.
- Это сложный поэтапный процесс. Перед выполнением теста анализируют требования, разрабатывают стратегию тестирования, создают и описывают процедуры.
- Есть несколько видов тестирования программного обеспечения. Например, статическое — без запуска программы, динамическое — с запуском, пассивное — на основе системных журналов. Без доступа или с доступом к коду — методы «черного и белого ящиков». С программными средствами или без них — ручное и автоматизированное.
Стать инженером по тестированию можно за семь с половиной месяцев с помощью курса онлайн-университета профессий Skypro. Там научат писать тестовую документацию и составлять отчеты, тестировать веб-, мобильные приложения и API, проводить нагрузочное тестирование.
Преподаватели — руководители направления тестирования в ВТБ, Skyeng. Дадут актуальные знания и помогут собрать портфолио. В конце получите диплом государственного образца.
Добавить комментарий