Приглашаем вас познакомиться с нашим курсом «Тестировщик». На уроке вы узнаете основные виды тестирования, которые применяют специалисты для проверки ПО. Эти знания позволят вам для каждого проекта выбирать наиболее подходящие методы тестирования и приоритезировать их. Поэтому настройтесь на продуктивную работу: смотрите видеоурок, делайте записи или используйте наши конспекты и обязательно выполняйте все задания.
Анна Торшина
преподаватель Action Digital School, руководитель отдела тестирования ПО
Вероника Шатрова
директор по продукту Action Digital School
Вместе с преподавателем вы рассмотрите самые распространенные классификации видов тестирования по различным признакам, а также познакомитесь с тремя важными группами методов тестирования, в зависимости от его целей.
Хотите стать настоящим профи в тестировании и начать на этом зарабатывать? Пройдите курс «Инженер по тестированию» целиком. Это займет у вас всего 4 месяца. Учиться вы можете в удобное время, затрачивая на занятия 2 часа в день. А оплачивать обучение можете в рассрочку.
Хочу учиться на тестировщикаСегодня на уроке мы рассмотрим виды тестирования, которые выделены на схеме красным. Но прежде чем изучать ее, предлагаем посмотреть видеолекцию нашего преподавателя.
Итак, вернемся к нашей схеме. На ней указаны виды тестирования. Сегодня мы изучим те, которые выделены красным.
Узнайте больше о профессии тестировщик:
Тестирование ПО может начаться на разных этапах его разработки, в том числе до запуска самого продукта. Важно понимать, что конкретно необходимо тестировать — само ПО или задокументированные требования к нему. По данному признаку разделяют статическое и динамическое тестирование.
Статическое тестирование, static testing — тестирование ПО на уровне документации, где описаны требования к продукту.
Динамическое тестирование, dynamic testing — тестирование, которое проводят во время работы самого ПО. При этом могут тестировать как систему в целом, так и отдельные ее модули.
Чтобы вам было проще разобраться с темой, в этом уроке в качестве проекта мы будем рассматривать ремонт квартиры. Представьте, что вы захотели обновить спальню и обратились в фирму, которая оказывает услуги дизайна и ремонта. В этом случае статическое тестирование вы будете проводить на этапе согласования дизайн-проекта, а динамическое — когда будете принимать готовый результат, то есть обновленную спальню, с ремонтом, мебелью и т.д.
Истории тех, кто сменил профессию на тестировщика и не пожалел:
Тестирование можно выполнять, работая только с интерфейсом программы или непосредственно с её кодом. По доступу к коду тестирование разделяют на методы белого, черного и серого ящика.
Тестирование методом белого ящика, white box testing — тестирование самого кода ПО. Обычно данный вид тестирования выполняют разработчики: они либо вручную делают code review, то есть проверяют код друг друга, либо автоматизируют тестирование кода.
Тестирование методом черного ящика, black box testing — тестирование интерфейса ПО. В этом случае тестировщик имитирует работу пользователя. Пример: тестировщику нужно проверить функцию отправки заявки на кредит с сайта банка. Для этого он зайдет на сайт как пользователь, заполнит все поля заявки и нажмет кнопку «отправить». Во время каждого шага тестировщик будет фиксировать возникающие при этом ошибки.
Тестирование методом серого ящика, gray box testing — метод, при котором тестировщик тоже имитирует работу пользователя через интерфейс ПО, но также использует часть внутренней структуры программного продукта, но не кода. Например, проверяет запись данных в базу, запись в лог-файлы, правильность кодов ответа от сервера и т.п.
Продолжим аналогию с ремонтом квартиры. Электрик сделал новую проводку в вашей спальне. Как вы будете тестировать его работу методами белого, черного и серого ящика, читайте на слайде ниже.
Любое ПО состоит из связанных между собой элементов, их называют модулями или юнитами. Каждый модуль выполняет конкретную функцию и состоит из программного кода. Под кодом понимаем набор инструкций, команд, которые написаны на одном из языков программирования. Компьютер понимает эти команды и может выполнить: создавать и изменять данные, обрабатывать информацию и др. Все модули ПО тестировщик должен протестировать и по отдельности, и при взаимодействии между собой. На это направлены модульное, интеграционное и системное тестирование.
Модульное/компонентное тестирование, unit/component testing — тестирование отдельных элементов ПО. Метод обычно применяют для теста разных модулей одного приложения, то есть для частей кода, поэтому такое тестирование обычно проводят разработчики методом белого ящика. Они создают автоматизированные юнит-тесты/unit tests, которые «покрывают» небольшие участки кода для его проверки. Юнит-тест быстро находит ошибки в коде, и разработчик сразу их исправляет. Без юнит-тестов на поиск и исправление ошибок при ручном тестировании потребуется гораздо больше времени и усилий.
Интеграционное тестирование, integration testing — проверяет, как работают и взаимодействуют друг с другом несколько модулей в системе. Часто отдельные модули ПО пишут разные разработчики или даже группы, поэтому при их взаимодействии могут возникать ошибки.
Системное тестирование, system testing — проверяет, что программный продукт в совокупности всех своих частей работает корректно. Здесь тестировщик ищет так называемые «системные» ошибки, которые связаны с работой всего продукта. Пример таких ошибок: приложение «зависает» при простых операциях, не работает при включенном wi-fi и т.п. Системное тестирование производят только через интерфейс.
Продолжим рассматривать виды тестирования на примере ремонта квартиры. Вам наконец установили новую кухню. Как вы будете проводить тестирование по уровню детализации в этом случае, читайте на слайде ниже.
В рамках данной классификации рассмотрим еще один вид — приемочное тестирование. Это формальное тестирование в завершении проекта разработки, чтобы заказчик произвел официальную приемку продукта. Здесь обычно тестируют только основной функционал продукта.
Прежде чем двигаться дальше, давайте проверим, научились ли вы разбираться в видах тестирования. Для этого пройдите небольшой тест ниже. Чтобы открыть тест на весь экран, нажмите иконку со стрелками в правом нижнем углу. Читайте описание ситуации на слайде и нажимайте букву правильного ответа.
Тестирование может быть выполнено специалистом вручную или с помощью автотестов. При автоматизированном методе люди тоже участвуют: тестировщики готовят тест-кейсы и тестовые данные, разработчики на их основе пишут код.
Вид тестирования | Плюсы | Минусы | Когда лучше применять |
---|---|---|---|
Ручное тестирование | Стоит дешевле | Человеческий фактор: усталость, невнимательность |
|
Автоматизированное тестирование | Скорость автотестов многократно превышает ручное тестирование. Способность производить действия, которые человек не может выполнить физически: например, одновременная передача 1000+ запросов с разными параметрами | Стоит дороже, чем ручное. Для разработки автотестов нужны эксперты с высокой квалификацией и знанием внутренней структуры тестируемой системы |
|
Тестировать программный продукт можно двумя способами:
№ 1. Делать все по инструкции и проверять, что ПО работает согласно требованиям. Это позитивное тестирование. Пример: при тестировании формы заявки на кредит на сайте банка тестировщик заполняет поля только корректными данными и нажимает кнопку «Отправить заявку».
№ 2. Намеренно совершать некорректные действия, чтобы проверить, как ПО будет на них реагировать. Это негативное тестирование. Пример: если тестировщик вводит при регистрации email без символа «@», то приложение должно выдать сообщение об ошибке. Если такого сообщения нет и приложение регистрирует пользователя, то тестировщик фиксирует ошибку.
Тестирование, которое проводят на последнем этапе перед выпуском продукта на рынок, разделяют на альфа- и бета-тестирование.
Альфа-тестирование, alpha testing — пробное использование ПО внутри компании-разработчика. Его проводят после модульного, интеграционного и системного тестирования, когда продукт почти готов к выпуску на рынок, но требует некоторой доработки. Альфа-тестирование имитирует реальное использование ПО пользователями, его обычно проводят на внутренних тестовых стендах. По завершении альфа-тестирования выпускают бета-версию продукта, которая подлежит дальнейшему бета-тестированию.
Бета-тестирование, beta testing — открытое тестирование ПО, с привлечением конечных пользователей. Его цель — проверить работоспособность продукта и получить обратную связь реальных пользователей. Часто проводят в развлекательной индустрии, при разработке игр и т.д.
Для закрепления материала урока выполните задание. Соотнесите вид тестирования и описание с помощью стрелок. Проверить правильность выполнения вы можете, если зарегистрируетесь и пройдете бесплатные уроки курса «Тестировщик». На изучение материалов у вас будет 3 дня.
Вы прошли лишь один урок курса, и теперь знаете основные виды тестирования, которые применяют специалисты для проверки ПО. Программа курса «Инженер по тестированию» включает в себя все последние тренды и нововведения в сфере IT и постоянно актуализируется. Обучение разбито на 6 основных тем и 1 бонусную. Каждая из них включает в себя тематические блоки с уроками и домашними заданиями.
Важно! В конце каждого раздела вас ждет небольшое тестирование, благодаря которому вы сможете понять, насколько хорошо изучили материалы, и если нужно, вернуться в тему и еще раз ее изучить.
Если вам интересна профессия тестировщик, но остались вопросы, заполните заявку и получите консультацию.
Спасибо за заявку! Мы Вам обязательно перезвоним.