Нефункциональное тестирование (Non-Functional testing)

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

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

  • Пользовательские / Технические истории (User /Technical Stories): запись нефункциональных требований в виде пользовательской истории такая же, как и запись любых других требований. Единственная разница между пользователем и технической историей заключается в том, что пользовательская история требует обсуждения и имеет видимость (? visibility);

  • В критериях приемки (Acceptance criteria): это точка, которая определяется для принятия продукта заказчиком. Нефункциональное требование должно быть включено в критерии приемки, но иногда невозможно проверить нефункциональные требования с каждой историей, то есть с каждой итерацией. Следовательно, требования следует добавлять или тестировать только с соответствующей итерацией;

  • В артефактах (Artifact): для нефункциональных требований следует подготовить отдельный артефакт, это, в свою очередь, поможет лучше понять, что нужно тестировать и как это можно делать в итерациях;

Документ подхода к тестированию (Approach Document):

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

  • Объем испытаний (Test Scope);

  • Метрики тестирования;

  • Инструменты тестирования;

  • Основные даты и результаты;

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

  • Тестирование производительности (Performance Testing)

  • Нагрузочное тестирование (Load Testing)

  • Стрессовое тестирование (Stress Testing)

  • Объемное тестирование (Volume Testing)

  • Тестирование восстановления (Recovery Testing)

  • Тестирование отказоустойчивости (Failover Testing)

  • Тестирование эффективности (Efficiency Testing)

  • Тестирование аварийного восстановления (Disaster Recovery Testing)

  • Тестирование установки (Installation Testing)

  • Тестирование документации (Documentation Testing)

  • Тестирование на удобство использования (Usability Testing)

  • Тестирование графического интерфейса пользователя (User Interface Testing)

  • Тестирование совместимости (Compatibility Testing)

  • Тестирование обслуживаемости (Maintainability Testing)

  • Тестирование безопасности (Security Testing)

  • Тестирование масштабируемости (Scalability Testing)

  • Тестирование выносливости (Endurance Testing)

  • Тестирование надежности (Reliability Testing)

  • Тестирование соответствия (Compliance Testing)

  • Тестирование локализации (Localization Testing)

  • Тестирование интернационализации (Internationalization Testing)

  • Тестирование переносимости (Portability Testing)

  • Тестирование на основе базового уровня (Baseline Testing)

Примеры чек-листов:

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

  • Время отклика (The response time) приложения, то есть сколько времени требуется для загрузки приложения, за какое время любой ввод, предоставленный приложению, обеспечивает вывод, время обновления браузера и т. д.;

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

  • Настройка среды (Environment) должна быть такой же, как и в реальной среде, иначе результаты не будут такими же;

  • Время процесса (Process time) - такие действия, как импорт и экспорт Excel, любые вычисления в приложении должны быть протестированы;

  • Совместимость (Interoperability) должна быть проверена, т.е. программное обеспечение должно иметь возможность взаимодействовать с другим программным обеспечением или системами;

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

  • Необходимо проверить возрастающую нагрузку (Load) на приложение;

Тестирование безопасности:

  • Аутентификация (Authentication): только достоверный пользователь может войти в систему;

  • Авторизация (Authorized): пользователь должен иметь возможность входить в те модули, для которых он авторизован или к которым пользователю был предоставлен доступ;

  • Пароль: Требование пароля должно быть подтверждено, т.е. пароль должен соответствовать тому, как это требование определяется, то есть длине, специальным символам, числам и т. д.;

  • Тайм-аут: если приложение неактивно, оно должно истечь по таймауту в указанное время;

  • Резервное копирование данных: резервное копирование данных должно быть выполнено в указанное время и данные должны быть скопированы в безопасное место;

  • Внутренние ссылки на веб-приложение не должны быть доступны, если размещены непосредственно в браузере;

  • Вся коммуникация должна быть зашифрована;

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

  • Пользовательская и системная документация;

  • Документы для учебных целей;

Источник: A Complete Non-Functional Testing Guide For Beginners

Last updated