Философия функциональных тестов: особенности тестирования или требования? - PullRequest
3 голосов
/ 22 июня 2011

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

Ситуация

В моем приложении есть защищенная страница, для которой нужна группа пользователей.иметь правильные учетные данные, чтобы иметь доступ.Эти пользователи разделены на 2 группы: «группа сотрудников» и «подотчетная группа».Учетные данные предоставляются группам.

Возможные философии

Решение 1: Проверка учетных данных или Тестирование функций.

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

Плюсы : проверяет только тот факт, чтостраница защищена от определенных учетных данных

Минусы : Не проверяет "окончательное" поведение приложения, как того хочет (и пользователь) клиент.

Решение 2. Проверка групп, или проверка требований

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

Плюсы : Тестирует "окончательное" поведение приложения, как требуется (и пользователь) клиентом.

Минусы :

  • Испытания связаны с испытательными приспособлениями
  • Испытания будут проводитьсяЯ должен измениться, если бизнес-правила изменятся или будет создано больше групп.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 23 июня 2011

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

Плюсы: тестирует "конечное" поведение приложения в соответствии с пожеланиями (и пользователем) клиента.

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

Минусы: тесты должны будут измениться, если бизнес-правила изменятсяили если будет создано больше групп.

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

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

Надеюсь, это помогло.

1 голос
/ 30 июня 2011

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

...