Автоматизация тестирования
Чисто из энтомологического интереса, а где вы эту псевдоразумную чушь нашли? Из статейки на хабре? "Дождь отличается от жидких осадков, потому что дождь идёт, а осадки выпадают". :)
1. Цель тестирования:
- GUI тест проверяет, работает ли интерфейс приложения правильно и соответствует ли он спецификациям дизайна.
- Регрессионный GUI тест используется для проверки, не повредились ли существующие функциональности приложения
Ога. "Работает правильно" и "не повредились ли". Прям огромная разница, понимаю.
Или вы хотите сказать что "гуи тест" тестирует интерфейс (ну, допустим, хотя в 99% случаев это просто синоним е2е), а вот РЕГРЕССИОННЫЙ гуи тест тот ого-го! он функциональность приложения тестирует! Ауф! :) Ну, т.е. является е2е тестом.
2. Частота выполнения:
Тут прям совсем ой. Выполняем два раза в день - регрессионный. Выполняем раз в неделю - не, не регрессионный.
3. Объем тестов:
Сдаюсь. Нет слов. Так-то все автоматизированные тесты стараются делать чем меньше, тем лучше. Про FIRST слышали? Но бывают и для регресса забабаханные монстры, работающие по 2-3 часа. Только не надо сейчас в дебри нагрузочных тестов / тестов производительности лезть.
4. Автоматизация:
Ну и очередная благоглупость. Чаще, реже...
Давайте я открою вам глаза. Любой тест, который мы повторяем (не важно после каждого или после каждого 10 изменения, каждый час или каждую неделю, за одну секунду или за 5 часов, юнит, интеграционный, компонентный, системный, е2е) можно назвать регрессионным. Главное чтобы тест не менялся между запусками и мы сохраняли предыдущие результаты тестирования. Всё. Никакого колдунства. Поэтому не надо этим термином размахивать. Он для автоматизированных тестов как напоминание про то, что дождь мокрый. ISTQB оно просто не про автоматизированные тесты. А про тестирование вообще. Ручками.
В случае автоматизированных тестов тоже можно использовать термин "регрессионный тест". Чтобы подчеркнуть одно - цель тестирования. Если мы пишем автоматизированный тест, которые не проверяет контракт, не интеграционный, не функциональный, то мы что? Мы называем его регрессионным. Мы хотим "зафиксировать" текущее состояние. Хотя оно нигде не предписано. Зачем это обычно надо? Защита от "побочных эффектов". Частый пример - использование конвенций наименований. Легко сломать код, по незнанию обозвав что-то так, что этот код на это имя среагирует. Тест, написанный как регрессионный это всегда white-box, всегда от деталей имплементации зависит. (ну, тут просто, да? black-box тест всегда можно обозвать контрактным тестом)
Да и ещё. Никогда, нигде и никто до вас не говорил такую чушь что "регрессионные тесты это гуи тесты". Вы - первый. :)