"Загальновідомо, що випробування з метою завершення та інтеграції коштують дорого."
Я думаю, що я не згоден з цим твердженням.
По-перше, тести E2E - це те, що важливо для кінцевих користувачів, і можуть бути найвигіднішими за часом / найнижчою вартістю для тестування складних систем. Наприклад, коли хтось купує машину, більшість людей не тягне її на частини і починає випробовувати карбюратор, коробку передач, колеса ізольовано. Натомість вони беруть це на тест-драйв.
По-друге, що стосується інструментарію, E2E, як правило, не сповільнює внутрішню еволюцію продукту і триває довше. Якщо подумати над цим, фактична функціональна поверхня більшості продуктів рідко змінюється настільки сильно, тоді як внутрішньо вона може бути предметом всіляких розробок. Як результат, як тільки тестовий інструментарій буде запущений, він, як правило, триває надзвичайно добре. Як приклад, якщо ми повернемося до аналогії автомобіля. Той самий тестовий випадок "візьміть його за привід" майже би попрацював на Ford Model T, як і на Tesla. Як би інвестиції в прокатні дороги, вітрові тунелі, установки для тестування на герметичність і т. Д. Скільки внутрішніх компонентів випробувань мали б таку хорошу рентабельність інвестицій протягом свого життя?
Де тестування E2E, як правило, є дорожчим / недоречним, хоча воно знаходиться в початковій налаштуваннях, і якщо воно використовується для того, щоб спробувати все. Прагматично, я думаю, що найкращий спосіб уникнути цієї пастки - це пріоритети автоматизації тестування речей, які:
- Легко автоматизувати та навряд чи потребуватиме великого обслуговування, щоб продовжувати працювати.
- Витрачайте найбільше часу для застосування послідовних, адекватних процесів ручного тестування.
- Ризикуйте зробити вас або вашого начальника схожими на ідіотів, якщо продукт випущений з ним порушений.
Використовуйте будь-яку форму тестування, включаючи E2E, яку ви вважаєте за потрібну. Зосередьтеся на тих, хоча.