В настоящее время я работаю над созданием автоматизированного набора функциональных/приемочных тестов для проекта, но у меня нет большого опыта написания этих типов тестов, поэтому я хотел получить некоторые ввод их правильной структуризации. В частности, я работаю с расширением Арквилляна Графена.Правильная структура функциональных/приемочных испытаний
Например, у меня есть 3 теста, A, B и C.
TestA: Тесты лесозаготовительных на счет в приложении. Итак, если тест прошел успешно, браузер должен находиться на домашней/информационной странице учетной записи.
TestB: Тесты, изменяющие пароль учетной записи. Для этого потребуется войти в учетную запись, а затем проверить функциональность смены пароля.
TestC: Тесты, изменяющие электронную почту учетной записи. Для этого снова потребуется войти в учетную запись, а затем проверить функциональность изменения электронной почты.
Если TestA выходит из строя из-за проблемы с кодом входа, очевидно, что TestB и TestC также не работают, поскольку они требуют входа в учетную запись.
Вопрос: Должны ли автоматические функциональные/приемочные испытания дублировать процесс, необходимый для завершения проверки теста? В этом случае TestB и TestC должны войти в учетную запись, прежде чем делать что-либо еще. Если каждый тест явно вызвать что-то вроде:
/* ...initial test setup code here */
LoginPage.login(username, password);
assertTrue(onCorrectAccountPage);
AccountModification.changePassword(newPassword);
Или я должен использовать какой-то способ насмешливый счета в сессии, которые могут быть использованы тесты В и С, так что они не выходят из строя, даже если Testa (фактическая логин тест)?
Поскольку это тесты для принятия пользователем, я думал, что они должны делать именно то, что пользователь будет делать и вносить в журнал, когда это необходимо, но я не уверен, что это ненужное дублирование, которое должно обрабатываться по-разному (то есть, обработанные как единицы функциональности, похожие на стандартный единичный тест), и я хотел получить обратную связь от кого-то, у кого больше опыта в этой области.
Заранее спасибо. Надеюсь, мой вопрос не слишком запутан. :)
Хорошо объяснено. Я думал по этим же линиям, но идея «без дублирования» настолько выгравирована в моем мыслительном процессе, что я не был уверен в этом обстоятельстве. Спасибо за Ваш ответ. – whitlaaa