Виды тестирования программного обеспечения
Автоматическое или ручное тестирование
Убедиться в том, что все опции работают правильно и что каждая кнопка приложения на месте, может человек. Тесты в ручном режиме затратны, но могут показать неочевидные проблемы.
Автоматическое тестирование выполняется компьютером. Его проще запускать каждый раз после внесения правок в код.
Разновидности тестов
По типу тесты делят на:
• Модульные. Низкоуровневая проверка отдельных функций, структур данных, подключенных модулей. Самый нетребовательный к ресурсам и просто выполняемый вариант тестов.
• Интеграционные. Так называют тестирование модулей и сервисов, которые должны работать вместе. Проверка невозможна без запуска приложения, а потому такие тесты более затратны.
• Функциональные. На этом этапе проверяют соответствие бизнес- требованиям: насколько реализуем запрос в определенных условиях. В отличие от интеграционного, здесь важен результат, а не только возможность отправить и принять запрос.
• Сквозные. Повторив действия пользователя, можно узнать, сталкивается ли он с проблемами, будет ли выполнен его запрос. Это достаточно дорогие тесты. Рекомендуется проводить больше низкоуровневых проверок и подготовить несколько сценариев для подобных испытаний.
• Приемочные. Проверки, отвечает ли продукт требованиям заказчика. Может быть протестировано сразу несколько функций: реакция приложения на действия пользователя, потребность в ресурсах и производительность системы при работе.
• Оценка производительности. Оценить, способно ли приложение работать в системе, не превышает ли нагрузка допустимую по ТЗ, поможет этот вид тестов. Показывает время отклика после запроса к базе данных, где содержится большой объем информации, или множество запросов за небольшой промежуток времени. По результатам можно судить о соответствии требованиям, указанным в задании, и стабильности работы при повышенном трафике.
• Smoke-тесты. Скоростная проверка основных функций приложения. Она проводится быстро, обычно, запускается после новой сборки или развертывания. После успешного завершения smoke-тестов можно начинать более затратные по времени и ресурсам проверки.
Автоматизация тестов
Для современных языков программирования разработаны специальные модули, которые помогут писать и запускать тесты. Часть проверок может быть осуществлена запуском скриптов из терминала. Также можно использовать специальные серверы, например Bamboo, которые помогут отслеживать, соответствует ли программа всем требованиям после каждой сборки.