Перейти к содержимому

Фотография

Создание фреймворка для автотестирования


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 38

#21 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 31 января 2017 - 10:22

что такое библиотека в программировании?

Для тестирования какой системы была написана библиотека java.io ?

Почему, программисты в 90 % кода подключают библиотеки? они же не тесты пишут!


  • 0

#22 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 31 января 2017 - 10:24

 

 

что такое библиотека в программировании?

в данном случае под "библиотекой" имею ввиду "библиотека для связи с приложением под тестом"

 

тогда получается:

 

цель создателей "библиотек для связи с приложением под тестом"- чтобы ПО для тестирования могло подключаться к тестируемой системе и работать с ней

цель создателей фреймворков - это описание функций низкого уровня, чтобы потом разработчикам более высокого уровня облегчить работу


  • 0

#23 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 31 января 2017 - 10:40

Я боюсь мне не хватит квалификации объяснить что производимое вами сравнение не имеет никакого внешнего смысла.

Поэтому просто ограничемся тем, что есть 3 критерия отличия фреймворка от библиотеки, по которым класс написаный для взаимодействия с SUT является библиотекой.


  • 0

#24 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 31 января 2017 - 10:51

 

 

Поэтому просто ограничемся тем, что есть 3 критерия отличия фреймворка от библиотеки, по которым класс написаный для взаимодействия с SUT является библиотекой.

так я согласен с этим. Класс для связи с СУТ - это "библиотека для связи с СУТ"

 

а вот такой частый пример:

 

есть тестовое ПО, и у него конечно есть "библиотека для связи с приложением под тестом". тесты пишут программисты, так как код низкоуровневый

 

но аналитики тоже хотят писать тесты (ну или им дали задание) - но аналитикам не хватает знаний и времени писать низкоуровневый код

 

поэтому программисты описывают низкоуровневый код, делают функции для использования на высоком уровне, типа "createClent" и так далее

 

 

в результате у нас есть и "библиотека для связи с приложением под тестом" и "фреймворк для высокоуровневого создания тестов"


  • 0

#25 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 31 января 2017 - 11:00

А почему вы назвали это фреймворком?

Как оно соотностится с 3-мя ключевыми отличиями фреймворка от библиотеки?


  • 0

#26 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 31 января 2017 - 11:43

inversion of control: аналитик не контролирует выполнение кода

extensibility: можно расширять фреймворк

non-modifiable framework code: аналитики обычно не меняют низкоуровневый код
  • 0

#27 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 31 января 2017 - 12:22

inversion of control: аналитик не контролирует выполнение кода

extensibility: можно расширять фреймворк

non-modifiable framework code: аналитики обычно не меняют низкоуровневый код

1. Не выполнение кода, а определение порядка действий. А кто его контролирует?
2. Как именно аналитик расширяет фреймворк?


  • 0

#28 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 31 января 2017 - 12:34

 

 

1. Не выполнение кода, а определение порядка действий. А кто его контролирует?
2. Как именно аналитик расширяет фреймворк?

1. контролирует только разработчик фреймворка

 

2. особо никак не расширяет, хотя это возможно. скорее аналитик попросит разработчика фреймворка внедрить расширение в сам фреймворк

 

 

во всяком случае эти три признака не являются "официально принятыми" и "стопроцентными" признаками, эти признаки это частное мнение.

 

какие-то фреймворки больше расширяют, какие-то меньше

 

но во всяком случае ведь аналитику не приходится писать низкоуровневый код, получается аналитик использует фреймворк

 

так же как и веб-девелопер использует Реакт фреймворк и ему не приходится писать низкоуровневый хтмл


  • 0

#29 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 31 января 2017 - 12:43

Коллеги, тема ушла далеко от первоначального вопроса "Кто-нибудь может посоветовать источники "для чайников"?"

Про разницу между библиотекой и фреймворком создайте отдельную тему.

Спасибо.


  • 0

#30 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 31 января 2017 - 12:47

Да уже давно посоветовали книгу про программирование прочитать

Ну и стандартные фреймворки использовать, а не изобретать велосипеды
  • 0

#31 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 31 января 2017 - 14:22

 

 

 

1. Не выполнение кода, а определение порядка действий. А кто его контролирует?
2. Как именно аналитик расширяет фреймворк?

1. контролирует только разработчик фреймворка

 

2. особо никак не расширяет, хотя это возможно. скорее аналитик попросит разработчика фреймворка внедрить расширение в сам фреймворк

 

 

во всяком случае эти три признака не являются "официально принятыми" и "стопроцентными" признаками, эти признаки это частное мнение.

 

какие-то фреймворки больше расширяют, какие-то меньше

 

но во всяком случае ведь аналитику не приходится писать низкоуровневый код, получается аналитик использует фреймворк

 

так же как и веб-девелопер использует Реакт фреймворк и ему не приходится писать низкоуровневый хтмл

 

Так и вижу перед собой картину: в далекой деревне мальчик набирает "mvn clean test" в своем "hello world" и в далеком Сан-Франциско дежурный разработчик TestNG подскакивает с постели и ломится к монитору, чтоб не дай бог AfterClass не исполнился раньше AfterMethod.

 

Извините, у меня было ощущение, что вы хотите разобраться в предмете разговора, а не банально побросаться BuzzWords.


  • 0

#32 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 31 января 2017 - 15:05

 

Так и вижу перед собой картину: в далекой деревне мальчик набирает "mvn clean test" в своем "hello world" и в далеком Сан-Франциско дежурный разработчик TestNG подскакивает с постели и ломится к монитору, чтоб не дай бог AfterClass не исполнился раньше AfterMethod.

 

Извините, у меня было ощущение, что вы хотите разобраться в предмете разговора, а не банально побросаться BuzzWords.

при чём здесь "подскакивать с постели"? это троллинг такой?

 

разработчик фреймворка контролирует какой будет порядок действий, ведь разработчик и запрограммировал этот порядок действий, зачем же ему вскакивать каждый раз с постели?


  • 0

#33 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 31 января 2017 - 15:25

а с создателем TestNG я общался недавно на форуме

 

о плагине TestNG для Intellij IDEA, который как оказалось не поддерживает цепной запуск зависимых тестов которые используют DependsOnGroups

 

 

разработчик плагина решает какие тесты и когда запускаются, а не пользователь. И реально когда запускаешь Тест "А" который зависит от Группы Тестов "Икс", то запускается только сам Тест "А". Хотя TestNG (чистый, без плагина для Идея) при запуске Теста "А" - запускает сначала Группу Тестов "Икс", и только потом Тест "А"


  • 0

#34 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 31 января 2017 - 16:09

 

 

Так и вижу перед собой картину: в далекой деревне мальчик набирает "mvn clean test" в своем "hello world" и в далеком Сан-Франциско дежурный разработчик TestNG подскакивает с постели и ломится к монитору, чтоб не дай бог AfterClass не исполнился раньше AfterMethod.

 

Извините, у меня было ощущение, что вы хотите разобраться в предмете разговора, а не банально побросаться BuzzWords.

при чём здесь "подскакивать с постели"? это троллинг такой?

 

разработчик фреймворка контролирует какой будет порядок действий, ведь разработчик и запрограммировал этот порядок действий, зачем же ему вскакивать каждый раз с постели?

 

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


  • 0

#35 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 31 января 2017 - 16:39

"Разработчик пишущий в фреймворке не пишет управляющего кода, он пишет обработчики конкретных событий, которые генерироваться будут фреймворком. и на появление или последовательность этих событий он не влияет."

Например в веб-фреймворке именно разработчик "спрашивает" появление окна например. То есть это управляющий код. И фреймворк выводит окно
  • 0

#36 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 31 января 2017 - 17:02

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

Ну разве что скажу, что некоторые (не авторы) Селениум называют фреймворком. А вот Аппиум, который вроде то-же что и селениум но для мобилок - тот гордо именует себя фреймворком на официальной странице. В смысле не все что гордо именуется фреймворком является им на самом деле. Просто в какой-то момент слово стало модным.

 

А вот если взять flask, который, внезапно, веб-фреймворк, то в нем вы пишете классы обработчики запросов, потом говорите какой класс на каком uri должен отвечать, запускаете фласк и вуаля у вас веб-сервис. И вот flask - точно фреймворк. он принимает входящие запросы, анализирует их, отвечает ошибками на невалидные, валидные передает обработчикам и возвращает их ответ пользователю


  • 0

#37 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 31 января 2017 - 18:39

Да, имею ввиду современные веб-фреймворки, типа ReactJS

Имею ввиду что для фреймворка это нормально когда контрол-флоу остаётся у юзера, а фреймворк только описывает низкоуровневый код


Ну или keyword-driven testing frameworks, типа robot-framework или Cucumber - там тоже вызовы делает сам юзер
  • 0

#38 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 31 января 2017 - 19:57

Да, имею ввиду современные веб-фреймворки, типа ReactJS

Имею ввиду что для фреймворка это нормально когда контрол-флоу остаётся у юзера, а фреймворк только описывает низкоуровневый код


Ну или keyword-driven testing frameworks, типа robot-framework или Cucumber - там тоже вызовы делает сам юзер

Первая страница поиска "ReactJS" в гугле настойчиво с вами несогласна "A JavaScript library for building user interfaces"

Flask - современный веб-фреймворк. Нет, интерфейсы он не рисует, он бэкенд.

RF и Cucumber честные фреймворки и никакого контроля исполнения у вас в них нет.
Попробуйте изнутри теста узнать какой тест будет выполнятся следующим. Или на ходу повторить 3 раза предыдущий или пропустить следующий.
Нет у вас там контроля. Есть фичефайлы с тегированными тестами, есть реализации шагов. А уж с какими ключами и тегами фреймворк запустили так он вас и прокатит как трамвай по рельсам. Хуже, как американские горки в лунапарке.

Извините. На этом я дискуссию закончу. Потому что пользы от нее никакой не вижу, а время она кушает.
  • 1

#39 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 31 января 2017 - 22:12

"Первая страница поиска "ReactJS" в гугле настойчиво с вами несогласна "A JavaScript library for building user interfaces""

Конечно, фреймворк может быть имплементирован в виде библиотеки. Описываешь низкоуровневые функции и потом компилируешь в библиотеку

Так что несогласия тут нет, фреймворк может быть библиотекой
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных