Руководства по тестированию программного обеспечения

Фундаментальная теория тестирования

Время на прочтение
15 мин

Количество просмотров 698K

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

Перейдем к основным понятиям

Тестирование программного обеспечения (Software Testing) — проверка соответствия реальных и ожидаемых результатов поведения программы, проводимая на конечном наборе тестов, выбранном определённым образом.

Цель тестирования — проверка соответствия ПО предъявляемым требованиям, обеспечение уверенности в качестве ПО, поиск очевидных ошибок в программном обеспечении, которые должны быть выявлены до того, как их обнаружат пользователи программы.

Для чего проводится тестирование ПО?

  • Для проверки соответствия требованиям.
  • Для обнаружение проблем на более ранних этапах разработки и предотвращение повышения стоимости продукта.
  • Обнаружение вариантов использования, которые не были предусмотрены при разработке. А также взгляд на продукт со стороны пользователя.
  • Повышение лояльности к компании и продукту, т.к. любой обнаруженный дефект негативно влияет на доверие пользователей.

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

  • Принцип 1 — Тестирование демонстрирует наличие дефектов (Testing shows presence of defects).
    Тестирование только снижает вероятность наличия дефектов, которые находятся в программном обеспечении, но не гарантирует их отсутствия.
  • Принцип 2 — Исчерпывающее тестирование невозможно (Exhaustive testing is impossible).
    Полное тестирование с использованием всех входных комбинаций данных, результатов и предусловий физически невыполнимо (исключение — тривиальные случаи).
  • Принцип 3 — Раннее тестирование (Early testing).
    Следует начинать тестирование на ранних стадиях жизненного цикла разработки ПО, чтобы найти дефекты как можно раньше.
  • Принцип 4 — Скопление дефектов (Defects clustering).
    Большая часть дефектов находится в ограниченном количестве модулей.
  • Принцип 5 — Парадокс пестицида (Pesticide paradox).
    Если повторять те же тестовые сценарии снова и снова, в какой-то момент этот набор тестов перестанет выявлять новые дефекты.
  • Принцип 6 — Тестирование зависит от контекста (Testing is context depending). Тестирование проводится по-разному в зависимости от контекста. Например, программное обеспечение, в котором критически важна безопасность, тестируется иначе, чем новостной портал.
  • Принцип 7 — Заблуждение об отсутствии ошибок (Absence-of-errors fallacy). Отсутствие найденных дефектов при тестировании не всегда означает готовность продукта к релизу. Система должна быть удобна пользователю в использовании и удовлетворять его ожиданиям и потребностям.

Обеспечение качества (QA — Quality Assurance) и контроль качества (QC — Quality Control) — эти термины похожи на взаимозаменяемые, но разница между обеспечением качества и контролем качества все-таки есть, хоть на практике процессы и имеют некоторую схожесть.

QC (Quality Control) — Контроль качества продукта — анализ результатов тестирования и качества новых версий выпускаемого продукта.

К задачам контроля качества относятся:

  • проверка готовности ПО к релизу;
  • проверка соответствия требований и качества данного проекта.

QA (Quality Assurance) — Обеспечение качества продукта — изучение возможностей по изменению и улучшению процесса разработки, улучшению коммуникаций в команде, где тестирование является только одним из аспектов обеспечения качества.

К задачам обеспечения качества относятся:

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

Скриншот

Верификация и валидация — два понятия тесно связаны с процессами тестирования и обеспечения качества. К сожалению, их часто путают, хотя отличия между ними достаточно существенны.

Верификация (verification) — это процесс оценки системы, чтобы понять, удовлетворяют ли результаты текущего этапа разработки условиям, которые были сформулированы в его начале.

Валидация (validation) — это определение соответствия разрабатываемого ПО ожиданиям и потребностям пользователя, его требованиям к системе.

Пример: когда разрабатывали аэробус А310, то надо было сделать так, чтобы закрылки вставали в положение «торможение», когда шасси коснулись земли. Запрограммировали так, что когда шасси начинают крутиться, то закрылки ставим в положение «торможение». Но вот во время испытаний в Варшаве самолет выкатился за пределы полосы, так как была мокрая поверхность. Он проскользил, только потом был крутящий момент и они, закрылки, открылись. С точки зрения «верификации» — программа сработала, с точки зрения «валидации» — нет. Поэтому код изменили так, чтобы в момент изменения давления в шинах открывались закрылки.

Документацию, которая используется на проектах по разработке ПО, можно условно разделить на две группы:

  1. Проектная документация — включает в себя всё, что относится к проекту в целом.
  2. Продуктовая документация — часть проектной документации, выделяемая отдельно, которая относится непосредственно к разрабатываемому приложению или системе.

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

  1. Анализ продукта
  2. Работа с требованиями
  3. Разработка стратегии тестирования и планирование процедур контроля качества
  4. Создание тестовой документации
  5. Тестирование прототипа
  6. Основное тестирование
  7. Стабилизация
  8. Эксплуатация

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

Программный продукт проходит следующие стадии:

  1. анализ требований к проекту;
  2. проектирование;
  3. реализация;
  4. тестирование продукта;
  5. внедрение и поддержка.

Требования

Требования — это спецификация (описание) того, что должно быть реализовано.
Требования описывают то, что необходимо реализовать, без детализации технической стороны решения.

Атрибуты требований:

  1. Корректность — точное описание разрабатываемого функционала.
  2. Проверяемость — формулировка требований таким образом, чтобы можно было выставить однозначный вердикт, выполнено все в соответствии с требованиями или нет.
  3. Полнота — в требовании должна содержаться вся необходимая для реализации функциональности информация.
  4. Недвусмысленность — требование должно содержать однозначные формулировки.
  5. Непротиворечивость — требование не должно содержать внутренних противоречий и противоречий другим требованиям и документам.
  6. Приоритетность — у каждого требования должен быть приоритет(количественная оценка степени значимости требования). Этот атрибут позволит грамотно управлять ресурсами на проекте.
  7. Атомарность — требование нельзя разбить на отдельные части без потери деталей.
  8. Модифицируемость — в каждое требование можно внести изменение.
  9. Прослеживаемость — каждое требование должно иметь уникальный идентификатор, по которому на него можно сослаться.

Дефект (bug) — отклонение фактического результата от ожидаемого.

Отчёт о дефекте (bug report) — документ, который содержит отчет о любом недостатке в компоненте или системе, который потенциально может привести компонент или систему к невозможности выполнить требуемую функцию.

Атрибуты отчета о дефекте:

  1. Уникальный идентификатор (ID) — присваивается автоматически системой при создании баг-репорта.
  2. Тема (краткое описание, Summary) — кратко сформулированный смысл дефекта, отвечающий на вопросы: Что? Где? Когда(при каких условиях)?
  3. Подробное описание (Description) — более широкое описание дефекта (указывается опционально).
  4. Шаги для воспроизведения (Steps To Reproduce) — описание четкой последовательности действий, которая привела к выявлению дефекта. В шагах воспроизведения должен быть описан каждый шаг, вплоть до конкретных вводимых значений, если они играют роль в воспроизведении дефекта.
  5. Фактический результат (Actual result) — описывается поведение системы на момент обнаружения дефекта в ней. чаще всего, содержит краткое описание некорректного поведения(может совпадать с темой отчета о дефекте).
  6. Ожидаемый результат (Expected result) — описание того, как именно должна работать система в соответствии с документацией.
  7. Вложения (Attachments) — скриншоты, видео или лог-файлы.
  8. Серьёзность дефекта (важность, Severity) — характеризует влияние дефекта на работоспособность приложения.
  9. Приоритет дефекта (срочность, Priority) — указывает на очерёдность выполнения задачи или устранения дефекта.
  10. Статус (Status) — определяет текущее состояние дефекта. Статусы дефектов могут быть разными в разных баг-трекинговых системах.
  11. Окружение (Environment) – окружение, на котором воспроизвелся баг.

Жизненный цикл бага

Скриншот

Severity vs Priority

Серьёзность (severity) показывает степень ущерба, который наносится проекту существованием дефекта. Severity выставляется тестировщиком.

Градация Серьезности дефекта (Severity):

  • Блокирующий (S1 – Blocker)
    тестирование значительной части функциональности вообще недоступно. Блокирующая ошибка, приводящая приложение в нерабочее состояние, в результате которого дальнейшая работа с тестируемой системой или ее ключевыми функциями становится невозможна.
  • Критический (S2 – Critical)
    критическая ошибка, неправильно работающая ключевая бизнес-логика, дыра в системе безопасности, проблема, приведшая к временному падению сервера или приводящая в нерабочее состояние некоторую часть системы, то есть не работает важная часть одной какой-либо функции либо не работает значительная часть, но имеется workaround (обходной путь/другие входные точки), позволяющий продолжить тестирование.
  • Значительный (S3 – Major)
    не работает важная часть одной какой-либо функции/бизнес-логики, но при выполнении специфических условий, либо есть workaround, позволяющий продолжить ее тестирование либо не работает не очень значительная часть какой-либо функции. Также относится к дефектам с высокими visibility – обычно не сильно влияющие на функциональность дефекты дизайна, которые, однако, сразу бросаются в глаза.
  • Незначительный (S4 – Minor)
    часто ошибки GUI, которые не влияют на функциональность, но портят юзабилити или внешний вид. Также незначительные функциональные дефекты, либо которые воспроизводятся на определенном устройстве.
  • Тривиальный (S5 – Trivial)
    почти всегда дефекты на GUI — опечатки в тексте, несоответствие шрифта и оттенка и т.п., либо плохо воспроизводимая ошибка, не касающаяся бизнес-логики, проблема сторонних библиотек или сервисов, проблема, не оказывающая никакого влияния на общее качество продукта.

Срочность (priority) показывает, как быстро дефект должен быть устранён. Priority выставляется менеджером, тимлидом или заказчиком

Градация Приоритета дефекта (Priority):

  • P1 Высокий (High)
    Критическая для проекта ошибка. Должна быть исправлена как можно быстрее.
  • P2 Средний (Medium)
    Не критичная для проекта ошибка, однако требует обязательного решения.
  • P3 Низкий (Low)
    Наличие данной ошибки не является критичным и не требует срочного решения. Может быть исправлена, когда у команды появится время на ее устранение.

Существует шесть базовых типов задач:

  • Эпик (epic) — большая задача, на решение которой команде нужно несколько спринтов.
  • Требование (requirement ) — задача, содержащая в себе описание реализации той или иной фичи.
  • История (story) — часть большой задачи (эпика), которую команда может решить за 1 спринт.
  • Задача (task) — техническая задача, которую делает один из членов команды.
  • Под-задача (sub-task) — часть истории / задачи, которая описывает минимальный объем работы члена команды.
  • Баг (bug) — задача, которая описывает ошибку в системе.

Тестовые среды

  • Среда разработки (Development Env) – за данную среду отвечают разработчики, в ней они пишут код, проводят отладку, исправляют ошибки
  • Среда тестирования (Test Env) – среда, в которой работают тестировщики (проверяют функционал, проводят smoke и регрессионные тесты, воспроизводят.
  • Интеграционная среда (Integration Env) – среда, в которой проводят тестирование взаимодействующих друг с другом модулей, систем, продуктов.
  • Предпрод (Preprod Env) – среда, которая максимально приближена к продакшену. Здесь проводится заключительное тестирование функционала.
  • Продакшн среда (Production Env) – среда, в которой работают пользователи.

Основные фазы тестирования

  • Pre-Alpha: прототип, в котором всё ещё присутствует много ошибок и наверняка неполный функционал. Необходим для ознакомления с будущими возможностями программ.
  • Alpha: является ранней версией программного продукта, тестирование которой проводится внутри фирмы-разработчика.
  • Beta: практически готовый продукт, который разработан в первую очередь для тестирования конечными пользователями.
  • Release Candidate (RC): возможные ошибки в каждой из фичей уже устранены и разработчики выпускают версию на которой проводится регрессионное тестирование.
  • Release: финальная версия программы, которая готова к использованию.

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

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

Скриншот

  1. Классификация по запуску кода на исполнение:
    • Статическое тестирование — процесс тестирования, который проводится для верификации практически любого артефакта разработки: программного кода компонент, требований, системных спецификаций, функциональных спецификаций, документов проектирования и архитектуры программных систем и их компонентов.
    • Динамическое тестирование — тестирование проводится на работающей системе, не может быть осуществлено без запуска программного кода приложения.

  2. Классификация по доступу к коду и архитектуре:
    • Тестирование белого ящика — метод тестирования ПО, который предполагает полный доступ к коду проекта.
    • Тестирование серого ящика — метод тестирования ПО, который предполагает частичный доступ к коду проекта (комбинация White Box и Black Box методов).
    • Тестирование чёрного ящика — метод тестирования ПО, который не предполагает доступа (полного или частичного) к системе. Основывается на работе исключительно с внешним интерфейсом тестируемой системы.

  3. Классификация по уровню детализации приложения:
    • Модульное тестирование — проводится для тестирования какого-либо одного логически выделенного и изолированного элемента (модуля) системы в коде. Проводится самими разработчиками, так как предполагает полный доступ к коду.
    • Интеграционное тестирование — тестирование, направленное на проверку корректности взаимодействия нескольких модулей, объединенных в единое целое.
    • Системное тестирование — процесс тестирования системы, на котором проводится не только функциональное тестирование, но и оценка характеристик качества системы — ее устойчивости, надежности, безопасности и производительности.
    • Приёмочное тестирование — проверяет соответствие системы потребностям, требованиям и бизнес-процессам пользователя.

  4. Классификация по степени автоматизации:
    • Ручное тестирование.
    • Автоматизированное тестирование.

  5. Классификация по принципам работы с приложением
    • Позитивное тестирование — тестирование, при котором используются только корректные данные.
    • Негативное тестирование — тестирование приложения, при котором используются некорректные данные и выполняются некорректные операции.

  6. Классификация по уровню функционального тестирования:
    • Дымовое тестирование (smoke test) — тестирование, выполняемое на новой сборке, с целью подтверждения того, что программное обеспечение стартует и выполняет основные для бизнеса функции.
    • Тестирование критического пути (critical path) — направлено для проверки функциональности, используемой обычными пользователями во время их повседневной деятельности.
    • Расширенное тестирование (extended) — направлено на исследование всей заявленной в требованиях функциональности.

  7. Классификация в зависимости от исполнителей:
    • Альфа-тестирование — является ранней версией программного продукта. Может выполняться внутри организации-разработчика с возможным частичным привлечением конечных пользователей.
    • Бета-тестирование — программное обеспечение, выпускаемое для ограниченного количества пользователей. Главная цель — получить отзывы клиентов о продукте и внести соответствующие изменения.

  8. Классификация в зависимости от целей тестирования:
    • Функциональное тестирование (functional testing) — направлено на проверку корректности работы функциональности приложения.
    • Нефункциональное тестирование (non-functional testing) — тестирование атрибутов компонента или системы, не относящихся к функциональности.
      1. Тестирование производительности (performance testing) — определение стабильности и потребления ресурсов в условиях различных сценариев использования и нагрузок.
      2. Нагрузочное тестирование (load testing) — определение или сбор показателей производительности и времени отклика программно-технической системы или устройства в ответ на внешний запрос с целью установления соответствия требованиям, предъявляемым к данной системе (устройству).
      3. Тестирование масштабируемости (scalability testing) — тестирование, которое измеряет производительность сети или системы, когда количество пользовательских запросов увеличивается или уменьшается.
      4. Объёмное тестирование (volume testing) — это тип тестирования программного обеспечения, которое проводится для тестирования программного приложения с определенным объемом данных.
      5. Стрессовое тестирование (stress testing) — тип тестирования направленный для проверки, как система обращается с нарастающей нагрузкой (количеством одновременных пользователей).
      6. Инсталляционное тестирование (installation testing) — тестирование, направленное на проверку успешной установки и настройки, обновления или удаления приложения.
      7. Тестирование интерфейса (GUI/UI testing) — проверка требований к пользовательскому интерфейсу.
      8. Тестирование удобства использования (usability testing) — это метод тестирования, направленный на установление степени удобства использования, понятности и привлекательности для пользователей разрабатываемого продукта в контексте заданных условий.
      9. Тестирование локализации (localization testing) — проверка адаптации программного обеспечения для определенной аудитории в соответствии с ее культурными особенностями.
      10. Тестирование безопасности (security testing) — это стратегия тестирования, используемая для проверки безопасности системы, а также для анализа рисков, связанных с обеспечением целостного подхода к защите приложения, атак хакеров, вирусов, несанкционированного доступа к конфиденциальным данным.
      11. Тестирование надёжности (reliability testing) — один из видов нефункционального тестирования ПО, целью которого является проверка работоспособности приложения при длительном тестировании с ожидаемым уровнем нагрузки.
      12. Регрессионное тестирование (regression testing) — тестирование уже проверенной ранее функциональности после внесения изменений в код приложения, для уверенности в том, что эти изменения не внесли ошибки в областях, которые не подверглись изменениям.
      13. Повторное/подтверждающее тестирование (re-testing/confirmation testing) — тестирование, во время которого исполняются тестовые сценарии, выявившие ошибки во время последнего запуска, для подтверждения успешности исправления этих ошибок.

Тест-дизайн — это этап тестирования ПО, на котором проектируются и создаются тестовые случаи (тест-кейсы).

Техники тест-дизайна

Автор книги «A Practitioner’s Guide to Software Test Design», Lee Copeland, выделяет следующие техники тест-дизайна:

  1. Тестирование на основе классов эквивалентности (equivalence partitioning) — это техника, основанная на методе чёрного ящика, при которой мы разделяем функционал (часто диапазон возможных вводимых значений) на группы эквивалентных по своему влиянию на систему значений.
  2. Техника анализа граничных значений (boundary value testing) — это техника проверки поведения продукта на крайних (граничных) значениях входных данных.
  3. Попарное тестирование (pairwise testing) — это техника формирования наборов тестовых данных из полного набора входных данных в системе, которая позволяет существенно сократить количество тест-кейсов.
  4. Тестирование на основе состояний и переходов (State-Transition Testing) — применяется для фиксирования требований и описания дизайна приложения.
  5. Таблицы принятия решений (Decision Table Testing) — техника тестирования, основанная на методе чёрного ящика, которая применяется для систем со сложной логикой.
  6. Доменный анализ (Domain Analysis Testing) — это техника основана на разбиении диапазона возможных значений переменной на поддиапазоны, с последующим выбором одного или нескольких значений из каждого домена для тестирования.
  7. Сценарий использования (Use Case Testing) — Use Case описывает сценарий взаимодействия двух и более участников (как правило — пользователя и системы).

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

Скриншот

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

Согласно ISTQB, тестирование белого ящика — это:

  • тестирование, основанное на анализе внутренней структуры компонента или системы;
  • тест-дизайн, основанный на технике белого ящика — процедура написания или выбора тест-кейсов на основе анализа внутреннего устройства системы или компонента.
  • Почему «белый ящик»? Тестируемая программа для тестировщика — прозрачный ящик, содержимое которого он прекрасно видит.

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

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

Согласно ISTQB, тестирование черного ящика — это:

  • тестирование, как функциональное, так и нефункциональное, не предполагающее знания внутреннего устройства компонента или системы;
  • тест-дизайн, основанный на технике черного ящика — процедура написания или выбора тест-кейсов на основе анализа функциональной или нефункциональной спецификации компонента или системы без знания ее внутреннего устройства.

Тестовая документация

Тест план (Test Plan) — это документ, который описывает весь объем работ по тестированию, начиная с описания объекта, стратегии, расписания, критериев начала и окончания тестирования, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков.

Тест план должен отвечать на следующие вопросы:

  • Что необходимо протестировать?
  • Как будет проводиться тестирование?
  • Когда будет проводиться тестирование?
  • Критерии начала тестирования.
  • Критерии окончания тестирования.

Основные пункты тест плана:

  1. Идентификатор тест плана (Test plan identifier);
  2. Введение (Introduction);
  3. Объект тестирования (Test items);
  4. Функции, которые будут протестированы (Features to be tested;)
  5. Функции, которые не будут протестированы (Features not to be tested);
  6. Тестовые подходы (Approach);
  7. Критерии прохождения тестирования (Item pass/fail criteria);
  8. Критерии приостановления и возобновления тестирования (Suspension criteria and resumption requirements);
  9. Результаты тестирования (Test deliverables);
  10. Задачи тестирования (Testing tasks);
  11. Ресурсы системы (Environmental needs);
  12. Обязанности (Responsibilities);
  13. Роли и ответственность (Staffing and training needs);
  14. Расписание (Schedule);
  15. Оценка рисков (Risks and contingencies);
  16. Согласования (Approvals).

Чек-лист (check list) — это документ, который описывает что должно быть протестировано. Чек-лист может быть абсолютно разного уровня детализации.

Чаще всего чек-лист содержит только действия, без ожидаемого результата. Чек-лист менее формализован.

Тестовый сценарий (test case) — это артефакт, описывающий совокупность шагов, конкретных условий и параметров, необходимых для проверки реализации тестируемой функции или её части.

Атрибуты тест кейса:

  • Предусловия (PreConditions) — список действий, которые приводят систему к состоянию пригодному для проведения основной проверки. Либо список условий, выполнение которых говорит о том, что система находится в пригодном для проведения основного теста состояния.
  • Шаги (Steps) — список действий, переводящих систему из одного состояния в другое, для получения результата, на основании которого можно сделать вывод о удовлетворении реализации, поставленным требованиям.
  • Ожидаемый результат (Expected result) — что по факту должны получить.

Резюме

Старайтесь понять определения, а не зазубривать. Если хотите узнать больше про тестирование, то можете почитать Библию QA. А если возникнет вопрос, всегда можете задать его нам в телеграм-канале @qa_chillout.

Работа тестировщика входит в пятерку самых популярных работ в сфере IT, согласно статистике за 2020 год. Рынок растет очень быстро, а IT-компании постоянно создают новые команды тестировщиков. А вот еще немного впечатляющей статистики – на тестирование уходит 50% всего времени и более 50% общей стоимости любого проекта по созданию софта. А это приличный бюджет. Это означает, что налаживание процессов тестирования позволит сэкономить не только время, но и деньги.

Сегодня тестированию обучают в некоторых университетах. Но поскольку это все еще молодая отрасль, будущие специалисты предпочитают знакомиться с инструментами для тестирования программного обеспечения на онлайн-курсах. Онлайн-курсы и самообразование – это самый короткий способ изучить тестирование и начать новую жизнь в профессии. Наше руководство содержит краткий гид по основным инструментам тестирования программного обеспечения.

Тестирование является важнейшим методом контроля качества. Под качеством программного обеспечения мы имеем в виду соответствие программного обеспечения заявленным и предполагаемым требованиям. Основная цель тестирования программного обеспечения состоит в проверке совпадений между фактическими и ожидаемыми характеристиками программы. Ручное и автоматическое тестирование – это два наиболее известных типа тестирования программного обеспечения. Оба типа моделируют возможные сценарии действий пользователей и проверяют, выполняются ли при этом требования. Но в чем разница между ними?

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

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

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

Выбор инструмента и способа тестирования зависит от ваших целей и от желаемого уровня тестирования.  

А какие еще есть типы тестов?

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

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

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

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

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

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

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

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

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

Уровни тестирования

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

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

Системное тестирование проводится на полной интегрированной системе. Его основная цель – проверить, соответствует ли система требованиям. Оно относится к тестированию методом «черного ящика» и, следовательно, не требует знания внутренней структуры. Системное тестирование делится на альфа-тестирование и бета-тестирование.

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

Итак, с чего начать изучение тестирования программного обеспечения? Лучший способ стать тестером – пройти онлайн-курс, который поможет вам понять, как создается программное обеспечение, с какими трудностями сталкиваются программисты и как выглядит процесс устранения ошибок. Наши курсы предоставляют качественное обучение от лучших инструкторов, поэтому присоединяйтесь к нам. Мы поможем вам изучить основы тестировки программного обеспечения и начать карьеру в IT.

Запись на курс Manual QA

No software can ever be completely perfect. But is that a license to create garbage? The missing ingredient is our reluctance to quantify the quality. In order to increase the quality, it is very important to ensure the effective performance of software application. Software testing is required to ensure that the application runs without any failures. In this Software Testing tutorial, I will tell you everything you need to know about testing aspects. In continuation to the previous blog on what is software testing, here I will dive deeper and cover the below-mentioned topics.

  • Introduction to Software Testing
  • Software Testing Basics
    • Software Development Life Cycle
    • Verification and Validation  Model
    • Software Testing Methods
    • Software Testing Levels
    • Software Testing Documentation Artifacts
  • Bug Life Cycle
  • Challenges faced by Manual Testing
  • Automation Testing vs Manual Testing

You may also go through the recording of software testing tutorial where our Software Testing Training experts have explained the concepts in depth.

Software Testing Tutorial For Beginners | Manual & Automation Testing

This video talks about different types of testing i.e. manual testing and automation testing approaches.

Introduction to Software Testing

Today’s world of technology is completely dominated by machines, and their behavior is controlled by the software powering it. Software testing provides a cost-effective solution to all our worries. What is Software Testing? Software Testing is a process of evaluating the functionality of a software application to find any software bugs. It checks whether the developed software met the specified requirements and identifies any defect in the software to achieve a quality product. It is basically executing a system to identify any gaps, errors, or missing requirements contrary to the actual requirements.

What is software testing - Software Testing Tutorial - EdurekaIt is also stated as the process of verifying and validating a software product. It checks whether the software product:

  • Meets the business and technical requirements that guided its design and development
  • Works as per the requirement
  • Can be implemented with the same characteristics

Now, let’s move further in the Software Testing tutorial article and gain some insights on the basics of Software Testing.

Software Testing Basics

First,  I will tell you What is the software development life cycle?

Software Development Life Cycle

(SDLC) abbreviated as Software Development Life Cycle is a process used by the software industry to design, develop and test high-quality software. It aims to produce high-quality software that meets or exceeds customer expectations, reaches completion within time and cost estimates. Below diagram depicts various phases involved in SDLC.

SDLC - Software Testing Tutorial - Edureka

                                                                                                                   Fig: Software Development Life Cycle – Software Testing Tutorial

Requirement Phase

Requirement gathering and analysis is the most important phase in the software development lifecycle. Business analyst collects the requirement from the customer/client as per the clients business needs and documents the requirements in the business requirement specification (document name varies depends upon the Organization).

Analysis Phase

Once the requirements are gathered and analysed, the next step is to define and document the product requirements and get them approved by the customer. This is recorded through the SRS (Software Requirement Specification) document. It  consists of all the product requirements to be designed and developed during the project life cycle

Design Phase

This phase has two steps:

  1. HLD – High-Level Design – It gives the architecture of the software product to be developed and is done by architects and senior developers
  2. LLD – Low-Level Design – It is carried out by senior developers. Here, it gives you insights about how each and every feature in the product should work and how every component should work.

The outcome from this phase is the High-Level Document and Low-Level Document which works as an input to the next phase.

Development Phase

Developers of all levels (seniors, juniors, freshers) are involved in this phase. This is the phase where you start building the code for the software.

Testing Phase

When the software is ready, it is sent to the testing department where they test it thoroughly for different defects. Testing of a software is carried out either manually or using automated testing tools and ensure that each and every component of the software works fine. Once the software is error-free, it goes to the next stage, which is Implementation.

Deployment & Maintenance Phase

Once the product is error free, it is delivered/deployed to the customer for their use. Deployment is done by the Deployment/Implementation engineers. As the customers start using the developed system, then the actual problems come up and needs to be solved from time to time. Detecting and solving these issues found by the customer comes in the maintenance phase.

This was all about the Software Development Life Cycle. If you wish to know about different stages involved in software testing process, then you can read this blog on Software Testing Life Cycle. Having understood this, let’s move further with this software testing tutorial and see what is the V & V model.

V model is now one of the most widely used software development processes. Introduction of the V model has actually proved the implementation of testing right from the requirement phase. It is also called as Verification and Validation model

What is Verification and Validation in Software Testing?

Verification: Verification is a static analysis technique. Here, testing is done without executing the code. Examples include – reviews, inspection, and walk through.

Validation: Validation is a process of dynamic analysis where we perform testing by executing the code. Examples include functional and non-functional testing techniques.

In the V model, the development and QA activities are done simultaneously. Here, testing starts right from the requirement phase. The verification and validation activities occur simultaneously. Let’s look at the figure below to understand V model

V & V model -Software Testing Tutorial - Edureka

                                                                                                   Fig: Verification & Validation model – Software Testing Tutorial

In a typical development process, the left-hand side shows the development activities and the right-hand side shows the testing activities. It should not be wrong if I say that in the development phase both verification and validation are performed along with the actual development activities.

LHS

As mentioned earlier, left-hand side activities are development activities. Normally we feel, what testing can we do in the development phase? But this is the essence of this model which illustrates that testing can be done in all phase of development activities as well.

RHS

The testing activities or the Validation Phase is carried out in the Right-hand side of the model.

As you have gained some insights on this, let’s move further with this software testing tutorial and see what are the different methods in which the software can be tested.

Software Testing Methods

There are three methods for testing software and they are as follows:

  • Black Box Testing
  • White Box Testing
  • Grey Box Testing

Black Box Testing: It is a method of software testing  in which the internal structure/ design/ implementation of the item being tested is NOT known to the tester.

White Box Testing: It is a method of software testing  in which the internal structure/ design/ implementation of the item being tested is known to the tester.

Grey Box  Testing: It is a testing technique performed with limited information about the internal functionality of the system.

I hope you understood key pointers on different methods of software testing. Now, let’s move further in this Software Testing Tutorial article and understand Software Testing Levels.

Software Testing Levels

A level in software testing is a process where every unit or component of a software/system is being tested. There are various testing levels which help to check behavior and performance for software testing. These testing levels are designed to recognize missing areas and reconciliation between the development of lifecycle states. In software development life cycle model, there are characterized phases such as requirement gathering, analysis, design, coding or execution, testing, and deployment.

All these phases go through the process of software testing levels. There are mainly four testing levels and they are:

  1. Unit Testing
  2. Integration Testing
  3. System Testing
  4. Acceptance Testing

Basically, it starts with the Unit Testing phase and ends with Acceptance Testing.

In the next section of this software testing tutorial, I will be diving deeper into the next topic and explain what are the various documentation artifacts in software testing.

Software Testing Documentation Artifacts

Documenting the test cases will facilitate you to estimate the testing effort you will need along with test coverage and tracking and tracing requirement. Some commonly applied documentation artifacts associated with software testing are:

  1. Test Plan
  2. Test Scenario
  3. Test Case
  4. Traceability Matrix

Let’s discuss each of them in brief.

  1. Test Plan: It provides you with the outline strategy which will be implemented for testing the application.
  2. Test Scenario: Test scenario can be considered as a single line statement that notifies the area in which your application will be experimented. This artifact is needed for ensuring the overall procedure tested from the very start to end.
  3. Test Case: Test Case is nothing but a set of conditions or variables under which a tester will determine whether a system under test satisfies requirements or works correctly.   Below mentioned test cases are being checked during testing.
    • Functional test cases
    • Negative-error test cases
    • Logical test cases
    • Physical test cases
    • UI test cases
  4. Traceability Matrix: It is also known as a Requirement Traceability Matrix (RTM). It contains a table which sketches the requirements when your product’s SDLC model is being created. These documenting artifacts can be applied for forward tracing which is to go from designing to coding or can be implemented for backward tracing as well which is the reverse of the forward tracing.

This brings us to end of Software Testing Documentation Artifacts. Now, let’s move further in this Software testing tutorial article and learn what is  Defect Management?

What is the Defect Management process?

Defect management is a process of detecting bugs and fixing them. As bugs are a part of software industry, they occur constantly in the process of software development. The team members must write large pieces of code every day, and they usually don’t have time to think about how to avoid bugs. Hence, every software development project requires a process that helps to detect the defects and fix them.

Defect management process is conducted at the stage of product testing. Without realizing this, it would be hard to understand the nature of defect management.. Usually, the developers test their product themselves. Also, there is also a type of testing that is based on user involvement. The final users are often provided with an ability to report on the bugs they have identified. Nevertheless, this is not the best way of testing, because the users might not be capable of finding all the bugs.

The defect management process usually includes four steps.

  1. The first step is the stage of the defect detecting
  2. The second step is dedicated to the formulation of bug reports
  3. The third step is to fix the bug.
  4. In the final step, the bug list is created

Now, let’s move further in Software testing tutorial article and understand the bug detection process with the help of the bug life cycle.

Bug life cycle

A defect life cycle is a process in which a defect goes through various phases during its entire lifetime. It starts when a defect is found and ends when a defect is closed, after ensuring it’s not reproduced. A defect life cycle is related to the bug found during testing.

Bug or defect life cycle includes the steps as illustrated in the below figure:

Bug life cycle - Software Testing Tutorial - Edureka

                                                Fig: Bug life cycle – Software Testing Tutorial
  1. New:  In this step, if a defect is logged and posted for the first time, its state is given as new.
  2. Assigned:After the tester has posted the bug, the lead of the tester approves that the bug is genuine and he assigns the bug to a corresponding developer and the developer team. It’s state given as assigned.
  3. Open: Inthis state, the developer has started analyzing and working on the defect fix.
  4. Fixed: As the developer makes necessary code changes and verifies the changes then he/she can make bug status as ‘Fixed’ and the bug is passed to the testing team.
  5. Test:At this stage, the tester does the testing of the changed code which the developer has given back to him to check whether the defect has been fixed or not.
  6. Verified: Here, the tester tests the bug again after it got fixed by the developer. If there is no bug in the software, he approves that the bug is fixed and changes the status to “verified”.
  7. Reopen: In case if the bug still exists even after the bug is fixed by the developer, the tester changes the status to “reopened”. In this state, the bug goes through the life cycle once again.
  8. Closed: As soon as the bug is fixed, it is tested by the tester. In case, if the tester feels that the bug no longer exists in the software, he changes the status of the bug to “closed”. It implies that the bug is fixed, tested and approved.
  9. Duplicate:In the bug life cycle, if the bug is repeated twice or the two bugs mention the same concept of the bug, then one bug status is changed to “duplicate”.
  10. Rejected:If in case the developer feels that the bug is not genuine, he rejects the bug. Then the state of the bug is changed to “rejected”.
  11. Deferred:If the bug is changed to deferred state means the bug is expected to be fixed in next releases.

This was all about the Bug Life Cycle and Defect Management Process. Now, let’s see what are the challenges with Manual Testing.

Challenges With Manual Testing

Testing of an application manually by QA testers is known as Manual Testing. Here, all the tests need to be performed manually in every environment, using a different data set and the success/ failure rate of every transaction should be recorded.

Manual testing challenges-Software Testing Tutorial-Edureka

In the above figure you can see a man who manually verifies the transactions recorded. You can easily notify the challenges that he is facing may cause fatigue, boredom, delay in work, mistakes and errors because of manual effort. This led to the emergence of Automation testing.
Now, let’s delve into the last topic of software testing tutorial article and see how Automation testing beats manual testing.

Automation Testing vs Manual Testing

Automation testing overcomes manual testing every time. Why? Because it is superfast, requires very less investment in human resource, not prone to errors, frequent execution of tests is possible, supports regression testing and also functional testing.

Let’s take an example and understand this. Say you have a login page and you need to verify if all the login attempts are successful, then it will be really easy to write a piece of code which will validate if all the transaction/ login attempts are a success or not (automated test case execution).

All these tests can be configured in such a way that they are tested in different environments and web browsers. Not just that, also you can  automate the generation of result file, by scheduling it for a particular time during the day. Then you can also automate the generation of reports based on those results and what not.

Automation testing - Software Testing Tutorial - EdurekaImportant point here is that automation testing makes a tester’s job, a whole lot simpler. Refer the above image which shows a more relaxed environment in which the same tester is working. If you wish to know more about Automation Testing and the widely used Automation Testing tool Selenium, you can refer to this Selenium Tutorial.

This was all about how automation testing is sparkling its way in the field of software testing. It brings us to the end of the article on Software Testing Tutorial. I hope you found it informative and it has helped in adding value to your knowledge.

If you found this “Software Testing Tutorial” relevant, check out the live-online Selenium Certification Training by Edureka, a trusted online learning company with a network of more than 250,000 satisfied learners spread across the globe. 

Got a question for us? Please mention it in the comments section of  Software Testing tutorial blog and we will get back to you.

#подборки

  • 23 сен 2019

  • 11

Учиться тестированию можно по-разному. Хорошие книги — источник базовых знаний и практического опыта экспертов.

 vlada_maestro / shutterstock

Наталья Березовская

Автор в сфере IT, digital, экономики и финансов. Ведёт некоммерческий проект для начинающих писателей «ЛитЦех».

Одна из лучших книг по тестированию программного обеспечения для начинающих. Книга рассматривает все основные понятия, необходимые для работы junior-тестировщика, и дает ответы на вопросы, с которыми часто сталкиваются новички. Форма изложения материала доступна людям без какого-либо опыта. Однако в конце книги есть главы, посвященные фреймворкам автоматизирования, которые предназначены уже для состоявшихся тестировщиков.


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


Фундаментальные концепции менеджмента бизнес-приложений

Книга больше подойдет не новичкам, а специалистам с опытом — как минимум проработавшим в профессии год и близко знакомым с тестированием. Ее можно назвать библией тестировщика: это объемный, сложный, охватывающий все концепции тестирования труд, требующий глубокого вдумчивого чтения. Из-за сложного тяжеловесного языка не многие доходят даже до середины текста.

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


Технологии функционального тестирования программного обеспечения и систем

Классический монументальный учебник по поведенческому тестированию Бориса Бейзера. Книга посвящена базовым методикам тестирования приложений. Некоторые из них на сегодняшний день уже устарели, так как книга не переиздавалась с 2004 года, однако общие принципы и подходы остались прежними и все еще актуальны.

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


Универсальный учебник, переживший третье переиздание на русском языке; в целом книге уже больше 30 лет, но она дополняется от издания к изданию. Несмотря на столь почтенный возраст, она не теряет в актуальности благодаря глубине изложенного материала. Книга посвящена не методикам или языкам тестирования. Авторы поставили своей целью рассказать об основополагающих принципах:

  • тестирования мобильных приложений;
  • тестирования веб-приложений;
  • тестирования удобства использования;
  • сквозного и гибкого тестирования;
  • коллективного, то есть с привлечением пользователей, подхода к тестированию.

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


Оптимизация ресурсов и временных затрат на тестировании — важная и острая тема для команд разработки. Книга Рекса Блэка через контроль рисков рассказывает о 12 процессах тестирования.

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


Практическое руководство для тестировщиков ПО и гибких команд

Книга посвящена методике гибкого тестирования: это использование квадрантов гибкого тестирования, набор средств для него, требования к команде QA-специалистов, итерация гибкой разработки и факторы успеха применяемой стратегии. Рекомендуется ведущим тестировщикам и специалистам среднего уровня.


Без автоматизации в тестировании сегодня никуда: чем сильнее ускоряется темп разработки и растут объемы задач, тем больше командам требуются новые быстрые технологии.

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


Еще одна книга для сеньоров и ведущих тестировщиков. В отличие от пособий, где приводятся примеры из работы вымышленных компаний, в издании рассказывается о реальной организации процессов и управления командами тестирования в корпорации Google.

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


Книга привлекает практической направленностью: авторы с богатейшим опытом собрали 293 урока, где коснулись основных вопросов тестирования ПО. Будет полезна и для новичков, и для опытных специалистов.

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


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

Пособие не только поможет новичкам освоить профессию, но и останется с ними в качестве настольной книги тестировщика на долгие годы работы.


Книга содержит советы и четкие инструкции по тестированию мобильных приложений от практикующих специалистов. С помощью их рекомендаций, скриншотов и понятных объяснений начинающий легко разберется в процессе тестирования продуктов для операционных систем Android и iOS.

Распространяется бесплатно в формате PDF

Базовая книга об атаках в тестировании программного обеспечения. Подходит и начинающим, и опытным специалистам, но первые испытают сложности из-за трудного языка. Для вторых же она идеальна и даст множество полезных знаний.

Ее можно перечитывать много раз и находить новые способы решения насущных задач. Автор рассказывает о различных типах атак: на сервер, на клиент, state based и других. Описание атаки состоит из вводной части, сферы применения и инструкции о том, как ее проводить.


Вторая книга Витакера — пошаговое руководство по тестированию безопасности приложений. Ее лучше читать после «How to break web software».

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

Автор рассказывает о верхнеуровневых классах проверок, например, на уровне кода или GUI, и приводит 19 атак на защищенность приложения. Каждое описание атаки или инъекции состоит из вводной части, описания случаев применения и руководства по нему.


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

Автор приводит реальные типичные ошибки в подходах, а учиться на ошибках — самое полезное дело. В совместной работе специалисты часто переводят стрелки друг на друга и отказываются фиксить и документировать баг, ссылаясь на то, что это не их зона ответственности. Что с этим делать и как с этим жить — в том числе рассказывает Gerald M. Weinberg.


Мы предложили вам 15 испытанных временем книг по тестированию программного обеспечения, которые помогут освоиться в этой профессии. А еще рекомендуем наш обучающий курс по тестированию. Здесь в доступной интерактивной форме под руководством наставников вы изучите актуальный материал, научитесь использовать его на практике и получите новую профессию с возможностью трудоустройства.

Научитесь: Профессия Инженер по тестированию
Узнать больше

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

Нужны ли мне какие-то знания для работы с учебником?

Учебник рассчитан на начинающих тестировщиков с небольшим опытом в QA (или вообще без опыта).

Содержание

  • 👶 Основы тестирования
  • ↔️ Типы тестирования
  • 📄 Тестовая документация
  • 📁 Тест-кейсы
  • 🛠️ Техники тест-дизайна
  • 🐞 Все о багах
  • ⚙️ Автоматизация
  • 🚄 Тестирование производительности
  •  📱 Тестирование мобильных приложений
  • 🛠️ Инструменты тестировщика
  • 💬 Софт-скиллы
  • 👨‍💼 Собеседование
  • 🔥 Интересное
  • ✅ Тесты для самопроверки
  • 📚 Чтение для отдыха

👶 Основы тестирования

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

Читать Тестирование. Что это такое, описание, виды тестирования
Читать Путь тестировщика: скиллы, зарплата, перспективы
Читать Большая дорожная карта развития тестировщика
Читать Семь главных принципов тестирования
Читать STLC — жизненный цикл тестирования приложений. Этапы, критерии начала и окончания
Читать V-модель тестирования
Читать Этапы тестирования
Читать Уровни тестирования
Читать Функциональные и нефункциональные требования

↔️ Типы тестирования

Разбираемся в видах и типах тестирования — важно понимать особенности каждого из них. Чем отличается модульное тестирование от smoke-тестирования? Что такое альфа-, бетта- тестирование? Чем функциональное тестирование отличается от нефункционального? Ответы на все эти и многие другие вопросы в статьях ниже.

Читать Виды и типы тестирования: подробный разбор
Читать Тестирование белого ящика vs тестирование черного ящика
Читать Что такое ручное тестирование?
Читать Что такое статическое и динамическое тестирование
Читать Негативное тестирование: что это
Читать Юзабилити-тестирование — большой гайд
Читать Тестирование GUI: мини-гайд
Читать Что такое функциональное тестирование? Мини-гайд
Читать Нефункциональное тестирование — гайд
Читать Что такое регрессионное тестирование?
Читать Что такое системное тестирование?
Читать Приемочное тестирование
Читать Санитарное тестирование (sanity testing) — небольшой гайд
Читать 𝛼 Что такое альфа-тестирование?
Читать β Что такое бета-тестирование?
Читать Что такое monkey-testing? Чем отличается от ad-hoc тестирования? Что такое torture тестирование?
Читать Что такое smoke-тестирование?
Читать Что такое риск-тестирование?
Читать Что такое ad-hoc тестирование?
Читать Что такое тестирование доступности?
Читать Что такое кросс-браузерное тестирование?
Читать Тестирование конфигураций
Читать Тестирование масштабируемости
Читать Инсталляционное тестирование
Читать Тестирование пиков нагрузки
Читать Исследовательское тестирование

📄 Тестовая документация

Все о тестовой документации и о том, как ее писать.

Читать Что такое тестовая документация и зачем она нужна?
Читать Тестовые артефакты
Читать Что такое тест план и как его написать?
Читать Что такое use case? Теория и примеры
Читать Что такое тестовый сценарий?
Читать Что такое user story и как ее писать?
Читать Что такое стратегия тестирования
Читать Матрица сопоставления требований с тест-кейсами
Читать Стратегия обеспечения качества и вопросы в процессе ее составления

📁 Тест-кейсы

Руководства по написанию тест-кейсов.

Читать Техники тест-дизайна: теория и примеры
Читать Как писать тест-кейсы: полное руководство
Читать Основные методики создания тест-кейсов
Читать Тестовый набор (тест-сьют)

Техники тест-дизайна

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

Читать Что такое предугадывание ошибок?
Читать Что такое классы эквивалентности?
Читать Анализ граничных значений
Читать Что такое таблица решений?
Читать Попарное тестирование

🐞 Баги

Баги, их классификация и баг-репорты — обо всем этом в разделе.

Читать Жизненный цикл бага
Читать Как искать баги — гайд
Читать Что такое баг-репорт?
Читать Как составить баг-репорт: мини-гайд
Читать Как написать классный баг-репорт
Читать Серьезность и приоритет багов — в чем разница?
Читать Верификация и валидация: что это и в чем разница?
Читать Баг-трекинговые системы: Jira и альтернативные варианты

⚙️ Автоматизация

Читать Что такое автоматизированное тестирование?
Читать Что такое автоматизированное тестирование? Гайд по основам
Читать Что такое ручное тестирование. Основные подходы и инструменты
Читать В чем разница между ручным и автоматизированным тестированием?
Читать Почему не получается автоматизация — 100 причин (на самом деле меньше)
Читать Как не надо автоматизировать
Читать Как стать автоматизированным тестировщиком? Небольшой план действий
Читать Автоматизация кроссбраузерного тестирования на Java/Python/JS — гайд
Читать Решаем, что и когда автоматизировать, и нужно ли
Читать Как выбрать инструменты автоматизации (с таблицей)
Читать Три типичных ошибки автоматизатора
Читать Определяем, нужно ли автоматизировать тест-кейс? Чеклист, который вам поможет.
Читать Признаки ХОРОШЕГО автотеста
Читать Траблы автоматизации — как их избежать
Читать Автоматизированное тестирование НИКОГДА не заменит ручное
Читать Лучшие open-source инструменты для автоматизированного тестирования
Читать Автоматизация: актуальные инструменты (и статистика)
Читать 5 самых популярных инструментов автоматизации тестирования в 2022 году

🚄 Тестирование производительности

Читать Тестирование производительности веб-сервисов — теория и инструменты
Читать Что такое нагрузочное тестирование
Читать Что такое объемное тестирование?
Читать Что такое стресс-тестирование: мини-гайд
Читать Тестирование производительности в Postman
Читать Планируем нагрузочное тестирование
Читать Топ-15 бесплатных инструментов для нагрузочного тестирования

📱 Тестирование мобильных приложений

Обучающие материалы по мобильному тестированию.

Читать Тестирование мобильных приложений: шаги и процедуры
Читать Большой гайд по тестированию Android-приложений
Читать Appium — гайд
Читать Автоматизация жестов в Appium: блиц-практикум
Читать Моки в инструментальных тестах Android
Читать Большой гайд по автоматизации в XCUITest

🛠️ Инструменты

Читать Chrome Developer Tools для тестировщика
Читать Docker — быстрый гайд
Читать Bugzilla: экспресс-гайд
Читать Playwright — базовый гайд
Читать Puppeteer — большой гайд
Читать Пять расширений Google Chrome для тестировщиков
Читать Гайд по Selenium. Часть 1. Установка Selenium WebDriver
Читать Большой гайд по тестированию с Postman для начинающих
Читать TestNG — большой гайд
Читать Тестирование производительности API с помощью K6
Читать 100 (да, сто) бесплатных советов по Java-инструментам QA
Читать Что такое Cypress: Введение и архитектура
Читать Как ускорить тесты Selenium — полный гайд
Читать Ошибки в Selenium — гайд по exceptions
Читать Плюшевый Cypress: 5 советов
Читать Что удобнее, Cypress или Selenium
Читать E2E-тестирование в Cypress
Читать Бесплатные онлайн-генераторы тестовых данных
Читать Десять классных генераторов тестовых данных
Читать Автотесты и Docker: блиц-практикум
Читать Обзор фреймворков для iOS тестирования
Читать Как ускорить тесты с помощью сypress-grep
Читать Регрессионное тестирование: подборка инструментов
Читать Эмуляторы и симуляторы: в чем разница?
Читать Playwright config — смотрим в деталях
Читать Кажется, Playwright уже лучше чем Cypress
Читать curl — учимся тестировать API

💬 Софт-скиллы

Читать Как войти в QA: cоветы QA Lead
Читать Пять технических и пять нетехнических навыков хорошего QA
Читать Экономия на тестировщиках? Что такое Lean QA
Читать Вильфредо Парето говорит: сосредоточься на главном
Читать Бритва Оккама: как тестировщик решает вопросы правильно и быстро
Читать Как стать QA-лидом
Читать Как QA общаться с разработчиками? Что делать ✅ и чего не делать ❌

👨‍💼 Собеседование

Материалы для подготовки к собеседованиям — вопросы и ответы по самым разным темам.

Читать Что можно и чего нельзя делать на собеседовании по тестированию
Читать Тестировщик без опыта — советы по резюме
Читать Вопросы на собеседовании тестировщика — стажер/джуниор
Читать Вопросы на собеседовании тестировщика: джуниор++/миддл
Читать Собеседование тестировщика — cкользкие вопросы
Читать Вопросы по SQL и базам данных на собеседовании тестировщика (+ ответы)
Читать Собеседование QA — что спрашивают о CI/CD
Читать О чем спрашивают на собеседовании QA Junior: Selenium
Читать Идем на собеседование на позицию тестировщика — 36 частых вопросов по Postman
Читать QA-интервью: как решить любую задачу
Читать Метод STAR на собеседовании
Читать Собеседование тестировщика в Евросоюзе и США/Канаде: вопросы
Читать Тайтлы в QA

🔥 Интересное

Читать Языки программирования, которые тестировщик обязан знать
Читать Нестабильные тесты. Почему они существуют и что с ними делать
Читать ChatGPT для тестировщика — как создавать тесты и документацию?
Читать Что такое CI/CD (непрерывная интеграция и доставка)
Читать Почему Google не нанимает тестировщиков
Читать Что такое тестовое покрытие (test coverage)
Читать Релизим в пятницу без валидола — советы для безопасных релизов
Читать Как ускорить регрессионное тестирование
Читать Структуры данных — большой гайд
Читать Что такое BDD? Опыт с Cucumber/Gherkin + вопросы на собеседовании
Читать Контролируем тестовые девайсы (и тестировщиков) в Slack
Читать Владелец продукта и скрам-мастер: в чем разница?
Читать Советы для проведения эффективного ретро
Читать Осваиваем Data-driven Testing в Selenium
Читать Английский для тестировщиков. Грамматика с Джеймсом Виттакером, Ли Коуплендом и другими мэтрами тестирования
Читать Большой гайд по Page Object Model
Читать Юнит-тесты vs интеграционные тесты
Читать JavaScript QA — делаем все правильно с самого начала
Читать Кто такие стейкхолдеры? Определения, типы и примеры
Читать Мутационное тестирование. Теория + практикум
Читать Бэклог продукта и бэклог спринта: краткое руководство
Читать QA-команда и DevOps: что делать
Читать 10 советов по управлению проектами
Читать Типичные вопросы для собеседования на проджект менеджера и как на них отвечать
Читать Юнит-тесты и Jest: toBe or not.toBe
Читать Как тестировать формы? Мини-руководство
Читать В чем разница между QA и QC?
Читать 13 вопросов и ответов на собеседовании на scrum-мастера
Читать Борьба с задержкой тестов в Selenium: пример из практики
Читать E2E-тестирование в Cypress
Читать Параметризация тестов: JUnit
Читать Искусственный интеллект в функциональном тестировании
Читать Сказ о ненатуральном эджайле
Читать Как тестировать GraphQL API? Гайд для начинающих
Читать Введение в тестирование блокчейна
Читать 6 готовых оправданий, чтобы не писать юнит-тесты
Читать Что такое Test-Driven-Development?
Читать Unit-тесты на фронтенде. Best practices

✅ Тесты для самопроверки

Читать Тест по основам тестирования
Читать Блиц-тест ISTQB — Основы
Читать Тест по основам тестирования (in English)
Читать Тестовый экзамен ISTQB Foundation Level (на английском)

📚 Чтиво

Интересные статьи по теме. Смотрим, почему QA-инженеры нужны и к каким багам приводит некачественное тестирование.

Читать 7 эпичнейших багов в истории человечества
Читать Баги войны
Читать Баги войны: вторая часть
Читать «Грудь выскочила наружу, не могу убрать ее обратно» — о багах в играх и отношении к джунам на примере Cyberpunk 2077
Читать В России растут зарплаты тестировщиков. Смотрим, кому, где и сколько платят
Читать Тестирование легче программирования? Мой путь из программиста в QA
Читать Обычный день твоего лида
Читать Пузырь популярности ИТ скоро лопнет. Глобальное сокращение на горизонте
Читать Тренды тестирования 2021. Правда и мифы

Тестирование – это процесс оценки системы или ее компонентов с целью выяснить, удовлетворяет ли она указанным требованиям или нет.

Тестирование – это выполнение системы с целью выявления пробелов, ошибок или отсутствующих требований, противоречащих фактическим требованиям.

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

Аудитория

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

Предпосылки

Прежде чем приступить к этому учебному пособию, вы должны иметь общее представление о жизненном цикле разработки программного обеспечения (SDLC). Кроме того, вы должны иметь общее представление о программировании на любом языке программирования.

Содержание:

  • Литература по тестированию ПО на русском языке
  • Литература по тестированию ПО на английском языке
  • Заключение

Мы все делаем ошибки, поэтому тестирование программного обеспечения просто необходимо. Некоторые из этих ошибок не важны, но некоторые из них бывают достаточно серьезными. Важно проверять все на этапе написания ПО, потому что все может пойти не так — люди, к сожалению, часто совершают ошибки. Быть подкованным не так сложно – нужно пройти специальные курсы, например, в Deveducation, а чтобы подготовиться к курсу и лучше разбираться в тестировании, посоветуем вам 15 полезных книг.

ТОП-15 книг по тестированию программного обеспечения (ПО)ТОП-15 книг по тестированию программного обеспечения (ПО)

Получи грант, покрывающий 50% стоимости обучения

И обучайся новой профессии онлайн из любой точки мира

Получить грант

Литература по тестированию ПО на русском языке

ТОП-15 книг по тестированию программного обеспечения (ПО)

Роман Савин

«Tестирование dot com» дает краткое, но мощное и всестороннее представление проверенных временем подходов к тестированию программного обеспечения. Если ваш проект по разработке программного обеспечения критически важен, то эта книга окупит себя первой ошибкой, которую вы найдете.

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

ТОП-15 книг по тестированию программного обеспечения (ПО)

Святослав Куликов

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

ТОП-15 книг по тестированию программного обеспечения (ПО)

Борис Бейзер

«Тестирование черного ящика» Технологии функционального тестирования программного обеспечения и систем

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

ТОП-15 книг по тестированию программного обеспечения (ПО)

Канер Сэм, Фолк Джек, Нгуен Енг Кек

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

ТОП-15 книг по тестированию программного обеспечения (ПО)

Рекс Блэк

«Ключевые процессы тестирования» — это информативная книга, которая поможет вам понять, как добиться успеха в тестировании. Она расписывает 12 процессов тестирования и предназначена как для профессиональных инженеров-тестировщиков ПО, так и для новичков, содержит все рекомендации и методы отладки, предложения по написанию хороших тестовых примеров, проверки кода и многое другое.

ТОП-15 книг по тестированию программного обеспечения (ПО)

Гленфорд Майерс, Том Баджетт, Кори Сандлер

«Искусство тестирования программ» это практическое руководство по тестированию ПО.

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

ТОП-15 книг по тестированию программного обеспечения (ПО)

Элфрид Дастин, Джефф Рэшка, Джон Пол

«Автоматизированное тестирование программного обеспечения» — книга, в которой обсуждаются практические проекты тестирования, которые работают над методологиями гибкой разработки программного обеспечения. Авторы собрали реальные примеры жизненного цикла автоматизации и объяснили основные роли членов команды в цикле разработки тестирования программного обеспечения. В книге записаны все гибкие принципы и представлено правильное объяснение автоматизации. Рекомендовано для тех, кто имеет опыт в тестирование, а не для начинающих.

ТОП-15 книг по тестированию программного обеспечения (ПО)

Арбон Джейсон, Каролло Джефф, Уиттакер Джеймс

«Как тестируют в Google»

Книга предоставляет как теоретические, так и практические знания. Она объясняет, почему тестирование можно рассматривать как искусство и как это происходит в корпорации Google. Красивое тестирование дает вам описательную информацию с основными идеями, изображениями реализации и мини-картами процессов тестирования и все это легко с профессиональным юмором, иллюстрациями и примерами.

ТОП-15 книг по тестированию программного обеспечения (ПО)

Лиза Криспин, Джанет Грегори

«Гибкое тестирование»

Практическое руководство для тестировщиков ПО и гибких команд

Книга дает объяснение сложного процесса испытаний с помощью квадрантов гибкого тестирования, набора средств для него, требования к команде ПО-специалистов, итерации гибкой разработки и факторов успеха применяемой стратегии. Книга дает понимание математической теории в контексте тестирования, а также отдельного процесса тестирования посредством функционального, интеграционного, структурного, системного подходов.

Литература по тестированию ПО на английском языке

ТОП-15 книг по тестированию программного обеспечения (ПО)

Рон Паттон

«Тестирование программного обеспечения» — эта книга дает практическое представление о тестировании программного обеспечения и обеспечении качества. Она рассказывает о процессах и методах, которые будут полезны для эффективного тестирования программного обеспечения. Последняя версия также содержит главу о тестировании программного обеспечения на наличие ошибок безопасности.

Все содержание книги разделено на шесть разделов, в которых в основном рассказывается об основах тестирования, основах тестирования и обо всем от веб-тестирования до тестирования безопасности, тестирования совместимости и автоматического тестирования. Главы написаны очень четким и лаконичным образом, и содержание также легко понять.

ТОП-15 книг по тестированию программного обеспечения (ПО)

Пол С. Йоргенсен

«Тестирование программного обеспечения: подход мастера»

Автор применяет сильное математическое содержание предыдущих выпусков для согласованного подхода к модельно-ориентированному тестированию как для кодового (структурного), так и для спецификационного (функционального) тестирования. Эти методы расширены от обычных обсуждений модульного тестирования до полного охвата менее понятных уровней интеграции и тестирования системы. В приложении к книге также представлены документы, необходимые для технического осмотра варианта использования образца. Книга очень хорошо исследует разработку через тестирование. Это отличная покупка для тех специалистов (будь то разработчик или тестировщик), которые хотят быть в курсе новейших технологий в области тестирования программного обеспечения.

ТОП-15 книг по тестированию программного обеспечения (ПО)

Джеймс Уиттакер

«Как взломать программное обеспечение: практическое руководство по тестированию» — это книга, которая учит прикладному подходу к тестированию программного обеспечения. Вместо того, чтобы полагаться на строгие планы тестирования, эта книга позволяет тестировщикам мыслить не по сценарию и развивать интеллект и понимание в тестировании. Данное обстоятельство заставит вас думать «из коробки» во время тестирования программного обеспечения. Это также подчеркивает автоматизацию для повторяющихся задач тестирования. Книга дает очень хорошие примеры фактических ошибок, которые мы находим в нашем повседневном программном обеспечении.

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

ТОП-15 книг по тестированию программного обеспечения (ПО)

Виджай Шинде и Дебассис Прадхан

“Карьерный пакет тестирования программного обеспечения — путешествие тестировщика программного обеспечения от получения работы до становления лидером тестирования!”

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

ТОП-15 книг по тестированию программного обеспечения (ПО)

Лиза Криспин и Джанет Грегори

«Agile Testing: практическое руководство для тестировщиков и Agile команд»

Книга четко определяет гибкое тестирование и иллюстрирует примеры роли тестировщика в гибких командах. Эта книга расскажет вам об использовании секторов тестирования Agile, чтобы выяснить, какое тестирование требуется, кто может выполнять тестирование и какие инструменты могут помочь в этом. Он также объясняет 7 ключевых факторов успешного гибкого тестирования и помогает завершить тестирование в короткие итерации. Чтение этой книги также поможет вам преодолеть барьеры для автоматизации тестирования. Книгу стоит прочесть тем, кто работает над Agile проектами.

ТОП-15 книг по тестированию программного обеспечения (ПО)

Ли Коупленд

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

Чтение этой книги приведет вас к экономически эффективному тестированию. Он дает несколько примеров, которые позволят вам легко понять методы тестирования. Немногие из лучших тем в книге включают в себя парное тестирование и тестирование переходов между состояниями.

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

ТОП-15 книг по тестированию программного обеспечения (ПО)

87% наших выпускников уже работают в IT

Оставь заявку, и мы поможем с выбором новой профессии

Оставить заявку

Заключение

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

Понравилась статья? Поделить с друзьями:
  • Увлажнитель воздуха electrolux ehu 35100 инструкция
  • Станки haas руководство по эксплуатации
  • Как создать презентацию в powerpoint на телефоне пошаговая инструкция
  • Mitsubishi space runner руководство по ремонту
  • Аугментин 400 суспензия дозировка для детей цена инструкция по применению