img
img
08 июля 2022
12 июля 2022
6 мин
320

Какие бывают виды тестирования

Классификации: по запуску кода на исполнение, по доступу к коду и архитектуре и другие.

img

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

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

1️⃣ Анализ требований. Тестирование начинают на этапе разработки требований к ПО. Во время проектирования тестировщики определяют, какие аспекты архитектуры можно тестировать и с какими параметрами эти тесты работают.

2️⃣ Планирование тестирования. На этом этапе разрабатывают стратегию, план, тестовый стенд. Это нужно, чтобы упростить работу.

3️⃣ Разработка тестов. Сюда относят создание и описание процедуры тестирования, сценариев, наборов тестовых данных. 

4️⃣ Выполнение. Тестировщики выполняют программное обеспечение на основе планов и тестовых документов. Собирают список ошибок и передают команде разработчиков.

5️⃣ Отчеты о тестировании. Создают метрики и составляют окончательные отчеты, готово ли ПО к выпуску. 

6️⃣ Анализ результатов тестирования. Или анализ дефектов, который выполняет команда разработчиков вместе с клиентом. Решают, какие дефекты исправить, а какие — отклонить. Например, потому что поведение ПО на самом деле корректное, то есть ожидаемое.

7️⃣ Повторное тестирование дефекта. Когда команда разработчиков устраняет дефект, его повторно проверяют тестировщики. 

8️⃣ Регрессионное тестирование. Обычно для каждой интеграции нового, модифицированного или исправленного ПО создают небольшую тестовую программу. Она состоит из подмножества тестов. Это нужно, чтобы убедиться, что последняя версия ничего не испортила, — программа всё еще работает правильно. 

9️⃣ Завершение теста. К этому этапу переходят, когда решают, что тест пройден и поведение ПО соответствует критериям. Архивируют сведения об основных выходных данных, результаты, журналы и документы. Их используют в качестве справочных материалов для будущих проектов.

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

«Создать процесс, в котором сложно допустить ошибку, — вот настоящая цель тестирования. Мы не можем полностью избавиться от ошибок, но можем построить работу так, что сделать сразу правильно будет легче, чем ошибиться».

Джефф Каролло «Как тестируют в Google»

Виды тестирования

🔎 По запуску кода на исполнение

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

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

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

🔎 По доступу к коду и архитектуре

Метод «черного ящика». У тестировщика нет сведений о внутреннем устройстве программной системы, компонентах, модулях и их взаимосвязи. Специалиста интересует, соответствуют ли результаты работы программы заданным требованиям. Повторяются ли эти результаты при неизменности входных тестовых данных. Источники — технические требования и спецификации приложения.

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

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

🔎 По уровню тестирования

Модульное. Относится к тестам, которые проверяют функциональность частей кода приложения. Для объектно-ориентированного программирования это обычно уровень класса. Минимальные тесты модулей тестируют конструкторы и деструкторы. Модульные тесты пишут разработчики, когда работают с кодом по методу «белого ящика», чтобы проверить работу функции.

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

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

Компоненты тестируют по очереди или все вместе. Первый вариант самый удобный: можно быстрее обнаружить и исправить проблемы с интерфейсом. 

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

Системное. Это тестирование программной системы, чтобы оценить ее по всем требованиям.

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

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

Приемочное 

Пользовательское приемочное тестирование (UAT). Его выполняет клиент, часто на собственном оборудовании. Может быть частью процесса передачи между любыми двумя фазами разработки.

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

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

🔎 По методу выполнения тестовых сценариев

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

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

Главное о видах тестирования ПО

  • Тестирование — важная часть процесса разработки программного обеспечения. Основа контроля качества и работоспособности продукта. 
  • Это сложный поэтапный процесс. Перед выполнением теста анализируют требования, разрабатывают стратегию тестирования, создают и описывают процедуры.
  • Есть несколько видов тестирования программного обеспечения. Например, статическое — без запуска программы, динамическое — с запуском, пассивное — на основе системных журналов. Без доступа или с доступом к коду — методы «черного и белого ящиков». С программными средствами или без них — ручное и автоматизированное.

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

Преподаватели — руководители направления тестирования в ВТБ, Skyeng. Дадут актуальные знания и помогут собрать портфолио. В конце получите диплом государственного образца.

img
Подпишитесь на рассылку, чтобы Не упустить что-нибудь новое
Просто и понятно о том, как получить новую профессию


    Дадим нужные знания и поможем получить работу!
    Регистрируйтесь на курс и учитесь у экспертов-практиков.
    Профессия
    за 10 месяцев
    Python-разработчик
    • Программа соответствует требованиям к вакансиям работодателей
    • Много практики в среде коммерческой разработки
    • Под силу даже если у вас нет опыта в IT
    • Всего 11 часов в неделю
    2973 ₽/мес.
    Ещё по теме
    Сколько зарабатывают в IT-сфере

    На доход влияют опыт, город и направление.

    10 августа 2022
    6 мин
    Насколько программисту необходима математика для успешной работы

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

    09 августа 2022
    7 мин
    Плюсы и минусы IT-профессий

    Разбираем преимущества и недостатки профессий веб-дизайнера, тестировщика и других.

    07 августа 2022
    7 мин
    Как стать тестировщиком

    Оптимальный вариант — выучиться онлайн: пройти курс с теорией и практикой.

    React.js: что это, для чего нужен и как освоить начинающим

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

    20 июля 2022
    10 мин
    Обзор лучших эмуляторов Android для Windows

    BlueStacks, NoxPlayer, Andy, MEmu Play, Genymotion, GameLoop.

    20 июля 2022
    6 мин
    Тест: как выбрать профессию в IT-сфере

    Определяем, кто вы: веб-дизайнер, тестировщик, аналитик или разработчик.

    18 июля 2022
    6 мин
    Тенденции развития IT-сферы в России в 2022 году

    Главные тренды — импортозамещение и облачные технологии.

    17 июля 2022
    5 мин
    Лучшие книги про Python

    «Начинаем программировать на Python», «Python. К вершинам мастерства» и другие.

    11 июля 2022
    7 мин
    5 признаков того, что вам подойдет профессия веб-разработчика

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

    11 июля 2022
    3 мин
    Карта по вселенной разработчиков

    Чем занимаются backend-, frontend- и fullstack-разработчики.

    11 июля 2022
    2 мин
    Словарь тестировщика

    Разбираем, что такое баг, дебаг, валидация и другие термины.

    11 июля 2022
    2 мин
    Как использовать функции в Python

    Любая функция начинается с инструкции def, названия и набора аргументов в скобках.

    07 июля 2022
    9 мин
    Что такое Agile

    Agile — это группа гибких методов, чтобы улучшать продукт.

    20 июня 2022
    4 мин
    5 причин освоить Python

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

    Как отбирают кандидатов в IT-компаниях

    IT-рекрутер обращает внимание на то, как вы мыслите и рассуждаете.

    5 причин научиться программировать на Java

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

    Как работать со словарями в Python

    Словарь создают с помощью ключевого слова dict, синтаксиса языка.

    Каково быть тестировщиком: 4 истории о боли и радости

    Рассказы тестировщиков: какие ошибки они замечают в обычной жизни.

    Что такое Node.js и зачем ее изучать

    Node.js — платформа с открытым исходным кодом для работы с JavaScript.

    09 июня 2022
    5 мин
    Что такое массивы в Java и как с ними работать

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

    Как написать тест-кейс

    Создавайте простые тест-кейсы и учитывайте интересы пользователя.

    06 июня 2022
    6 мин
    Мифы о программистах

    Есть стереотипы, что программисты — это мужчины, всемогущие хакеры и интроверты.

    17 мая 2022
    2 мин
    Код: что ты такое

    Код определяет внешний вид и внутреннюю логику программ, сайтов.

    17 мая 2022
    2 мин
    7 англоязычных подкастов для тех, кто хочет прокачаться в IT

    Про Python, frontend-разработку, мягкие навыки, работу над проектами.

    17 мая 2022
    3 мин
    6 ютуб-каналов для разработчиков

    Ответы на вопросы новичков, интервью успешных спецов, полезные советы.

    17 мая 2022
    2 мин
    Женщины в IT

    Достижения и цитаты шести героинь, которые не побоялись попробовать себя в IT.

    17 мая 2022
    2 мин
    Почему IT — сфера будущего

    Информационные технологии помогают бизнесу зарабатывать и упрощают жизнь.

    IT-компания — это не только Google

    Рассказываем про «Тинькофф», «Билайн» и другие компании.

    16 мая 2022
    2 мин
    Как составить и оформить баг-репорт

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

    04 мая 2022
    6 мин
    Как работать со списками в Python

    Учимся добавлять и изменять элементы, объединять и копировать списки.

    02 мая 2022
    5 мин
    Цикл for в Java: что это, как с ним работать

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

    Как работать с модулем JSON в Python

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

    25 апреля 2022
    9 мин
    Как IT-специалисту из России найти работу за рубежом в 2022 году

    Есть сервисы, платформы и телеграм-каналы с вакансиями по всему миру.

    21 апреля 2022
    6 мин
    Что такое HTML: основные теги

    С помощью HTML структурируют страницу на сайте, добавляют картинки, таблицы, списки.

    Как работает цикл for в Python

    Цикл for используют, когда количество повторов известно заранее.

    Комьюнити для разработчика

    Есть комьюнити на платформах, под эгидой компаний или самоорганизующиеся.

    07 апреля 2022
    6 мин
    Гайд: как определить, какое направление в IT тебе подходит

    Обязанности и зарплата аналитика, Python- и Java-разработчиков и не только.

    Правильное питание на удаленке. Почему это важно?

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

    01 апреля 2022
    7 мин
    Как я нашла время на учебу, когда времени не было совсем

    Благодаря методу «круга-пирога» увидите свое время и возьмете его под контроль.

    9 причин, почему не получается внедрять полезные привычки

    Ищите мотивацию, хвалите себя, визуализируйте план и результат.

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

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

    Как поставить цель и не бросить на полпути

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

    Кто такой менеджер проектов, чем занимается и как им стать

    Этот специалист контролирует все этапы проекта и приводит его к успеху.

    30 марта 2022
    8 мин
    Как не угробить здоровье на удаленке

    Советы всем удаленщикам — больше двигаться, делать зарядку, разминку для глаз.

    30 марта 2022
    9 мин
    Junior, Middle, Senior в разработке — кто есть кто и как перейти на уровень выше

    Junior зарабатывает от 40 000 ₽, Middle от 100 000 ₽, а Senior от 250 000 ₽ и выше.

    29 марта 2022
    12 мин
    Как банковская служащая в 32 года с нуля перешла в IT и в 40 открыла свою компанию по разработке онлайн-игр

    Совет от героини: сделайте первый шаг, дальше будет проще; учитесь и идите вперед.

    Пять приложений, чтобы не отвлекаться от учебы и работы

    Фишки и стоимость Forest, WaterDo, SleepTown, Alarmy, Pomodoro Timer Lite.

    29 марта 2022
    5 мин
    Язык SQL: что это такое и зачем он нужен

    SQL используют в банках, торговле, перевозках: везде, где много информации.

    29 марта 2022
    7 мин
    Как освоить c нуля IT-профессию и перейти на новую работу без опыта

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

    Словарь IT-сленга

    Термины разработки, Scrum, неформального общения, организационных процессов.

    29 марта 2022
    13 мин
    Подборка: 33 книги и подкаста для начинающих программистов

    Узнаете о работе программиста и поймете, как писать хороший код.

    28 марта 2022
    10 мин
    Хакнуть мозг: как современные знания помогают мозгу развиваться и учиться

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

    28 марта 2022
    8 мин
    Что такое CSS и как с ним работать

    С помощью CSS задают цвет, размеры, анимацию, адаптируют сайт под устройства.

    16 марта 2022
    9 мин
    css
    Как создать телеграм-бота на Python

    Python — самый популярный язык программирования в феврале 2022 года.

    16 марта 2022
    9 мин
    Какие профессии в IT подойдут гуманитарию

    Гуманитарию подойдут профессии тестировщика, веб-дизайнера и не только.

    15 марта 2022
    9 мин
    Frontend или backend: чем отличаются и какой вид разработки выбрать

    Фронтендер создает интерфейс продукта, бэкендер работает с серверной частью.

    15 марта 2022
    7 мин
    Кто такой Java-разработчик, чем занимается и как им стать

    Обязанности Java-разработчика — писать код, тестировать и улучшать его.

    15 марта 2022
    7 мин
    Что такое IT-сфера и почему она сейчас так популярна

    IT-отрасль привлекает удаленкой, карьерным ростом, высоким доходом.

    04 марта 2022
    7 мин
    it
    Как установить Python на компьютер и начать на нём писать

    Воспользуйтесь Google Colab, онлайн-интерпретаторами или скачайте Python.

    Postman: как пользоваться программой для тестирования API

    Бесплатный сервис позволяет писать тесты, поддерживает разные типы API.

    04 марта 2022
    6 мин
    api
    Google Colab: что это такое и как с ним работать

    Colab используют, чтобы создавать код на Python прямо в браузере.

    04 марта 2022
    4 мин
    Как перейти в разработчики из другой профессии

    Освоить новую профессию реально с нуля в любом возрасте, главное — мотивация.

    03 марта 2022
    8 мин
    Как помочь ребенку выбрать профессию

    Не выбирайте по принципу «чем проще, тем лучше» и уважайте желания ребенка.

    03 марта 2022
    7 мин
    Нужно ли высшее образование программисту: сравниваем все «за и «против»

    Важнее опыт и проекты в портфолио, но иногда высшее образование все-таки нужно.

    02 марта 2022
    5 мин
    Стоит ли переходить на удаленку: плюсы и минусы

    Сегодня удаленка доступна для разных сфер: ИТ, маркетинг, сервис, продажи.

    02 марта 2022
    6 мин
    Какой язык программирования выбрать новичку

    Выбирайте по уровню спроса у работодателей и направлению в программировании.

    24 февраля 2022
    7 мин
    Фильмы про программистов: лучшие фильмы и сериалы про компьютерных гениев

    20 фильмов и сериалов для тех, кому интересен мир информационных технологий.

    24 февраля 2022
    7 мин
    Фронтенд-разработчик: кто это такой и как им стать с нуля

    Frontend-разработчик создает внешнюю — пользовательскую часть веб-ресурса.

    24 февраля 2022
    8 мин
    Backend-разработчик: кто это такой и чем он занимается

    Backend-разработчик отвечает за внутреннюю — серверную сторону веб-ресурса.

    24 февраля 2022
    9 мин
    Что такое спринты в программировании и как их выполнять

    Спринты используют в долгих проектах и сложных продуктах.

    Как начать изучать Python

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

    24 февраля 2022
    9 мин
    Jupyter Notebook: что это такое и как им пользоваться

    Jupyter-ноутбуки применяют для визуализации данных в big data и data science.

    24 февраля 2022
    7 мин
    Как развить soft skills

    Soft skills помогают развивать компетенции, осваивать новые тенденции в работе.

    24 февраля 2022
    11 мин
    Как начать изучать Java

    На Java разрабатывают всё: от приложений и ПО до технологий Big Data.

    Вставить формулу как
    Блок
    Строка
    Дополнительные настройки
    Цвет формулы
    Цвет текста
    #333333
    Используйте LaTeX для набора формулы
    Предпросмотр
    \({}\)
    Формула не набрана
    Вставить