👨🔧️ Основы профессии тестировщика с нуля за 10 минут
Наш комфорт все больше и больше обеспечивают программы и цифровые технологии. Их создание нуждается в тестировании не меньше, а зачастую даже больше, чем тестирование автомобилей, мотоциклов, табуреток и других предметов повседневного обихода.
Тестирование – это проверка, насколько ожидания разработчиков продукта соответствуют реальности.
Тестирование – процесс исследования и контроль качества, который состоит из планирования, проектирования, собственно проверки и анализа ее результатов.
Существует три уровня тестирования:
- Модульное (или компонентное) тестирование, когда проверяется только какая-то часть ПО: отдельная функция, класс, модуль программы. Стандартно оно проводится через вызов кода. Зачастую тестирование на этом уровне осуществляется самим разработчиком. Модульное тестирование от компонентного отличается тем, что в компонентном используют реальные объекты и драйверы, а в модульном – конкретные значения.
- Интеграционное тестирование – процесс исследования ПО, когда проверяются интерфейсы между компонентами или подсистемами. К интеграционному тестированию можно отнести также проверку взаимодействия двух систем в заданных точках. Например, передачу данных из одной системы в другую.
- Системное тестирование – проверка соответствия системы требованиям заказчика. Исследуются функциональные и нефункциональные требования к системе в целом, выявляются дефекты и непредусмотренные сценарии. Например, что будет, если в поле, в которое вводится два знака, попробовать ввести три, букву вместо цифры и т.д.
Системное тестирование проводят по базе требований, под каждое из которых создается тестовый случай (тест-кейс) . Тестирование может идти и по базе случаев использования, когда по каждому из них определяются сценарии, для которых создаются кейсы.
Классификация видов тестирования
Как видите, классов не так много, но в каждом из них можно выделить несколько разных видов тестирования.
- Функциональное тестирование – проверка, что ПО правильно решает пользовательские задачи.
- Тестирование производительности позволяет оценить быстродействие ПО при заданной нагрузке. Тестирование производительности проводится до и после оптимизации. Его целью является проверка и выявление факторов, которые влияют на производительность ПО.
- Нагрузочное тестирование предполагает оценку ПО при плановой, повышенной и пиковой нагрузке. Ресурсы системы конечны и такое тестирование позволяет избежать связанных с нагрузкой инцидентов после ее внедрения.
- Стресс-тест – проверка работы ПО в критических условиях: миграция данных из другой системы в больших объемах, загрузка большого количества данных, нехватка памяти или дискового пространства. Также проверяется, как будет работать ПО, когда им одновременно начнет пользоваться большое количество пользователей.
- Тестирование стабильности – проверка реакции ПО на взлом, попытки хищения данных и т.д.
- Тестирование совместимости – проверка реакции ПО на окружение, заданные условия использования другими системами и проч.
- Тестирование black box или тестирование черного ящика проводится только через интерфейсы пользователя.
- Тестирование white box или тестирование белого ящика – тестирование с доступом к исходному коду программы. Этот способ позволяет оценить реакции внутри ПО на те или иные события, более тонко и точечно выявить ошибки или неоднозначные реализации логических цепочек.
- Альфа-тестирование – имитация реальной работы с ПО, чтобы оценить его в максимально приближенных к реальным условиях.
- Бета-тестирование проводится группой по основным параметрам с целью проверки наличия в ПО минимального количества ошибок.
- Регресс-тест – проверка ранее найденных ошибок. После разработки и доработки проверяется, что ни одна из них не появилась вновь.
- Дымовой тест – проверка «А запускается ли ПО?». Smoke testing проводят, когда отдельные компоненты нужно собрать в один продукт. Бывает, что по отдельности каждая компонента работает стабильно и корректно, а вместе – нет.
- Ручное тестирование – тестирование, при котором не используются доп. инструменты, для проверки проводится только имитация действий пользователя.
- Автоматизированное тестирование – тестирование с использованием специальных программных средств. Автоматизированное тестирование экономит время и ресурсы, а также увеличивает надежность ПО.
- Динамический анализ кода – анализ исходного текста программы в процессе ее выполнения. В этом случае проблемы в коде обнаруживаются по мере их появления.
- Статический анализ кода проводится без реального выполнения исследуемых программ. Он позволяет обнаружить дефекты еще до того, как код будет готов к запуску. Статический анализ также называю аудитом кода.
Как видите, в рамках тестирования могут идти самые разные процессы на различных уровнях. Управляют ими специалисты, которых называют тестировщиками.
Тестировщик ПО – специалист, который занимается проверкой программного обеспечения, выявляет ошибки и помогает улучшать продукт. Тестировщиков также называют инженерами по QA (от англ. Quality Assurance – обеспечение качества).
Инженер по QA не только проводит тестирование, но и дает рекомендации по исправлению багов в некоторых случаях.
Обязанности тестировщика
- контроль качества разрабатываемых продуктов;
- выявление и анализ ошибок, возникающих при работе с ПО;
- разработка тестов, тест-кейсов;
- тестирование;
- анализ результатов тестирования;
- классификация ошибок;
- сопровождение процесса ликвидации найденной ошибки;
- документирование всего процесса.
О работе тестировщика существует немало мифов, причем разных полюсов: от того, что туда вход открыт всем, до того, что без знания языков программирования в тестировщики не попасть.
Это крайности, освоить профессию с нуля можно, причем способ стоит выбрать такой, который понравится – самостоятельно, в компании или сразу в работе.
Стек технологий тестировщика:
У каждого инженера по QA есть свой уникальный опыт и собственный стек технологий – набор инструментов, которые он использует в работе, включая языки программирования, СУБД и прочее.
Перечислим наиболее распространенные варианты:
Источник
Что такое тестирование программ и зачем оно нужно
Оказывается, 75% времени при создании программ уходит вовсе не на программирование. Разбираемся, чем же занимаются тестировщики.
Вероятно, ни одну вещь в мире нельзя сделать без ошибок, и программы не исключение. Допустим, вы написали код и не видите в нём явных багов. Как узнать, что будет при реальном использовании: поведёт ли себя программа так, как от неё ожидают?
Почему тестирование — это так важно
Вот типичные программные баги:
- Вы вводите в поле ответ на вопрос и нажимаете Enter. После этого программа неожиданно завершает работу, не сохранив информацию. И та же ошибка повторяется в следующий раз.
- Другой случай: вы играете, например, в какую-нибудь стрелялку. Неожиданно персонажи начинают хаотично двигаться, конвульсивно дёргаться, терять или отращивать конечности. И вообще ведут себя не так, как им положено. Некоторое время программа не реагирует на нажатие клавиш, после чего выдаёт «Game over».
- Ещё один пример: вы заходите в личный кабинет интернет-магазина. Нажимаете «оплатить», а вас выкидывает на главную страницу, да ещё и разлогинивает.
Программ без ошибок не бывает: любая может выдать непредсказуемый результат в ответ на самые обычные действия. Разработчик, скорее всего, не заметит этих дефектов в коде, зато конечному пользователю они могут отравить жизнь. Бывают ошибки мелкие и незначительные, а бывают и такие, что всё перестаёт работать.
Прежде чем новая версия компьютерной программы, сайта или мобильного приложения попадает к пользователю, она должна пройти через руки инженеров-тестировщиков. Они ищут места в коде, где программа работает не так, как задумано. Чтобы найти как можно больше ошибок, тестировщики моделируют разные ситуации, которые могут возникнуть при использовании приложения.
Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.
Профессия Тестировщик
Вы научитесь тестировать сайты, мобильные приложения и другое ПО. Узнаете, как устроена работа IT-компаний, и сможете понять, как вы хотите развиваться в профессии. Гарантированно получите работу. Уже джуниоры очень востребованы рынком, а наш курс позволит достичь middle-уровня.
Какие виды тестирования существуют
Пользователи непредсказуемы. Они могут делать не только то, что предусмотрено программой, но и то, что ею категорически не предусмотрено. Тестировщик должен проверить все возможные и невозможные сценарии их поведения и убедиться, что программа продолжает работать.
Вообще, у тестирования есть философия, которая строится на том, что в любой программе по определению есть ошибки и найти их все невозможно. А если вы почему-то не нашли ошибку, значит, просто плохо искали. Удачный тест для тестировщика — тот, при котором нашли баг. А если всё нормально работало, значит, тест неудачный и свою задачу не выполняет.
Ошибки возникают не только при кодировании, но и при проектировании системы, и даже на этапе разработки технического задания. Поэтому и тестируют код не только в самом конце работы, а на разных этапах.
Есть несколько видов тестирования:
- Статическое, без запуска программы, и динамическое — с запуском. Статическое обычно делают в самом начале работы: инженеры проверяют проектную документацию и спецификации, вычитывают уже написанный код. Затем проводят динамическое тестирование: программу запускают и проверяют, как она ведёт себя во время работы, определяют время отклика и то, насколько она загружает процессор и память.
- С помощью функционального тестирования проверяют, как программа решает задачи, нужные клиенту. При нефункциональном исследуют производительность системы, её надёжность и защищённость, работу с окружением — операционной системой и оборудованием.
- Ещё один способ — тестирование по принципу «чёрного» и «белого» ящика. В первом случае тестировщик не смотрит на код и работает только с программным интерфейсом. Он проверяет производительность программы, все ли нужные функции реализованы, ищет ошибки в её интерфейсе и поведении. Во втором — инженер имеет доступ к коду. Он проверяет структуру и логику всей программы или отдельных её компонент. Часто этим занимается сам программист.
- Ручное и автоматическое тестирование. В первом случае работу кода проверяют вручную, без использования программных средств. Во втором — применяют специально написанные автоматические тесты, которые постоянно обновляют.
Что тестируют на разных этапах разработки
Есть несколько уровней тестирования. Их проводят в разное время:
- Модульное тестирование делается в самом начале, когда готовы те куски кода, которые можно проверить по отдельности: объекты, классы, функции, программные модули. Тесты пишутся отдельно для каждой функции или метода. На этом этапе проверяют работоспособность части кода, нет ли регрессии — не появились ли после изменения кода ошибки там, где раньше всё работало нормально. Это самый нижний уровень тестирования, часто это делают те, кто пишет код.
- К интеграционному тестированию переходят после модульной проверки. Здесь тестируют связи между проверенными элементами и то, как программа взаимодействует с операционной системой, оборудованием.
- Системное тестирование показывает, соответствует ли готовая система функциональным и нефункциональным требованиям.
- Приёмочное тестирование проходит, когда заказчик принимает приложения от разработчиков. Его цель — убедиться, что продукт удовлетворяет требованиям клиента. На основании этого покупатель решает, готова ли программа или её нужно дорабатывать.
В зависимости от этапа разработки перед тестировщиками стоят разные цели:
- Когда пишется код, нужно найти как можно больше сбоев и дефектов, чтобы их исправить.
- Во время приёмочного тестирования нужно показать заказчику, что система работает без ошибок.
- На этапе сопровождения программы тестирование помогает исправить баги, которые появились в коде после изменения.
Не бывает идеального тестирования: в принципе невозможно доказать, что программа работает правильно при любых условиях. Но тестировщики могут найти и уточнить, в каких условиях она работает неправильно.
Как обычно проходит тестирование
Как правило, тестировщики начинают работать с программой сразу после начала проекта:
- Составляют тест-план, где описан весь объём работ по тестированию и определено, когда их можно закончить. Это примерный документ — в процессе разработки в него не раз внесут изменения: уточнят стратегию и виды тестирования, расписание работ и так далее.
- Разрабатывают тест-кейсы — перечень конкретных действий и сценарии для проверки каких-то определённых функций программы.
- Решают, нужна ли автоматизация: стоит ли разрабатывать и запускать автоматические тесты или можно обойтись тестированием вручную.
После выхода каждой новой сборки программы сначала делают дымовое тестирование — проверяют, что приложение запускается и выполняет основные функции. Если всё в порядке, программу передают на дальнейшее тестирование. Если нет — сразу возвращают на доработку.
Следующий этап — регрессионное тестирование. Тестировщики ищут баги в новых участках кода и в тех местах, где исправляли ранее найденные ошибки.
После этого программу проверяют в разных уровнях: испытывают её функциональность, производительность, работу с окружением. Это можно делать вручную или с помощью автоматических тестов-кейсов.
Автоматизированное тестирование облегчает проверку и экономит время. Лучше всего это работает в сложных приложениях с большой функциональностью.
Когда есть результат, инженеры-тестировщики готовят отчёт по тестированию и отправляют его разработчикам, чтобы те исправили найденные баги. Так происходит от версии к версии, пока результаты не будут удовлетворять критериям, описанным в тест-плане.
Кто всё это делает: немного о профессии
Тестированием программы занимаются специалисты по контролю качества программного обеспечения — QA -инженеры. У них есть разные специализации: тестировщики баз данных, специалисты автоматизированного тестирования, аналитики, разработчики тестов, специалисты по безопасности приложений и другие.
Если проект большой, над ним работает целая команда: одни тестировщики готовят тесты, другие проверяют их полноту и логику, третьи занимаются непосредственно тестированием. Над небольшими задачами может работать один специалист, причём удалённо.
Тестировщики — среди самых востребованных сейчас специалистов-айтишников. Появляется множество новых программ, и каждой из них нужен контроль качества. QA-специалистов нанимают крупные компании-разработчики ПО, они могут стать фрилансерами и работать сразу на несколько фирм.
Как показывает статистика работных сайтов, на рынке не хватает разработчиков автотестов, а специалистов ручного тестирования достаточно. Средняя зарплата тестировщика в Москве больше 120 тысяч рублей, а по регионам —
примерно 55–60.
На скриншотах ниже — данные с HeadHunter. В сентябре 2020 года там было 3000 открытых вакансий тестировщика.
Источник
Цели тестирования классификация тестов
Уже готов стать тестировщиком или хочешь освежить базовые понятия? Тогда этот гайд – то, что нужно! Команда ПОИНТ и курса Jedi.Point структурированно делится теоретическими основами тестирования: от видов до полезных инструментов.
Что такое Тестирование ПО?
Тестирование ПО – процесс, который помогает проверить выполнение всех бизнес-сценариев и требований пользователей, а также выявить все возможные проблемы и дефекты IT-продуктов.
В чем разница между тестированием, QC и QA?
Зачастую понятия «тестирование», «QA» и «QC» или путают, или используют для обозначения одного и того же. На самом деле эти термины характеризуют немного разные процессы:
- тестирование отвечает непосредственно за нахождение багов;
- QC (контроль качества) – за выполнение процесса тестирования (написание/прохождение кейсов, поиск/заведение дефектов etc);
- QA (обеспечения качества) – за создание системы контроля, которая будет предотвращать появление багов уже на этапе разработки ПО, сокращая количество выявленных дефектов на этапе тестирования; грубо говоря – построение самого процесса тестирования.
Зачем нужно тестирование и тестировщики?
Действительно, разве разработчики сами не могут проверять свои же продукты?
Еще 5-6 лет назад такой вопрос обсуждался в ИТ-кругах и на просторах Интернета. Но в 2020 ясно: тестировщики без работы не останутся, а тестирование должны осуществлять специалисты в сфере QA.
Во-первых, они проверяют все взаимодействия разных кусков кода и окружений, а не часть программы, которую сами же написали. Во-вторых, в процессе тестирования они ставят себя на место пользователя, для которого и создается продукт. В-третьих, логика их работы основана не только на создании ПО, но и включает возможность его поломки. И, в конце концов, время тестеров стоит дешевле, да и разработчикам не придется забивать себе голову дополнительной информацией.
Чтобы понять, как еще тестировщики помогают своим заказчикам, читайте также:
Виды тестирования ПО
Составить эталонную классификацию почти невозможно – выделяют аж 100 видов тестирования, которые можно сгруппировать по различным характеристикам.
Более того, периодически методы устаревают, и возникают новые термины.
С какими же основными классификациями и типами тестирования стоит ознакомиться начинающим тестировщикам?
Виды тестирования ПО по степени автоматизации
Среди тестировщиков существует огромное разделение на более узкие специальности: тестирование безопасности, производительности, удобства использования и др. Но в самом широком смысле их можно разделить на ручных тестировщиков и тестировщиков-автоматизаторов.
Любое тестирование можно выполнить как вручную, так и с помощью инструментов автоматизации.
Ручное тестирование – это тип тестирования программного обеспечения, при котором тестировщик вручную проводит тесты без помощи каких-либо средств автоматизации.
Автоматизированное тестирование, в свою очередь, выполняется с помощью таких фреймворков, как Selenium, PHPUnit, Mockery и других. Его целью является снижение затрат и рисков, связанных с человеческим фактором. Особенно эффективен данный тип на долгосрочных проектах с частыми релизами и объемным регрессом.
Каждое из этих направлений имеет свою область применения, потому что 100-% автоматизация невозможна. Например, проверка юзабилити всегда осуществляется вручную.
Разница между ручным и автоматизированным тестированием
Ручное тестирование | Автоматизированное тестирование |
тестировщик выполняет тесты вручную | выполняется с использованием инструментов |
требует квалифицированного труда и продолжительного времени | экономит время, бюджет, человеческий ресурс |
некоторые типы тестирования больше подходят для ручного выполнения | рекомендуется только для стабильных систем, в основном используется для регрессионного тестирования |
может стать повторяющимся и утомительным | рутинную часть можно переложить на инструменты автоматизации |
Также рекомендуем:
Виды по объекту тестирования
Функциональное тестирование (functional testing) проверяет часть системы, которая необходима для того, чтобы пользователь мог выполнить бизнес-сценарий от начала до конца. Оно выполняется первым, до нефункционального тестирования. Примеры: переход по разделам форума, поиск по сайту.
Методы и техники функционального тестирования:
- Модульное тестирование
- Тестирование серого ящика
- Тестирование черного ящика
- Тестирование белого ящика
- Пользовательское тестирование
- Регрессионное тестирование
- Смоук тестирование
- Исследовательское тестирование
- Сессионное тестирование — компромисс между исследовательским и скриптовым тестированием.
Нефункциональное тестирование необходимо для проверки работоспособности системы при различных условиях, которые могут влиять на удовлетворенность пользователя (надежность, удобство использования, масштабируемость).
Типы нефункционального тестирования:
- Тестирование безопасности (security testing)
Тестирование безопасности – это вид тестирования для выявления уязвимости программного обеспечения к различным атакам (SQL, XSS etc).
Рекомендуем ознакомиться:
- Тестирование локализации (localization testing)
Тестирование локализации – процесс адаптации продукта, который ранее был переведен на несколько языков для определенной страны или региона.
- Юзабилити тестирование (usability testing)
Тестирование юзабилити – это метод тестирования, направленный на выявление удобства и понятности интерфейса.
Оценивать удобство без субъективности и научиться создавать продукт, который будет нравиться вашим пользователям, вы можете на курсе Тестирование удобства использования. |
Виды тестирования по позитивности сценария
Негативное тестирование – проверка того, что при вводе недопустимых значений/совершении недопустимых действий программа ведет себя корректно – не совершает того, чего не должна и выдает человекочитаемое сообщение об ошибке.
Позитивные тестирование – проверка того, что программа работает правильно на «правильных» данных – не выдает ошибок, делает то, что должна.
Этапы тестирования
Для описания процесса тестирования поэтапно существует несколько методик. Одна из самых понятных и простых моделей – STLC.
STLC (Software Testing Life Cycle) означает жизненный цикл тестирования программного обеспечения.
Модель жизненного цикла тестирования программного обеспечения (модель STLC) состоит из шести основных фаз.
6 фаз STLC (Software Testing Life Cycle):
Анализ требований. На этом этапе тестировщики изучают требования с точки зрения тестирования и общаются с заказчиками для детального понимания. Также, если необходимо, выполняют технико-экономическое обоснование автоматизации.
Зачастую тестировщикам приходится сталкиваться с ситуацией, когда требования отсутствуют или недостаточно ясны. В таких случаях тестировщик использует методы и инструменты для организации тестирования в условиях отсутствия идеальных требований на проекте.
По этой теме рекомендуем почитать:
Научиться тестировать в условиях отсутствия идеальных требований на проекте можно на курсе: Тестирование без требований: выявление и восстановление информации о продукте |
Планирование тестирования. На данном этапе разрабатывается стратегия тестирования, выявляются риски, выбираются инструменты и распределяются роли в команде. Все это фиксируется в таких документах, как тест-план и тест-стратегия.
Разработка тест-кейсов.
О том, почему мы пишем тест-кейсы, можно узнать в нашем видео:
Станислав Марков, тренер ПОИНТ и курса Погружение в тестирование. Jedi Point детально рассказывает о каждой фазе
А о том, как писать тест-кейсы, вы можете узнать на нашем Youtube-канале |
Настройка тестовой среды окружения. Этот шаг нужен для того, чтобы подготовить все условия для эффективного процесса тестирования. Он включает настройку тестового сервера, настройку сети, настройку тестовых ПК или устройств, а также формирование тестовых данных для тестовой среды.
Выполнение тестов. Команда QC начинает выполнение тест-кейсов в соответствии с планами тестирования и создает отчеты о багах. Также чаще всего на этом этапе происходит валидация багов. Она нужна для того, чтобы убедится, что дефекты, которые ты завёл ранее, ДЕЙСТВИТЕЛЬНО пофиксили.
Закрытие цикла – последний этап жизненного цикла тестирования программного обеспечения. Он включает в себя встречу членов группы тестирования для того, чтобы оценить показатели проекта.
Инструменты тестировщика
Инструменты тестирования – все продукты, которые помогают QA-инженерам организовывать свою работу на каждом этапе.
Выбор инструментов для работы тестировщика зависит от вида тестирования, личных предпочтений и места работы тестировщика. Со временем у каждого тестировщика появляется свой набор инструментов.
Инструменты для управления тестированием
Инструменты для автоматизации тестирования
Инструменты для кросс-браузерного тестирования
Инструменты для нагрузочного тестирования
Инструменты для баг трекинга
Инструменты для автоматизации тестирования мобильных приложений
Для iPhone и iPad:
Мобильные эмуляторы
Инструменты для тестирования юзабилити
Инструменты для API- тестирования
Инструменты тестирования безопасности
CSS Валидаторы
Также рекомендуем:
Надеемся, наш гайд помог вам в понимании основ тестирования. Успехов в карьере тестировщика!
А тем, кто хочет узнать о каждом аспекте тестирования на практике, рекомендуем пройти курсы тестирования ПО.
И обязательно скачайте чек-лист “Что должен знать и уметь джуниор-тестировщик”, заполнив небольшую анкету.
Источник
Классификация видов тестирования
Вы решили дать новый виток своей карьере и попробовать силы в QA? Это отличная идея! И начать своё знакомство с тестированием ПО стоит с основ.
Поиск багов в программных продуктах отличается в зависимости от конечной цели. Алгоритм выявления дефектов сайта при переводе страницы на иностранный язык и определении предельной нагрузки будет отличаться методами, инструментами и привлекаемыми к процессу специалистами.
Многие тестировщики со временем приобретают специализацию, но обучение неизменно начинается с базовых знаний и навыков. Итак, чтобы вам было проще разобраться во всём многообразии QA-областей, мы расскажем о ключевых видах тестирования.
1. Цель
Каждый программный продукт должен выполнять одну или несколько ключевых задач. От приложения с гео-картами мы ожидаем точной ориентации в пространстве, от сайта интернет-магазина ― корректного поиска товаров по заданным параметрам и т. д. Но те же программные продукты мы можем протестировать и с точки зрения дизайна.
Таким образом, анализ ПО с позиции его ключевых или вспомогательных функций определяет тип тестирования:
- Функциональное
- Нефункциональное
Функциональное тестирование направлено на проверку того, какие функции ПО реализованы, и того, насколько верно они реализованы.
Нефункциональное – проверка корректности работы нефункциональных требований. Оценивается, КАК программный продукт работает. Эта проверка включает в себя следующие виды:
- Тестирование производительности – работа ПО под определённой нагрузкой.
- Тестирование пользовательского интерфейса – удобство пользователя при взаимодействии с разными параметрами интерфейса (кнопки, цвета, выравнивание и т. д.).
- Тестирование UX – правильность логики использования программного продукта.
- Тестирование защищенности – определение безопасности ПО: защищено ли оно от атак хакеров, несанкционированного доступа к данным и т. д.
- Инсталляционное тестирование – оценка вероятности возникновения проблем при установке, удалении, а также обновлении ПО.
- Тестирование совместимости – тестирование работы программного продукта в определённом окружении.
- Тестирование надежности – работа программы при длительной средней ожидаемой нагрузке.
- Тестирование локализации –оценка правильности версии программного продукта (языковой и культурный аспекты).
2. Степень автоматизации
В зависимости от того, используют ли тестировщики дополнительные программные средства для тестирования приложений или программ, тестирование бывает:
- Мануальное (ручное) – без использования дополнительных программных средств, т. е. «вручную».
- Автоматизированное – с использованием программных средств (более детально в описании курса по автоматизации тестирования ПО).
Каждый из подходов имеет свои преимущества и недостатки. Ручное тестирование проще освоить, оно широко применяется на проектах всех типов, но мануальные проверки отличаются монотонностью. А вот написание тестов даёт больше возможностей для творческой реализации, но автоматизация требует базовых навыков программирования.
Подробнее о плюсах и минусах этих типов тестирования мы рассказали в нашей статье.
3. Позитивность сценария
Этот подход определяет поведение системы в привычных и экстремальных условиях.
- Позитивная проверка – оценка ожидаемого поведения. Это тестирование проводится в первую очередь, ведь позволяет определить корректность работы программы.
- Негативная – определение устойчивости системы в нестандартной ситуации. Например, неожиданный сценарий взаимодействия пользователя с интерфейсом.
Эти типы тестирования нередко проводятся параллельно. Ведь работая над некоторой функциональностью, тестировщику проще оценить её поведение и в стандартных, и в нестандартных условиях.
4. Доступ к коду программного продукта
В процессе тестирования инженер может работать с ПО, не обращаясь к его коду, а может определить правильность работы, взглянув на код. По доступу к коду программного продукта тестирование делится на:
- Тестирование «белого ящика» – с доступом к коду.
- Тестирование «черного ящика» – без доступа к коду продукта.
- Тестирование «серого ящика» – на основе ограниченного знания внутренней структуры ПО. Часто говорят, что это смесь тестирования «белого ящика» и «чёрного ящика», но это в корне неверно. В данном случае тестировщик не работает с кодом программного продукта, но он знаком с внутренней структурой программы и взаимодействием между компонентами.
Проверка программного продукта по каждому из сценариев требует достаточно глубоких знаний. К примеру, об особенностях тестирования «чёрного ящика» в своей книге подробно рассказал Борис Бейзер. Это фундаментальная работа, с которой полезно ознакомиться каждому на старте работы в QA. Об этой и других полезных книгах мы рассказали в статье.
5. Уровень
Этот пункт определяет объект тестирования.
- Модульное / юнит-тестирование – проверка корректной работы отдельных единиц ПО, модулей. Этот вид тестирования могут выполнять сами разработчики.
- Интеграционное тестирование – проверка взаимодействия между несколькими единицами ПО.
- Системное – проверка работы приложения целиком.
- Приёмочное – оценка соответствия заявленным требованиям к программному продукту.
Переход на каждую новую ступень – движение от микроуровня к макро. Это важный этап тестирования, ведь безошибочно написанные модули могут просто не работать вместе.
Узнать больше об особенностях каждого из уровней тестирования вы сможете на базовом курсе Академии, а закрепить навыки – на продвинутом курсе.
6. Исполнитель
От объекта тестирования движемся к его субъекту. Вы могли слышать об альфа- и бета-тестировании. А поучаствовать в одном из них можно, даже не будучи тестировщиком. Итак, по исполнителю тестирование делится на:
- Альфа-тестирование – проверка программного продукта на поздней стадии разработки. Проводится разработчиками или тестировщиками.
- Бета-тестирование – оценка ПО перед выходом на рынок в фокус-группе или добровольцами. Отзывы собираются, анализируются и учитываются при внесении правок.
7. Формальность
Этот пункт определяет подготовленность тестировщика перед началом проверки.
- Тестирование по тестам – использование написанных заранее тест-кейсов.
- Исследовательское тестирование – одновременная разработка тестов и их использование.
- Свободное тестирование – проверка качества без разработки тестов и написания документации. Основывается на интуиции и опыте тестировщика.
Начинающие тестировщики редко работают на свободном уровне. А вот опытные QA-специалисты могут позволить себе проверку без дополнительной подготовки. Мастерство растёт со временем, как и оплата труда тестировщика. О том, сколько получают инженеры, читайте в нашем блоге.
8. Важность
- Дымовое тестирование – проверка самой важной функциональности программного продукта.
- Тестирование критического пути – проверка функциональности, используемой типичными пользователями в повседневной деятельности.
- Расширенное тестирование – проверка всей заявленной функциональности.
QA-область очень многообразна. Помимо отличий в технологии оценки качества, тип тестирования может отличаться индустрией или видом программного продукта. К примеру, начинающий тестировщик может выбрать для себя специализацию:
- тестирование мобильных или десктопных приложений;
- банкинг;
- социальные сети;
- игры;
- и другое.
Надеемся, с этой статьёй вам будет проще ориентироваться в самом начале пути в тестировании программного обеспечения. А что ещё поможет на старте карьеры? Обучение на курсе QA Academy. Записывайтесь прямо сейчас!
Источник
Цели тестирования классификация тестов
Виды тестирования В зависимости от Целей:
1. Функциональные
2. Нефункциональные
3. Связанные с изменениями
Функциональные виды тестирования
Функциональные виды тестирования рассматривают внешнее поведение системы.
Функциональные тесты базируются на функциях и особенностях, а также взаимодействии с другими системами, и могут быть представлены на всех уровнях тестирования: компонентном или модульном (Component/Unit testing),
интеграционном (Integration testing), системном (System testing) .
Самыми распространенными видами функциональных тестов являются:
— Функциональное тестирование (Functional testing)
— Тестирование безопасности (Security and Access Control Testing)
— Тестирование взаимодействия (Interoperability Testing)
Нефункциональные виды тестирования
Нефункциональное тестирование описывает тесты, необходимые для определения характеристик программного обеспечения, которые могут быть измерены различными величинами. Это тестирование того, «Как» система работает.
Основными видами нефункциональных тестов являются:
— Все виды тестирования производительности:
- нагрузочное тестирование (Performance and Load Testing)
- стрессовое тестирование (Stress Testing)
- тестирование стабильности или надежности (Stability / Reliability Testing)
- объемное тестирование (Volume Testing)
— Тестирование установки (Installation testing)
— Тестирование удобства пользования (Usability Testing)
— Тестирование на отказ и восстановление (Failover and Recovery Testing)
— Конфигурационное тестирование (Configuration Testing)
Виды тестирования связанные с изменениями
После проведения необходимых изменений, таких как исправление дефектов, программное обеспечение должно быть протестировано заново, для подтверждения того факта, что проблема была решена.
Ниже перечислены виды тестирования, которые необходимо проводить после установки программного обеспечения, для подтверждения работоспособности приложения или правильности осуществленного исправления дефекта:
— Дымовое тестирование (Smoke Testing)
— Регрессионное тестирование (Regression Testing)
— Тестирование сборки (Build Verification Test)
— Санитарное тестирование или проверка согласованности/исправности (Sanity
Testing)
Источник