Достаточно ли юнит-тестов и приемочных испытаний? - PullRequest
9 голосов
/ 18 мая 2009

Если у меня есть модульные тесты для каждого класса и / или функции-члена и приемочные тесты для каждой пользовательской истории, достаточно ли у меня тестов, чтобы обеспечить работу проекта, как ожидалось?

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

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

Ответы [ 12 ]

0 голосов
/ 18 мая 2009

Короче №.

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

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

Кроме того, вам нужен автоматический тест производительности. Ежедневный или ночной запуск профилировщика даст представление о потреблении ресурсов процессора и памяти, а также о наличии утечек памяти. Кроме того, такой инструмент, как loadrunner, позволит вам разместить нагрузку на систему, которая отражает фактическое использование. Вы сможете измерить время отклика и потребление ресурсов ЦП и памяти на производстве, например, на машине, на которой работает loadrunner.

Автоматический тест производительности должен отражать фактическое использование приложения. Вы измеряете количество бизнес-транзакций (т. Е. Если веб-приложение щелкает страницу и отвечает пользователям или совершает поездки на сервер). и определить комбинацию таких транзакций, а также скорость их поступления в секунду. Такая информация позволит вам правильно спроектировать автоматизированный тест loadrunner, необходимый для тестирования производительности приложения. Как это часто бывает, некоторые проблемы с производительностью связаны с реализацией приложения, в то время как другие будут зависеть от конфигурации серверной среды.

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

Наконец, есть пользовательское приемочное тестирование (UAT). Это тестирование, разработанное владельцем производства / деловым партнером для тестирования всей системы перед выпуском. Как правило, из-за всех других испытаний приложение нередко возвращает ноль дефектов во время UAT.

0 голосов
/ 18 мая 2009

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

...