Учебники

Обзор тестирования программного обеспечения

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

Проверка программного обеспечения

Валидация — это процесс проверки соответствия программного обеспечения требованиям пользователя. Это выполняется в конце SDLC. Если программное обеспечение соответствует требованиям, для которых оно было сделано, оно проверяется.

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

Проверка программного обеспечения

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

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

Целью теста являются —

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

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

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

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

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

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

Ручное и автоматическое тестирование

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

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

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

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

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

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

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

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

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

Подходы к тестированию

Тесты могут проводиться на основе двух подходов —

  • Функциональное тестирование
  • Тестирование реализации

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

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

Тестирование черного ящика

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

Тестирование черного ящика

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

Методы тестирования черного ящика:

  • Класс эквивалентности — вход делится на аналогичные классы. Если один элемент класса проходит тест, предполагается, что весь класс пройден.

  • Граничные значения — вход делится на верхний и нижний конечные значения. Если эти значения проходят тест, предполагается, что все значения между ними также могут пройти.

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

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

  • Основанное на состоянии тестирование — система изменяет состояние при предоставлении ввода. Эти системы тестируются на основе их состояний и входных данных.

Класс эквивалентности — вход делится на аналогичные классы. Если один элемент класса проходит тест, предполагается, что весь класс пройден.

Граничные значения — вход делится на верхний и нижний конечные значения. Если эти значения проходят тест, предполагается, что все значения между ними также могут пройти.

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

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

Основанное на состоянии тестирование — система изменяет состояние при предоставлении ввода. Эти системы тестируются на основе их состояний и входных данных.

Тестирование белого ящика

Он проводится для тестирования программы и ее реализации с целью повышения эффективности или структуры кода. Это также известно как «Структурное» тестирование.

Тестирование белого ящика

В этом методе тестирования дизайн и структура кода известны тестировщику. Программисты кода проводят этот тест на коде.

Ниже приведены некоторые методы тестирования Белого ящика:

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

  • Тестирование потока данных — этот метод тестирования акцентирует внимание на всех переменных данных, включенных в программу. Он проверяет, где переменные были объявлены и определены и где они были использованы или изменены.

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

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

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

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

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

Модульное тестирование

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

Интеграционное тестирование

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

Тестирование системы

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

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

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

  • Безопасность и переносимость — эти тесты проводятся, когда программное обеспечение предназначено для работы на различных платформах и доступно для нескольких человек.

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

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

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

Приемочное тестирование

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

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

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

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

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

Регрессионное тестирование

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

Документация тестирования

Тестовые документы готовятся на разных этапах —

Перед тестированием

Тестирование начинается с генерации тестовых случаев. Следующие документы необходимы для справки —

  • Документ СГДДокумент о функциональных требованиях

  • Документ о политике тестирования — описывает, как далеко должно пройти тестирование перед выпуском продукта.

  • Документ по стратегии тестирования. Здесь подробно описываются аспекты команды тестирования, матрица ответственности и права / ответственность менеджера по тестированию и инженера по тестированию.

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

Документ СГДДокумент о функциональных требованиях

Документ о политике тестирования — описывает, как далеко должно пройти тестирование перед выпуском продукта.

Документ по стратегии тестирования. Здесь подробно описываются аспекты команды тестирования, матрица ответственности и права / ответственность менеджера по тестированию и инженера по тестированию.

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

Во время тестирования

Следующие документы могут потребоваться, когда тестирование начато и выполняется:

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

  • Описание теста — Этот документ представляет собой подробное описание всех тестовых случаев и процедур для их выполнения.

  • Отчет о тестовом наборе — этот документ содержит отчет о тестовом наборе в результате теста.

  • Журналы тестов — этот документ содержит журналы тестов для каждого отчета о тестовом примере.

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

Описание теста — Этот документ представляет собой подробное описание всех тестовых случаев и процедур для их выполнения.

Отчет о тестовом наборе — этот документ содержит отчет о тестовом наборе в результате теста.

Журналы тестов — этот документ содержит журналы тестов для каждого отчета о тестовом примере.

После тестирования

Следующие документы могут быть созданы после тестирования:

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

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

Тестирование и контроль качества, обеспечение качества и аудит

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

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

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

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