А как вы проставляете значения полей на формах?

А что происходит при фэйле? Мне надо протестировать админку с кучей форм в которых есть много однотипных полей и если фэйл происходит в каком-то поле, то не факт, что его будут чинить. Что же получается, нужно переписывать тест?

Или например такая ситуация. бэкенд косячит и иногда дату не сохраняет на форме. И повторяться это может на любой из форм. Но вот воспроизвести это пока не удается. То есть все тесты могут быть как фэйл так и пасс. Что в этом случае делать?

Зачем тогда это тестировать?

Выписывать баг и пугать менеджера “красными” тестами.
Тесты, которые “обходят” баги - это взаимоисключающие параграфы и путь в никуда.

@vmaximv Я имел ввиду пока что не будут чинить. Что делать в таком случае? Баг отложен на 2 месяца, но тестировать нужно продолжать дальше тестировать форму. Переписывать тесты тогда?

И опять же могут сказать, у нас есть сейчас дела по важнее чем баг повторяющийся через раз. Тогда что делать?

Разбить тесты разных форм на независимые. Если для заполнения формы #2 нужно заполнить форму #1,
то поступаем так:

  • создаем тест(ы) на заполенение формы #1. Возможно, с применением softAssert-ов.
  • создаем метод, который заполняет форму #1 БЕЗ ее тестирования. Его цель - заполнить форму во что бы то ни было. Если в процессе ее заполнения возникают ошибки, в этот метод можно запихнуть костыли по их устранению с варнинг-месседжами в логи: повторное заполнение, заполнение через джава-скрипт и тп. Далее использовать этот метод как пререквизит к тестированию формы #2 (и других зависимых форм). После устанения багов просто убираем эти костыли.

есть и другие, даже более предпочтительные варианты, но их выбор зависит от системы, с которой вы работаете (отправка пост-запроса от имени странички вместо заполнения полей, внесение изменений в базу, использование готовой конфиграции, в которой форма #1 уже заполенена и тп)

Выяснить как часто возникает такая ситуация. Исходя из этой цифри определить число запусков N, при котором ошибка точно воспроизведется. Далее создать отдельный тест на заполнение такого поля, и запускать данный тест с параметрами invocationCount = N и successPercentage = 100 (если у Вас testNG, для других раннеров ищите похожие техники).
Для предотвращения падения других тестов, пойти по способу описанному выше - создать отдельный метод по заполнению поля с датой, который будет заполнять дату X раз, пока не получится.