Нефункциональное тестирование (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