Приветствую!
Я начинающий автоматизатор, вроде бы справляюсь со всеми своими рабочими задачами, но “диалоги о фреймворках” ставят меня в тупик. Недавно проходила интервью для курсов и рассказывала о том, как всё устроено у меня на проекте - #java , #ant, #testng, все дела, и сразу после этого последовал вопрос - “А расскажите о своём фреймворке”. Эм… разве я о нём только что не рассказала?
Подскажите, пожалуйста, что на самом деле хотят слышать люди, когда задают вопрос про #framework ?
Структура системы, организация объектов, модулей, методов и т д. Где вы храните тестовые данные, как вызываете, как организовано наследие и т д.
Надо отвечать что не занимаешь велосипедостроением, вставать и уходить…потерянное время
Предположение:
- готовые решения на рынке не удовлятворяли нас по нескольким параметрам (перечислить), например, в решении 1 отсутствовал пункт 2, в решении 2 - пункт 3 и т. д.
- поэтому было принято решение написать(или расширить существующий) фреймворк
- за основу была взята такая-то парадигма
- таковы были уровни абстракции
- вот так была организована интеграция
- благодаря этому мы: а) решили такие из наших задач; б) получили вот такой опыт; в) недостатки следующие:…
- в планах вот такое направление работы
А вы уточняйте встречным вопросом, что они хотели бы услышать, потому как они могут иметь что угодно в голове.
Может быть хотят увидеть :
- архитектуру проекта
- используемые подходы при проектировании
- структуру и связь модулей
- инфраструктуру и запуск
- удобство написания тестов
- скорость поддержки тестов
- взаимодействие с командой
- и т.д.
Есть одна замечательная фраза - “Это обьект NDA”
Фреймворк это Selenium. Всё остальное это обёртки над ним (в большинстве случаев, т.к. используют Selenium). Сразу требуй уточнений, если они будут говорить про написанные тобой ожидания, логеры, кликеры, заполняшки, это просто обёртка над селениум - а никак не фреймворк
А если про проект всё таки с автоматическими тестами для приложений. Тогда всё что написал @polusok, на это обрати внимание
Давно заметил тенденцию, в кругу автоматизаторов, обзывать “фреймворком” пару написанных пейджобжектов.
Думаю, даже сам селениум не совсем правильно называть фреймворком.
Selenium - это библиотека для управления браузером с байндингами для различных языков.
Selenium + средства запуска + пара пейджобджектов = тестовое решение (solution).
А фреймворк - это набор общих частей решения, которые легко выделяются в отдельный проект и не зависят совершенно от контента и специфики Вашего приложения.
Могут быть заточены как под отдельный вид тестируемого приложения - например только для веб приложений или для тестирования сервисов, так и под несколько вариантов - веб + мобайл.
Если более глубоко смотреть на определение фреймворка, то это утверждение тоже не совсем верно.
То что вы описали, это скорее библиотека, нежели фреймворк.
Одна из характетистик фреймворка - это IoC.
Есть хорошая статься у Фаулера на эту тему InversionOfControl
В данном контексте TestNG больше подходит под определение фреймворка.
зачем вы сюда пришли? =))