Нефункциональное тестирование это кратко

Обновлено: 05.07.2024

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

  1. Функциональные
  2. Нефункциональные
  3. Связанные с изменениями

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

Функциональные виды тестирования

Функциональные тесты базируются на функциях и особенностях, а также взаимодействии с другими системами, и могут быть представлены на всех уровнях тестирования: компонентном или модульном (Component/Unit testing), интеграционном (Integration testing), системном (System testing) и приемочном (Acceptance testing). Функциональные виды тестирования рассматривают внешнее поведение системы. Далее перечислены одни из самых распространенных видов функциональных тестов:

Нефункциональные виды тестирования

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

    :
    • нагрузочное тестирование (Performance and Load Testing)
    • стрессовое тестирование (Stress Testing)
    • тестирование стабильности или надежности (Stability / Reliability Testing)
    • объемное тестирование (Volume Testing)

    Связанные с изменениями виды тестирования

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


    Нефункциональное тестирование — это …

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

    За классификацией характеристик качества программного обеспечения ISTQB советует обращаться к стандарту ИСО (ISO/IEC 25010).

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

    Иными словами, нефункциональное тестирование – тестирование свойств, которые не относятся к функциональности системы.

    Нефункциональные требования

    Какие же могут быть нефункциональные требования/свойства, которые предъявляются к системе:

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

    Когда и как?

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

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

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

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

    Важное отступление

    Еще раз напомню, что обычно в каждом из видов тестирования присутствуют обе составляющие (функциональная и нефункциональная). Но нам все же нужно на что-то опираться, поэтому за основу я беру ISTQB.

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

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

    НЕФУНКЦИОНАЛЬНОЕ ИСПЫТАНИЕ определяется как тип тестирования программного обеспечения для проверки нефункциональных аспектов (производительность, удобство использования, надежность и т. Д.) Программного приложения. Он предназначен для проверки готовности системы по нефункциональным параметрам, которые никогда не учитываются при функциональном тестировании.

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

    Нефункциональное тестирование не менее важно, чем функциональное тестирование, и влияет на удовлетворенность клиентов.

    В этом уроке мы узнаем

    Цели нефункционального тестирования

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

    Характеристики нефункционального тестирования

    • Нефункциональное тестирование должно быть измеримым, поэтому нет места для субъективной характеристики, как хорошо, лучше, лучше и т. Д.
    • Точные цифры вряд ли будут известны в начале процесса требования
    • Важно расставить приоритеты по требованиям
    • Убедитесь, что атрибуты качества правильно определены в Software Engineering.

    Параметры нефункционального тестирования

    Нефункциональный тестовый образ

    1) Безопасность:

    Параметр определяет, как система защищена от преднамеренных и внезапных атак из внутренних и внешних источников. Это проверено с помощью Security Testing .

    2) Надежность:

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

    3) Живучесть:

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

    4) Наличие:

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

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

    6) Масштабируемость:

    Термин относится к степени, в которой любое программное приложение может расширить свои вычислительные мощности, чтобы удовлетворить увеличение спроса. Это проверено Scalability Testing

    7) Совместимость:

    Этот нефункциональный параметр проверяет взаимодействие программной системы с другими программными системами. Это проверено тестированием совместимости

    8) Эффективность:

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

    9) Гибкость:

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

    10) Портативность:

    Гибкость программного обеспечения для перехода от его текущей аппаратной или программной среды.

    11) Возможность повторного использования:

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

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

    В общем, есть три типа тестирования

    Нефункциональное тестирование

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

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


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

    Функциональное тестирование (Functional testing) — Тестирование ПО, направленное на проверку того, что компонент либо система соответствует функциональным требованиям.

    Функциональное требование (Functional requirement) — Требование, определяющее функцию, которую компонент или система должны выполнять.

    Функциональность (Functionality) — Способность программного продукта обеспечивать функции, которые соответствуют установленным и предполагаемым потребностям, при использовании ПО в определенных условиях.

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

    Нефункциональное тестирование (Non-functional testing) — Тестирование атрибутов компонента или системы, не относящихся к функциональности, то есть надежность, эффективность, практичность, сопровождаемость и переносимость, удобство, доступность и т.д.

    Одна из главных целей видов тестирования — это проверка характеристик качества продукта.

    Функциональное тестирование проверяет первую характеристику — функциональную пригодность.

    Нефункциональное тестирование проверяет все остальные характеристики качества подукта.


    Характеристи качества(Product Quality — ISO/IEC 25010)

    Функциональное и нефункциональное тестирование может проводиться на любых уровнях и комбинироваться с другими группами тестов. Например, можно проводить функциональное тестирование при помощи техники исследовательского тестирования (Exploratory testing) или в рамках регрессионного тестирования проводить GUI тестирование при помощи техники свободного тестирования (Ad-hoc), методом серого ящика на уровнях интеграционного тестирования и тестирования критического пути.

    Подвиды функционального тестирования:


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

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

    Тестирование функциональной корректности (Functional correctness testing) — Анализ функций приложение на корректность, правильность расчётов и соответствие указанным или подразумеваемым требованиям. Проводится на всех уровнях тестирования.

    Тестирование функциональной пригодности\целесообразности (Functional appropriateness testing) — Анализ пригодности функций приложения для выполнения какой-то бизнес задачи. Обычно проводится на системном уровне тестирования, но может и проводиться на поздних стадиях интеграционного уровня тестирования

    Тестирование функциональной полноты (Function completeness testing) — Анализ степени, в которой набор функций покрывает все указанные задачи и цели пользователя. Проводится на всех уровнях тестирования.

    Например, мы разрабатываем приложение для продаж какой-то продукции и знаем, что по закону мы должны учитывать VAT налоги (Value Added Tax).

    Functional completeness — Проверка того, что мы можем списать налоги. Если да, степень завершённости увеличивается.

    Functional correctness testing — Проверка того, что мы списываем правильный процент налогов.

    Functional appropriateness testing — Проверка того, что реализованное поведение, действительно выполняет нашу бизнес цель, т.е. налоги действительно списываются, а администратор и пользователь знают об этом.

    Виды нефункционального тестирования:


    Тестирование графического интерфейса (GUI testing) — Анализ соответствия графического пользовательского интерфейса программы спецификациям, макетам, прототипам, стандартам.

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

    Тестирование инсталляции (Installation testing) — Тестирование, направленное на проверку процессов установки, удаления, восстановления, обновления, лицензирования.

    Тестирование безопасности (Safety testing) — Тестирование программного продукта с целью с целью определить его безопасность.

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

    Тестирование защищенности (Security testing) — Тестирование с целью оценить защищенность программного продукта.

    Защищенность (Security) — Свойства программного продукта, отражающие его способность не допускать неавторизированный доступ, случайный или умышленный, к программам и данным.

    Тестирование доступности (Accessibility testing) — Тестирование, направленное на определение степени легкости, с которой пользователи с ограниченными способностями могут использовать систему или ее компоненты.

    Тестирование производительности (Performance testing) — Процесс тестирования с целью определить производительность программного продукта.

    Нагрузочное тестирование (Load testing) — Вид тестирования производительности, проводимый с целью оценить поведение компонента или системы под увеличивающейся нагрузкой (число одновременно работающих пользователей и/или число транзакций) для определения максимально допустимого уровня нагрузки для исследуемого компонента или системы.

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

    Тестирование интернационализации (Internationalization testing) — Анализ приложения и его интерфейса на способность быть переведённым.

    Тестирование локализации (Localization testing) — Анализ приложения и его сопроводительной документации на корректность в конкретной переведённой среде.

    Тестирование совместимости (Compatibility testing):

    Тестирование кроссбраузерности (Cross browser testing) — Вид тестирования совместимости, направленный на анализ работы приложения в разных браузерах либо разных версиях одного браузера.

    Тестирование кроссплатформенности (Cross platform testing) — Анализ работы одного и того же приложения на разных операционных системах\платформах.

    Нефункциональное тестирование

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

    Тестируемые свойства ПО определяют следующие характеристики продукта:

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

    Тестирование инсталляции

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

    Юзабилити тестирование

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

    Тестирование конфигурации или портативности

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

    Тестирование на отказ и восстановление

    – исследование системы на возможность восстановления после возможных ошибок и сбоев.

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

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

    Читайте также: