понедельник, 2 сентября 2019 г.

Что такое framework? Объяснение для новичков


Мне тут ютуб интересный видосик подсунул. Посмотрела, оценила, рекомендую! Автор — Сергей Немчинский. Разработчик, спикер конференций, владелец тренингового центра по разработке.

А вот объяснение «что такое framework» нужно не только разработчикам, но и  тестировщикам! Буквально пару дней назад в чатике моей школы для начинающих тестировщиков спрашивали, что это значит.


Так что же такое framework


Дальше идет мое объяснение, а не пересказ видео, ибо «зачем??»

Можно писать весь код программы самому с нуля. Да, конечно. А еще можно вырастить дерево, самому его спилить, обработать и смастерить табуретку. Или пойти в магазин и купить готовую. Что проще, лучше и быстрее?

А если вам нужен молоток? Это еще и металл обрабатывать надо! Можно самому, но получится намного хуже, чем если взять готовое. Ведь первый блин всегда комом. Что-то не учел и все, продукт не работает!

Также и в разработке. Если есть спрос на функционал — его проще написать один раз. Тщательно протестировать ОДИН РАЗ, а потом переиспользовать. Так появились библиотечки и фреймворки. Граница между ними бывает размытой, ведь и то, и другое — уже написанный вместо тебя код. А разница в чем:

  • Библиотека (Library) — Вызывается внутри кода. Бизнес-логика твоя, но какой-то функционал подключаешь из библиотечки (забор данных из файла, drag&drop...)
  • Фреймворк (Framework) — Сам вызывает твой код. То есть это уже готовый код, который ты лишь слегка расширяешь под свои нужды. 
Фреймворк вызывает твои кусочки кода, но они оформлены согласно спеццификации фреймворка. 



Чем фреймворк отличается от программы


  • Программа — конечный продукт
  • Фреймворк — можно и нужно расширять

А как расширяется тестовый фреймворк? Вот, например, в folks есть готовый тестовый фреймворк, который умеет читать эксельки, заполнять по ним БД и проводить по этой базе поиск.

Фреймворку нужно, чтобы в тесте была экселька, какие-то конкретные колонки в ней, xml-файл, где указано «что искать и что должно вернуться». Но сами эксельки пишет тестировщик. Вот вам и функция расширения.

Фреймворку абсолютно начхать, какие данные внутри экселек. Он делает свою работу, ему главное, чтобы были нужные файлы. И он будет ругаться, если вместо них получит что-то еще. Но наполнение данных — это не его забота. Это забота тестировщика, который расширяет фреймворк своими автотестами.


PS — статья написана в помощь студентам моей школы для начинающих тестировщиков. В ней в том числе есть задание пощупать folks с готовым тестовым фреймворком, так что заходите, у нас весело!

Комментариев нет:

Отправка комментария