Опрос: сколько в среднем UI тестов в вашем(их) проекте(ах)?

Привет!
За счёт мы достигает такой скорости тестов, я рассказывал подробно на SelenimCamp и SQA Days.
Если вкратце - эмуляция медленных внешних систем, in-memory база данных, встраивание хаков в систему, чтобы тесты могли попадать сразу нужным пользователем на нужную страницу без многократного прокликивания всей цепочки.

Вот пример теста для интернет-банка БСПБ:

  @Test
  public void invalidLoginShowsDirectLinkToResettingPassword() {
    loginFirstStep("blahblah");
    $(".alert-error").shouldBe(visible).shouldHave(text(label("Secure.invalidLogin")));
    $(".alert-error > a").click();
    $("#reset-password-dialog").shouldBe(visible);
  }
1 лайк

Эта тема отлеплена. Она больше не будет отображаться наверху списка тем раздела.

Стоит подытожить результаты голосования состоянием на момент когда у нас 100 проголосовавших

У нас
Кол-во уникальных тестов 7459
Которые тестируют интеграцию полную.
Проекту, лет 5 вроде бы.
Есть еще отдельные тесты верстки, базовых компонент и тд.

1 лайк

50 - 100

Извините, но это bad-way подход, так как задача тестов - эмулировать поведение пользователя… а транзакционные запросы вы что, из базы берете?

Да, это типичное заблуждение.
Точнее, само по себе утверждение верное, что задача тестов эмулировать поведение пользователя. НО.

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

  1. То есть, тест для логина должен эмулировать действия пользователя при логине. Да. Заполнять логин, пароль, вот это всё.
  2. А тест для покупки телевизора должен эмулировать действия пользователя на странице покупки телевизора. А заполнять логин и пароль сто тысяч раз не должен, потому что эта функциональность уже протестирована в пункте 1.
3 лайка

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

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