• Что такое end-to-end тестирование?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Понятие еnd-to-end обозначает всего-навсего классификацию тестов по уровню, на котором тестируется система, и, само по себе, ничего не говорит ни о том, какие конкретно должны быть эти тесты, ни о том, какую роль они играют в общей стратегии обеспечения/проверки качества и, также, не является методикой тестирования. (Методика - это совсем другое понятие.)

    Для понимания сути этого понятия хорошо сравнить его с модульным ("нижний" уровень) и интеграционным ("средний") тестированием на каком-нибудь конкретном примере. Давайте рассмотрим некий сферический webshop в вакууме. Предположим, в нем есть 50 классов и для большинства из них написаны модульные тесты. Они проверяют исключительно функционал конкретного модуля (чаще всего, класса), т.е. тот, что зависит только от самого модуля и ни от чего чего более. Потом есть интеграционные тесты. Они проверяют корректность работы отдельных "модулей", если их собрать вместе согласно архитектурe. Например, работает ли правильно "Корзина", состоящая, в свою очередь, из 10 классов (предварительно проверенных модульными тестами), или "Корзина", подключенная к "Вебморде" и т.д. Где-то повыше в этой иерархии есть такие интеграционные тесты, которые проверяют конкретный функционал всей системы. Например, отправляется ли юзеру мейлом копия оплаченного заказа...

    И вот тут начинается самое интересное для понимания того, что такое end-to-end тестирование! Можно представить себе тест, проверяющий, что соответствующий мейл генерируется и сбрасывается SMTP серверу. Если SMTP сервер не рассматривать, как часть разрабатываемой системы, то этот тест вполне можно назвать end-to-end тестом (послали кучку HTTP запросов через "Вебморду" и проверили сброс мыла на SMTP - все зашибись!). Однако, если настройки и эксплуатация SMTP сервера - часть проекта (например, заказана разработка webshop "под ключ"), может оказаться, что это мыло будет отфильтровано каким-нибудь спам-фильтром, превысит лимит почтового ящика пользователя... короче, не дойдет до него. Тогда этот же самый тест уже нельзя считать end-to-end, а нужно бы было написать тест, проверяющий приход мыла в POP3/IMAP ящик. (Опять же, если это действительно нужно! Ибо, в зависимости от конкретных функциональных и нефункциональных требований, архитектор и QA инженер вполне могут найти возможность обеспечить адекватный контроль качества и без такого теста.)

    Таким образом, end-to-end тесты, это такие интеграционные тесты, которые воздействуют на систему через ее самые внешние интерфейсы и проверяют ожидаемую реакцию системы через эти же интерфейсы. Почему именно интеграционные? Потому, что это единственное, что можно о них сказать наверняка: они по определению не могут быть модульными тестами. А все остальное: являются ли они одновременно приемочными, нагрузочными или еще какими - зависит только от общих плана/стратегии тестирования и той роли, которые эти тесты в них играют.
    Ответ написан
    Комментировать
  • Студия для сисадмина?

    Francyz
    @Francyz
    Photographer & SysAdmin
    Существует ли что-нибудь близкое
    Нет
    Ответ написан
    Комментировать
  • Права на файлы в WSL2?

    bingo347
    @bingo347
    Crazy on performance...
    периодически к файлам на WSL2 нужен доступ из винды, например чтобы отредактировать хосты в Nginx
    чем не угодил nano или vim для этих целей? На край можно поставить на винду X server и запустить любой линуксовый gui редактор в wsl с переменной DISPLAY
    Если 10 баксов за x410 для Вас дорого, есть бесплатный X server, правда с ним заморочиться придется немного.
    Ну и еще вариант дождаться поддержки WSLg или поставить инсайдерскую сборку или бету Win11, где оно уже есть.
    Но для большинства задач вида отредактировать конфиг - nano более чем достаточно, а если с vim разберетесь, то редактировать что-то блокнотом точно уже не захочется

    P.S. VSCode с плагином remote WSL умеет работать из винды внутри WSL
    Ответ написан
    1 комментарий
  • Какой RDP клиент для Windows со списком и папками/категориями вы знаете?

    @dshumov
    Олдскул - Фигурнов форева
    Ответ написан
    Комментировать
  • Как сменить порт на nextcloud?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Зайти в настройки используемого веб-сервера и поменять. Будет конкретика, как настроено - будет более подробный ответ.
    Ответ написан
    Комментировать
  • Mikrotik hap ac2 не получается сбросить до заводских настроек. Ошибаюсь или окирпичил?

    Возможно кнопку удерживали дольше чем необходимо и запустился Netinstall вместо сброса - попробовать снова, но отпустить сразу как мигнет светодиод.
    Если не удаётся сбросить устройство, можно запустить его в режим Netinstall долгим удержание кнопки reset во время загрузки. Затем используя утилиту Netinstall залить новую прошивку, или просто очистить память(сбросить) оттуда.
    Ответ написан
    Комментировать
  • Почему команда find не работает?

    hint000
    @hint000
    у админа три руки
    Потому что надо -ctime +29

    $ man find
    ...
    -atime n
    File was last accessed n*24 hours ago. When find figures out how many 24-hour periods ago the file was last ac‐
    cessed, any fractional part is ignored, so to match -atime +1, a file has to have been accessed at least two days
    ago.
    ...
    -ctime n
    File's status was last changed n*24 hours ago. See the comments for -atime to understand how rounding affects the
    interpretation of file status change times.
    Ответ написан
    1 комментарий
  • Как сайту на кириллическом домене отправлять почту?

    profesor08
    @profesor08
    1. Не использовать кириллические доменные имена
    2. В случае проблем смотреть первый пункт
    Ответ написан
    Комментировать
  • Почему Микротик недоступен по IP?

    Jump
    @Jump
    Системный администратор со стажем.
    У вас IP адрес на компьютере выдан автонастройкой.
    DHCP на микротике не отвечает - либо выключен, либо не туда смотрит.
    Или включайте DHCP или вбивайте адрес руками.
    Ответ написан
    Комментировать
  • Аналог FOR… IN… LOOP цикла в MySQL?

    ohifck
    @ohifck
    Смотрите курсоры.
    Например
    CREATE PROCEDURE curdemo()
    BEGIN
      DECLARE done INT DEFAULT FALSE;
      DECLARE a CHAR(16);
      DECLARE b, c INT;
      DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;
      DECLARE cur2 CURSOR FOR SELECT i FROM test.t2;
      DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    
      OPEN cur1;
      OPEN cur2;
    
      read_loop: LOOP
        FETCH cur1 INTO a, b;
        FETCH cur2 INTO c;
        IF done THEN
          LEAVE read_loop;
        END IF;
        IF b < c THEN
          INSERT INTO test.t3 VALUES (a,b);
        ELSE
          INSERT INTO test.t3 VALUES (a,c);
        END IF;
      END LOOP;
    
      CLOSE cur1;
      CLOSE cur2;
    END;
    
    Ответ написан
    1 комментарий
  • Какие преимущества у NoSQL?

    @stratosmi
    Преимущества и недостатки реляционной PostgreSQL vs MongoDB
    https://youtu.be/SNzOZKvFZ68

    Вкратце:
    Преимущества PostgreSQL - полноценные транзакции, хорошо работает со сложными запросами.
    Недостатки PostgreSQL - плохо работает при горизонтальном масштабировании на большом кластере.
    Преимущества MongoDB - хорошо ведет себя при горизонтальном масштабировании , быстро работает на простых запросах.
    Недостатки MongoDB - плохо поддерживает целостность данных в кластере, обеспечивает корректность данных не на любой момент времени не на любом сервере, плохо делает запросы по разного вида документам (разным таблицам)

    Ранее у MongoDB было еще преимущество в schemaless, но с появлением JSONB у PostgreSQL этого преимущества у Монги больше нет.

    Применять Монгу для неважных данных вторичной значимости, где нужно масштабирование по кластеру.
    Применять PostgreSQL на важных данных (например, финансовых).
    Ответ написан
    4 комментария
  • Плагин KeePass для браузера Chrome

    @isden
    Для ChromeIPass нужно еще и в KeePass плагин поставить:

    Requirements:
    * KeePass 2 (http://keepass.info) version 2.17 or newer
    * KeePassHttp (https://github.com/pfn/keepasshttp/ download at passifox.appspot.com/KeePassHttp.plgx)

    Directions:
    1) Install KeePass
    2) Install KeePassHttp by dropping KeePassHttp.plgx into the KeePass Program Files directory
    2a) Log into KeePass
    2b) Verify KeePassHttp has been installed correctly by checking Tools > Plugins
    3) Navigate to any page containing a password
    4) Click the KeePass icon in the URL bar and click the «Connect» button
    5) Switch to the KeePass window and enter a descriptive name for your «Chrome Browser» into the dialog that popped up and click save.
    Ответ написан
    2 комментария
  • Как получить значение из списка?

    MinTnt
    @MinTnt
    key = 'A'
    
    b = [x[key] for x in a]
    print(b)
    Ответ написан
    Комментировать
  • Как по логам отследить от чего крашится Ubuntu 20.04?

    @ArtemGlebov
    Начинающий сись
    Ответ написан
    Комментировать
  • Как по логам отследить от чего крашится Ubuntu 20.04?

    romesses
    @romesses
    Backend инженер
    Обычно у Intel драйвера из самых стабильных.
    По логам - смотреть в /var/log/kern.log

    Проверьте память: https://linuxhint.com/run_memtest_ubuntu/

    Если с памятью ОК, тогда следующий стресс-тест (нагревает процессор):
    sudo apt install stress-ng
    https://wiki.ubuntu.com/Kernel/Reference/stress-ng
    stress-ng --cpu 2 --vm 4 -t 5m
    Ответ написан
    5 комментариев
  • Как исправить ошибку в формуле Excel VBA?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Если у вас в начале модуля указано:
    Option Explicit

    то это значит, что требуется явное указание типов переменных. Тогда функция должна выглядеть например так:

    Public Function fun1(x As Double) As Double
    fun1=(x*x-5*2^0.5)/(2*x^3+1)
    End Function


    Если причина не в этом - выкладывайте скриншот ошибки
    Ответ написан
    1 комментарий
  • Как правильно использовать автозаполнение в KeePassX?

    @myppomeu
    Могу поделиться опытом жизни с KeePass + Firefox ESR.

    В Firefox'е заголовок окна меняется с помощью дополнения KeePass Helper (в Firefox 57+ вроде бы есть аналоги). К штатному заголовку окна добавляется имя домена. На это добавление и настроен KeePass.
    Например, на тостере вход производится на сайте id.tmtm.ru. В KeePass в свойствах записи указано, что автонабор производить в случае совпадения имени окна с такими шаблонами:
    • * - id.tmtm.ru*
    • Центр авторизации — TM ID*

    Автонабор у меня настроен на сочетание клавиш Ctrl+Alt+A. Если совпадающая запись всего одна, сразу происходит автонабор. Если их несколько, при нажатии Ctrl+Alt+A появляется окно, в котором можно выбрать нужную запись.
    Можно самому указать, как происходит автонабор. Например, сайт сначала требует ввести логин, затем нажать на кнопку, затем ввести пароль. Указывается это примерно так:

    {USERNAME}{ENTER}{DELAY 2000}{PASSWORD}{ENTER}

    Есть дополнение (и вроде бы даже под Firefox 57+), которое напрямую соединяется с базой KeePass, и можно не указывать заголовки окна и прочее, но я им ни разу не пользовался. Возможно, оно же решает проблему с автозапоминанием учетных данных.
    Как можно доверять опенсорсному плагину с каким-никаким именем меньше, чем закрытой следилке - в упор не понимаю.

    Из удобных бонусов - введение паролей не только в браузере: например, на ключи GPG и SSH, на Thunderbird и так далее.

    Вот хорошая серия из нескольких статей про настройку и использование KeePass.
    Ответ написан
    2 комментария