Как автоматизировать интеграционное тестирование?

Оберните ListView в NotificationListener и прослушайте UserScrollNotification.

NotificationListener<UserScrollNotification>(
  onNotification: (notification) {
    if (notification.direction == ScrollDirection.idle) {
      print("Scrolling stopped");
    }
  },
  child: ListView.builder(...),
),
22
задан nbro 11 August 2017 в 13:32
поделиться

4 ответа

я хотел бы знать как дела в реальном мире?

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

Пара общих методов:

  • Тесты, работающие параллельно. Это - мое предпочтение; мне нравится иметь две системы, каждый выполняющий их собственный экземпляр CruiseControl* (который я - разработчик для), одно выполнение модульных тестов с быстрой обратной связью (< 5 минут), в то время как другая система постоянно выполняет интеграционные тесты. Мне нравится это, потому что это минимизирует задержку между тем, когда регистрация происходит, и тестирование системы могло бы поймать его. Оборотная сторона, которую не любят некоторые люди, - то, что можно закончить с несколькими отказами при испытании для той же регистрации, и отказ модульного теста и отказ интеграционного теста. Я не нахожу это главной оборотной стороной на практике.

  • модель жизненного цикла А, куда система/интеграционные тесты работает только за модульными тестами, передала. Существуют инструменты как AnthillPro*, которые создаются вокруг этого вида модели, и подход очень популярен. В их модели они берут артефакты, которые передали модульные тесты, развертывают их на отдельном сервере подготовки и затем выполняют систему/интеграционные тесты туда.

, Если бы у Вас есть больше вопросов об этой теме, я рекомендовал бы Непрерывная Конференция по Интеграции и Тестированию (CITCON) и/или список рассылки CITCON .

19
ответ дан Jeffrey Fredrick 29 November 2019 в 05:24
поделиться

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

Сетевые службы - по определению - могут также быть установлены где-то в другом месте.

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

4
ответ дан David Schmitt 29 November 2019 в 05:24
поделиться

Подход, который я видел взятый чаще всего, должен сразу выполнить модульные тесты на регистрации, и выполнять более долгие интеграционные тесты в фиксированные интервалы (возможно на другом сервере; это действительно до Вашего предпочтения). Я также видел интеграционные тесты, разделенные на "коротко рабочие" интеграционные тесты и "продолжительные" интеграционные тесты, которые выполняются в различных интервалах ("коротко рабочий" тестовый прогон каждый час, например, и "продолжительный" тестовый прогон в течение ночи).

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

я понимаю, что это не отвечает на Ваш весь вопрос, но я надеюсь, что он дает Вам некоторое представление о части планирования.

4
ответ дан MattK 29 November 2019 в 05:24
поделиться

Я не знаю, какая платформа Вы идете, но я использую Java. Где я работаю, мы создаем интеграционные тесты в JUnit и вводим надлежащие зависимости с помощью контейнера DI как Spring. Они выполняются против реального источника данных, обоих самими разработчиками (обычно небольшое подмножество) и сервер CI.

то, Как часто Вы выполняете интеграционные тесты, зависит от того, сколько времени они берут для выполнения, по-моему. Выполняйте их так часто, как Вы можете. Упустите живого человека из этого и позвольте ему выполнить ручное тестирование системы в областях, которые являются трудными или слишком дорогими для автоматизации тестирования на (например: написание, положение различных компонентов графического интерфейса пользователя). Оставьте редактирование файлов конфигурации к машине. Где я работаю, у нас есть системные переменные (DEV; ПРОТЕСТИРУЙТЕ и так далее), набор на компьютерах, и позвольте приложению выбрать файл конфигурации на основе этого.

1
ответ дан 29 November 2019 в 05:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: