• Почему не нужно тестировать сторонние библиотеки?

    lxsmkv
    @lxsmkv
    Test automation engineer
    это не сразу вскрывается

    Это вскрывается при первом выполнении тестов на старом билде, но с новой библиотекой.
    Ответ написан
    Комментировать
  • Как Запустить экранного бота на сервере?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Смотрите в сторону cloud gaming.
    Вот есть гайды как на Azure можно настроить игровой сервер через RDP:
    A Beginner’s Guide to Cloud Gaming
    Playing Overwatch on Azure's new monster GPU instances
    Почитайте, поймете как это в принципе устроено.
    Технология которая поддерживает виртуализацию графической карты называется RemoteFX - в этой статье, например, написано как в принципе можно настроить RemoteFX и на AWS.
    Ответ написан
    Комментировать
  • Как правильно создавать тест-кейсы для формы регистрации?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Если форма заполнена не полностью, то кнопка отправить должна быть неактивна.
    Если форма заполнена невалидными данными и/или неполностью - кнопка "Отправить" должна быть неактивна и неверно заполненые поля должны показывать подсказку.
    Для каждого поля нужно проверять, что разные ошибочные варианты ввода в это поле распознаются. Переполнение поля тоже.
    Если есть необязательные поля, нужно проверить, что их заполнение, незаполнение или неверное заполнение не влияет на результат. Если есть кнопки переключатели (radio buttons) можно проверить выставляется ли значение по умолчанию если должно или не выставляется если не должно. Бывает что выставляется хотя не должно.

    Кроме этого навигацию по полям табуляцией можно проверить. Можно проверить, что при перезагрузке страницы введенные в формуляр данные не сбрасываются, если они не должны сбрасываться.
    Если поля поддерживают автозаполнение можно проверить и это.
    Если формуляр многостраничный - нужно проверить навигацию между страницами, что введенные данные не теряются. Что их можно отредактировать вернувшись назад.

    Не думайте о количестве тесткейсов, думайте о том, в чем вы хотите убедиться.
    Ответ написан
    Комментировать
  • В каком случае зазор будет больше?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Соотношение радиуса и длины окружности жестко связаны числом "пи".
    2π᛫r = C

    Прибавив справа единицу, нам нужно прибавить единицу слева, чтобы уравнять стороны;
    2π᛫r + 1 = C + 1

    Вынесем 2π за скобки:
    2π(r+1/2π) = C + 1

    Заменим единицу из примера переменной:
    2π(r+х/2π) = C + х

    Таким образом, увеличение длины окружности на икс, увеличивает радиус окружности на "икс, деленый на 2π".
    Ответ написан
    4 комментария
  • На каком языке написать игру с нуля?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Может Lazarus? Логичное продолжение для паскаля. Вот тут написано какие библиотеки есть для разработки игр.

    Можно для непритязятельной игрушки взять и love2d фреймворк (под ним lua, довольно простой скриптовый язык)
    Ответ написан
    1 комментарий
  • Бизнес логика и что ее нарушает?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Бизнес-логика это механизм устройства системы, но нее ее графическое оформление.
    Бизнес-логика нацелена на воплощение бизнес процесса определенного спецификацией системы.
    "Бизнес-" она потому, что когда пользователь хочет получить "пользу" от системы и не может этого сделать - страдает бизнес.
    Она определяет внутреннее устройство системы.
    Ошибка в бизнес-логике может произрастать из неверной спецификации или неверной реализации.
    Ошибка в бизнес-логике (негативно) влияет на взаимодействие пользователя с системой.

    Если пользователь нажимает на кнопку, а та не реагирует - это бизнес-логика, потому что по "логике бизнеса" (читай: логика, определенная бизнесом), при ее нажатии должно происходить что-то.

    Возьмем стиральную машинку. Если мы выставляем и запускаем программу "быстрая стирка 30 градусов", а белье вместо этого кипятится - и причиной этому, например, неверное распределение контактов регулятора - это ошибка бизнес логики.
    Если неверно подписаны программы на регуляторе - это ошибка в пользовательском интерфейсе.
    И вот тут можно спорить. По моему определению - это ошибка бизнес-логики. Нарушена логика приложения. Т.е. одаренный логикой человек не получает ожидаемый результат следуя инструкции. Хотя исходя из технических соображений, надписи как правило не относят к логике. А зря.

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

    А вообще определение немного размытое.

    Технари часто понимают под бизнес-логикой т.н middleware.

    P.S. замените это слово на "функционал" или "функция" - будет лучше для всех.
    Ответ написан
    Комментировать
  • Что такое TDD и для чего применяется?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Я формулирую так "В TDD ты сначала спрашиваешь себя как я буду это проверять, а потом приступаешь к работе". Должен сказать, этот вопрос настолько очевидный и простой, что странно что разработчики часто не задаются им. Я как тестировщик знаю, что ничего не знаю и мне легко думать из этой перспективы. Я не уверен ни в чем, поэтому проверять гипотезу для меня - норма. Я не знаю как работает мой код, я только могу предполагать. Написав тест, ты явно формулируешь свои ожидания. Это мыслительный процесс. Это часть инженерной работы.

    Вы когда холодильник покупаете тоже сперва мерки берете, заранее, приходите с ними в магазин, смотрите ширину двери, в какую сторону она открывается, чтобы она открывалась полностью. Чтобы шнура хватало до розетки. Считаете поворотные углы, чтобы вы могли его пронести по лестнице и через дверные проемы, и развернуть при установке.
    Многие так не делают - просто покупают и с помощью "лома и какой-то матери" впяливают это себе в кухню.
    Кажется дебильно? Так порой делается разработка. Фигачим, а там посмотрим. Мы же мастера на все руки, для нас нет непосильных задач. Зачем думать - мы же опытные, не первый холодильник авось устанавливаем.

    Сначала думай потом делай. Семь раз отмерь - один раз отрежь. Это все об этом.
    Ответ написан
    Комментировать
  • Работа тестировщиком не дает никаких полезных навыков в плане дальнейшего трудоустройства разрабочиком?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Если вы будете заниматься автоматизированным тестированием вам волей-неволей придется понимать устройство приложения. Хотя бы очень поверхностно. Чем лучше автоматизатор тем лучше его понимание устройства приложения. И тут все зависит от вас, станете вы интересоваться устройством приложения глубже или нет. Требовать от вас этого никто не станет. Будете интересоваться - через какое-то время сможете стать разработчиком.

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

    Автоматизатор должен понимать язык на котором он пишет. Он также может понимать как эти тесты выполняются, он может понимать шаблоны проектирования. Он может и должен писать чистый, хорошо поддерживаемый код. Все это ему может в работе понадобиться. Но станет ли это билетом в разработку? Нет, вовсе не обязательно.

    У меня сложилось впечатление, что вы хотите через тестирование попасть в разработку. Я бы не стал так делать. Так вы ни хорошим тестировщиком не станете, ни хорошим разработчиком. Я сознательно отказался от работы разработчиком, и остался автоматизатором. Потому что знаю как они работают, и мне иногда грустно. Стать еще одним производителем багов - нет спасибо. А у меня уникальные навыки. Я решаю интересные задачи. Я ковыряюсь в приложении, чтобы понять где к нему прицепиться, чтобы получить нужную информацию. Нормальные интерфейсы, к сожалению, порой не предусмотрены. Я постоянно тусуюсь с разработчиками. Мы обсуждаем баги и я иногда могу подсказать подход к их решению, могу помочь отфутболить баг, или если баг не наш, перенаправить его с нормальным комментарием. Могу зайти в бюро к разработчику и спросить почему баг еще не пофиксили, причем именно техническую причину, и понять ее. Могу прочитать лекцию разработчикам о том, что важно писать внятные коммит-мессаджи. Знаю как пользоваться Джирой. Например трансформировать баг в таск и наоборот. Знаю наши информационные системы. Могу подсказать как с помощью нашего интрумента тестирования продебажить трудно воспроизводимое состояние. Могу читать стектрейс и лог иприложения, и понимая как работает наша программа, обьяснить разработчику, что проблема наша, а не во фреймворке или где-то еще.

    Просто я тянусь к знаниям и не считаю себя умным и "все итак знающим".

    Можно конечно все время сидеть в бюро и добавлять n+1 тест в тестовый набор у уходить в 17 часов домой. От вас зависит.

    И по з/п я получаю больше чем некоторые наши разработчики, потому что навыки уникальные, кроме меня никто не хочет этим заниматься, и не знает как. Другое дело, что если я поменяю место работы то в сухом остатке у меня будет только опыт внедрения автоматизации и язык программирования. Но в разработчики я все равно не пойду. Для автоматизатора всегда открыт весь мир технологий, а для разработчика только те, на которых пишется программа.
    Ответ написан
  • Что лучше: унифицированный или уникальный дизайн?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Насчет однообразного дизайна - у эппл и гугла есть дизайн-гайдлайны. Следаовать этим гайдлайнам - хорошо.
    Twitch в браузере, на телевизоре, на мобильном телефоне и на десктопе смотрятся узнаваемо. Как-то они это делают.
    WinAmp - имеет "уникальный" дизайн не соответствующий стилю внешней системы - все пользуются.
    Ответ написан
    Комментировать
  • Как с помощью Cypress отследить запрос на сервер ??

    lxsmkv
    @lxsmkv
    Test automation engineer
    В официальной документации вроде описано. Внизу есть и ссылка на пример реализации.

    И также в этом гайде официальной документации описаны принципы тестирования с использованием их фреймворка.
    Ответ написан
    Комментировать
  • Как смоделировать вселенную?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Я вам просто для рефлексии ваш вопрос прокомментирую. Дело в том, что для моделирования сложных систем, нужно сперва понять, что из себя представляют эти системы. Moжете почитать про World3 - компьютерная модель
    для рассчета макро-показателей мира.
    Модель никогда не будет идеальной. Поэтому нужно точно знать, что мы хотим смоделировать. И какие ограничения это накладывает.

    Хочу создать маленький мирок с обитателями, по задумке в нем будет несколько сотен жителей в нескольких поселениях, которые смогут друг с другом общаться, заниматься какой-то деятельностью

    Это агентное моделирование. Можете попробовать NetLogo, например.

    Как лучше сделать "сознание" бота, чтобы он был самообучающимся
    Чему он должен будет обучаться? Создать простейший механизм обучения можно по принципу спичечных коробков Дональда Митчи

    но и в то-же время организованным?
    что значит быть "организованным"?

    Какую информацию о окружающей среде бот должен воспринимать
    А он должен? Для чего это нужно?

    Как организовать семантику языка жителей
    А они должны общаться? Для чего им это нужно?

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

    Я хочу чтобы жители обсуждали свои проблемы, решали их
    Это предложение должно было стоять выше, поскольку описывает условие. Почему у жителей должны быть проблемы? Какие проблемы? Что значит решить проблему?

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

    Как видите, чтобы создать модель чего-то нужно сначала понять что-то.

    И еще читайте про имитационное моделирование
    Ответ написан
  • Можно ли описывать негативные тесты при помощи Gherkin?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Негативные тесты это проверка на то, что приложение справляется с непредусмотренными ситуациями ожидаемым образом.

    Позитивный тест
    Дано: первое слагаемое равно 1
    и дано: второе слагаемое равно 3
    если мы производим операцию сложения данных чисел
    тогдарезультат будет равен 4

    Вот несколько примеров негативных тестов

    Дано: первое слагаемое равно 1.0
    и дано: второе слагаемое равно 3
    если: мы производим операцию сложения данных чисел
    тогда: будет выведена ошибка несоответствия числовых типов

    Дано: мета-файл базы данных отстутствует в папке конфигурации
    если: мы запускаем базу данных
    тогда: в логе будет записана ошибка о недостающем файле.
    и тогда: в консоли будет выведена ошибка о недостающем файле.
    если: мы нажмем любую клавишу в консоли
    тогда: приложение будет завершено.

    В общей форме это выглядит так:
    Дано: какая-то фигня
    если: я делаю какую-то дичь
    и если: я делаю какую-то ерунду
    тогда: приложение делает так
    и тогда: приложение делает эдак.

    Автоматизировать сложнее может быть да, как в примере с записью в журнал ошибок, но не невозможно.
    Ответ написан
    1 комментарий
  • Как организовать автоматизацию тестирования с 0?

    lxsmkv
    @lxsmkv
    Test automation engineer
    В принципе все правильно. Берете и делаете. Серебрянной пули нет.

    Особенно порадовало, что "все занимаются тестированием"- это правильно. Лишь бы это не было "все - значит никто". И следите за тем, чтобы тестирование давало результат - либо тикет в системе либо фикс. Если баги находят, но просто говорят о них на кухне - это не тестирование. Если баг фиксится сразу, это не значит что коммит-сообщение можно ляпнуть "fixed some strange bug" - он должен содержать описание сценария в котором он происходит и как он влияет на пользователя.

    Улучшайте коммит-сообщения. Так чтобы из них можно было собрать патчноут и красиво показать пользователю. А не куча невнятного "внутряка". Формулируйте с позиции пользы, это заставит разработчиков немного больше гордиться проделанной работой, а следовательно добавит им мотивации. Для примера посмотрите как пишут патчноуты передовые представители игровой индустрии.

    По автоматизации .. подводные камни такие:
    - если автотестов много - их долго выполнять. Начните с небольшого количества 20-50. На них вы обкатаете внедрение и процесс. Не считайте никакие ROI - это бред. Чем считать ROI лучше написать еще один полезный тест.
    - архитектуру тестов старайтесь организовать так, чтобы работу по их написанию можно было распараллелить. Например если у Вас Page Object - один может писать компоненты из которых другой может строить сценарии.
    - ваш сервис сильно зависит от доступности источников данных - проверяйте доступность источников регулярно, особенно если эти данные вы получаете не по API, а выковыриваете парсером.
    - сделать тестовую базу данных - правильно. Автоматизируйте ее свертывание-развертывание через контейнеры.
    - по приоритетам автоматизации - точно так же - по "абстрактной" значимости. Хороший источник для идей - багтрекер. Кластеризуйте ошибки по типам и делайте выводы.
    - не делайте автоматизацию ради автоматизации - в первую очередь чините продукт, потом тесты.
    - не усложняйте тесты ради того чтобы они справлялись с более сложными условиями, упрощайте условия.
    - автотесты будут сыпаться по непонятным причинам. Делайте как можно более полезное логгирование. Если тесты выполняются в произвольном порядке - это тоже может быть одной из причин. Любой рандом в тестировании - зло. Учитывайте это при наполнении тестовой базы данных. Желательно, чтобы тестовая база всегда содержала одинаковые данные. Смотря что у Вас за база. Если это только пользователи это одно, а если у вас там хранятся аггрегированные данные, то нужно время от времени пересобирать тестовую базу из свежих источников и проверять работу тестировочных скриптов с ней.
    - автоматизацию тестирования можно применять не только для тестирования конечного продукта, можно тестировать миграции схемы базы данных, восстановление базы из бекапа и прочее.

    Можете почитать мои ответы по этому хабу, может найдете там еще ответы на какие-то близкие Вам вопросы.
    Вот некоторые из моих советов-ответов более-менее общей направленности:

    Как добиться независимости в тестах (phpunit)?
    Правильное тестирование Javascript?
    Как систематически подойти к тестированию в малой компании разработчиков?
    С чего начать изучение на должность QA автоматизатора?
    Как создать отдел тестирования?
    Какие шаги тестирования сайта?

    Читайте:
    "Lessons Learned in Software Testing" (Kaner, Bach, Pettichord)
    "Experiences of Test Automation: Case Studies of Software Test Automation" (Graham, Fewster)
    и вот эту вики: TestAutomationPatterns (Кстати, ее инициатор и редактор та же Dorothy Graham. Есть даже пару записей ее лекций на ютубе - советую глянуть)
    В ней прям шаблоны. Проблема - решение. Бесценная вещь. Мне в свое время очень помогло, чтобы понять "что не так" и как это лечить.
    Ответ написан
    Комментировать
  • Как показать "черный" экран поверх отрытого приложения?

    lxsmkv
    @lxsmkv
    Test automation engineer
    В Libreoffice Impress нажатие кнопки B или W включает черный или белый экран пока не будет нажата кнопка следующего слайда (см. тут).
    У него также есть мобильное приложение для удаленного управления презентацией
    Ответ написан
    Комментировать
  • Интеграция Windows и WSL?

    lxsmkv
    @lxsmkv
    Test automation engineer
    - Тут написано про "interop" WSL и Винды
    - Файлы Винды в WSL находятся в /mnt/[drive-letter]
    - Как найти файлы WSL в Винде написано тут и тут
    - Нормальную возможность открывать WSL файлы в Explorer'е скоро добавят в Винду
    Ответ написан
    Комментировать
  • Как убрать иконку поиска из dock ubuntu?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Смена позиции для Dash Home кнопки не предусмотрена (тыц, тыц)
    Ответ написан
    1 комментарий
  • BeautifulSoup4 сжирает оперативную память, что делать?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Ну вот тут говорят page.decompose() разрушает обьект страницы.
    Утечка памяти это когда программа никакой полезной работы не производит, а потребление памяти растет.
    Тут я думаю нет утечки, а просто каждый цикл добавляет в память новые данные. И они не удаляются.
    Ответ написан
    1 комментарий
  • Как правильно собрать openconnect-gui?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Вам кажется тут уже ответили. https://unix.stackexchange.com/questions/495825/ho...
    Ответ написан
    Комментировать